- あるセキュリティ研究者が、Home Depotの従業員が誤ってオンラインに公開したGitHubアクセストークンを発見し、1年にわたり内部システムが外部に露出していたと明らかにした
- このトークンは数百の非公開ソースコードリポジトリへのアクセスおよび変更権限を提供し、クラウドインフラ・注文処理・在庫管理システムなどにもアクセス可能だった
- 研究者はHome Depotに何度もメールとLinkedInメッセージを送ったが、数週間にわたり応答がなかった
- Home DepotはTechCrunchが連絡した後になって初めて露出を修正し、トークンのアクセスを取り消した
- Home Depotには脆弱性報告やバグバウンティ制度がなく、今回の事件はセキュリティ対応体制不在の問題を浮き彫りにした
Home Depot内部システムアクセス露出事件の概要
- あるセキュリティ研究者が、Home Depotの従業員がオンラインに投稿した非公開アクセストークンを発見
- このトークンは2024年初頭から露出していたとみられる
- 研究者はこれにより、Home Depotの数百のGitHubリポジトリにアクセスおよび変更が可能であることを確認した
- 露出したキーは、Home Depotのクラウドインフラ、注文処理システム、在庫管理システム、コード開発パイプラインなど、さまざまな内部システムへのアクセスを許可していた
- Home Depotは2015年から開発およびエンジニアリングインフラの大部分をGitHubでホスティングしている
研究者の警告と会社の対応
- 研究者Ben ZimmermannはHome Depotに何度もメールを送ったが、数週間にわたり応答がなかった
- Home Depotの最高情報セキュリティ責任者(CISO) Chris LanzilottaにLinkedInメッセージを送ったが返答はなかった
- Zimmermannはここ数カ月で他社の同様の露出事例も見ており、ほとんどの企業は感謝の意を示した
- 彼は「Home Depotだけが私を無視した」と述べた
TechCrunch介入後の対応
- Home Depotには脆弱性報告やバグバウンティプログラムが存在しない
- このためZimmermannはTechCrunchに連絡し、問題解決を要請した
- TechCrunchが12月5日にHome Depotの広報担当者George Laneへ連絡すると、メール受信は確認したが、その後の追加の問い合わせには応答しなかった
- その後、露出していたトークンはオンラインから削除され、アクセス権限もTechCrunchの連絡直後に取り消された
追加確認要請と未回答
- TechCrunchは、Home Depotがログなどの技術的手段を通じて当該トークンが他者に使用されたか確認できるか問い合わせたが、回答を得られなかった
- このため、実際に外部からのアクセスがあったかどうかや被害規模は確認されていない状態だ
事件の意味
- 今回の事例は、大企業でも基本的なアクセスキー管理の失敗が長期間放置され得ることを示している
- また、セキュリティ脆弱性報告体制の不在が問題解決を遅らせる可能性があることを浮き彫りにした
- TechCrunchの介入後になって初めて対応が行われた点は、外部監視の重要性を際立たせている
1件のコメント
Hacker Newsの反応
TechCrunchはHome Depotに露出したアクセストークンについて問い合わせたが、同社は法務部門に回して沈黙モードに入ったようだ
おそらく今後出てくる公式見解は、法的な表現だらけの責任回避型の文章になるだろう
実際に法的な案件かもしれないので、そちらなら読んで対応できる人が応じる
以前、銀行が本人確認の問題で自分との連絡を打ち切ったときも、手紙1通ですぐ解決した経験がある
もちろん私たちは内部分析レポートを見たいが、株主中心の世界では慎重にならざるを得ない
先週、うっかり自分のOpenAI、Anthropic、Gemini APIキーを露出させてしまった
Claude Codeのログにキーがそのまま出力されていたが、Anthropicはすぐメールを送ってキーを無効化した
一方でOpenAIとGoogleからは何の通知もなかった
特にGoogleのGeminiキーは見つけるのに10〜15分かかり、しかもまだ有効なままに見えた
最近のようにvibe codingが増えるほど、発行者と利用者の両方にとってキー管理の衛生が重要になる
すでにbrogrammingによるセキュリティ事故も多いのに、それが100倍に増えるかもしれない
単にClaude Codeのログに残っていただけなら、Googleがそれを認識したというのは驚きだ
自分も以前、個人のGitHub PATをうっかり公開リポジトリに上げてしまったことがある
そのたびにGitHubは即座にトークンを無効化し、通知を送ってきた
自分の場合は大きな被害はなかったが、システムはきちんと機能していた
「Home Depot 2x4」のジョークのように、1年間好き放題に資材を持ち出せたなら、誰かが木の球体くらいは作っていそうだ
シークレット管理(secrets management) をどうすればいいか悩んでいる
今は手動でSSH接続して
.envファイルを修正している.envファイルでも十分だどうせアプリが侵害されればメモリ上にシークレットが残るので、露出は避けられない
可能ならIPベースのアクセス制限をかけておくのが最も強力な防御策だ
Ageをバックエンドに使えば、サーバーには1つの長期秘密鍵だけ置けばよい
誰かが「その情報でどんな被害を与えられたのか?」と尋ねていた
GitHubをデプロイに使っているなら悪意ある機能を本番環境に注入することもできる
ギフトカードの窃取で利益を上げている
最近ではSalesloftのGitHub経由でAWSに侵入し、OAuthトークンを盗んで数百のSalesforce顧客アカウントにアクセスした事例もある
公開された文字列が本物のAPIキーなのか、単なるランダムな値なのかは見分けにくい
pat_、sk_のような**接頭辞(prefix)**を付けている「Open Source Home Depot」という言い方が妙にしっくりくる
GitHubやOpenAIが自前でトークンハッシュのスキャン自動化を提供していないのは意外だ
顧客の安全のために簡単に実装できそうに思える
プラットフォーム非依存のスキャンサービスを作ったらどうかという提案もあった
以前はDiscordトークンが露出すると即座に無効化され、システムアカウントがDMを送ってきた
公式ドキュメントによると、
主要プロバイダーごとのパターンを自動検証し、必要に応じてトークンを自動失効させる
ただしGitHub外で露出したトークンは検出しにくい
自分はバグバウンティプログラムを通じて流出したキーをしばしば報告している
残念ながらHome Depotにはバグバウンティがない
GitHubの無料スキャナーでも十分検出可能だ
誰かは、この内部システムのデータでインサイダー取引級のことまでできたかもしれないと述べていた