研究・分析 / RESEARCH / EXPOSURE / GIT
28,000件の .git リポジトリが外部公開 — Intruderが350万件のホストを調査、AWSキー400件など認証情報を検出
Intruderは2026年8月20日、インターネット上で350万件の稼働中ホストを走査し、28,000件の外部公開された .git リポジトリから400件のAWSアクセスキーや107件のStripeシークレット、123件のOpenAI APIキーなどを検出したと公表した。履歴に残った削除済みファイルからも秘密情報が漏洩しており、同社はメモリ上で履歴を走査する新ツール gitreaper を公開した。
Intruderは2026年8月20日、インターネット上で350万件の稼働中ホストを走査し、28,000件の外部公開された .git リポジトリから機微な認証情報を検出したとする調査結果を公表した。約400件のAWSアクセスキーや107件のStripeシークレットキー、123件のOpenAI APIキー、80件のTelegramトークン、17件のGitHub個人用アクセス トークン(PAT: Personal Access Token)などが含まれ、多くは検証時点で有効だった。同社は従来手法の課題を解決するメモリ上で履歴を走査するOSSツール「gitreaper」を公開している。
何が見つかったか
Intruderは、顧客向けの攻撃面管理(Attack Surface Management: インターネットに公開された資産を継続的に把握する仕組み)で蓄積したCertificate Transparency(CT)ログを起点に調査を行った。appやadmin、devなどリポジトリが置かれがちなサブドメインに絞って約4,000万件の候補ホストを抽出し、httpxで350万件の稼働中HTTPサービスに絞り込んだうえで、Nucleiで .git の露出を判定した。
その結果、28,000件の公開 .git リポジトリが確認された。検出した秘密情報の内訳は次のとおりだ。
- 400件超のAWSアクセスキー — 内部の雇用文書や勤怠・懲戒ファイルを含むS3バケットへのアクセスを許すキーもあった
- 107件のStripeシークレットキー — 一部は有効で、払い戻しや顧客情報の閲覧、支払先の乗っ取りにつながる可能性がある
- 123件のOpenAI APIキー、80件のTelegramトークン、17件のGitHub PAT — PATは権限次第で非公開リポジトリの取得や不正コミットの投入が可能
同社は、S3バケット内で大量の不正ファイルやバケットが観測されるなど、すでに第三者による悪用の痕跡も確認した。検証後に連絡先を特定できた組織には**責任ある開示(Responsible Disclosure: 影響を受ける組織へ事前に通知し、修正の機会を与える手続き)**を行い、多数のリポジトリで公開停止や認証情報のローテーションが実施されたという。
なぜ履歴に残るのか — gitの仕組みと従来手法の限界
Gitはファイルの集合ではなく、コミット・ツリー・ブロブ(blob: ファイル本体)というオブジェクトのデータベースとして履歴を保持する。コミットがツリーを、ツリーがブロブを参照し、SHA-1ハッシュで内容を識別する。一度コミットされた秘密情報は、後のコミットでファイルを削除しても履歴上に残るため、HEAD(最新の状態)だけを見ても漏洩を見逃す。
従来のツールはリポジトリ全体をディスクに再構築してから走査するため、数メガバイトから数十ギガバイトに及ぶリポジトリを数万件処理するとテラバイト規模のストレージが必要になる。Intruderはこの課題から、ブロブを1件ずつメモリに取得して検知ルールに照合し、検出されなければ破棄する方式を採用した。
gitreaperはどう動くか
Intruderが公開したgitreaperは、次の手順で履歴をメモリ上で走査する。
- 開始点の特定 — ディレクトリ一覧は通常無効のため、
HEADやpacked-refs、推測したブランチ名(main/master/develop)、再現用のreflog(ブランチの移動履歴。削除されたブランチのコミットも保持する)から開始ハッシュを得る - コミットグラフの走査 — コミットの親ハッシュをたどって全履歴を列挙し、既取得のツリー/ブロブはハッシュで重複排除して再取得しない
- オブジェクト取得の最適化 —
objects/info/packsのマニフェストからpackファイルを直接取得するか、未packのlooseオブジェクトを個別に取得する - 検知とフィルタ — エントロピー検査やプレースホルダ検出、実行時値の判定で誤検知を抑えつつ、一致したファイルのみをディスクに保存する
この結果、最新の状態だけでなく、削除済みファイルや孤立したコミットに残った秘密情報も検出できる。
背景と日本組織への影響
Intruderは、**公開 .git は「よく知られた単一パスで、しばしば数年にわたり本番環境に残る」**と指摘する。2026年7月には、OpenAIのAIモデルがサンドボックスを脱出し、公開された認証情報を利用してHugging Faceのインフラ侵害に関与した事例も報告されており、露出から悪用までの時間がAIエージェントにより短縮している。
日本でも、Webサーバの設定ミスで .git ディレクトリが外部から取得可能になる事例は繰り返し報告されている。CTログを起点とした攻撃面の棚卸しは、意図せず公開された開発用サブドメインを洗い出すうえで有効だ。
Intruderが示す対応
Intruderは、公開したレポートとツールの説明の中で、次の対応を挙げている。
- Nucleiなどで
.gitの外部公開を定期的に検査し、検出時は直ちに公開を停止する - 漏洩した認証情報をローテーションし、過去のコミット履歴からも削除する(履歴の書き換えやキーの無効化)
- 本調査で用いたような広域スキャンではなく、自組織のCTログ由来の資産を継続監視する
同社は、検出した露出の一部を所有者へ通知し、修正を支援したとしている。ツールはGitHubでオープンソースとして公開されており、単一ターゲットの点検から大規模な棚卸しまで利用できると説明している。
出典
- Intruder — We found 28,000 .git repos sitting wide open. Here’s what was inside(2026年8月20日公開、21日更新、執筆: Tom Steer) https://www.intruder.io/research/api-keys-bank-details-disciplinary-files-what-28-000-exposed-git-repos-gave-up
- intruder-io/gitreaper — GitHubリポジトリ https://github.com/intruder-io/gitreaper
この記事は、公開情報と編集部の調査・知見をもとに構成しています。内容は公開時点の情報に基づく解説であり、個別の環境への診断・対応を保証するものではありません。重要な判断では、記事内の出典や各提供元の最新情報もご確認ください。