中間者攻撃によるSOME/IPプロトコルの乗っ取りについて

中間者攻撃によるSOME/IPプロトコルの乗っ取りについて

目次

この記事では、車載イーサネットネットワーク上のSOME/IPプロトコルを使った、自動車アプリケーションに対する中間者(MITM)攻撃について、またそれを軽減する方法ついて説明します。

注:MITM攻撃には、2者間の通信を合意なしに傍受し、操作することが含まれます。

効率のよい高帯域幅の車載ネットワーク接続を容易にするため、車載イーサネットリンクは車載E/Eアーキテクチャとして一般的になりつつあります。

自動車業界でイーサネットを使用するために、DoIP (Diagnostics over IP:診断通信プロトコル) やSOME/IPといった専用のアプリケーションレイヤープロトコルが開発されました。これに加え、一般的な車載イーサネットスタックとして、ICMP、ARP、DHCP といったIT業界の一般的なイーサネットプロトコルも挙げることができます。

一般的な車載イーサネットスタック

車載ネットワークセキュリティの一般的な分析では、まず、影響の大きい以下の攻撃パターンについて調べます。

  1. サービス拒否攻撃(DoS)
  2. ECU挙動の改ざん
  3. 車両挙動に対する悪意あるトリガー
  4. ドライバー情報の改ざん
  5. ユーザー情報の漏洩
  6. 知的財産の侵害

上記のうち、サービス拒否、車両挙動に対する悪意あるトリガー、ドライバー情報の改ざん、ユーザー情報の漏洩の4つは、このMITM攻撃によって引き起こされる可能性があります。

SOME/IPとサービスディスカバリについて

SOME/IP (Scalable service-Oriented MiddlewarE over IP:サービス指向通信)は、車載用ミドルウェアプロトコルであり、高速データ転送、低いオーバーヘッド、短い起動時間など、車載通信のニーズに対応するよう設計されています。

これは、クライアント・サーバー間の通信用に設計されており、サーバーは通常クライアントにサービスを提供します。サービスによって、車内イベントに関する通知が提供されるほか、クライアントによるサーバー機能の呼び出しおよび情報のリクエストが可能になるRPC(Remote Procedure Call:遠隔手続き呼び出し)が提供されます。

SOME/IPにはサービスディスカバリ機能(SOME/IP-SD)が備わっており、サービスへの動的なサブスクリプションが可能です。通常、サーバーはネットワーク上の接続先すべてにオファーメッセージを送り、サーバーが提供するサービスについて通信します。次に、クライアントがサブスクライブメッセージを送信して、関連するサービスをサブスクライブします。サブスクリプションが完了すると、サーバーはクライアントにサービスの提供を開始します。つまり、サーバーは通知を送信し、リクエストに応答します。このサブスクリプションプロセスは定期的なもので、通常は2秒に1回行われます。

SOME/IP
SDメッセージを含むクライアントとサーバーECU間の一般的なSOME/IP通信

リファレンス攻撃設定

今回の攻撃設定は、自動車業界における一般的なユースケースを代表するもので、AとBの2つのECUはスイッチを介して接続し、SOME/IPで通信します。ECU Aはサーバーで、クライアントであるECU BにサービスS1を提供します。このスイッチには別のECUであるECU Cも接続されています。

この攻撃シナリオの前提条件は、ECU Cがすでに侵入されて、ネットワークに偽のメッセージを送信することができるというものです。

攻撃設定-3つのECUは1つのスイッチを介して接続している

攻撃の流れ

この攻撃では、攻撃者はECU A とECU Bの間のサービス通信を乗っ取り、強制的にECU Cを通して通信が行われるようにします。通常ECU Aは、サービスディスカバリオファーメッセージを送信してS1サービスを提供します。これらのメッセージは複数の場所に送信されるため、ECU Cもこのメッセージを受信します。ECU Cは攻撃を実行するため、受信したオファーS1メッセージに対してサブスクライブS1メッセージをECU Aに送信してサービスをサブスクライブし、スプーフィング(なりすまし)されたオファーS1メッセージをECU Bに送信する、という2つのことを行います。

