研究者らが、2万8,000件の公開状態にあるGitリポジトリを発見しました。これらにはAWS、Stripe、OpenAI、GitHubの有効な認証情報が含まれていました。そのリスクと対策を解説します。
eSecurity Planet のコンテンツと製品の推奨事項は、編集上の独立性を保っています。パートナーへのリンクをクリックいただくことで、当社に収益が発生する場合があります。 詳細はこちら
サイバーセキュリティ企業のIntruderは、350万台のアクティブなHTTPホストをスキャンした結果、2万8,000件の公開状態にある.gitリポジトリを発見しました。これらのリポジトリには、AWS、Stripe、OpenAI、GitHubなどのサービスの認証情報が含まれていました。調査対象は、Certificate Transparencyのデータを用いて特定した、当初4,000万件に上る関連ドメインの候補群から絞り込まれたものです。
研究者らは、400件以上のAWSアクセスキー、107件のStripe APIキー、123件のOpenAI APIキー、80件のTelegramトークン、17件のGitHubパーソナルアクセストークンを回収しました。Intruderによると、回収した認証情報の多くはテスト時点でまだ有効であったとしており、107件のStripeキーの一部や17件のGitHubパーソナルアクセストークンの一部もこれに含まれていたということです。
この問題は、最新版のソースファイルを誤って公開してしまうといった単純な話にとどまりません。公開状態の.gitディレクトリからは、リポジトリの履歴全体が明らかになる可能性があります。これには、開発者がすでに削除したはずと思っていたファイルや認証情報も含まれます。
古いGit履歴に残り続ける機密情報
Intruderは、この規模で公開リポジトリをスキャンするために、gitreaperと呼ばれるオープンソースツールを独自に開発しました。このツールは、リポジトリ全体をディスクにダウンロードするのではなく、Gitのオブジェクト履歴をメモリ上でたどり、個々のBlobをスキャンして機密情報を検出します。
これにより、現在のHEAD状態にとどまらない調査が可能になります。削除済みのブランチや過去のコミット、reflogには、現行のコードベースには表示されない情報への参照が残っている場合があるのです。
たとえば、ある公開状態のAWS認証情報からは、出勤記録や懲戒処分の記録を含む社内の雇用関連文書が保存されたバケットへのアクセスが可能でした。また、過去にコミットされた.envファイルから見つかった別のAWSキーからは、音楽ホスティング用のコレクションにアクセスできる状態にありました。
決済関連のリスクも無視できないものでした。Intruderによると、公開状態にあったあるStripeキーを使い、研究者は企業の取引・支払い履歴を閲覧できたとしています。これには収益額、支払いスケジュール、口座番号の一部も含まれていました。キーに付与された権限次第では、攻撃者が返金処理を行ったり、顧客情報にアクセスしたり、支払い先を変更したりすることも可能だったとみられます。
開発領域にまで及ぶリスク
GitHubパーソナルアクセストークンは、組織への侵入経路をさらに一つ生み出します。十分な権限を持つ有効なトークンがあれば、非公開リポジトリへのアクセスや、コードへの悪意ある変更が可能になる恐れがあります。
この点からも、公開状態の.gitディレクトリは、単なる開発上の衛生管理の問題にとどまりません。その中に含まれる認証情報は、企業インフラの他の部分へアクセスするための、実際に機能するアクセスキーとして悪用され得るのです。
今回の調査は、自律型システムが公開状態の認証情報を発見し悪用できるようになりつつある中で行われました。Intruderは、7月に発生した事例を挙げています。この事例では、OpenAIのエージェントが評価用のサンドボックス環境を脱出し、公開状態にあった認証情報を発見、そのうちの一部をHugging Faceの本番インフラの一部を侵害する攻撃に使用しました。OpenAIは、当該モデルは本番システムで用いている安全対策を備えていない研究環境で稼働していたと説明しています。
ビジネスにとっての意味
今回の調査結果は、Git履歴に今なお有効な認証情報が残っていれば、Webサーバー設定における基本的なミスが直接的なセキュリティ問題に発展しかねないことを示しています。企業にとって、公開状態の.gitディレクトリは、流出したキーに付与された権限次第で、クラウド上のデータ窃取、決済に関する不正行為、非公開コードへのアクセス、標的型攻撃につながる可能性があります。
より大きな懸念は速度です。自動スキャナーは公開状態のリポジトリや認証情報を大規模に発見できるため、組織が機密情報を発見して失効させるまでに他者に悪用されてしまう猶予はますます短くなっています。
組織が取るべき対策
各組織は、Webサーバーまたは CDNのレベルで.gitディレクトリへの公開アクセスを遮断し、現在のファイルだけでなくリポジトリの履歴もスキャンする必要があります。
公開状態のリポジトリで見つかった認証情報は、すべて漏えいの可能性があるものとして扱い、失効・更新すべきです。また、組織は流出した認証情報に関連するクラウド、決済、ソースコード管理の各種アクティビティも確認する必要があります。
Intruderは、所有者を特定できたケースについては責任ある方法で開示を行ったとしています。影響を受けたリポジトリの多くはその後閉鎖され、研究者らが指摘した認証情報を更新した組織も複数ありました。ここから得られる実践的な教訓は、現行のコードから機密情報を削除しただけではリスクは取り除けないということです。組織は認証情報を失効させ、リポジトリの履歴全体を精査し、流出したアクセス権限がすでに悪用されていないかを調査する必要があります。
関連記事: SAPのnpmサプライチェーン攻撃でGitHubトークン、クラウド認証情報、CI/CDの機密情報が標的に——公開状態にある開発者向けアクセス権が、ソフトウェア環境全体への侵害拡大につながり得ることを示す事例です。
翻訳元: https://www.esecurityplanet.com/threats/news-28000-exposed-git-repositories-leak-credentials/