(58)【調査した分野】(Int.Cl.,DB名)
前記通信バスは、コントローラエリアネットワーク(Controller Area Network:CAN)バス、ローカル相互接続ネットワーク(Local Interconnect Network:LIN)、メディア指向システムトランスポート(Media Oriented Systems Transport:MOST)バス、フレックスレイ(FlexRay)バス、およびイーサネット(Ethernet)バスのうち少なくとも1つを含み、前記通信バス上を送信されるメッセージは、前記通信バスと通信可能に接続された前記ECUのすべてにブロードキャストされる、
請求項1に記載の方法。
前記ルールの前記少なくとも1つの条件は、前記メッセージの受信側である前記少なくとも1つの受信側ECUを示す前記情報が、定義された一群のECUと一致することをさらに規定する、
請求項6に記載の方法。
前記ルールの前記少なくとも1つの条件は、前記車両が走行中であると判定されると前記ルールが適用され、前記車両が走行中ではないと判定されると前記ルールが不適用とされるように、前記車両の走行状態をさらに規定する、
請求項6に記載の方法。
前記ルールは、前記傍受されたメッセージの一部が第1の受信側ECUへの定義された一群のメッセージと一致すると判定された場合、前記ルールの適用時の前記少なくとも1つの処置は、すべてのメッセージが前記通信バス上を前記第1の受信側ECUへ送信されないよう阻止することを含むと規定する、
請求項1に記載の方法。
前記ルールの前記少なくとも1つの条件は、定義された順番で並べられた定義された一群のメッセージが存在し、かつ定義された期間中に傍受されたことをさらに規定する、
請求項1に記載の方法。
前記ルールの適用時の前記少なくとも1つの処置は、前記車両の補助電子システムのECUのリスト上にある少なくとも1つのECUを切断するコマンドを含むメッセージを、前記少なくとも1つのECUに送信することを含む、
請求項1に記載の方法。
前記ルールの適用時の前記少なくとも1つの処置は、前記車両の主電子システムのECUのリスト上にある少なくとも1つのECUに対するセーフティモードを有効にするコマンドを含むメッセージを、前記少なくとも1つのECUに送信することを含む、
請求項1に記載の方法。
前記ルールの適用時の前記少なくとも1つの処置は、ゲートウェイを介した前記車両の前記通信バスから他の通信バスへの少なくとも1つのメッセージの送信を阻止することを含む、
請求項1に記載の方法。
ビット0の配列を前記バス上で送信することによって、前記少なくとも1つのメッセージと異なる値が前記バス上で生じ、前記メッセージのチェックサムの不一致をもとに受信側ECUに前記少なくとも1つのメッセージを無視させることで、ECU間の少なくとも1つのメッセージの前記送信を阻止する、
請求項14に記載の方法。
前記ログデータは、前記傍受されたメッセージのうち少なくとも1つの前記受信側である少なくとも1つのECUに関する情報をさらに含み、かつ、前記車両インシデントは、前記車両に関わる道路交通事故の発生を含む、
請求項16に記載のコンピュータシステム。
前記通信バスは、コントローラエリアネットワーク(Controller Area Network:CAN)バス、ローカル相互接続ネットワーク(Local Interconnect Network:LIN)、メディア指向システムトランスポート(Media Oriented Systems Transport:MOST)バス、フレックスレイ(FlexRay)バス、およびイーサネット(Ethernet)バスのうち少なくとも1つ含み、前記通信バス上を送信されるメッセージは、前記通信バスと通信可能に接続された前記ECUのすべてにブロードキャストされる、
請求項16に記載のコンピュータシステム。
【発明を実施するための形態】
【0020】
車両の電子システムに対する攻撃を検出するためのシステム、方法、およびコンピュータプログラム製品に関する態様例について以下に説明する。以下の説明は、単に例示の目的のためであって、いかなる制限を加えることも意図されていないことは、当業者には理解されるであろう。その他の態様は、本開示から利益を得る当業者には、容易に想起できるであろう。添付図面に示すように、態様例の実施態様が詳細に参照される。同一あるいは類似する項目には、図面および以下の説明を通して、可能な範囲で、同一の参照符号を用いる。
【0021】
用語解説:本開示の異なる態様を説明するために用いるいくつかの用語について以下に定義する。
【0022】
交通手段(以下、MT)とは、人や、貨物や、その交通手段に装備された機器を、道路上で運搬するように構成された装置である。例えば、当該装置は、自動車のような車両であってもよい。本開示においては、交通手段を自動車または車両と称することもある。
【0023】
交通手段は、車両の1つ以上の電気システムやその他のサブシステムを制御するように構成された1つ以上の内蔵システムを含む電子システムを有している。自動車の電子システムは、例えば、以下のものを含んでいてもよい。
【0024】
1.運転状態(例えば、エンジン回転数)およびセットポイント値(例えば、スイッチ位置)を検出するように構成されたセンサおよびセットポイントジェネレータ。センサおよびセットポイントジェネレータは、さらに、物理的変数を電気信号に変換するように構成されている。
【0025】
2.センサおよびセットポイントジェネレータからの情報を、数学的計算プロセス(開回路および閉回路制御アルゴリズム)で処理するように構成された電子制御ユニット(ECU)。ECUは電気的出力信号を用いてアクチュエータを制御する。さらに、ECUは他システムおよび車両診断システムに対するインターフェースとして機能する。
【0026】
3.ECUからの電気的出力信号を機械的変数(例えば、ソレノイド弁のニードルのリフト)に変換するように構成されているアクチュエータ。
【0027】
電子制御ユニット(ECU)とは、所定の形式の電気信号で構成される情報を処理するための任意の複雑度を持った電子回路を含む、構造的には別々の、機能的には完結した電子装置部分である。
【0028】
バスとは、すべてのノードを受動的通信回線によって接続して双方向のデータ通信を可能にしている、データ通信ネットワークのトポロジーである。
【0029】
フレーム(メッセージとも称する)とは、通信チャネル上の伝送シーケンスにおけるビットまたはビットフィールドの順序と値を定義する、通信チャネルプロトコルのデータブロックである。
【0030】
先進運転支援システム(advanced driver-assistance systems)とは、MTの制御処理などによって、MTの監視、MTの運転者への警告、MTの制動において運転者を支援するためのシステムである。
【0031】
テレマティックデータ(テレマティクスとも称する)とは、ナビゲーショナルデータであり、路上走行車の車載ナビゲーション通信装置が移動通信チャネルを介して配送センターへ送信することができる、動作要素の現在状態に関するデータである。
【0032】
情報セキュリティインシデントとは、かなり高い確率で、事業活動の侵害や情報セキュリティへの脅威の発生をもたらす、1件以上の望ましくないかもしくは予想外の情報セキュリティイベントである。
【0033】
本出願において、「交通手段に関わるインシデント」(以下、インシデントと称する)とは、道路交通事故(Road Traffic Accident:RTA)などの、予想したMTの挙動に変化をもたらす、1件以上の望ましくない、もしくは予想外の事象を意味する。本開示の各態様は、まさに、情報セキュリティインシデントの結果として交通手段に関わるインシデントが引き起こされた場合に、前述の技術的問題の解決に寄与するものである。
【0034】
侵害指標(Indicator of Compromise:IOC、また、感染指標(indicator of infection)とも称する)とは、コンピュータ上またはネットワーク上で観察できる情報システムへのアーティファクト、すなわち、侵入の残留痕跡である。代表的な侵害指標として、ウィルス対策レコード、IPアドレス、ファイルのチェックサム、URLアドレス、ボットネットのコマンドセンターのドメイン名などがある。侵害指標には、特に、OpenIOC、STIX(Structured Threat Information eXpression)、CybOX(Cyber Observable eXpression)(商標)などのような規格が複数存在する。
【0035】
コンピュータ攻撃(サイバー攻撃または悪意ある攻撃とも称する)とは、情報システムおよび情報通信ネットワークの情報セキュリティを侵害するために、当該システムおよびネットワークに対して行われる、ハードウェアおよびソフトウェアによる標的型行動である。
【0036】
標的型攻撃(Targeted Attack:TA)とは、特定の組織や特定の個人に向けられたコンピュータ攻撃の特定の例である。
【0037】
注目すべきことは、本開示は、エンジン(内燃機関、水素エンジン、電気エンジン)を使用し、少なくとも1つのECUを含む、あらゆる種類の交通手段に適用できるということである。
【0038】
図1Aは、自動車の例を用いて、交通手段のネットワークアーキテクチャ100の例を示す図である。まず、注目すべきことは、最新のMT、特に、自動車では、現行規格に従って、以下のバスが使用されるということである。例えば、ネットワークアーキテクチャ100は、車両のマイクロコントローラや装置の相互通信を(例えば、ホストコンピュータなしに)可能にするように設定された、交通手段のネットワークに関する(ISO 11898-1にも規定されている)通信規格である、コントローラエリアネットワーク(CAN)を実現するように構成されてもよい。CANバスは、データ送信速度が125 kbit/sと1 Mbit/sの間である高速バスCAN−C(ISO 11898-2)と、データ送信速度が5 kbit/sと125 kbit/sの間である低速バスCAN−B(ISO 11898-3)とに分けられる。ネットワークアーキテクチャは、さらに、可変データレート対応のCAN(CAN FD)と称するCANの拡張版を実現するように構成されてもよい。
【0039】
他の一例においては、ネットワークアーキテクチャ100は、CANに対する高速で高信頼性の代替として開発されたISO 17458-1-17458-5規格である、フレックスレイ(FlexRay)を実現するように構成されてもよい。ネットワークアーキテクチャ100は、免責の低い自動車システムの制御を指向した、産業ネットワークに関するISO 17987規格である、ローカル相互接続ネットワーク(Local Interconnect Network:LIN)を実現するように構成されてもよい。他の一例においては、ネットワークアーキテクチャ100は、自動車産業におけるマルチメディアとコンピュータエンターテインメントネットワークに関する事実上の規格である、メディア指向システムトランスポート(Media Oriented Systems Transport:MOST)を実現するように構成されてもよい。他の一例においては、ネットワークアーキテクチャ100は、802.3グループのIEEE規格に説明されている、コンピュータ用の装置と産業ネットワークの間のパケットデータ送信のための技術である、イーサネット(Ethernet)(登録商標)を使用するように構成されてもよい。注目すべきことは、上記規格は継続的に改善されており、交通手段において使用される新しい規格や技術もまた出現しているということである。したがって、本開示の範囲は上記規格に限らず、交通手段において使用され得るいかなる技術にも適用可能である。
【0040】
車両のネットワーク100は、例えばCANバスのようなマルチマスターシリアルバスを用いたECU間(すなわち、ノード間)のメッセージ交換を可能にするように構成されてもよい。最新のMTのネットワーク100は、セントラルゲートウェイ101と、車両のシャーシ161に付随し、第1バス151(例えば、フレックスレイバス)によってシャーシ161と通信可能に接続された複数のECU111から113(ECU1、ECU2、…、ECUnと名付ける)と、車両のマルチメディアサブシステム162(車内エンターテインメント(In-Car Entertainment:ICE)または車載インフォテインメント(In-Vehicle Infotainment:IVI)とも称する)に付随し、第2バス152(例えば、CAN−Bバス)によってマルチメディアサブシステム162と通信可能に接続された複数のECU121から123と、車両のトランスミッションシステム163に付随し、第3バス153(例えば、CAN−Cバス)によってトランスミッションシステム163と通信可能に接続された他の複数のECU131から133と、車両のテレマティクス164に付随し、第4バス154(例えば、MOSTバス)によってテレマティクス164と通信可能に接続されたもう一群のECU141から143とを含んでいる。セントラルゲートウェイ101は、診断バス155、ローカル相互接続ネットワーク(LIN)156、およびイーサネット(登録商標)157へも出力する。本例において、MTのネットワークアーキテクチャは、MTのすべてのサブシステムをバス151から157によって接続する単一のセントラルゲートウェイ101を収容している。本明細書で使用されている、他のモジュール、すなわちサブシステムと「接続」されているモジュール、すなわちサブシステムは、任意の数の介在要素によって、直接または間接的に、そのモジュール、すなわちサブシステムと通信可能に接続されている。
【0041】
いくつかの態様においては、バスは、アドレッシングをサポートしない限定的な通信中継手段であってもよい。1つの態様においては、メッセージはバス上のすべてのノードにブロードキャストされ、各ノードは、メッセージが自ノード宛か否かを判断する。例えば、ECUは、CANバスを使ってメッセージをブロードキャストし、特定のメッセージに(すなわち、CAN識別子によって)関心がある他のECUは、それらのメッセージを受信しようとし、その他のメッセージを無視するものとする。言い換えれば、CANメッセージには送信元識別子も認証も組み込まれていない。これらの制限によって、既存のコンピュータセキュリティ技術を車両の電子システムに適合させる際に問題が生じる。例えば、これらの制限によって、悪意ある要素は、CANネットワーク上のトラフィックの傍受および他のECUへのなりすまし(すなわち、データインジェクション)の両方を行うことができる。また、これらの制限のために、どのECUが特定のCANメッセージを送信もしくは受信しているのかを知る方法がないため、コンピュータセキュリティ解析のためにトラフィックにリバースエンジニアリングを適用することは困難である。
【0042】
各ECUは、CANバス上のメッセージを受信および送信するように構成されたCANコントローラを(ECUのマイクロコントローラの個別構成部品または不可欠な部分として)含んでもよい。CANコントローラは、メッセージを受信するため、バスから受信したシリアルビットを、メッセージ全体が得られるまで蓄積するように構成されてもよい。メッセージは、その後、ホストプロセッサに(例えば、割込みをトリガするCANコントローラに)フェッチされる。CANコントローラは、メッセージを(例えば、他のECUに)送信するため、バスがフリーのときにビットをバス上でシリアル伝送することによって(マイクロコントローラによって提供された)メッセージを中継するように構成されてもよい。
【0043】
いくつかの態様においては、ECUは、バス上のデータストリームをCANバスのレベルからCANコントローラが使用するレベルに変換することによりメッセージの受信を促進し、かつ、データストリームをCANコントローラのレベルからCANバスのレベルに変換することによりメッセージの送信を促進するように構成されたトランシーバをさらに含んでもよい。1つの態様においては、ECUが、CANトランシーバを使用して、非ゼロ復帰(Non-Return-to-Zero:NRZ)形式を用いてメッセージをバス上でシリアル伝送し、その後、バス上のすべてのECUがメッセージを受信するように構成されてもよい。
【0044】
メッセージ(すなわち、フレーム)は、識別子(identifier:ID)とデータペイロード(例えば、1フレームにつき8または64データバイト)を含んでもよい。メッセージは、冗長コード(巡回冗長検査(Cyclic Redundancy Check:CRC))と、確認スロットと、その他のフィールドをさらに含んでもよい。いくつかの態様においては、メッセージの識別子フィールドはメッセージの優先度(例えば、値が低いほど、優先度が高い)を示す。また、受信側の各ECUが、識別子フィールドを使って、バス信号を処理してメッセージを受け取るべきかを判断してもよい。
【0045】
図1Bは、交通手段のネットワークアーキテクチャ100Bの他の一例を示す図である。MTのネットワーク100Bは、それぞれ特定のサブネットワークを分担する相互接続されたゲートウェイ201から204を収容している。ゲートウェイ1(201)は、MTのシャーシを分担するECU111から113に、フレックスレイバス151によって接続されている。ゲートウェイ2(202)は、MTのマルチメディアサブシステムを分担するECU121から123に、CAN−Bバス152によって接続されている。ゲートウェイ3(203)は、トランスミッションを分担するECU131から133に、CAN−Cバス153によって接続されている。そして、ゲートウェイ4(204)は、テレマティクスを分担するECU141から143に、MOSTバス154によって接続されている。
【0046】
図2Aは、交通手段のネットワークにおける保護モジュール102の配置の例を示す図である。この例では、
図1Aに示すネットワークアーキテクチャ100が使用される。保護モジュール102は、主として、MTに対するコンピュータ攻撃を阻止する役割を果たす。MTに対するコンピュータ攻撃とは、主として、MTのネットワークおよびMTの電子システム、特に、ECUおよびネットワークゲートウェイに対するコンピュータ攻撃を意味する。保護モジュール102の機能性について、以下にさらに詳細に説明する。
図2Aに挙げられている例において、保護モジュール102はセントラルゲートウェイ101のソフトウェアコンポーネントであり、ネットワークの全ノードの保護を提供する。
【0047】
他の一例においては、
図2Bに示すシステムは、2つの保護モジュール102aおよび102bを収容し、そのうち1つ目はフレックスレイバス151と、2つ目はMOSTバス154と接続され、それによって、保護モジュール102aおよび102bのそれぞれは、そのアクセス先のネットワーク/サブネットワークに保護を提供するものとする。保護モジュールのネットワークとの接続の、これ以外の例も可能であることは言うまでもない。
【0048】
図2Cは、
図1Bに示すアーキテクチャを用いた、交通手段のネットワークにおける保護モジュール102の配置のさらに他の例を示す図である。ネットワークは4つの保護モジュール102aから102dを収容している。保護モジュール102aはフレックスレイバス151と接続され、保護モジュール102bはCAN−Bバス152と接続され、保護モジュール102cおよび102dは、それぞれ、ゲートウェイ203および204のソフトウェアコンポーネントである。保護モジュール102aから102dのそれぞれは、そのアクセス先のネットワーク/サブネットワークに保護を提供するものとする。保護モジュールのネットワークとの接続の、これ以外の例も可能であることは言うまでもない。一般例においては、MTのネットワークに対する総合的保護を確保するために、保護モジュールを任意のサブネットワーク(すなわち、バス)および任意のゲートウェイと接続してもよい。
【0049】
1つの態様においては、ECUは、MTの主電子システムおよびMTの補助電子システムのカテゴリーのうち一方に所属してもよい。MTの主および補助システムのECUのリストを、例えば、1つ以上の保護モジュール102aから102dのメモリまたはゲートウェイのメモリに収容してもよい。主電子システムは、MTの制御、MTの安全、およびその周囲の人にとって重要なECUを含んでいる。補助電子システムが含むECUは、運転者に付加的な利便性を提供し、MTのエンターテインメントオプションやその他の付加的機能を利用可能にするものであって、切断されてもMTやその安全性を制御する能力に影響を与えない。
【0050】
1つの態様例においては、MTの補助電子システムのECUは、運転支援システム、マルチメディアシステム(車内エンターテインメント(ICE)または車載インフォテインメント(IVI)とも称する)、およびテレマティクスを含んでもよい。運転支援システムは、特に、駐車センサ(パークトロニクスまたは駐車支援システムとも称する)、カメラモニタシステム、ブロックヒーター、およびアンチロックブレーキシステム(Anti-lock Braking System:ABS)の各ECUを含んでもよい。マルチメディアシステムは、特に、ナビゲーションシステム、車内インターネット、ステアリングホイールのオーディオコントロール、およびハンズフリーボイスコントロールを含んでもよい。テレマティクスは、特に、テレマティックコントロールユニット(Telematic Control Unit:TCU)、グローバルポジショニングシステム(Global Positioning System:GPS)ユニット、外部移動体通信インターフェース(GSM(登録商標)、GPRS、3G、4G、(LTE)Wi-Fi、WiMAX、またはBluetooth(登録商標))、加速度、衝撃、および空間方位センサを含む1個以上のセンサなどを含んでもよい。さらに他の特定の態様においては、MTの補助電子システムのECUのリストは、信頼できない無線接続チャネルおよび自律走行システム(最終レベルの制御まで)をさらに収容している。
【0051】
他の態様においては、MTの主電子システムのECUのリストは、特に、ギアボックスに付随するコントロールユニットおよびシャーシに付随するコントロールユニットを含む。ギアボックスに付随するコントロールユニットは、特に、トランスミッションコントロールユニット、トラクションコントロールシステム(Traction Control System:TCS)などを含む。車両のシャーシに付随するコントロールユニットは、特に、クルーズコントロールシステム、車線維持システムなどを含む。
【0052】
注目すべきことは、1つの態様においては、補助電子システムのリストにある、例えば、ABSシステムなどの、いくつかのECUは主電子システムのリストに移動させてもよいということである。他の態様においては、その逆のことができる。さらに注目すべきことは、1つの態様においては、主および補助電子システムのリストは、MTの製造者、モデルおよびタイプに応じて異なってもよく、適宜変更してもよいということである。
【0053】
図3は、ルール作成システム300の例を示す図である。ネットワークアーキテクチャは既に示したもののうちどれでもよいが、ここで考察される例においては、MTのネットワークアーキテクチャは、
図2Aに既に示した外観を有している。システムは少なくとも1つの交通手段301を含み、交通手段301は乗員保護システム(Occupant Protection System:OPS)331および保護モジュール102を含む。OPS331はMTのバスと(本例では、CAN−Cバス153と)接続され、MTに関わるインシデント(例えば、RTA)が発生した時点を確認するように構成されている。
【0054】
保護モジュール102も、MTのバスと接続され(本例では、保護モジュール102はセントラルゲートウェイ101のモジュールである)、MTのバス上を流れるメッセージ(すなわち、フレーム)を傍受するように構成されている。このため、傍受されたメッセージは、傍受する過程でログ304に保存される。保護モジュール102は、さらに、メッセージの受信側であるMTの少なくとも1つのECUに関する受信側情報を、傍受されたメッセージごとに保存するように構成されてもよい。また、保護モジュール102は、ログ304のうちの、メッセージと、MTに関わるインシデントの発生時刻前後の特定期間中(すなわち、期間(t
o - Δt, t
0 + Δt)の間、ただし、t
0はMTに関わるインシデントの発生時刻であり、ΔtはMTに関わるインシデントの発生時刻前後の特定期間、例えば、10秒)にMTのバス上の保護モジュール102によって傍受された前記メッセージのうち少なくとも1つの受信側である少なくとも1つのECUに関する情報とを含む部分を、サーバ303に送信する役割も果たす。
【0055】
ECUに関する情報はECUを一意的に識別するために用いられ、特に、ECUの一意的識別子、すなわち表示記号を含む。
【0056】
保護モジュール102は、ネットワーク302(すなわち、Wi-Fiネットワーク、LTEなどの無線通信ネットワーク)によってサーバ303と通信することができる。サーバ303は、保護モジュール102からログ304を受信し、受信したログ304を解析することによってコンピュータ攻撃を検出するように構成されている。コンピュータ攻撃が行われる可能性は、MTの電子システム、特にECUの脆弱性次第である。さらに、サーバ303は、コンピュータ攻撃を検出する際に、特に以下の侵害指標を判定するように構成されている。すなわち、コンピュータ攻撃の中で用いられているメッセージ、および、それらのメッセージのうち少なくとも1つのメッセージの受信側であるMTの少なくとも1つのECUに関するメッセージごとの情報である。また、サーバ303は、侵害指標に基づいて、保護モジュール102に対するルールを作成するようにも構成されており、1つのルールは、MTに対するコンピュータ攻撃を検出するためのルールを適用する少なくとも1つの条件、および、MTに対するコンピュータ攻撃を阻止する、ルール適用時の少なくとも1つの処置を含む。このように、ルール適用の条件は、特に、侵害指標への依存性を構成し、それによって、MTに対するコンピュータ攻撃の検出を可能にする。例えば、ルール適用の条件は、判定された侵害指標すべてがログ304の中で発見されることであってもよい。
【0057】
ルール適用時の処置も侵害指標に依存する。例えば、ある侵害指標が、CANバス上の定義されたメッセージと、このメッセージの受信側に関する情報を含む場合、ルール適用時の処置として、CANバス上の受信側に送信されているメッセージをすべて阻止してもよい。侵害指標に基づく、保護モジュールに対するルールの作成について、その他の可能な例を以下に示す。
【0058】
1つの特定の態様においては、侵害指標はメッセージを傍受した時刻をさらに含み、加えて、メッセージを傍受する過程で、それらのメッセージに対応し、それらのメッセージを傍受した時刻を示すタイムスタンプもログに保存される。他の態様においては、侵害指標は、それらのメッセージのうちの少なくとも1つの受信側である少なくとも1つのECUに関する情報をさらに含み、加えて、受信されたログ304は、上記ECUのうち少なくとも1つをさらに含む。
【0059】
1つの特定の態様においては、ルール適用の条件は、保護モジュールによって傍受されたMTのバス上のトラフィックが、(例えば、定義された侵害指標に含まれるメッセージのうちの)定義された一群のメッセージを含む、という条件を含む。
【0060】
上述のように、2014年式ジープ・チェロキー車に対するコンピュータ攻撃の例を示した。以下の考察において、コンピュータ攻撃がどのように行われたかを、さらに詳細に検討する。サイバー攻撃は、車両の駐車支援システムの脆弱性の悪用を含むものであった。自動車が診断セッションに切り替えられた瞬間にブレーキを阻止させる機能がジープに内蔵されている。このためには、診断用CANメッセージが受信されている必要がある。原則として、自動車の速度が7 km/hから15 km/hを超えると、大半のECUはそのようなメッセージを無視するので、そのようなコンピュータ攻撃は自動車が低速走行中に可能である。ここで考察する例において、自動車が診断状態に切り替えられるとブレーキが機能を停止し、このとき自動車が低速走行中であっても、安全上重大な問題となる。この機能上の不備をハッカーが利用して、ECUのABSに関する診断セッションを開始する以下のコマンドであるメッセージをCANバス上で送信する恐れがある。
EID: 18DA28F1, Len: 08, Data: 02 10 03 00 00 00 00 00
【0061】
次に、ハッカーは最大限にブレーキ圧をかける。このコマンドは、数件のメッセージをCANバス上で送信することによって実行される。
EID: 18DA28F1, Len: 08, Data: 10 11 2F 5A BF 03 64 64
EID: 18DA28F1, Len: 08, Data: 64 64 64 64 64 64 64 64
EID: 18DA28F1, Len: 08, Data: 64 64 64 00 00 00 00 00
【0062】
このように、示されたCANメッセージを侵害指標として定義することが可能であり、上記脆弱性の場合、態様例においては、侵害指標に基づくルール適用の条件は、自動車の走行中において上記の一群のメッセージが存在することであると定義することが可能である。
EID: 18DA28F1, Len: 08, Data: 02 10 03 00 00 00 00 00
EID: 18DA28F1, Len: 08, Data: 10 11 2F 5A BF 03 64 64
EID: 18DA28F1, Len: 08, Data: 64 64 64 64 64 64 64 64
EID: 18DA28F1, Len: 08, Data: 64 64 64 00 00 00 00 00
【0063】
このように、自動車の走行中にこれらのメッセージが受信されると、ルール適用時の処置が実行され、コンピュータ攻撃は阻止されることになり、上述のシナリオは実現しないことになる。
【0064】
他の態様においては、ルール適用の条件は、上記の一群のメッセージのうちのメッセージの受信側または送信側は特定のECUであるという事実に関する情報をさらに含む。このように、ジープに関する考察の例において、ルール適用の条件は、メッセージの受信側であるECUのABSに関する情報も含むことになる。例えば、ルールの条件として、(a)以下の一群のメッセージが受信されたということ、
EID: 18DA28F1, Len: 08, Data: 02 10 03 00 00 00 00 00
EID: 18DA28F1, Len: 08, Data: 10 11 2F 5A BF 03 64 64
EID: 18DA28F1, Len: 08, Data: 64 64 64 64 64 64 64 64
EID: 18DA28F1, Len: 08, Data: 64 64 64 00 00 00 00 00
および、(b)一群のメッセージの受信側は
ECUのABS
であるということを指定してもよい。
【0065】
さらに他の特定の態様においては、ルール適用の条件は、定義された一群のメッセージのうちのメッセージは特定の順番で並べられ、特定の時間間隔の間に保護モジュールによって傍受されたという情報も含むものとする。ジープの例という状況の中で、ルール適用の条件として、(a)一群のメッセージが以下の順番で受信されたということ、
1. EID: 18DA28F1, Len: 08, Data: 02 10 03 00 00 00 00 00
2. EID: 18DA28F1, Len: 08, Data: 10 11 2F 5A BF 03 64 64
3. EID: 18DA28F1, Len: 08, Data: 64 64 64 64 64 64 64 64
4. EID: 18DA28F1, Len: 08, Data: 64 64 64 00 00 00 00 00
および、(b)一群のメッセージの受信側は「ECUのABS」であり、そして、(c)メッセージの受信の時差は、
1.から2.までは1分以下
2.から3.までと3.から4.までは100ミリ秒以下
であるということを指定してもよい。
【0066】
このように、示されたルールに対して、1番目と2番目のメッセージの間には1分以下の時間間隔を置き、2番目と3番目、および3番目と4番目のメッセージの間には100ミリ秒以下の時間間隔を置くべきであるという条件が追加された。実際には、1番目のメッセージは診断モードに切り替えるコマンドを含み、その後に、ブレーキングコマンドを含む3つのメッセージが届くので、メッセージは近接して続くことになる。
【0067】
さらに他の特定の態様においては、ルール適用の条件は、ECUの状態に依存するものとする。他の態様においては、ルール適用の条件は、MTのセンサの指標にも依存するものとする。例えば、ルールは自動車の走行条件を含んでもよい。すなわち、自動車が走行中であり、上記のCANメッセージが到着した場合、ルール適用の条件は満たされるものとするが、自動車が走行中ではない場合、ルールは適用されないものとする。それは、後者のケースでは、そのようなメッセージの受信は、脆弱性の悪用やコンピュータ攻撃を示唆していないからである。
【0068】
ルール適用時の処置には、1つの態様においては、特に、(a)少なくとも1つのECUに対してメッセージを送信すること、(b)定義された侵害指標に含まれるメッセージのうち少なくとも1つのメッセージの送信を阻止すること、または(c)定義された侵害指標に含まれるメッセージのうち少なくとも1つのメッセージに変更を加えること、が含まれる。
【0069】
1つの態様においては、少なくとも1つのECUに対して送信されるメッセージは、MTの補助電子システムのECUのリストのうち少なくとも1つのECUを切断することを指示するコマンドを含んでもよい。ジープの例においては、ECUのABSを切断してもよく、例えば、その結果、上記のコンピュータ攻撃は発生しなくなる。他の態様においては、少なくとも1つのECUに対して送信されるメッセージは、MTの主電子システムのECUのリストのうち少なくとも1つのECUに対するセーフティモードをオンにする、すなわち、有効にすることを指示するコマンドを含んでもよい。セーフティモードにおいては、MTの機能が制限されるため、危険状況における動作のリスクを完全に取り除くか、許容レベルに下げることができる。例えば、MTの最高速度を制限することができる。制限速度内で走行中でも、運転者には、MTを駐車させるか、サービスステーションまで行くかの選択肢がある(MTは完全には遮断されていない)が、MTの制御に関わるリスクは大幅に軽減される。
【0070】
1つの特定の態様においては、上記ルールに含まれるメッセージの送信の阻止は、ルールに従って1つのサブネットワークから他のサブネットワークへのゲートウェイを介して行われる。例えば、
図3のネットワークアーキテクチャ例の場合、セントラルゲートウェイ101は、例えば、CAN−Bバス152とCAN−Cバス153の間の、1つのサブネットワークから他のサブネットワークへのメッセージの送信を阻止してもよい。ゲートウェイ101は、他のサブネットワークへの送信を行うように構成されているMTの電子システムの1つのサブネットワークから、メッセージを受信し、保護モジュール102を用いて、メッセージを送信できるか否かを確認する。メッセージの送信は、保護モジュールがこのメッセージの通過を許可する場合に限って、行われる。許可しない場合は、メッセージはその先へは送信されない。
【0071】
他の態様においては、上記ルールに含まれるメッセージの送信の阻止は、ルールに従って同一バス上のECU間で行われる送信に対して行われてもよい。例えば、
図3のネットワークの場合、ECU1 121とECU2 122の間のCAN−Bバス152上のメッセージ送信の能力を阻止してもよい。1つのECUが同じバス上に位置する他のECUを用いてCANバス上のメッセージの送信を阻止するために、様々な技術を使うことができる。そのような方法の1つとして考えられるものを以下に説明する。メッセージをCANバス上で送信するとき、ビット0が、1に対応するビットと同時に送信される場合、1に対応するビットをビット0によって抑制してもよい(フレームのフォーマットを
図6に示す)。CANバス上のデータフレームは、メッセージのチェックサム(15ビット)を含むフィールドで終わるデータ構造を有している。したがって、セントラルゲートウェイ101は、保護モジュール102を用いて、フレーム内容をチェックすることができ、このメッセージのチェックサムを送信する過程で望ましくないメッセージが検出されたら、保護モジュール102は、ビット0から成る配列を送信することによって、チェックサムの値を変更することができる。CANバスの動作原理に従って、この場合、元のチェックサムの値に代わって、別の値である0がバス上で設定されることになる。そのようなメッセージを受信すると、ECUに対する受信側は、メッセージのチェックサムの不一致を検出することになり、そのようなメッセージは処理されないことになる。
【0072】
1つの特定の態様においては、MTの補助電子システムのECUのリストは、特に、a)運転支援システム、b)マルチメディアシステム、およびc)テレマティクスを含む。他の態様においては、MTの主電子システムのECUのリストは、特に、a)ギアボックス、およびb)シャーシを含む。
【0073】
さらに他の態様においては、受信されたログの解析は、機械学習の手法を使うか、または専門家によって行われる。
【0074】
1つの態様においては、メッセージに含まれる悪意あるコマンドを除去するために、保護モジュール102は、定義された侵害指標に含まれるメッセージのうち少なくとも1つのメッセージに変更を加えてもよい。1つの実現形態においては、保護モジュール102は、保護モジュール102が存在するゲートウェイによって互いに接続されている1つのサブネットから他のサブネットに送信される、少なくとも1つのメッセージを修正することができる。例えば、
図2Cに示すシステム例において、車両のトランスミッションの構成要素に関係する悪意あるコマンドを除去するために、バス153と154との間のゲートウェイ203に位置する保護モジュール102cは、バス154上のECUからバス153上の受信側のECUに送信されたメッセージを修正してもよい。他の態様においては、定義された侵害指標に含まれるメッセージのうち少なくとも1つのメッセージに加える変更を、(上述のような)メッセージの阻止、および上記ルールに従った侵害指標を含まない新しいメッセージの送信の、2つの処置に分割してもよい
【0075】
1つの特定の態様においては、ルール適用時の処置に含まれるECUは、侵害指標に含まれるECUを含む。
【0076】
機械学習の手法を用いると、ログエントリを異常がないことが分かっているデータと比較することによって、ログエントリの異常を発見することができる。さらに、交通手段の機能を記述したモデルを使用することもできる。そのようなモデルからの逸脱は、異常の形跡であり、さらなる調査が必要とされる。例えば、短期間のうちにMTの速度が大幅に変化したら、異常と考えることができる。異常のその他の例として、MTのマルチメディアシステムのサブネットワークから、MTのシャーシを制御するサブネットワークに対して、コマンドが送信されるかもしれない。
【0077】
最初は、異常検知システムがいかなる問題も発見していないにもかかわらず、問題があるとみなす理由がある場合、必要な一連のスキルを有する専門家を参加させてもよい。例えば、明らかな背景が存在しない状況下で発生する一連の同種のRTAを検出したら、追加解析を実施してもよい。他の一例においては、重大な結果を伴うRTAを検出したら、他の手段によってRTAの原因を特定できなかった場合に、追加解析を実施してもよい。
【0078】
メッセージの目的やプロトコルの仕様に関する情報、および、その他の必要情報を有する専門家は、イベントの状況を再構成して、RTAがシステムの異常な挙動によって引き起こされたのか、あるいは、システムはRTAの時点において正常に機能していたのかを説明するべきである。
【0079】
コンピュータ攻撃を検出したら、1つの態様においては、侵害指標であるECU(例えば、ECUのABS)の供給業者に対して(または、MTの製造者に対して)、ソフトウェアの更新を申し入れてもよい。コンピュータ攻撃が行われる可能性を是正した更新版をECUの供給業者(または、MTの製造者)から受領し、対応するECUにその更新版をインストールした後は、上記ルールはもはや適さないため、そのルールを削除するスクリプトを追加してもよい(ステップ533)。
【0080】
図4は、交通手段に対するコンピュータ攻撃を阻止するためのシステム400を示す図である。システム400は、コンピュータ攻撃を阻止するために、交通手段301の保護モジュール102によって実行される方法を実現するように構成される。したがって、システム400および各態様の要素数は、
図3に示すものと同じである。システムは、MTの少なくとも1つのバスを収容し、そのバスには少なくとも1つのECUが接続されている。システムは保護モジュール102を収容し、保護モジュール102はMTのバスのうち少なくとも1つと接続されている。一例として、
図2Aに示すMTのネットワークアーキテクチャが使用される。保護モジュール102は、サーバ303から、ネットワーク302を介して、ルールを入手するように構成されている。入手された、侵害指標に基づいて作成されたルールは、ルール適用の少なくとも1つの条件、およびルール適用時の少なくとも1つの処置を含んでもよい。侵害指標は、特に(i)コンピュータ攻撃において使用されるメッセージ、および(ii)そのメッセージのうち少なくとも1つの受信側であるMTの少なくとも1つのECUに関する情報である。
【0081】
さらに、保護モジュール102は、ログ304を用いて、入手したルール適用の条件をチェックするため、および、そのルール適用の条件が満たされた場合に、ルール適用時の処置を実行することで、MTに対するコンピュータ攻撃を阻止するため、MTのバス上で送信されているメッセージを傍受するように構成されている。
【0082】
図3のシステムの上記の特定の態様は、
図4のシステムにも適用可能である。
【0083】
図5Aおよび
図5Bは、本開示の各態様、特に、
図3および
図4のシステムを実現する方法500を図示するフローチャートである。ルールを作成するための方法は以下を含む。ステップ501において、サーバ303は、少なくとも1台のMT301の保護モジュール102からログ304を受信する。ログ304は、メッセージ、および、MTに関わるインシデント(例えば、RTA)の発生時刻前後の特定期間中にMT301のバス上の保護モジュール102によって傍受された前記メッセージのうち少なくとも1つの受信側である少なくとも1つのECUに関する情報を収容している。次に、ステップ502において、入手したログ304を解析することによって、コンピュータ攻撃の検出が実行される。その後、コンピュータ攻撃を検出すると、ステップ503において、特に、以下の侵害指標を決定する。すなわち、コンピュータ攻撃で使用されているメッセージ、およびメッセージの受信側であるMTの少なくとも1つのECUに関するメッセージごとの情報である。この結果、ステップ504において、侵害指標に基づいて、保護モジュール102のためのルールが作成される。ルールは、MTに対するコンピュータ攻撃を検出するためのルール適用の少なくとも1つの条件、および、MTに対するコンピュータ攻撃を阻止する、ルール適用時の少なくとも1つの処置を含む。
【0084】
1つの特定の態様においては、コンピュータ攻撃が検出され、侵害指標が決定されたら、コンピュータ攻撃に関与した人物を突き止めて法の裁きを受けさせる(511)一連の処置を行うため、さらに補償支払限度額を決定する保険会社の必要性に応えるため、検出されたコンピュータ攻撃について専門家(法執行当局および保険会社)に通知してもよい。加えて、コンピュータ攻撃に関する情報(侵害指標、ログ304、MTに関する情報、テレメトリデータなど)、および、ソフトウェアの更新の要請を、検出されたコンピュータ攻撃の実行に利用された(したがって、侵害指標に示された)MTの製造者および/またはECUの供給業者に送信してもよい(512)。このステップによって、MTの製造者およびECUの供給業者は、MTの電子システム(特に上述のECU)のソフトウェアの更新版を開発することができ(513)、それによって、コンピュータ攻撃が行われる可能性が取り除かれることになる。ソフトウェアの更新版は、開発後、配信され、検出されたコンピュータ攻撃が行われる可能性のあるすべてのMTにインストールされることになる(ステップ533)。さらに、MTすべてをリコールすることが可能であり、コンピュータ攻撃が行われる可能性を取り除くためのサービスを実施することもできる。
【0085】
他の特定の態様においては、ログ304の解析には、コンピュータ攻撃が行われた確率をログ304に基づいて決定することが含まれる。ステップ514において、コンピュータ攻撃が行われた確率が所定の値(例えば、0.997、すなわち、3標準偏差以内)を超える場合、または、MTに関わるインシデントが重大な結果を伴った(例えば、深刻な結果を伴うRTAであった)場合、コンピュータ攻撃が検出されたと考えるか、またはログ304のさらに詳細な解析を開始する(ステップ515)。
【0086】
コンピュータ攻撃が行われている確率を計算する際、サーバ303は、各々は異常ではないものの全体としてRTAをもたらす一連の要因によってRTAが引き起こされたが、MTの正常運転の過程でそれらの要因のすべてが同時に発生した確率は低いということを考慮に入れる。このようにして、インシデント発生時のECUの異常動作が判定され、コンピュータ攻撃が行われた確率は上記ECUのすべてが同時に異常動作する確率と等しいと判定される(各ECUが異常動作する確率は前もって分かっており、例えば、MTまたはECUの製造者から情報提供され得る)。異なる3つの独立したECUのうちどの2つが故障してもRTAには至らないが、3つの故障が組み合わされた結果、RTAが発生した例について考える。第1システムの故障確率は0.1、第2システムの故障確率は0.15、そして第3システムの故障確率は0.18と仮定する。この場合、これらの3システム全部の偶発故障の組み合わせ確率は0.0027であるため、故障の原因が偶然要因ではなかった確率は0.9973となり、しきい値を超えている。
【0087】
他の態様においては、サーバ303は、コンピュータ攻撃が行われた確率の計算のために、短期間のうちに同種のRTAが多数登録されることを考慮に入れる。特定期間中の所定のモデルのMTによる、所定のタイプのRTAの確率を、統計的手法によって評価してもよい。同タイプのRTAが短期間に多数発生したことが判明した場合、そのような一連のRTAが偶然要因によって引き起こされた確率は非常に低いため、標的型行動の確率がしきい値を超えているという結果になる可能性がある。
【0088】
コンピュータ攻撃によるRTAの確率を計算するために利用することができる確率モデルは他にも多く存在する。1つの特定の態様においては、ベイジアン信念ネットワーク、マルコフ連鎖、およびその他の確率モデルを用いて、コンピュータ攻撃の結果としてRTAが発生する確率を計算してもよい。
【0089】
1つの特定の態様においては、コンピュータ攻撃が行われた確率の計算、および、それに続くさらなるログ304の解析に、セキュリティの専門家による手動解析を含んでもよい。さらに他の特定の態様においては、類似したインシデントすべてを集約して、機械学習の手法を用いた解析を実行してもよい。インシデントは、使用されたMT、ECU、およびゲートウェイの同一製造者およびモデルごと、インシデント(RTA)の類似状況ごと、異なるMTに対して部分的に一致または重複するログ304ごと、およびその他の特徴ごとに集約してもよい。さらなる解析を実施した結果、コンピュータ攻撃が確認されるか、もしくは実行されたコンピュータ攻撃の痕跡が発見された場合(ステップ516)、続く次のステップ503において、コンピュータ攻撃の侵害指標が判定され、その後、ステップ504において、保護モジュール102のためのルールが作成される。言うまでもなく、ステップ514において、計算されたコンピュータ攻撃の確率が所定値よりも低く、インシデントが重大な結果を招かなかった(重大ではない結果を伴うRTAであった)場合、方法は終了する(ステップ518)。同様に、ステップ515におけるさらなる解析の結果、コンピュータ攻撃の痕跡が発見されなかった場合、方法は終了する(ステップ517)。
【0090】
1つの特定の態様においては、ステップ501から504でサーバ303によって作成されたルールは、その後、MTに対するコンピュータ攻撃を阻止する方法で用いられる。ステップ521において、保護モジュール102は少なくとも1つのルールを受信する。次に、ステップ522において、保護モジュール102は、MTのバス上で送信中のメッセージを傍受し、そして、メッセージを傍受する過程で、ステップ523において、保護モジュール102は傍受したメッセージをログ304に保存し、メッセージの受信側であるMTの少なくとも1つのECUに関する受信側情報も、傍受されたメッセージごとに保存する。いくつかの態様においては、保護モジュール102は、傍受されたCANメッセージから、受信側ECUを判定できる識別子を抽出する。
【0091】
1つの態様においては、保護モジュール102は、車両の複数の電子制御ユニット(ECU)間の第1通信バス上に伝送される複数のメッセージを傍受してもよい。いくつかの態様においては、第1通信バスはコントローラエリアネットワーク(CAN)バスを含み、それによって、CANバス上を送信されるメッセージがCANバスと通信可能に接続されたすべてのECUにブロードキャストされるようにする。保護モジュール102は、どのECUが第1通信バスと通信可能に接続されているかに基づいて、傍受されたメッセージの受信側である少なくとも1つの受信側ECUを判定してもよい。いくつかの態様においては、保護モジュール102は、CANバス上のメッセージに含まれているIDに基づいて、傍受されたメッセージの受信側である少なくとも1つの受信側ECUを判定してもよい。保護モジュール102は、傍受されたメッセージ、および判定された少なくとも1つの受信側ECUを示す情報を、ログ304に保存してもよい。いくつかの態様においては、保護モジュール102は、傍受されたメッセージの傍受時刻に対応するタイムスタンプを、ログに保存してもよい。
【0092】
メッセージを傍受する過程で、ステップ524において、保護モジュール102は、ログ304を用いて、受信したルールの適用条件をチェックする。1つの態様においては、保護モジュール102は、ログに保存されているメッセージと情報がルールの少なくとも1つの条件を満たしていることを基に、車両へのコンピュータ攻撃を検出してもよい。いくつかの態様においては、さらにログ内のタイムスタンプに基づいて、コンピュータ攻撃を検出する。1つの例においては、ルールの少なくとも1つの条件は、車両の走行期間中のログの中に、定義された一群のメッセージが存在するということを規定する。いくつかの態様においては、ルールの少なくとも1つの条件は、メッセージの受信側である少なくとも1つの受信側ECUを示す情報が、定義された一群のECUと一致するということをさらに規定する。いくつかの態様においては、ルールの少なくとも1つの条件は車両の走行状態をさらに規定し、それによって、車両が走行中であると判定されるとルールが適用され、車両が走行中ではないと判定されるとルールが不適用とされるようにするものである。例えば、車両の走行中に上記の定義された一群のCANメッセージが到着した場合、ルール適用の条件は満たされるが、車両が走行中でない場合は、ルールは適用されない。それは、後者のケースでは、そのようなメッセージの受信と脆弱性の悪用やコンピュータ攻撃との関連はないとの結論を下すことができるからである。他の一例においては、ルールの少なくとも1つの条件は、定義された順番で並べられた定義された一群のメッセージがログの中に存在し、かつ定義された期間中に当該メッセージが傍受されたということをさらに規定する。
【0093】
少なくとも1つのルール適用の条件が満たされている場合、ステップ525において、ルール適用時の処置を実行することによって、MTに対するコンピュータ攻撃が阻止される。ルール適用の条件が満たされていない場合、ログ304のエントリはコンピュータ攻撃の形跡を含んでいない(531)。
【0094】
1つの態様においては、保護モジュール102は、ルールに応じた処置を実行することによって、車両に対するコンピュータ攻撃を阻止してもよい。例えば、ルールは、傍受されたメッセージの一部が第1の受信側への定義された一群のメッセージと一致すると判定された場合、すべてのメッセージが第1通信バス上を第1の受信側へ送信されないよう阻止するという処置を実行することを規定してもよい。
【0095】
1つの態様においては、車両の補助電子システムのECUのリスト上の少なくとも1つのECUを切断するという決定に基づいて、少なくとも1つのECUを切断するコマンドを含むメッセージを少なくとも1つのECUに送信することによって、コンピュータ攻撃を阻止してもよい。例えば、上記のジープの例を使えば、ECUのABSを切断してもよく、例えば、その結果、上記のコンピュータ攻撃は発生しなくなる。他の態様においては、車両の主電子システムのECUのリスト上の少なくとも1つのECUに対するセーフティモードを有効にするコマンドを含むメッセージを少なくとも1つのECUに送信することによって、コンピュータ攻撃を阻止してもよい。
【0096】
他の態様においては、少なくとも1つのメッセージのゲートウェイを介した車両の第1通信バスから第2通信バスへの送信を阻止することによって、コンピュータ攻撃を阻止してもよい。例えば、
図3のネットワークアーキテクチャ例の場合、セントラルゲートウェイ101は、例えば、CAN−Bバス152とCAN−Cバス153の間の、1つのサブネットワークから他のサブネットワークへのメッセージの送信を阻止してもよい。いくつかの態様においては、同一第1通信バス上で通信可能に接続されたECU間で、少なくとも1つのメッセージ伝送を阻止することによって、コンピュータ攻撃を阻止してもよい。1つの実現形態においては、少なくとも1つのメッセージ伝送の阻止は、保護モジュール102がビット0の配列をバス上に伝送することで、少なくとも1つのメッセージと異なる値がバス上で生じ、メッセージのチェックサムの不一致をもとに受信側ECUにその少なくとも1つのメッセージを無視させることで、達成することができる。
【0097】
言うまでもなく、ステップ521で受信したルールは、ステップ501から504の実施結果としてだけではなく、その他の場合でも作成可能である。例えば、サーバ303上、または、直接、MT301上でMTのセキュリティ監査を実施して、1つ以上のECUにおいて脆弱性を発見してもよい。ここでいう脆弱性は、ハッカーに悪用されたものでなくてもよい。さらに他の例においては、外部の調査員が、1つ以上のECUにおける脆弱性を発見して、それを製造者に報告することもある。その結果、該当するECUの更新版をリリースする前に、発見された脆弱性が悪用される恐れを防止するために、保護モジュール102のためのルールが作成される。ルールは、サーバ303が保護モジュール102に送信してもよく、あるいは、MTのネットワークインターフェースを用いて、診断インターフェース155などを介して、サービスセンターなどで、ダウンロードしてもよい。
【0098】
1つの特定の態様においては、コンピュータ攻撃の阻止525の後、ステップ532において、MTの運転者にも通知してもよい。さらに他の特定の態様においては、MTの運転者は、コンピュータ攻撃において使用されたECUモジュールの切断を許可するなどの、一連の処置を実行する必要があるかもしれない。
【0099】
コンピュータ攻撃の実行の可能性を是正する更新版をECUの供給業者から受領して、該当するECUに更新版をインストールした後、スクリプトをサーバ303から入手して、適さなくなったルールを削除するよう実行してもよい(ステップ533)。1つの態様においては、ECUの脆弱性にパッチを当てるように構成されたソフトウェア更新版を車両の1つ以上のECUに適用した場合、保護モジュール102は、車両に対するコンピュータ攻撃を検出するための1つ以上のルールを削除してもよい。
【0100】
図6は、CANプロトコルのフレームのフォーマットを示す図である。図示したように、フレーム、すなわちメッセージは、バス内のメッセージの優先度を表す一意的な識別子である(例えば、11ビットの)識別子フィールドを含んでもよい。メッセージは、データフレームではドミナントな値(すなわち、値0)を、あるいは、リモート要求フレームではリセッシブな値(例えば、値1)を示す(例えば、1ビットの)遠隔送信要求(Remote Transmission Request:RTR)フィールドをさらに含んでもよい。メッセージは、メッセージフレームに含まれるデータのバイト数を示すデータ長コード(Data Length Code:DLC)フィールドをさらに含んでもよい。メッセージは、送信対象のデータを収容するデータフィールドを含んでいる。メッセージ中の追加フィールドには、CRCフィールド、ACKスロット、およびフレーム終了(End of Frame)指示を含んでもよい。
【0101】
図7は、車両の電子システムに対する攻撃を検出するためのシステムおよび方法の各態様を態様例に従って実現可能なコンピュータシステム20の例を示す図である。1つの特定の態様においては、コンピュータシステムを用いて、サーバ303、およびMTの電子システムを実現してもよい。また、他の特定の態様においては、専用集積回路を用いて、MTの電子システムを実現してもよい。さらに他の特定の態様においては、専用コンピュータを用いて、MTの電子システムを実現してもよい。
【0102】
図示のように、コンピュータシステム20(パーソナルコンピュータでもサーバでもよい)は、中央処理装置21、システムメモリ22、および、中央処理装置21に付随するメモリなどの各種システム構成要素を接続するシステムバス23を含んでいる。当業者には理解されるように、システムバス23は、バスメモリまたはバスメモリコントローラ、周辺バス、および、他のいかなるバスアーキテクチャとも相互作用可能なローカルバスを備えていてもよい。システムメモリは固定記憶装置(ROM)24とランダムアクセスメモリ(Random-access Memory:RAM)25を含んでいてもよい。基本入出力システム(Basic Input/Output System:BIOS)26は、ROM24を用いてオペレーティングシステムをロードするときの手順などの、コンピュータシステム20の要素間の情報転送の基本的手順を記憶していてもよい。
【0103】
また、コンピュータシステム20は、データを読み書きするためのハードディスク27、リムーバブル磁気ディスク29を読み書きするための磁気ディスクドライブ28、および、CD−ROM、DVD−ROM、その他の光媒体などのリムーバブル光ディスク31を読み書きするための光学ドライブ30を備えていてもよい。ハードディスク27、磁気ディスクドライブ28、および光学ドライブ30は、それぞれ、ハードディスクインターフェース32、磁気ディスクインターフェース33、および光学ドライブインターフェース34を介して、システムバス23と接続されている。これらのドライブおよび対応するコンピュータ情報媒体は、コンピュータシステム20のコンピュータ命令、データ構造体、プログラムモジュール、およびその他のデータを記憶する、独立の電源で動作するモジュールである。
【0104】
態様の一例は、コントローラ55を介してシステムバス23と接続されたハードディスク27、リムーバブル磁気ディスク29、およびリムーバブル光ディスク31を使用するシステムを備えている。コンピュータで読み取り可能な形式でデータの保存が可能ないずれの種類の媒体56(半導体ドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ(RAM)など)も利用できることは、当業者には理解されるであろう。
【0105】
コンピュータシステム20は、オペレーティングシステム35が記憶されるファイルシステム36の他に、追加的なプログラムアプリケーション37、その他のプログラムモジュール38、およびプログラムデータ39を有する。コンピュータシステム20のユーザは、キーボード40、マウス42、あるいは、その他、例えば、マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナなどを含むがそれらに限られない当業者に公知の入力装置を使用して、コマンドおよび情報を入力することができる。そのような入力装置は、一般に、コンピュータシステム20に、システムバスと接続されたシリアルポート46を通して差し込まれるが、当業者は、入力装置を、例えば、限定はされないが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス(Universal Serial Bus:USB)などの他の方法で接続してもよいことを理解するであろう。モニタ47または他の種類の表示装置も、ビデオアダプタ48などのインターフェースを介してシステムバス23と接続してもよい。パーソナルコンピュータは、モニタ47に加えて、ラウドスピーカ、プリンタなどの他の周辺出力装置(図示せず)を備えてもよい。
【0106】
コンピュータシステム20を、1台以上のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境下で動作させてもよい。リモートコンピュータ49は、上記コンピュータシステム20の特徴説明の中で述べた要素のほとんどまたは全部を備えたローカルコンピュータワークステーションまたはサーバであってもよい。例えば、ルータ、ネットワークステーション、ピアデバイス、その他のネットワークノードなどを含むがそれらに限られないその他の装置がコンピュータネットワークの中に存在してもよい。
【0107】
ネットワーク接続によって、ローカルエリアコンピュータネットワーク(Local-Area Computer Network:LAN)50や広域コンピュータネットワーク(Wide-Area Computer Network:WAN)を形成することができる。そのようなネットワークは企業コンピュータネットワークや社内ネットワークで利用され、一般に、インターネットにアクセスできる。LANまたはWANネットワークにおいては、パーソナルコンピュータ20は、ネットワークアダプタまたはネットワークインターフェース51を介してローカルエリアネットワーク50と接続されている。ネットワークを利用する場合、コンピュータシステム20は、インターネットのような広域コンピュータネットワークとの通信を可能にするモデム54またはその他の当業者に公知のモジュールを採用してもよい。モデム54は、内部装置であっても外部装置であってもよいが、シリアルポート46によってシステムバス23と接続してもよい。上記ネットワーク接続は、1台のコンピュータが通信モジュールを使って他のコンピュータとの接続を確立する数多くの広く理解されている方法の非限定例であるということは、当業者には理解されるであろう。
【0108】
様々な態様において、本明細書で説明したシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組み合わせの中に実現されてもよい。ソフトウェア中に実現された場合、この方法は、非一時的なコンピュータ読み取り可能な媒体上に、1つ以上の命令またはコードとして記憶されてもよい。コンピュータ読み取り可能な媒体には、データストレージが含まれる。一例として、限定はされないが、そのようなコンピュータ読み取り可能な媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、あるいは他の種類の電気的、磁気的、または光学的記憶媒体、もしくは、所望のプログラムコードを命令やデータ構造体の形で伝送または記憶するために利用可能で汎用コンピュータのプロセッサからアクセス可能な、その他の任意の媒体を含むことができる。
【0109】
様々な態様において、本開示で説明したシステムおよび方法は、モジュールによって処理することができる。本明細書で使われている用語「モジュール」とは、例えば、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)やフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array:FPGA)などのハードウェア、あるいは、例えば、モジュールの機能を実行するマイクロプロセッサシステムおよび命令一式などのハードウェアとソフトウェアの組合せによって実行される、実装置、構成要素、または構成要素の配置のことであり、これらは(実行中に)マイクロプロセッサシステムを専用装置に変換する。モジュールは、特定の機能をハードウェアのみで実現し、その他の機能をハードウェアとソフトウェアの組み合わせによって実現する、上記2つの組み合わせとしても実現することができる。特定の実現形態においては、少なくとも一部、場合によっては全部のモジュールが、コンピュータのプロセッサ上(例えば、上記
図7により詳細に示されているもの)で実行されてもよい。したがって、各モジュールは各種の適切な構成の中に実現可能であり、本明細書に例示したいかなる特定の実現形態にも限定されるべきではない。
【0110】
明確化のために、本明細書は各態様の定型的な特徴のすべては示していない。本開示の実際の実現形態のいかなる開発においても、開発者の具体的目的を達成するために、実現形態に特有の多くの決定をする必要があり、具体的目的は、実現形態ごとおよび開発者ごとに異なるということが理解されるであろう。そのような開発努力は複雑で多くの時間を要するものであるが、それにもかかわらず、本開示から利益を得る当業者にとって、定型的な技術的取り組みであることが理解される。
【0111】
本明細書で用いている表現や用語は説明上のものであって、限定のためではなく、本明細書の用語や表現は、当業者が、関連技術の熟練者の知識と組み合わせて、本明細書が提供する教示や手引きの観点から解釈すべきものと理解すべきである。加えて、明示的記載がない限り、本明細書や請求の範囲におけるいかなる用語も、一般的でない、あるいは特別な意味を持つものとみなされることは意図されていない。
【0112】
本明細書に開示された様々な態様は、本明細書で例示により言及された公知のモジュールと均等な現在および将来の公知の均等物を包含する。加えて、態様および応用例を図示し、かつ、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの変更が可能であることは、この開示の利益を有する当業者には明らかであろう。