【しーくれっとすきゃん】

シークレットスキャン とは?

公開:
💡 「うっかりコミット」を見逃さない番犬
📌 このページのポイント
シークレットスキャンの仕組み 開発者 API_KEY=sk-abc... ⚠ コミットに含まれる git push シークレットスキャン パターンマッチング検索 (GitHub / GitGuardian / TruffleHog) 検知 アラート発報 Slack / メール通知 トークン自動無効化 スキャンタイミング ① pre-commit コミット前にブロック ② git push後 リポジトリで検査 ③ CI/CD実行時 パイプライン上で検査 検知→対応 即時無効化 シークレット管理(保管)とシークレットスキャン(検知)は車の両輪
コミット前〜CI/CDまでの多層スキャンで漏洩を防ぐ
ひよこ ひよこ
ペンギン先生、GitHubに「Secret Scanningが有効です」って表示されてたんだけど、これって何をしてるの?
ペンギン先生 ペンギン先生
それは、コードの中にAPIキーパスワードが混ざっていないかを自動でチェックしてくれる機能だよ。たとえば `OPENAI_API_KEY=sk-...` みたいな文字列がコードに含まれていたらすぐ警告を出してくれるんだ。
ひよこ ひよこ
そんな間違い、普通しないでしょ?
ペンギン先生 ペンギン先生
実はよくある失敗でね。「テスト用に一時的に書いた」「.envファイルを誤ってcommitした」「設定ファイルをコピーしたら含まれていた」といったケースが多いんだよ。GitHubで毎年数百万件のシークレット漏洩が検出されてるんだ。
ひよこ ひよこ
検知されたらどうなるの?
ペンギン先生 ペンギン先生
GitHubの場合はリポジトリオーナーとサービス提供企業(例: OpenAI)に通知が届いて、場合によっては自動でトークンを無効化してくれるよ。GitGuardianのような専用ツールはSlackJiraにも連携できるよ。
ひよこ ひよこ
コミット前に防ぐ方法はないの?
ペンギン先生 ペンギン先生
あるよ。pre-commitフックに「detect-secrets」や「gitleaks」などのツールを組み込めば、gitコマンドを実行した瞬間にチェックしてコミット自体をブロックできるんだ。CIパイプラインでも同じチェックを走らせておくと二重安全になるね。
ひよこ ひよこ
シークレット管理ツール(Vaultとか)と何が違うの?
ペンギン先生 ペンギン先生
シークレット管理ツールは「安全に保管・配布する」ための仕組み。シークレットスキャンは「誤って外に出てしまった場合に検知する」ための仕組みだよ。車のシートベルト(予防)と衝突センサー(検知)の違いみたいな感じだね。両方あって初めて安全が保たれるんだ
ひよこ ひよこ
2026年のNx Console攻撃みたいに、開発ツールを経由してトークンが盗まれるケースにも使えるの?
ペンギン先生 ペンギン先生
直接防ぐことは難しいけど、盗まれたトークンGitHubリポジトリに書き込まれたり、CIのログに出力されたりした場合には検知できるよ。根本的な対策は「最小権限のトークンを発行」「有効期限を短く設定」「使い終わったら即失効させる」の3つが基本だよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「シークレットスキャン」って出てきたら「コードにAPIキーなどを書いてしまっていないかチェックするツールや仕組みのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Secret Scanning」 = シークレット(機密情報)のスキャン
💬 ここでいう「シークレット」はAPIキー・パスワード・トークンなど「外に出てはいけない情報」のことだよ
← 用語集にもどる