ECU BはオリジナルのオファーS1とスプーフィングされたオファーの両方を受信しますが、2つ目のオファーが1つ目のオファーの直後に届くため、2つ目だけをサブスクライブします。このようにして、ECU A (サーバー) からECU C (クライアント)へ、そしてECU C (サーバー) から ECU B (クライアント)へ、という2つの接続が開始されます。

その後、ECU CはECU AとB間でメッセージをリレーします。例えば、ECU AがそのクライアントであるECU Cに通知を送信した場合、ECU Cはその内容を直ちにECU Bへ転送します。サービスサブスクリプションプロセスおよびメッセージのリレーは攻撃の間ずっと繰り返されます。

攻撃の説明図:ECU Cが各ECUとの間でSDサブスクリプションプロセスを実行し、サービスメッセージをリレーする

攻撃者はこの攻撃を実行することで2つのことができるようになります。1つ目はECU AとECU Bの間の通信を傍受することです。この通信では、スイッチがそれぞれのスイッチポートに関係するパケットしか転送しないため、攻撃がなければ本来ECU C(攻撃者)からは見ることができません。2つ目は、ECUの間の通信をコントロールしてスプーフィングすることです。

攻撃者はこの攻撃を実行することにより、偽の通知をクライアントに送信する、サーバー上でリモート機能を呼び出す、メッセージデータを改ざんする、重要なメッセージを削除する、といったことができるようになります。サーバー側またはクライアント側で検出できるような通信エラーが発生することはありません。

私たちは、車載イーサネットスイッチを介して接続した2つのECUのシミュレーションと攻撃スクリプトを使用して、この攻撃を実行することができました。

SOME/IP-wireshark-capture
Wiresharkによる攻撃のキャプチャ。偽のサブスクリプションプロセスおよびRPCメッセージのリレーが記述されている

攻撃の緩和策

このような攻撃を緩和する方法はいくつかありますが、どの方法を選ぶべきかは、主にネットワークプロパティによって決まります。

スイッチの機能(TCMAルールなど)を使って基本的なファイアウォールを適用すれば防げる場合もありますが、それだけでは不十分な場合もあります。

通常のネットワーク・パラメータ(MAC アドレス、IP アドレス、UDP/TCP ポート)だけでなく、SOME/IP サービス ID や SOME/IP-SD メッセージ・タイプなどの自動車固有のネットワーク・パラメータに基づいてトラフィックをフィルタリングする、例えばAUTOSAR ファイアウォール規格にあるような侵入検知・防御システム(IDPS)や高度なファイアウォールなどの高度なセキュリティ・メカニズムを使用することを強く推奨します。

認証あるいは暗号化手法を使用しても、この攻撃の防止には限定的な効果しかありません。SOME/IP-SDトラフィックは複数の宛先に送信されるため、標準プロトコルでは認証や暗号化はできません。SOME/IPトラフィックは認証や暗号化が可能ですが、攻撃側のECUが正当な形でサービスをサブスクライブした後、攻撃者の代わりにSOME/IPメッセージを送信しているため、この攻撃を防止することはできません。

結論

E/EアーキテクチャーにおけるSOME/IPの役割は拡大し続けており、サイバー脅威の影響を受けやすいことは、SOME/IPプロトコルを悪用したMITM攻撃で説明されています。このシナリオでは、敵が2つのECU上の2つのアプリケーション間の接続をハイジャックし、攻撃するECUがECU間の通信を盗聴して送信データを操作することを可能にします。

この懸念すべき問題は、堅固な自動車サイバーセキュリティ対策を取る必要性を強く示しています。どのような緩和手段が使えるかはネットワークの特性によって異なりますが、今回のような攻撃を防ぐには、自動車に特化した高度なセキュリティ・メカニズムの使用が強く推奨されます。

このような脆弱性を軽減するためには、潜在的な攻撃に対応できる、自動車専用の高度なセキュリティ・メカニズムを導入する必要があります。さらに、SOME/IPに関連する潜在的なリスクに対し、規制対応が進められています。例えば、日本のJASPARでは、この脆弱性を正しく認識し、指摘しており、自動車通信規格における厳格なセキュリティ・プロトコルの必要性を示しています。SOME/IP を利用したシステムにおける悪用からの保護は、依然として極めて重要な関心事であり、進化するサイバー脅威に対応する積極的な対策が必要です。