GitHubの「消されたコミット」から$25k相当のバグ報奨金を獲得する方法 - Truffle Securityと共同開発の新ツールを公開
GitHubの「Oops Commits」から漏洩した秘密をスキャンする方法 白ハッカーのSharon Brizinov氏は、GitHubのPublic Commitのアーカイブを活用し、意図的に削除されたコミットから漏洩したシークレット情報を探索しました。これらのコミットはGitHub上で依然として-accessibleであることが明らかになりました。このプロジェクトでは、Truffle Securityとの協力のもとに新しいオープンソースツール「Force Push Scanner」を開発し、GitHub組織内の隠れたコミットをスキャンできるようにしました。 削除されたコミットとは? GitHubでは、コミットを削除することでシークレット情報を非表示にすることは可能ですが、実際には完全に消去されません。フォースプッシュによって、ブランチのHEADが前に戻され、そのコミットからアクセスできなくなるだけです。実際、コミットハッシュを覚えていれば、コミットの内容にアクセスできることが発見されました。これは、GitHubがref logs(コミット履歴のメタデータ)を蓄積しているためで、この機能はGitHubの複雑な機能群(プルリクエスト、フォークネットワークなど)を支えています。 GitHub Event APIの利用 GitHub Event APIは、GitHub上の各種イベント情報を提供します。このAPIを利用することで、全公開リポジトリのコミットデータを監視し、コミットハッシュを保存できます。特に「PushEvent Zero-Commit」に注目しました。これは、フォースプッシュによってブランチがリセットされ、新しいコミットが追加されない場合に発生します。GH Archiveプロジェクトを通じて過去のイベントも取得可能で、これにより2020年以降の全GitHubオオプスコミットをスキャンすることが可能になりました。 自動化の過程 Sharon氏は、GH ArchiveからPushEvent Zero-Commitを抽出し、対応するコミットを取得してTruffleHogでシークレットの存在を検出する自動化システムを作成しました。Google Big Queryを通じてGH Archiveのデータを処理し、GitHubのコミットをスキャンすることで数千のアクティブなシークレットを特定しました。 高影響力シークレットの探索 発見されたシークレットの中から最も重要な物を見つけるために、以下のような手順を実施しました。 1. 手動検査:JSONファイルで抽出されたシークレットを手動で確認し、通用メールアドレスを除外し、コーポレートメールアドレスによるコミットに焦点を当てました。 2. 秘密のトリアージ平台:Vercelを使ってフロントエンドのみのトリアージプラットフォームを構築し、シークレットのレビューを効率化しました。グラフや円グラフを用いて時間系列での傾向やファイルごとの頻度を分析しました。 3. AI利用:将来、AIを用いた自動化ツールの開発を目指しており、LLAMAベースのエージェントを用いてシークレットの重要性を評価することを計画しています。 ケーススタディ - 大規模サプライチェーン攻撃の防止 発見されたシークレットの一つに、Istioの開発者が誤って漏洩したGitHub Personal Access Token (PAT)がありました。このトークンは、Istioの全てのリポジトリに対する管理者権限を持っていたため、環境変数の読み取り、パイプラインの変更、コードのプッシュ、 baru 新リリース作成、プロジェクト全体の削除まで可能な状態でした。この問題を報告後、チームは迅速にPATを無効化し、大規模なサプライチェーン攻撃の可能性を排除しました。 結論 このプロジェクトは非常に成果があり、Sharon氏は25,000ドル相当のバグバウンティを獲得しました。GitHubのコミットを削除したこと自体を秘密情報の漏洩とみなす必要があることが再確認されました。一度コミットされたシークレットは即時無効化すべきです。Gitのblobsやcommits、オンラインに公開される他の情報も同様です。 業界からのコメント Truffle SecurityのCEO Dylan氏は、「Sharon氏の研究は、GitHubの隠されたコミットからシークレットを抽出する新たな方法を示しています。私たちの新しいツール ‘Force Push Scanner’ を用いて、企業のGitHubリポジトリ内の潜在的な脅威を早期に発見し、対処することができます」と述べています。Truffle Securityは、セキュリティリサーチャーと協力し、組織のセキュリティ漏洞の特定と緩和に貢献することに尽力しています。