自動車イノベーションの中で進化する脆弱性発見:EV充電器脆弱性を狙う攻撃シナリオ

2024年1月19日
VicOne
自動車イノベーションの中で進化する脆弱性発見:EV充電器脆弱性を狙う攻撃シナリオ

By Jonathan Andersson (Senior Manager – Security Researcher, Zero Day Initiative)

この2部構成のブログシリーズでは、脆弱性の発見がいかに重要か、そして脆弱性が迅速に対処されない場合に生じる潜在的なサイバー脅威を明らかにする3つの攻撃シナリオを検討します。第1回の本稿では、これらの攻撃シナリオのうち2つに注目し、トレンドマイクロのゼロデイイニシアチブ(ZDI)プログラムに所属するリサーチャーたちが電気自動車(EV)充電器の分野で行った調査について解説します。ZDIは、今回初めて開催されるPwn2Own AutomotiveでVicOneと共同ホストを務めます。

自宅用EV充電器からのファームウェア抽出

この最初の攻撃シナリオでは、物理的にアクセスできる自宅用EV充電器からファームウェアを抽出する方法を示します。ファームウェアの抽出は、デバイスに関するさらなる調査を実施する際、セキュリティ上の欠陥を見つける上で最初の重要なステップです。

ファームウェアは一般的にNANDのような永続的なメモリデバイスに保存されています。そのため、抽出過程では、デバイスのメモリに保存されたファームウェアイメージが読み取られてコピーされます。これを行うために、プリント基板で広く使用される業界標準のプロトコルであるJTAGが使用されます。JTAGはデバイスのメモリに直接アクセスでき、これにより、リサーチャー(または潜在的な攻撃者)が暗号化や認証などの保護機構を迂回することが可能となります。

この攻撃シナリオではデバイスへの物理的アクセスが必須となります。デバイスへのアクセスを得ると、Atmel CPU、シリアルコンソール、NANDフラッシュ、JTAGデバッグポートが見つけられます。さらに、ファームウェアを抽出するために必要な全ての情報も収集されます。そしてブートローダとLinuxコンソールから得られた重要情報に基づき、NAND内の各パーティションの開始および終了のアドレスが確認されます。

ファームウェア抽出プロセス

図1:ファームウェア抽出プロセス


JTAGツールを使用することで、充電器との通信が可能になります。図2に示されているように、最初にJTAGulatorを用いてJTAGインターフェースを検証し、各ピンの機能を特定します。

ターゲットユニットに接続されたJTAGulator

図2:ターゲットユニットに接続されたJTAGulator


その後、ターゲットCPUとデバッグソフトウェアツールをつなぐためにJLinkツールを使用します。このツールは、プロセッサの開始や停止、実行中のブレークポイント設定、メモリやCPUレジスタの値の表示および設定が可能なデバッグソフトウェアを使用するために重要です。最終的にデバッガーを使って、ターゲットのCPUを操作し、ファームウェアを抽出することができます。

ターゲットユニットに接続されたJLinkデバッガー

図3:ターゲットユニットに接続されたJLinkデバッガー


この段階から、収集した情報を活用してブートローダ内のnand_loadimage関数の実行をコントロールします。CPUが特定のブレークポイントに達した際には、レジスタを操作してブートローダがNAND内のファームウェアをSRAM内のバッファへコピーするようにします。その後、JTAGツールを使ってこれをファイルに保存し、さらに分析するために用います。

今回は6台のEV充電器を調査しましたが、そのどれもでファームウェアの暗号化が採用されておらず、JTAGアクセスの無効化や難読化を試みている例もほんの一部でした。これらのセキュリティギャップを埋めるためには、両方でのセキュリティ戦略の実施が必要でしょう。

特権昇格関連の脆弱性悪用

第2の攻撃シナリオでは、EV充電器コントローラーにおけるローカルでの特権昇格関連の脆弱性悪用事例を示します。ここでの目的は、ローカルユーザーアカウントがルートアクセスを得られるかどうかを確認することです。

脆弱性悪用のプロセス

図4:脆弱性悪用のプロセス


この攻撃シナリオで使用されるデバイスには、ローカルのユーザーアカウントが搭載されています。このローカルユーザーアカウントにより、ルートで実行されるシステムレポートを出力するスクリプトが実行できます。

EV充電器コントローラー

図5:EV充電器コントローラー


これにより、エクスポートスクリプトは出力先のパスをチェックせず、エクスポートファイルに適切な権限が設定されません。そのため、ローカルのユーザーがファイルを上書きできてしまいます。そして「sudo」許可リストにあるスクリプトを選択し、出力先として使用することができます。出力先のファイルに書き込まれた任意のコマンドは、ルートのユーザーとして実行される可能性があります。

ローカルのユーザーがルートアクセスを獲得

図6:ローカルのユーザーがルートアクセスを獲得


第1の攻撃シナリオと同様、この攻撃シナリオは、基本的なセキュリティ対策または手順の実施により防ぐことができます。この場合、システムスクリプトとセキュリティ権限の適切な監査が必要となります。

脆弱性発見の重要性

これら2つの攻撃シナリオは、Pwn2Own Automotiveで披露される脆弱性発見の例を示しています。このような発見からの脆弱性公表は、自動車業界において実際の問題につながる脆弱性のリスクを減らす上で有効となります。これにより、製造業者はセキュリティリサーチャーと共同で、システムの不備に対処するための時間と機会を得ることができます。

新たなモビリティの時代に突入する中、自動車業界にとってセキュリティを最優先にすることがこれまで以上に重要になっています。自動車業界は、一般的なサイバー脅威や脆弱性が、特に道路安全において前例のない影響を及ぼす可能性があるというユニークな状況に直面しています。

自動車の脆弱性の影響は、このシリーズの第2部で解説します。特にVicOneによる車両API攻撃シナリオのデモについて詳しく議論します。

VicOneとZDIのリサーチャーたちは、2024年1月24日から26日まで東京ビッグサイトのオートモーティブワールドで開催される自動車を対象にした初のイベントPwn2Own Automotiveにおいて、これらの攻撃シナリオを実際にデモを交えて解説します。

<

自動車業界のお客さまのサイバーセキュリティを加速させるために

デモの依頼