secret-leak-detector について
ソースコードや設定ファイルにハードコードされた秘密情報を検出するローカルスキルです。開発者やリポジトリ監査向けで、Git 履歴も調べ、結果内の秘密情報をマスクします。
主な機能
- 01認証情報やトークンのファイルスキャン
- 02Git 履歴に残る削除済み秘密情報の検査
- 03ファイル、行、種類、リスクの報告
- 04結果内の秘密情報のマスキング
- 05コードを送信せずローカルで実行
活用シーン
- 01コミット前の変更確認
- 02CI/CD パイプラインで秘密情報を遮断
- 03Git 履歴に残る漏えいの監査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jorgealves/ agent_skills --skill secret-leak-detectorインストール後、Claude Code で/secret-leak-detectorを入力して読み込まれたか確認します。
同梱ファイルskill.yaml
詳細
シークレット漏えい検出ツール
目的と意図
secret-leak-detector は、API キー、データベース認証情報、認証トークンなどのハードコードされた機密情報を、コミット前、または誤って履歴にプッシュされた後に特定することで、リポジトリを保護します。
使用する場面
- コミット前のチェック:変更をコミットする前にこのスキルを実行し、シークレットが持ち込まれていないことを確認します。
- CI/CD パイプライン:自動化されたパイプラインに組み込み、プレーンテキストのシークレットを含むビルドをブロックします。
- レガシー監査:
scan_history: trueを指定して、プロジェクトの全履歴を詳細に監査し、削除済みでも git のログに残っているシークレットを検出します。
使用しない場面
- 本番環境のログ:このツールはソースコードと設定ファイルを対象としており、テラバイト単位の実行時ログのスキャンには最適化されていません。
- バイナリファイル:コンパイル済みバイナリや暗号化されたデータ内のシークレットは効果的に検出できません。
入力と出力の例
入力
directory_path: "./config"
scan_history: false
出力
{
"leaks": [
{
"file": "config/production.yaml",
"line": 45,
"type": "Stripe Secret Key",
"risk_level": "critical",
"snippet": "sk_live_**********"
}
]
}
エラー条件とエッジケース
- 誤検知:テストデータ内のエントロピーの高い文字列や暗号化されたハッシュがシークレットとして検出されることがあります。
- Git リポジトリが必要:
scan_historyが true の場合、対象ディレクトリは有効な git リポジトリである必要があります。 - アクセス許可が拒否された場合:特定のファイルや
.gitディレクトリへの読み取り権限がないと、スキルは失敗します。
セキュリティとデータ取り扱いに関する考慮事項
- 永続化なし:このスキルは検出したシークレットを保存しません。
- マスキング:ツール自体がログやターミナル履歴で漏えい元にならないよう、出力スニペットはマスキングされます。
- ローカルでの実行:このスキルはローカルで実行され、外部に接続したり、コードをサードパーティのサービスにアップロードしたりしません。
コメント
Markdown 対応