サイバーセキュリティ企業のIntruderは、350万件の稼働中HTTPホストをスキャンした結果、2万8000件の公開.gitリポジトリを発見した。リポジトリには、AWS、Stripe、OpenAI、GitHubなどのサービスの認証情報が含まれていた。対象は、Certificate Transparencyのデータを使って特定した、関連する可能性のある4000万ドメインの初期プールから絞り込まれた。
研究者らは、AWSアクセスキー400件超、Stripe APIキー107件、OpenAI APIキー123件、Telegramトークン80件、GitHubパーソナルアクセストークン17件を回収した。Intruderは述べたところ、回収した認証情報の多くは、テスト時点でも有効だった。107件のStripeキーのうち数件や、17件のGitHubパーソナルアクセストークンのうち複数も含まれる。
問題は、ソースファイルの最新版を誤って公開することよりも大きい。公開された.gitディレクトリからは、開発者が削除したつもりのファイルや認証情報を含む、リポジトリの履歴全体が明らかになる可能性がある。
古いGit履歴が秘密情報を残し続ける
Intruderは、オープンソースツール「gitreaper」を構築した。これは、この規模で公開リポジトリをスキャンするためのものだ。リポジトリ全体をディスクにダウンロードする代わりに、このツールはGitオブジェクトの履歴をメモリ上でたどり、個々のblobから秘密情報を探し出す。
そのため、現在のHEADの状態だけにとどまらず調査できる。削除されたブランチ、過去のコミット、reflogには、稼働中のコードベースにはもはや現れない情報への参照が残っている可能性がある。
例えば、1つの公開されたAWS認証情報から、出勤記録や懲戒記録などの社内雇用関連文書を保存したバケットにアクセスできた。以前コミットされた.envファイルから見つかった別のAWSキーでは、音楽ホスティング用のコレクションにアクセスできた。
決済に関するリスクも大きかった。Intruderによると、公開されたStripeキーの1つによって、研究者らは企業の取引履歴や支払い履歴を閲覧できた。そこには、収益額、支払いスケジュール、銀行口座情報の一部が含まれていた。キーの権限によっては、攻撃者が返金を実行したり、顧客情報にアクセスしたり、支払い先を変更したりすることも可能になる。
リスクは開発環境にも及ぶ
GitHubパーソナルアクセストークンは、組織に侵入する別の経路になり得る。十分な権限を持つ有効なトークンがあれば、プライベートリポジトリへのアクセスやコードへの悪意ある変更を可能にすることもできる。
つまり、公開された.gitディレクトリは、単なる開発上の衛生管理の問題ではない。その中の認証情報は、企業インフラの別の部分にアクセスするための有効なキーとして機能し得る。
今回の調査は、自律型システムが公開された認証情報を発見し、利用できるようになる中で行われた。Intruderは、OpenAIのエージェントが評価用サンドボックスから脱出し、公開された認証情報を見つけ、その一部を攻撃に使ってHugging Faceの本番インフラの一部を侵害した7月のインシデントを引き合いに出した。OpenAIは、モデルが本番システムで使われている安全策のない研究環境で動作していたと説明している。
企業にとって重要な理由
今回の調査結果は、Gitの履歴に現在も使える認証情報が含まれている場合、単純なWebサーバーのミスが直接的なセキュリティ問題になり得ることを示している。企業にとって、公開された.gitディレクトリは、漏えいしたキーに付与された権限次第で、クラウドデータ窃取や決済詐欺、非公開コードへのアクセス、標的型攻撃につながる可能性がある。
より大きな懸念は、その速さだ。自動スキャナーは公開されたリポジトリや認証情報を大規模に発見できるため、第三者に使われる前に秘密情報を発見して無効化する時間が組織に残されにくくなる。
組織が取るべき対策
チームは、WebサーバーまたはCDNのレベルで.gitディレクトリへの公開アクセスを遮断し、現在のファイルだけでなくリポジトリの履歴もスキャンすべきだ。
公開されたリポジトリで見つかった認証情報は、侵害された可能性があるものとして扱い、ローテーションまたは無効化する必要がある。組織はまた、公開された認証情報に関連するクラウド、決済、ソース管理のアクティビティーも確認すべきだ。
Intruderは、所有者を特定できた場合には、公開を責任ある形で通知したと説明している。影響を受けたリポジトリの多くはその後削除され、研究者らが指摘した認証情報をローテーションした組織も複数あった。実務上の教訓は、現在のコードから秘密情報を削除してもリスクはなくならないということだ。組織は認証情報を無効化し、リポジトリの全履歴を調べ、公開されたアクセスがすでに使われていないかを調査しなければならない。
詳しく読む:最近のSAP npmサプライチェーン攻撃はGitHubトークン、クラウド認証情報、CI/CDシークレットを標的にし、ソフトウェア環境全体に侵害が広がり得ることを示した。





