ln-761-secret-scanner について
コードベース内のハードコードされたシークレットや認証情報を検出し、分類して修正方法を示すワーカーです。gitleaks または trufflehog を利用し、どちらも使えない場合は手動のパターン照合に切り替えます。
主な機能
- 01利用可能なシークレットスキャンツールを使用
- 02手動のパターン照合にフォールバック
- 03重大度ごとに検出結果を分類
- 04ベースラインと許可リストで結果を除外
- 05レポート内のシークレット値を伏せる
- 06修正ガイダンスを添付
活用シーン
- 01セキュリティ設定時のプロジェクトスキャン
- 02コミット前のシークレット確認
- 03CI/CD パイプラインへのシークレット検査の追加
- 04手動のセキュリティ監査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-761-secret-scannerインストール後、Claude Code で/ln-761-secret-scannerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/detection_patterns.mdremediation_guide.mdreferences/templates/gitleaks_config_template.toml詳細
パス: ファイルパス(
references/、../ln-*)は、このスキルディレクトリからの相対パスです。
シークレットスキャナー
タイプ: L3 ワーカー カテゴリ: 7XX ブートストラップ
コードベースをスキャンしてハードコードされたシークレットと認証情報を検出し、修正用の構造化された検出結果を返します。
目的と範囲
- 利用可能なツール(gitleaks、trufflehog)または手動のパターンを使用して、ハードコードされたシークレットを検出します
- 検出結果を重大度(Critical/High/Medium/Low)で分類します
- ベースラインと許可リストを使って誤検知を除外します
- 検出タイプごとに修正方法を提示します
- 正規化したレポートを親オーケストレーター(ln-760)に返します
使用するタイミング
- プロジェクトのブートストラップ時(ln-760-security-setup 経由)
- コミット前フックの検証時
- CI/CD セキュリティパイプラインでの実行時
- 手動でのセキュリティ監査時
ワークフロー
フェーズ 1:ツールの検出
ステップ 1:利用可能なスキャナーを確認
- gitleaks がインストールされているか確認します(推奨)
- trufflehog がインストールされているか確認します(代替)
- どちらも利用できない場合は、フォールバックとして手動でパターンマッチングを行います
ステップ 2:設定を読み込む
- プロジェクトの
.gitleaks.tomlが存在する場合は読み込みます(カスタムルール) .gitleaksbaselineが存在する場合は読み込みます(既知の誤検知)- 設定がない場合は、
references/detection_patterns.mdのデフォルトパターンを使用します
フェーズ 2:スキャンの実行
ステップ 1:利用可能なスキャナーを実行
- プロジェクトのルートに対してスキャナーを実行します
- 出力を構造化形式(JSON/SARIF を推奨)で取得します
- ツールが利用できない場合は、高い信頼度でシークレットを検出する手動の grep パターンを実行します
ステップ 2:結果を解析
- 出力を共通形式(file、line、pattern、raw_match)に正規化します
- ツールから重大度が提示されている場合は、その値を保持します
フェーズ 3:レポートの生成
ステップ 1:重大度を分類
references/detection_patterns.mdに従って、検出結果を重大度レベルに割り当てます- Critical:AWS キー、秘密鍵、JWT シークレット
- High:一般的なパスワード、接続文字列
- Medium:API キー(テストデータの可能性があります)
- Low:手動確認が必要な、シークレットの可能性がある値
ステップ 2:誤検知を除外
- ベースラインの除外設定を適用します
- 許可リストのパターン(プレースホルダー、テストデータ、ドキュメント)を適用します
- フィルタリングした項目には、理由とともに「excluded」のマークを付けます
ステップ 3:レポートを作成
- 検出結果を重大度ごとにまとめます
- ファイルパス、行番号、マッチしたパターンを含めます
- レポートに実際のシークレット値を含めないでください
フェーズ 4:修正方法の提示
ステップ 1:修正アクションを付与
- 各検出結果に、
references/remediation_guide.mdに記載された修正手順を付与します - Critical の検出結果では、直ちにローテーションが必要であることを強調します
ステップ 2:結果を返す
- 構造化された検出結果のリストをオーケストレーターに返します
- 合計スキャン数、合計検出数、重大度別の内訳を含む概要を付けます
重要なルール
- 実際のシークレット値をログに記録しないでください — すべての出力で値を伏せてください
- 検出されたシークレットはすべて漏洩したものとして扱ってください — Critical の場合はローテーションが必要です
- ベースラインを保持してください — 既存のベースライン項目を削除しないでください
- コミット前の対策を優先してください — 未設定の場合はコミット前フックを推奨してください
- Git の履歴を考慮してください — シークレットが履歴に存在する可能性がある場合は警告してください(git-filter-repo が必要です)
完了の定義
- 利用可能なツールまたは手動のパターンを使ってスキャンを完了している
- 検出結果を重大度で分類している
- ベースライン/許可リストを使って誤検知を除外している
- 各検出結果に修正方法を付与している
- 正規化した形式でレポートを返している(実際のシークレット値を含まない)
- Critical の検出結果にローテーションが必要であることを明示している
参照ファイル
| ファイル | 目的 |
|---|---|
references/detection_patterns.md | 信頼度レベル別のシークレットパターン |
references/templates/gitleaks_config_template.toml | プロジェクトの gitleaks 設定用テンプレート |
references/remediation_guide.md | シークレットの種類別のローテーション手順 |
バージョン: 2.0.0 最終更新日: 2026-01-10
コメント
Markdown 対応