GitGuardianのBlog翻訳:トヨタ、GitHubでシークレットキーを誤って公開し、データ流出被害に

10月7日、トヨタは同社が提供するサービス「T-Connect」のソースコードのコピーが5年にわたって外部から参照できる状態にあったことを発表。ソースコードには、29万件を超える顧客情報へのアクセスが可能な認証情報が書き込まれていました。

Toyota Suffered a Data Breach by Accidentally Exposing A Secret Key Publicly On GitHub

本記事は、GitHubから流出した機密情報をリアルタイム検知するサービスを提供するGitGuardian社のblogで公開された記事を日本語に翻訳したものです。

(原題)Toyota Suffered a Data Breach by Accidentally Exposing A Secret Key Publicly On GitHub

https://blog.gitguardian.com/toyota-accidently-exposed-a-secret-key-publicly-on-github-for-five-years/

2022年10月7日、日本に本社を置く自動車メーカー、トヨタが5年もの間、顧客データへのアクセスを可能にする認証情報がパブリックリポジトリ上で誤って外部から参照できる状態にあったことを発表しました。問題のソースコードが外部に公開されたのは2017年12月のことです。以後、2022年9月まで公開設定のまま放置されていました。トヨタは、公開されていたキーを無効にしたと発表しているものの、5年もの間情報が公開されていたことから、すでに何度か不正アクセスが行われていた可能性があります。

今回のインシデントを受けて、トヨタは同様の情報漏えいを起こした企業リストに加わりました。サムスンや NvidiaTwitchといった企業が名を連ねるリストです。6,695件のシークレットが流出したサムスンの事例と比較すると、トヨタの今回の事案は比較的限定的と捉えられているようです。一方で、こうした問題に遭遇する企業数は増えてきており、憂慮すべき傾向であることにはかわりありません。

パブリックGitリポジトリ上のデータ公開は、とりわけ厄介なテーマです。管理の厳しいプライベートリポジトリを想定したコードが、企業によるセキュリティ管理の及ばない、従業員あるいは請負業者が所有者であるパブリックリポジトリにアップロードされることは決して珍しいことではありません。

経緯と対応

Toyota Data Breach Explained

T-Connect

2014年、トヨタは「T-Connect」と呼ばれる新しいテレマティクスサービスを顧客向けに発表しました。T-Connectは音声対話やサードパーティーアプリへの接続が特徴です。トヨタはこのサービスを「クルマが通信することで、安心・安全、快適、便利なサービスを提供する」と宣伝しています。

T-Connectでは、遠隔操作によるクルマの始動や社内Wi-Fi、デジタルキーアクセス、ダッシュボードに表示される指標のフルコントロール、サービスアプリ「My TOYOTA」へのダイレクトラインといったサービスを利用できます。こうしたサービスオプションを管理するサーバーには、顧客識別番号とメールアドレスが登録されています。

委託先業者とパブリックリポジトリ

2017年12月、社名不詳(現時点)のある委託業者との協業中、T-Connectのソースコードの一部がGitHubのパブリックリポジトリにアップロードされました。このリポジトリ内のソースコードには、顧客情報を管理するデータサーバーへのアクセスキーが書き込まれていました。この認証情報を見つけた者は、顧客情報管理サーバーへのアクセスが可能であり、296,019件もの顧客のアクセス情報を入手できてしまいます。

このリポジトリが公開設定になっていて、顧客データが流出した可能性があることに気づいたのは2022年9月15日のことです。その後トヨタは、このリポジトリを非公開とし、該当する接続情報すべてに対し無効化し、変更等の対応を行っています。

この事案の深刻度

顧客の識別番号とメールアドレスについては流出した可能性があるものの、顧客名、クレジットカード情報、電話番号は当該データベースには保管されていないため、流出のリスクはありません。トヨタは、影響を受ける顧客に対しすでに対応を開始しており、その一環として、情報が流出したかどうかを確認できる専用フォームを用意しています。

