実務チェックリスト
GitHub secret leak対応チェックリスト
GitHub上のsecret leakは、ファイル削除ではなく、失効、再発行、影響範囲確認、履歴確認、再発防止までを一連の作業として扱う。
- 難易度
- 中級
- 想定読者
- 開発者・SRE・セキュリティ担当
- 所要時間
- 約10分
何を確認するか
GitHubにAPIキー、トークン、秘密鍵、.envが混入した疑いがあるとき、削除より先に失効・影響確認・履歴確認を進めるためのチェックリスト。
なぜ重要か
一度pushされた秘密情報は、最新コミットから削除してもclone済みの第三者や履歴に残る可能性がある。
見落とすと何が起きるか
漏えいしたトークンが有効なままだと、クラウド、SaaS、CI/CD、外部APIへの不正利用につながる。
発見直後
- 該当secretの種類、権限、対象サービス、有効期限を確認する
- ファイル削除より先に、対象secretを失効またはローテーションする
- public、private、fork、Actionsログ、リリース成果物への露出を確認する
- 誰がいつpushしたか、どのブランチ・タグに含まれるか確認する
影響範囲
- secretがアクセスできるリソース、権限、ネットワーク範囲を確認する
- 不審なAPI利用、クラウド操作、課金増加、管理画面ログインを確認する
- CI/CDやWebhookがsecretを参照していないか確認する
- 委託先、外部コラボレーター、fork先への影響を確認する
履歴と保全
- Git履歴から消す前に、証跡として対象コミット、時刻、検知経路を記録する
- 履歴書き換えが必要な場合は、影響ブランチと利用者へ事前連絡する
- GitHub Secret Scanningやpush protectionの検知状況を確認する
- 関連するissue、PR、Actionsログにsecretが残っていないか検索する
再発防止
- .env.exampleと実際の.envを分離し、.gitignoreを確認する
- ローカルpre-commit、CI、GitHub Secret Scanningで多層検知する
- 長期鍵を減らし、可能ならOIDCや短命トークンへ移行する
- secret所有者、用途、ローテーション周期を台帳化する