現時点で、今回の情報漏えいにより攻撃者がメールアドレスや顧客管理番号の窃取以上の被害は報告されていません。ただし、トヨタは、窃取されたデータの悪用や攻撃の実施について、確認できていないということです。

自身を守るために私たちにできること

個人情報の不正利用は確認されていないものの、トヨタは影響するユーザーに対し、スパムメールやフィッシング攻撃に警戒するよう呼びかけています。

以下はトヨタからの注意喚起です:「差出人や件名に心当たりのない不審なメールを受信した場合は、ウイルス感染や不正アクセス等の危険がありますので、メールに添付されているファイルは開封せず、メール自体を直ちに消去いただくようお願いいたします。」

今回のインシデントは、どのようなメールであっても、信頼できる発信元から送信されたメールのリンクしかクリックしないという鉄則を思い返すよい機会になりました。メールの出所が疑わしい場合は、ヘッダーを調べてメールドメインが正規のものであるかを確認する、またリンクにカーソルをあててそのURLが疑わしいサイトにリダイレクトしないことを確認するといいでしょう。

攻撃者は、窃取したメールアドレスを背景情報とうまく組み合わせることで、説得力のあるフィッシング詐欺キャンペーンの展開が可能です。たとえば、相手がトヨタの顧客ということが分かっていれば、キャンペーンに信憑性を持たせることができます。

再発防止のために開発者にできること

今回トヨタで発生した事案の核心部分で、セキュリティ的な過失が2つあります:

  1. 非公開を想定しているコードをパブリックリポジトリにプッシュ(アップロード)した。
  2. 顧客情報が保管されているDBサーバーの認証情報をソースコードに書き込み、リポジトリに保管していた。

Gitは、開発者の93%以上が使用する優れたバージョン管理システムです。最新CI/CDパイプラインの中核といってもいいかもしれません。Gitの長所として、誰もが作業中のプロジェクトの完全コピーを持つことができるという点が挙げられます。この「完全コピー」にアクセスできるということは、開発者それぞれが自分のコピーをパブリックリポジトリのような権限のない場所にアップロードできるということを意味します。請負業者がコードを任意の場所にアップロードしようとするのを阻止することは不可能かもしれません。一方で、コードやIPが本来あるべきでない場所にアップロードされたことを検出することは可能です。これについては、ソフトウェア産業全体に影響を及ぼす深刻な問題であるため、当社でも過去に報告を行っています

GitGuardianでは、ソースコードの情報漏えいを検出する、HasMyCodeLeakedという企業向けツールを無償で提供しています。このツールは、GitHubのパブリック履歴でコードの「足跡」を正確に検索してくれるため、プライベートコードあるいはデータを含むリポジトリを簡単に特定できます。

シークレットのハードコーディング、つまりソースコードへの書き込みは、今日のソフトウェア業界全体に影響を及ぼす深刻な問題の一つです。2021年には、GitHubのパブリックリポジトリだけでも600万件を超えるシークレットが見つかっています。

DevOpsにおけるセキュリティのいわゆる「シフトレフト」は、常に時間に追われる開発者の肩にかかっています。そのため、シークレットがリポジトリに混入するのを阻止してくれるツールやサービスの活用は非常に重要です。企業のシークレットは、いったんソースコードに書きこまれてしまうと、パブリックリポジトリへのアップロードだけでなく、恨みをいだく従業員による漏えいや、攻撃者による窃取等、様々な理由で外部に公開されることがあります。シークレット検出を導入していない企業にとって、こうした事態はまさに盲点といえるでしょう。

最後に

認証情報のソースコードへの書き込み問題についてもっと知りたい方は、当社発行のレポート「State of Secrets Sprawl 2022 」をぜひご覧ください。自社のシークレット流出が気になる方は、ぜひテリロジーワークスまでご連絡ください。無料診断をご案内いたします。

GitGuardian に関するお問い合わせ

下記ボタンをクリックしてフォームよりご連絡ください。