IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アウトクリプト カンパニー リミテッドの特許一覧

特許7630150コントローラ領域ネットワーク侵入探知システムおよびその作動方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-02-06
(45)【発行日】2025-02-17
(54)【発明の名称】コントローラ領域ネットワーク侵入探知システムおよびその作動方法
(51)【国際特許分類】
   H04L 43/04 20220101AFI20250207BHJP
   G06F 21/55 20130101ALI20250207BHJP
【FI】
H04L43/04
G06F21/55 320
【請求項の数】 18
(21)【出願番号】P 2023195723
(22)【出願日】2023-11-17
【審査請求日】2023-11-17
(31)【優先権主張番号】10-2023-0135377
(32)【優先日】2023-10-11
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】319016563
【氏名又は名称】アウトクリプト カンパニー リミテッド
(74)【代理人】
【識別番号】100121728
【弁理士】
【氏名又は名称】井関 勝守
(74)【代理人】
【識別番号】100165803
【弁理士】
【氏名又は名称】金子 修平
(74)【代理人】
【識別番号】100179648
【弁理士】
【氏名又は名称】田中 咲江
(74)【代理人】
【識別番号】100222885
【弁理士】
【氏名又は名称】早川 康
(74)【代理人】
【識別番号】100140338
【弁理士】
【氏名又は名称】竹内 直樹
(74)【代理人】
【識別番号】100227695
【弁理士】
【氏名又は名称】有川 智章
(74)【代理人】
【識別番号】100170896
【弁理士】
【氏名又は名称】寺薗 健一
(74)【代理人】
【識別番号】100219313
【弁理士】
【氏名又は名称】米口 麻子
(74)【代理人】
【識別番号】100161610
【弁理士】
【氏名又は名称】藤野 香子
(72)【発明者】
【氏名】金徳洙
(72)【発明者】
【氏名】金義錫
(72)【発明者】
【氏名】沈相奎
(72)【発明者】
【氏名】朱岐昊
(72)【発明者】
【氏名】李廷元
(72)【発明者】
【氏名】李鍾國
(72)【発明者】
【氏名】金政▲ウク▼
(72)【発明者】
【氏名】李相▲ソク▼
(72)【発明者】
【氏名】徐英莞
(72)【発明者】
【氏名】河施湖
(72)【発明者】
【氏名】李永大
【審査官】岩田 玲彦
(56)【参考文献】
【文献】米国特許出願公開第2021/0176259(US,A1)
【文献】中国特許出願公開第114978630(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 43/04
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
ハードウェア上に搭載されるECU(electronic control unit)階層またはAUTOSAR階層;前記AUTOSAR階層の構成要素とアプリケーション(application、App)を連結するRTE(real time environment)またはインターフェース(interface);および前記アプリケーション上に搭載されるIDSコア階層(IDS core layer)とIDS探知階層(IDS detect layer)を含むコントローラ領域ネットワーク(controller area network、CAN)侵入探知システム(intrusion detection system、IDS)の作動方法であって、
前記AUTOSAR階層のCANパケットミラーリングシステム(CAN packet mirroring system)により、前記AUTOSAR階層のAUTOSAR Pduルータ(PduR)領域に存在するCANドライバからCANメッセージを受信する段階;
前記CANパケットミラーリングシステムによって、受信したCANメッセージをメモリの複数の保存領域に保存する段階;
前記IDSコア階層のIDSコアによって、前記CANパケットミラーリングシステムでコピーされたデータを読み込んで前記IDSコアの探知エンジンベースに伝達する段階;および
前記IDSコア階層のIDSコアによって、IDSの政策ルール(policy rule)の政策バイナリファイル(policy binary file)を保存する第1メモリ領域と前記CANメッセージをバッファリングし保存するためのバッファリングテーブル(buffering table)を保存する第2メモリ領域を分けて管理する段階;を含み、
前記CANパケットミラーリングシステムによって、前記メモリの第1共有型メモリ領域に保存されているCAN標準メッセージデータを第1エンジンメモリ領域にコピーして保存し、前記メモリの第2共有型メモリ領域に保存されているCAN FD(flexible data)メッセージデータを第2エンジンメモリ領域にコピーして保存する段階をさらに含む、コントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項2】
前記IDSコアによって、前記CANパケットミラーリングシステムでコピーされたデータ前記探知エンジンベースに伝達する前に共有型メモリからデータをエンジンメモリにコピーして持ってくる段階をさらに含み、ここでエンジンメモリに持ってきたCANメッセージはバッファリングテーブルに保存される、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項3】
前記IDSコアによって、前記CANメッセージをバッファリングテーブルに保存するために、先だって持ってきたCANメッセージのバス(bus)情報とCAN ID(ID:identification)を通じて政策バイナリファイル(policy binary file)のルックアップテーブル(lookup table)を検索する段階をさらに含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項4】
前記IDSコアによって、先立って検索したCANメッセージのバッファリングテーブルタイプ(buffering table type)情報を通じて前記メモリの特定保存領域にCANメッセージを保存する段階をさらに含み、ここで前記バッファリングテーブルタイプ情報はバッファタイプ(buffer type)情報およびバッファインデックス(buffer index)情報を含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項5】
前記IDSコアによって、前記ルックアップテーブルを検索して一致する情報がない場合、前記CANメッセージに対してバッファリングが必要でない場合、そして、バッファリングされた場合に対する処理をしなければならない場合から選択される少なくともいずれか一つで前記CANメッセージを処理する段階をさらに含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項6】
前記IDSコアによって、エンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table)で探知政策を検索する段階をさらに含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項7】
前記IDSコアによって、前記ルックアップテーブルで一致する政策がない時、アンノウンメッセージバッファリングテーブル情報を通じてメモリのバッファリングテーブルのアンノウンメッセージバッファに前記CANメッセージを保存する段階;
前記IDSコアによって、保存されたメッセージのヘッド(head)値を一つ増加させる段階;および
前記IDSコアによって、現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達する段階をさらに含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項8】
前記IDSコアによって、前記ルックアップテーブルで一致する探知政策が検索されると、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリのバッファリングテーブルに該当CANメッセージを保存する段階;
前記IDSコアによって、保存されたメッセージのヘッド(head)値を一つ増加させる段階;および
前記IDSコアによって、現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達する段階をさらに含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項9】
前記IDSコアによって、前記ルックアップテーブルでCANメッセージと一致する探知政策が検索される時、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリ領域のバッファリングテーブルに該当CANメッセージを保存する段階;
前記IDSコアによって、前記バッファリングテーブルタイプ情報のバッファインデックスが0、ヌル(null)、非活性あるいは重要でない(minor)であるかを判断する段階;および
前記IDSコアによって、該当CANメッセージがバッファリングが必要でないメッセージであることを判断する段階をさらに含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項10】
前記IDSコアによって、該当CANメッセージをバッファリングテーブルに保存せず、現在コピーした項目のメッセージアドレス、探知政策ルールに対するアドレス情報をインターフェースを通じて前記探知エンジンベースに伝達する段階を含む、請求項に記載のコントローラ領域ネットワーク侵入探知システムの作動方法。
【請求項11】
コントローラ領域ネットワーク(controller area network、CAN)侵入探知システム(intrusion detection system、IDS)であって、
ハードウェア上に搭載されるECU(electronic control unit)階層またはAUTOSAR階層;
前記AUTOSAR階層の構成要素とアプリケーション(application、App)を連結するRTE(real time environment)またはインターフェース(interface);および
前記アプリケーション上に搭載されるIDSコア階層(IDS core layer)とIDS探知階層(IDS detect layer)を含み、
前記AUTOSAR階層はCANパケットミラーリングシステム(CAN packet mirroring system)を具備し、
前記CANパケットミラーリングシステムは前記AUTOSAR階層のAUTOSAR
Pduルータ(PduR)領域に存在するCANドライバからCANメッセージを受信し、受信したCANメッセージをメモリの複数の保存領域に保存し、前記複数の保存領域は共有型メモリ(shared memory)として互いに分離されて管理され、
前記IDSコア階層のIDSコアは前記CANパケットミラーリングシステムでコピーされたデータを読み込んで前記IDSコアの探知エンジンベースに伝達し、IDSの政策ルール(policy rule)の政策バイナリファイル(policy binary file)を保存する第1メモリ領域と前記CANメッセージをバッファリングし保存するためのバッファリングテーブル(buffering table)を保存する第2メモリ領域を分けて管理し、
前記CANパケットミラーリングシステムは、前記メモリの第1共有型メモリ領域に保存されているCAN標準メッセージデータを第1エンジンメモリ領域にコピーして保存し、前記メモリの第2共有型メモリ領域に保存されているCAN FD(flexible data)メッセージデータを第2エンジンメモリ領域にコピーして保存する、コントローラ領域ネットワーク侵入探知システム。
【請求項12】
前記IDSコアは前記CANパケットミラーリングシステムでコピーされたデータ前記探知エンジンベースに伝達する前に共有型メモリからデータをエンジンメモリにコピーして持ってき、ここでエンジンメモリに持ってきたCANメッセージはバッファリングテーブルに保存される、請求項11に記載のコントローラ領域ネットワーク侵入探知システム。
【請求項13】
前記IDSコアは、前記CANメッセージをバッファリングテーブルに保存するために、持ってきたCANメッセージのバス(bus)情報とCAN ID(ID:identification)を通じて政策バイナリファイル(policy binary file)のルックアップテーブル(lookup table)を検索する、請求項12に記載のコントローラ領域ネットワーク侵入探知システム。
【請求項14】
前記IDSコアは、先立って検索したCANメッセージのバッファリングテーブルタイプ(buffering table type)情報を通じて前記メモリの特定保存領域にCANメッセージを保存し、ここで前記バッファリングテーブルタイプ情報はバッファタイプ(buffer type)情報およびバッファインデックス(buffer index)情報を含む、請求項13に記載のコントローラ領域ネットワーク侵入探知システム。
【請求項15】
前記IDSコアは、前記ルックアップテーブルを検索して一致する情報がない場合、前記CANメッセージに対してバッファリングが必要でない場合、そして、バッファリングされた場合に対する処理をしなければならない場合から選択される少なくともいずれか一つで前記CANメッセージを処理する、請求項14に記載のコントローラ領域ネットワーク侵入探知システム。
【請求項16】
前記IDSコアはエンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table)で探知政策を検索し;前記ルックアップテーブルで一致する政策がない時、アンノウンメッセージバッファリングテーブル情報を通じてメモリのバッファリングテーブルのアンノウンメッセージバッファに前記CANメッセージを保存し;保存されたメッセージのヘッド(head)値を一つ増加させ;現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達する、請求項15に記載のコントローラ領域ネットワーク侵入探知システム。
【請求項17】
前記IDSコアはエンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table)で探知政策を検索し;前記ルックアップテーブルで一致する政策またはメッセージが検索されると、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリのバッファリングテーブルに該当CANメッセージを保存し;保存されたメッセージのヘッド(head)値を一つ増加させ;現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達する、請求項15に記載のコントローラ領域ネットワーク侵入探知システム。
【請求項18】
前記IDSコアはエンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてルックアップテーブル(lookup table)で2進検索を通じて探知政策を検索し;前記ルックアップテーブルでCANメッセージと一致する探知政策が検索されると、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリ領域のバッファリングテーブルに該当CANメッセージを保存し;前記バッファリングテーブルタイプ情報のバッファインデックスが0、ヌル(null)、非活性あるいは重要でない(minor)である場合、該当CANメッセージがバッファリングが必要でないメッセージであることを判断し;該当CANメッセージをバッファリングテーブルに保存せず、現在コピーした項目のメッセージアドレス、探知政策ルールに対するアドレス情報をインターフェースを通じて前記探知エンジンベースに伝達する、請求項15に記載のコントローラ領域ネットワーク侵入探知システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は侵入探知システム(intrusion detection system、IDS)に関し、より詳細には、コントローラ領域ネットワーク(controller area network、CAN)の侵入を探知する侵入探知システムおよびその作動方法に関する。
【背景技術】
【0002】
車両用部品の電子化が急速に進行されるにつれて、車両に搭載される電子装置例えば、ECU(electronic control unit)の種類と数が大きく増加している。電子装置は大きくパワートレイン(power train)制御システム、ボディ(body)制御システム、シャーシ(chassis)制御システム、車両ネットワーク(network)、マルチメディア(multimedia)システムなどに区分される。ここで、パワートレイン制御システムはエンジン制御システム、自動変速制御システムなどを含む。ボディ制御システムはボディ電装品制御システム、便宜装置制御システム、ランプ(lamp)制御システムなどを含む。シャーシ制御システムは操向装置制御システム、ブレーキ(brake)制御システム、サスペンション(suspension)制御システムなどを含む。
【0003】
車両ネットワークはCAN(controller area network)、フレックスレイ(FlexRay)基盤のネットワーク、MOST(media oriented system transport)基盤のネットワークなどを含む。マルチメディアシステムは航法装置システム、テレマティクス(telematics)システム、インフォテインメント(infortainment)システムなどを含む。
【0004】
このようなシステムやシステムそれぞれに搭載された電子装置は車両ネットワークを通じて連結されており、電子装置それぞれの機能を支援するための車両ネットワークが要求されているのが実情である。CANは最大1Mbpsの伝送速度を支援することができ、衝突したフレームの自動再伝送、CRC(cycle redundancy check)基盤のエラー検出などを支援することができる。
【0005】
最近車両内CANは自動車ハッキング技法に悪用される頻度が増加している。すなわち、攻撃者らは自動車内の部品を繋いてくれる通信網であるCANに連結されたいずれかのECUを操作して、車両を停止させたりドアや窓を開閉したり、ラジオを任意に操作したりしている。
【0006】
このように、CAN基盤プラットフォーム、特に自動車に搭載されるCAN基盤プラットフォームで外部攻撃者の侵入を効果的に探知できる方案が要求されている。
【先行技術文献】
【特許文献】
【0007】
【文献】特許第7316609号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本開示は前述した従来技術の要求に呼応ために導き出されたもので、本開示の目的は、車両用コントローラ領域ネットワーク(controller area network、CAN)基盤プラットフォームでCANを通じての攻撃者の侵入を探知する侵入探知システムおよびその作動方法を提供するところにある。
【課題を解決するための手段】
【0009】
前記技術的課題を解決するための本開示の一側面に係るコントローラ領域ネットワーク(controller area network、CAN)侵入探知システム(intrusion detection system、IDS)の作動方法は、ハードウェア上に搭載されるECU(electronic control unit)階層またはAUTOSAR階層;前記AUTOSAR階層の構成要素とアプリケーション(application、App)を連結するRTE(real time environment)またはインターフェース(interface);および前記アプリケーション上に搭載されるIDSコア階層(IDS core layer)とIDS探知階層(IDS detect layer)を含むCAN IDSの作動方法であって、前記AUTOSAR階層のCANパケットミラーリングシステム(CAN packet mirroring system)により、前記AUTOSAR階層のAUTOSAR Pduルータ(PduR)領域に存在するCANドライバからCANメッセージを受信する段階;前記CANパケットミラーリングシステムによって、受信したCANメッセージをメモリの複数の保存領域に保存する段階;前記IDSコア階層のIDSコアによって、前記CANパケットミラーリングシステムでコピーされたデータを読み込んで前記IDSコアの探知エンジンベースに伝達する段階;および前記IDSコア階層のIDSコアによって、IDSの政策規則(policy rule)の政策バイナリファイル(policy binary file)を保存する第1メモリ領域と前記CANメッセージをバッファリングし保存するためのバッファリングテーブル(buffering table)を保存する第2メモリ領域を分けて管理する段階を含む。
【0010】
前記作動方法は、前記CANパケットミラーリングシステムによって、前記メモリの第1共有型メモリ領域に保存されているCAN標準メッセージデータを第1エンジンメモリ領域にコピーして保存し、前記メモリの第2共有型メモリ領域に保存されているCAN FD(flexible data)メッセージデータを第2エンジンメモリ領域にコピーして保存する段階をさらに含むことができる。
【0011】
前記作動方法は、前記IDSコアによって、前記CANデータが前記探知エンジンベースに伝達される前に共有型メモリからデータをエンジンメモリにコピーして持ってくる段階をさらに含むことができる。ここで、エンジンメモリに持ってきたCANメッセージはバッファリングテーブルに保存され得る。
【0012】
前記作動方法は、前記IDSコアによって、前記CANメッセージをバッファリングテーブルに保存するために、先だって持ってきたCANメッセージのバス(bus)情報とCAN ID(ID:identification)を通じて政策バイナリファイル(policy binary file)のルックアップテーブル(lookup table)を検索する段階をさらに含むことができる。
【0013】
前記作動方法は、前記IDSコアによって、先立って検索したCANメッセージのバッファリングテーブルタイプ(buffering table type)情報を通じて前記メモリの特定保存領域にCANメッセージを保存する段階をさらに含むことができる。ここで、前記バッファリングテーブルタイプ情報はバッファタイプ(buffer type)情報およびバッファインデックス(buffer index)情報を含むことができる。
【0014】
前記作動方法は、前記IDSコアによって、前記ルックアップテーブルを検索して一致する情報がない場合、前記CANメッセージに対してバッファリングが必要でない場合、そして、バッファリングされた場合に対する処理をしなければならない場合から選択される少なくともいずれか一つで前記CANメッセージを処理する段階をさらに含むことができる。
【0015】
前記作動方法は、前記IDSコアによって、エンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table)で探知政策を検索する段階をさらに含むことができる。
【0016】
前記作動方法は、前記IDSコアによって、前記ルックアップテーブルで一致する政策がない時、アンノウンメッセージバッファリングテーブル情報を通じてメモリのバッファリングテーブルのアンノウンメッセージバッファに前記CANメッセージを保存する段階;前記IDSコアによって、保存されたメッセージのヘッド(head)値を一つ増加させる段階;および前記IDSコアによって、現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達する段階をさらに含むことができる。
【0017】
前記作動方法は、前記IDSコアによって、前記ルックアップテーブルで一致する探知政策が検索されると、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリのバッファリングテーブルに該当CANメッセージを保存する段階;前記IDSコアによって、保存されたメッセージのヘッド(head)値を一つ増加させる段階;および前記IDSコアによって、現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達する段階をさらに含むことができる。
【0018】
前記作動方法は、前記IDSコアによって、前記ルックアップテーブルでCANメッセージと一致する探知政策が検索される時、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリ領域のバッファリングテーブルに該当CANメッセージを保存する段階;前記IDSコアによって、前記バッファリングテーブルタイプ情報のバッファインデックスが0、ヌル(null)、非活性あるいは重要でない(minor)であるかを判断する段階;および前記IDSコアによって、該当CANメッセージがバッファリングが必要でないメッセージであることを判断する段階をさらに含むことができる。
【0019】
前記作動方法は、前記IDSコアによって、該当CANメッセージをバッファリングテーブルに保存せず、現在コピーした項目のメッセージアドレス、探知政策ルールに対するアドレス情報をインターフェースを通じて前記探知エンジンベースに伝達する段階を含むことができる。
【0020】
前記技術的課題を解決するための本開示の一側面に係るコントローラ領域ネットワーク(controller area network、CAN)侵入探知システム(intrusion detection system、IDS)は、ハードウェア上に搭載されるECU(electronic control unit)階層またはAUTOSAR階層;前記AUTOSAR階層の構成要素とアプリケーション(application、App)を連結するRTE(real time environment)またはインターフェース(interface);および前記アプリケーション上に搭載されるIDSコア階層(IDS core layer)とIDS探知階層(IDS detect layer)を含む。前記AUTOSAR階層はCANパケットミラーリングシステム(CAN packet mirroring system)を具備する。前記CANパケットミラーリングシステムは前記AUTOSAR階層のAUTOSAR Pduルータ(PduR)領域に存在するCANドライバからCANメッセージを受信し、受信したCANメッセージをメモリの複数の保存領域に保存し、前記複数の保存領域を共有型メモリ(shared memory)として分離して管理する。ここで、前記IDSコア階層のIDSコアは前記CANパケットミラーリングシステムでコピーされたデータを読み込んで前記IDSコアの探知エンジンベースに伝達し、IDSの政策ルール(policy rule)の政策バイナリファイル(policy binary file)を保存する第1メモリ領域と前記CANメッセージをバッファリングし保存するためのバッファリングテーブル(buffering table)を保存する第2メモリ領域を分けて管理する。
【0021】
前記CANパケットミラーリングシステムは、前記メモリの第1共有型メモリ領域に保存されているCAN標準メッセージデータを第1エンジンメモリ領域にコピーして保存し、前記メモリの第2共有型メモリ領域に保存されているCAN FD(flexible data)メッセージデータを第2エンジンメモリ領域にコピーして保存することができる。
【0022】
前記IDSコアは前記CANデータが前記探知エンジンベースに伝達される前に共有型メモリからデータをエンジンメモリにコピーして持ってくることができる。ここで、エンジンメモリに持ってきたCANメッセージはバッファリングテーブルに保存され得る。
【0023】
前記IDSコアは、前記CANメッセージをバッファリングテーブルに保存するために、持ってきたCANメッセージのバス(bus)情報とCAN ID(ID:identification)を通じて政策バイナリファイル(policy binary file)のルックアップテーブル(lookup table)を検索することができる。
【0024】
前記IDSコアは、先立って検索したCANメッセージのバッファリングテーブルタイプ(buffering table type)情報を通じて前記メモリの特定保存領域にCANメッセージを保存することができる。ここで、前記バッファリングテーブルタイプ情報はバッファタイプ(buffer type)情報およびバッファインデックス(buffer index)情報を含むことができる。
【0025】
前記IDSコアは、前記ルックアップテーブルを検索して一致する情報がない場合、前記CANメッセージに対してバッファリングが必要でない場合、そして、バッファリングされた場合に対する処理をしなければならない場合から選択される少なくともいずれか一つで前記CANメッセージを処理することができる。
【0026】
前記IDSコアは、エンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table)で探知政策を検索し;前記ルックアップテーブルで一致する政策がない時、アンノウンメッセージバッファリングテーブル情報を通じてメモリのバッファリングテーブルのアンノウンメッセージバッファに前記CANメッセージを保存し;保存されたメッセージのヘッド(head)値を一つ増加させ;現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達することができる。
【0027】
前記IDSコアは、エンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table)で探知政策を検索し;前記ルックアップテーブルで一致する政策またはメッセージが検索されると、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリのバッファリングテーブルに該当CANメッセージを保存し;保存されたメッセージのヘッド(head)値を一つ増加させ;現在コピーした項目のバッファリングテーブルのアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をインターフェースを通じて前記探知エンジンベースに伝達することができる。
【0028】
前記IDSコアはエンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてルックアップテーブル(lookup table)で2進検索を通じて探知政策を検索し;前記ルックアップテーブルでCANメッセージと一致する探知政策が検索されると、該当CANメッセージのバッファリングテーブルタイプ情報を通じてメモリ領域のバッファリングテーブルに該当CANメッセージを保存し;前記バッファリングテーブルタイプ情報のバッファインデックスが0、ヌル(null)、非活性あるいは重要でない(minor)である場合、該当CANメッセージがバッファリングが必要でないメッセージであることを判断し;該当CANメッセージをバッファリングテーブルに保存せず、現在コピーした項目のメッセージアドレス、探知政策ルールに対するアドレス情報をインターフェースを通じて前記探知エンジンベースに伝達することができる。
【発明の効果】
【0029】
本開示によると、車両用コントローラ領域ネットワーク(controller area network、CAN)基盤プラットフォームでCANを通じての攻撃者の侵入を効果的に探知することができる。
【図面の簡単な説明】
【0030】
図1】本開示の侵入探知システム(intrusion detection system、IDS)を適用できるコントローラ領域ネットワーク(controller area network、CAN)の一形態を説明するための例示図である。
図2】比較例に係るCAN IDSに対する構成図である。
図3】本開示の一実施例に係るCAN IDSに対する構成図である。
図4図3のCAN IDSのCANパケットミラーリングシステム(CAN packet mirroring system)の作動原理を説明するための図面である。
図5図4のCANパケットミラーリングシステムに連結されるエンジンメモリの構造および作動原理を説明するための図面である。
図6図3のCAN IDSに採用できるCANメッセージのバッファリング過程を説明するための例示図である。
図7図3のCAN IDSに採用できるCANメッセージの他のバッファリング過程を説明するための例示図である。
図8図3のCAN IDSに採用できるCANメッセージのさらに他のバッファリング過程を説明するための例示図である。
図9図3のCAN IDSに採用できるIDS探知レイヤでのCANメッセージ探知手続きを説明するための例示図である。
図10図3のCAN IDSに採用できるIDS探知レイヤでのCANメッセージ削除手続きを説明するための例示図である。
図11図3のCAN IDSに採用できるIDS探知レイヤでのさらに他のCANメッセージ削除手続きを説明するための例示図である。
図12a図3のCAN IDSに採用できるCANメッセージの探知政策に対する遂行過程に対するフローチャートである。
図12b図3のCAN IDSに採用できるCANメッセージの探知政策に対する遂行過程に対するフローチャートである。
図12c図3のCAN IDSに採用できるCANメッセージの探知政策に対する遂行過程に対するフローチャートである。
図13図3のCAN IDSのロギングシステム(logging system)に対する例示図である。
図14図13のロギングシステムに採用できるメッセージフォーマットに対する例示図である。
図15図3のCAN IDSに採用できる探知ログバッファのメッセージ構造を示した例示図である。
図16図3のCAN IDSの探知ログ関連作動手続きを説明するための例示図である。
図17図16のCAN IDS作動手続きに対するゲートウェイの作動手続きを説明するための例示図である。
図18図3のCAN IDSに採用できる状態ログバッファのメッセージ構造を示した例示図である。
図19図3のCAN IDSの状態ログ関連作動手続きを説明するための例示図である。
図20】本開示の他の実施例に係るCAN IDSに対する概略的な構成図である。
【発明を実施するための形態】
【0031】
本発明は多様な変更を加えることができ、多様な実施例を有することができるところ、特定実施例を図面に例示して詳細に説明しようとする。しかし、これは本発明を特定の実施形態に対して限定しようとするものではなく、本発明の思想および技術範囲に含まれるすべての変更、均等物乃至代替物を含むものと理解されるべきである。
【0032】
第1、第2等の用語は多様な構成要素の説明に使われ得るが、前記構成要素は前記用語によって限定されてはならない。前記用語は一つの構成要素を他の構成要素から区別する目的でのみ使われる。例えば、本発明の権利範囲を逸脱することなく第1構成要素は第2構成要素と命名され得、同様に第2構成要素も第1構成要素と命名され得る。および/またはという用語は複数の関連した記載された項目の組み合わせまたは複数の関連した記載された項目のいずれかの項目を含む。
【0033】
本出願の実施例で、「AおよびBのうち少なくとも一つ」は「AまたはBのうち少なくとも一つ」または「AおよびBのうち一つ以上の組み合わせのうち少なくとも一つ」を意味し得る。また、本出願の実施例で、「AおよびBのうち一つ以上」は「AまたはBのうち一つ以上」または「AおよびBのうち一つ以上の組み合わせのうち一つ以上」を意味し得る。
【0034】
或る構成要素が他の構成要素に「連結されて」いるとか「接続されて」いると言及された時には、その他の構成要素に直接的に連結されていたりまたは接続されていてもよいが、中間に他の構成要素が存在してもよいと理解されるべきである。反面、或る構成要素が他の構成要素に「直接連結されて」いるとか「直接接続されて」いると言及された時には、中間に他の構成要素が存在しないものと理解されるべきである。
【0035】
本出願で使った用語は単に特定の実施例を説明するために使われたもので、本発明を限定しようとする意図ではない。単数の表現は文脈上明白に異なって意味しない限り、複数の表現を含む。本出願で、「含む」または「有する」等の用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定しようとするものであって、一つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものなどの存在または付加の可能性を予め排除しないものと理解されるべきである。
【0036】
別途に定義されない限り、技術的または科学的な用語を含んでここで使われるすべての用語は本発明が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有している。一般的に使われる辞書に定義されているような用語は関連技術の文脈上有する意味と一致する意味を有すると解釈されるべきであり、本出願で明白に定義しない限り、理想的または過度に形式的な意味で解釈されない。
【0037】
以下、添付した図面を参照して、本発明の好ましい実施例をより詳細に説明しようとする。本発明を説明するにおいて、全体的な理解を容易にするために図面上の同じ構成要素に対しては同じ参照符号を使用し、同じ構成要素に対して重複した説明は省略する。
【0038】
図1は、本開示の侵入探知システム(intrusion detection system、IDS)を適用できるコントローラ領域ネットワーク(controller area network、CAN)の一形態を説明するための例示図である。
【0039】
図1を参照すると、CANは電気的ノイズ発生が多い車両環境で信頼性を確保するために開発された通信方式である。CANは多数の制御器を並列に連結してデータをやりとりする構造を有する。通信ラインを共有するすべての制御器がマスターの役割をするので、いつでも互いに通信が可能である。すなわち、通信ライン上にデータを置いておけば、いずれの制御器であれ、必要な時ごとにデータを持ち込んで使う方式である。制御器内のCAN通信モジュールはマイクロコントローラ(microcontroller、MCU)とCANトランシーバ(CAN transceiver)で構成され、外部のCANバス(bus)を通じてCANハイ(high)とCANロー(low)信号をやりとりする。
【0040】
制御器はゲートウェイ(gateway、190)およびスイッチ191、191a、191b、192、193のうち少なくとも一つ以上を通じて連結される。各制御器はエンドノード301、302、303、311、312、313、321、322、323のうちいずれか一つに対応する。ゲートウェイ190や各スイッチはエンドノードに対応し得る。各スイッチはブリッジ(bridge)と指称され得る。
【0041】
車両ネットワークを構成するゲートウェイ190は少なくとも一つのスイッチ191、191a、191b、192、193と連結され得、互いに異なるネットワークを連結することができる。例えば、ゲートウェイ190はCAN(controller area network)、フレックスレイ(FlexRay)、MOST(media oriented system transport)、LIN(local interconnect network)等の通信プロトコルを支援するエンドノードとイーサネット(Ethernet)プロトコルを支援するスイッチ間を連結することができる。
【0042】
スイッチ191、191a、191b、192、193それぞれは少なくとも一つのエンドノード301、302、303、311、312、313、321、322、323と連結され得る。スイッチそれぞれはエンドノードを相互に連結でき、自身と連結されたエンドノードを制御することができる。
【0043】
エンドノード301、302、303、311、312、313、321、322、323それぞれは車両に含まれた各種装置を制御するECU(electronic control unit)を意味し得る。例えば、エンドノード301、302、303、311、312、313、321、322、323は車両のインフォテインメント(infortainment)装置に含まれるディスプレイ(display)装置、ナビゲーション(navigation)装置、アラウンドビューモニタリング(around view monitoring)装置などの個別ECUを指称し得る。
【0044】
一方、車両ネットワークを構成するエンドノード、すなわち、ゲートウェイ190、各スイッチ、エンドノードなどはスター(star)トポロジー、バス(bus)トポロジー、リング(ring)トポロジー、ツリー(tree)トポロジー(図1参照)、メッシュ(mesh)トポロジーなどに連結され得る。
【0045】
以下の本開示の実施例に係る装置や方法は前述されたネットワークトポロジーに適用され得るが、これに限定されず、既に広く知られている多様なネットワークトポロジーの中から選択される少なくとも一つに適用されるように構成され得る。
【0046】
図2は、比較例に係るCAN IDSに対する構成図である。
【0047】
図2を参照すると、比較例のCAN IDS100はAUTOSAR(AUTomotive Open System ARchitecture)およびECU(electronic control unit)階層110a、IDSコア階層(IDS core layer、130a)、およびIDS探知階層(IDS detect layer、150a)を具備する。
【0048】
ここで、AUTOSARおよびECU階層110aはCANドライバ(CAN driver)とCANパケットミラーリングシステム(CAN packet mirroring system)を具備する。IDSコア階層130はIDSコア(IDS-core)を具備する。そして、IDS探知階層(150a)は探知エンジンベース(detection engine base)、複数の政策規則(policy rules)およびロギングシステム(logging system)を具備する。
【0049】
比較例のCAN IDS100は一般的なECUシステムに適用される。比較例のCAN IDS100は既存のAUTOSARを基盤とするシステム構成を有する。ここで、CANパケットミラーリングシステムは基本ソフトウェア(basic software、BSW)の通信サービス階層のPduルータ(Pdu router、PduR)に含まれたり、複合ドライバ(complex drivers)に含まれる。
【0050】
図3は、本開示の一実施例に係るCAN IDSに対する構成図である。
【0051】
図3を参照すると、CAN IDSは、ハードウェア(hardware、102)上に搭載されるECU(electronic control unit)階層またはAUTOSAR階層110;AUTOSAR階層110の構成要素とアプリケーション(application、App、160)を仮想機能バス(virtual furnctional bus)等を利用して連結するRTE(real time environment)またはインターフェース(interface、120);およびアプリケーション160上に搭載されるIDSコア階層(IDS core layer、130)とIDS探知階層(IDS detect layer、150)を含むことができる。アプリケーション160はトランスコンパイラ(transpiler)またはSWC(speedy web compiler)等のコンパイラ(compiler、170)上に搭載され得る。
【0052】
ここで、ハードウェア(hardware、102)はマイクロコントローラ(microcontroller、104)を含むことができる。そして、AUTOSAR階層110はMCAL(microcontroller abstraction layer)等のデバイスドライバのためのドライバ階層(driver layer、111)、ECUなどのための抽象化階層(abstraction layer、112)、サービス階層(services layer、113)、複合ドライバ(complex drivers、116)およびCANパケットミラーリングシステム(CAN packet mirroring system、117)を具備することができる。そして、サービス階層113は通信サービス階層(communication service layer、114)とPduルータ(Pdu router、PduR、115)を具備することができる。
【0053】
また、IDSコア階層130はIDSコア(IDS-Core、140)を含むことができる。本実施例でIDSコア140は微視的側面で探知エンジンと指称され得る。そして、IDS探知階層150は探知エンジンベース(detection engine base、152)、政策規則(policy rule、154)およびロギングシステム(logging system、156)を含むことができる。
【0054】
本実施例のCAN IDSは比較例と他の構造と機能を有したIDSコア階層130とIDS探知階層150を具備する。IDSコア階層130とIDS探知階層150は新しい探知ルールによりCANメッセージを探知して処理するように構成される。
【0055】
CAN IDSに備えられるCANドライバは物理的なCAN装置からメッセージを受信する。CANドライバはCAN装置を初期化し、CANバスからデータを受信する。CANドライバはAUTOSAR階層110のサービス階層113の通信サービス階層114のPduR115領域と複合ドライバ116領域にかけて存在することができる。このようなCANドライバはAUTOSAR PduR領域に存在するものと指称され得る。
【0056】
また、CAN IDSに備えられるCANパケットミラーリングシステム117はCANドライバで受信したメッセージをメモリ領域にコピーし、該当メッセージが損失(loss)されないようにバッファリング管理を遂行する。CANパケットミラーリングシステム117はCANメッセージと追加メタデータを生成して管理する機能を遂行することができる。そして、CANパケットミラーリングシステム117は典型的な(classic)AUTOSAR階層がないシステムではECU応用プログラムで動作するが、典型的なAUTOSARプラットフォーム基盤のシステムでは基本ソフトウェア(basic software、BSW)領域に存在することができる。
【0057】
図4は、図3のCAN IDSのCANパケットミラーリングシステム(CAN packet mirroring system)の作動原理を説明するための図面である。
【0058】
図4を参照すると、CANパケットミラーリングシステム117はAUTOSAR PduR領域に存在するCANドライバ115aからCANメッセージを受信し(S41)、受信したCANメッセージをメモリ(memory、106)のRAM(random access momory)領域にコピーして保存することができる(S43)。この時、CANパケットミラーリングシステム117は共有型メモリ(shared memory)という名前を有して互いに分離されて管理される複数の保存領域にメッセージデータを保存することができる。
【0059】
CAN標準(standard)メッセージデータ(以下「第1メッセージデータ」ともいう)は第1保存領域104aに保存されて管理され、CANフレキシブルデータ(flexible data、FD)メッセージデータ(以下「第2メッセージデータ」ともいう)は第2保存領域104bに保存されて管理され得る。第1保存領域104aおよび第2保存領域104bは第1共有型メモリ領域および第2共有型メモリ領域とそれぞれ指称され得る。
【0060】
メモリ106の空間すなわち、保存領域は円形キュー(circular queue)構造で構成され得、各保存領域のバッファの大きさは柔軟にシステムごとに異なって設定され得る。例えば、メモリ106の保存領域を形成する共有型メモリバッファ構造(shared momory buffer structure)は第1バッファ(buffer[0])、第2バッファ(buffer[1])、第3バッファ(buffer[2])等を含み、それぞれCANデータを保存することができる。
【0061】
CANデータの構造は[表1]の第1フォーマットによりバッファに保存されるか、[表2]の第2フォーマットによりバッファに保存され得る。第1フォーマットと第2フォーマットの差は受信されたメッセージのメッセージフィールド(message field)のサイズ(size)で異なり得る。例えば、CAN標準にしたがう受信されたCANメッセージデータのためのメッセージフィールドのサイズは8バイト(byte)であり、受信されたCAN FDメッセージデータのためのメッセージフィールドのサイズは64バイトであり得る。
【0062】
【表1】
【0063】
【表2】
【0064】
再び図1を参照すると、IDSコア階層130のIDSコア140はCANパケットミラーリングシステム117でコピーされたデータを読み込んで探知エンジンベース152に伝達する機能を遂行することができる。この時、IDSコア140はIDSの政策ルール(policy rule、154)の政策バイナリファイル(policy binary file)を保存する第1メモリ領域とCANメッセージをバッファリングし保存するためのバッファリングテーブル(buffering table)を保存する第2メモリ領域を分けて管理することができる。
【0065】
また、IDSコア140はCANパケットミラーリングシステム117によりメモリ106に保存されたCANデータを持ってくるための他のバッファを具備することができる。このようなバッファはエンジンメモリ(engine memory)と指称され得る。
【0066】
図5は、図4のCANパケットミラーリングシステムに連結されるエンジンメモリの構造および作動原理を説明するための図面である。
【0067】
図5を参照すると、CANパケットミラーリングシステムは共有型メモリ(shared memory)と呼ばれ、互いに分離されて管理される第1保存領域104aおよび第2保存領域104bに保存されているメッセージデータをそれぞれコピーしてエンジンメモリと呼ばれる第3保存領域104cおよび第4保存領域104dにコピーして保存することができる。第3保存領域104cおよび第4保存領域104dは第1エンジンメモリ領域および第2エンジンメモリ領域とそれぞれ指称され得る。
【0068】
すなわち、CANパケットミラーリングシステムは、第1共有型メモリ領域104aに保存されているCAN標準メッセージデータを第1エンジンメモリ領域104cにコピーして保存し、第2共有型メモリ領域104bに保存されているCAN FDメッセージデータを第2エンジンメモリ領域104dにコピーして保存することができる。
【0069】
各エンジンメモリは共有型メモリと同様に円形キュー(circular queue)構造を具備することができ、共有型メモリと類似するか同じ構造でCANデータを保存することができる。
【0070】
IDSコア(図3の140参照)はCANデータが探知エンジンベースに伝達される前に共有型メモリからデータをエンジンメモリにコピーして持ってくることができる。エンジンメモリに持ってきたCANメッセージはバッファリングテーブルに保存され得る。この時、CANメッセージをバッファリングテーブルに保存するために、IDSコアは持ってきたCANメッセージのバス(bus)情報とCAN ID(ID:identification)を通じて政策バイナリファイル(policy binary file)のルックアップテーブル(lookup table)を検索することができる。CAN IDはルックアップキー(lookup key)を含むかルックアップキーに対応することができる。
【0071】
IDSコアは、先立って検索したCANメッセージのバッファリングテーブルタイプ(buffering table type)情報を通じてRAM106の特定保存領域にCANメッセージを保存することができる。バッファリングテーブルタイプ情報はバッファタイプ(buffer type)情報、バッファインデックス(buffer index)情報などを含むことができる。
【0072】
前述したCANメッセージのバッファリング(buffering)は、ルックアップテーブルを検索して一致する情報がない場合、バッファリングが必要でない場合、そして、バッファリングされた場合に対する処理をしなければならない場合に対する三つの方法から選択される少なくともいずれか一つの方法で処理され得る。
【0073】
図6は、図3のCAN IDSに採用できるCANメッセージのバッファリング過程を説明するための例示図である。
【0074】
図6を参照すると、CANメッセージの三つのバッファリング過程のうち政策バイナリのルックアップテーブルのCANメッセージが一致しない場合が例示される。
【0075】
まず、IDSコアはエンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table 180)で探知政策を検索することができる(S61)。CANメッセージのバスは例えばBUS(0xFF)で表示され、CAN IDはCAN ID(0xFF)で表示され得る。
【0076】
ルックアップテーブル180は複数のルックアップキー(lookup keys)、複数の政策ボディタイプ(policy body types)および複数のバッファリングテーブルタイプ(buffering table types)に対する情報を保存することができる。各ルックアップキーはバス(bus)に対する情報を保存するフィールドと調整(arbitration)IDに対する情報を保存するフィールドを具備することができる。各政策ボディタイプは政策インデックス(policy incex)に対する情報を保存するフィールドを具備することができる。そして、各バッファリングテーブルタイプはバッファインデックス(buffer index)に対する情報を保存するフィールドと選択的にバッファタイプ(buffer type)を保存するフィールドを具備することができる。
【0077】
ルックアップテーブル180で検索されなかったメッセージは、ルックアップテーブル180の一番最初に保存されたアンノウンメッセージバッファリングテーブル(unknown message buffering table)情報を通じてRAM領域のバッファリングテーブル(buffering table、182)に保存され得る(S63、S65)。すなわち、ルックアップテーブル180で一致する政策がない時、IDSコアはアンノウンメッセージバッファリングテーブル情報を通じてRAM領域のバッファリングテーブル182のアンノウンメッセージバッファ(unknown message buffer)にCANメッセージを保存することができる(S63、S65)。アンノウンメッセージバッファはヘッド(head)、テール(tail)、および複数の保存領域(0~4参照)を具備することができる。
【0078】
メッセージが保存されると、IDSコアは保存されたメッセージのヘッド(head)値を一つ増加させることができる。そして、現在コピーした項目のバッファリングテーブル182のアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックス情報をAPI(application programming interface)等のインターフェース108を通じて探知エンジン160aの探知エンジンベースに伝達することができる(S67、S69)。探知政策ルールに対するアドレスは簡略に探知政策アドレスと指称され得、バッファインデックス情報はバッファリングテーブル182のインデックス情報を含むことができる。このようにIDSコアはバッファリングテーブル182に保存された情報を探知エンジン160aに伝達することができる。探知エンジン160aはアプリケーション(図3の160参照)の一種であり得る。
【0079】
図7は、図3のCAN IDSに採用できるCANメッセージの他のバッファリング過程を説明するための例示図である。
【0080】
図7を参照すると、CANメッセージの三つのバッファリング過程のうち政策バイナリのルックアップテーブルでCANメッセージが一致する場合が例示される。
【0081】
まず、IDSコアはエンジンメモリから持ってきたCANメッセージのバスとCAN IDに基づいてバイナリ検索を通じてルックアップテーブル(lookup table 180)で探知政策を検索することができる(S71)。例えばCANメッセージのバスはBUS(0xFF)であり、CAN IDはCAN ID(0x3FD)であり得る。
【0082】
CANメッセージがルックアップテーブル180で検索されたメッセージである場合、IDSコアは該当メッセージのバッファリングテーブルタイプ情報を通じてRAM領域のバッファリングテーブル(buffering table、182)に該当CANメッセージを保存することができる(S73、S75)。バッファリングテーブル182は複数のアンノウンメッセージバッファ(unknown message buffers、UMB)を含むことができる。例えば、98番目のUMBのアドレスはOx2C1に、99番目のUMBのアドレスは0x2DCに、そして、100番目のUMBのアドレスは0x3FDにそれぞれ設定され得る。それぞれのアンノウンメッセージバッファはヘッド(head)、テール(tail)、および複数の保存領域(0~4参照)を具備することができる。
【0083】
メッセージが保存されると、IDSコアは保存されたメッセージのヘッド(head)値を一つ増加させることができる。そして、現在コピーした項目のバッファリングテーブル182のアドレス、探知政策ルールに対するアドレス、バッファタイプとバッファインデックスに対する情報をAPIなどのインターフェース108を通じて探知エンジン160aの探知エンジンベースに伝達することができる(S77、S79)。このようにIDSコアはバッファリングテーブル182に保存した情報を探知エンジン160aに伝達することができる。
【0084】
図8は、図3のCAN IDSに採用できるCANメッセージのさらに他のバッファリング過程を説明するための例示図である。
【0085】
図8を参照すると、CANメッセージの三つのバッファリング過程のうち政策バイナリのルックアップテーブルのCANメッセージと一致するがバッファリングが必要でない場合が例示される。
【0086】
まず、IDSコアはエンジンメモリから持ってきたCANメッセージのバスとCAN IDまたはルックアップキー(lookup key)を通じてルックアップテーブル(lookup table 180)を検索することができる(S81)。検索は2進検索を通じて探知政策を検索することを含むことができる。そして、CANメッセージは例えばバスに対する情報としてBUS(0x2)とCAN IDに対する情報としてCAN ID(0x110)を含むことができる。
【0087】
CANメッセージがルックアップテーブル180で検索される場合、IDSコアは該当メッセージのバッファリングテーブルタイプ(buffering table type)情報を通じてRAM領域のバッファリングテーブル(buffering table)に該当CANメッセージを保存することができる(S83)。
【0088】
この時、バッファリングテーブルタイプ情報のバッファインデックス(buffer index)情報が0である場合、IDSコアは該当CANメッセージがバッファリングが必要でないメッセージであると判断または決定することができる。バッファリングが必要でないメッセージはバッファリングテーブルに保存せず、現在コピーした項目のメッセージアドレス、探知政策ルールに対するアドレス情報を含んだコピーしたメッセージをAPIなどのインターフェース108を通じて探知エンジン160aに伝達することができる(S85)。
【0089】
探知エンジンベース(図3の152参照)はIDSコアから伝達された情報を通じてバッファリングされたメッセージを探知したり削除することができる。探知エンジンベースを含む探知エンジンは伝達された情報を通じてルックアップテーブルを検索してメッセージを探知でき、また、削除することができる。
【0090】
図9は、図3のCAN IDSに採用できるIDS探知レイヤでのCANメッセージ探知手続きを説明するための例示図である。
【0091】
図9を参照すると、探知エンジン160aは政策バイナリ(policy binary)のルックアップテーブルのCANメッセージを探知することができる。
【0092】
具体的には、探知エンジン160aはIDSコアから伝達されたCANメッセージのバッファリングテーブル(buffering table、182)の情報を通じてCANメッセージを探知することができる。バッファリングテーブル182は、バッファインデックス(buffer index)とバッファタイプ(buffer type)情報がAPIを含んだインターフェース108に伝達されると、バッファリングテーブルのヘッド(head)、テール(tail)情報に基づいて最新メッセージから一つずつ照会ことができる。
【0093】
例えば、バッファリングテーブル182は特定識別子(例えば、buf-5-rec-num)を具備し、探知エンジン160aからインターフェース108にバッファリングテーブルの情報例えば、バッファタイプ(例えば、00)とバッファインデックス(例えば、100)が伝達されると(S92)、バッファリングテーブル182のヘッドとテール情報を通じてバッファリングテーブル182の最新CANメッセージが保存されたアドレスに移動することができる。
【0094】
ここで、最新CANメッセージはアドレス0x3FDのバッファインデックス100の保存領域アドレス(0、1、2)に順次保存されたCANメッセージであり得、その中で最も最新CANメッセージは0x3FD列のバッファインデックス100のバッファアドレス(2)に保存されたCANメッセージであり得る。
【0095】
図10は、図3のCAN IDSに採用できるIDS探知レイヤでのCANメッセージ削除手続きを説明するための例示図である。
【0096】
図10を参照すると、探知エンジン160aは政策バイナリ(policy binary)のルックアップテーブルのCANメッセージを削除することができる。
【0097】
具体的には、探知エンジン160aはIDSコアから伝達されたCANメッセージのバッファリングテーブル(buffering table、182)の情報を通じてCANメッセージを削除することができる。探知エンジン160aからAPIを含んだインターフェース108を通じてバッファインデックス(buffer index)とバッファタイプ(buffer type)情報が伝達されると、バッファリングテーブル182はそのヘッド(head)情報とテール(tail)情報に基づいてバッファリングテーブルの古くなったメッセージに移動して古くなったメッセージから一つずつ削除することができる。
【0098】
例えば、バッファリングテーブル182は、特定識別子(例えば、buf-5-rec-num)を具備し、探知エンジン160aでインターフェース108を通じてバッファリングテーブルの情報と削除する個数が伝達されると(S104)、バッファリングテーブル182のヘッドとテール情報を通じてバッファリングテーブル182の古くなったメッセージアドレスに移動して古くなったCANメッセージから一つずつ削除することができる。ここで、バッファリングテーブルの情報はバッファタイプ(例えば、00)とバッファインデックス(例えば、100)を含み、削除する個数は2等のように数字で指定され得る。
【0099】
ここで、古くなったCANメッセージはアドレス0x3FDのバッファインデックス100の保存領域アドレス(0、1、2)に順次保存されたCANメッセージであり得、その中で最も古くなったCANメッセージは0x3FD列のバッファインデックス100のバッファアドレス(0)に保存されたCANメッセージであり得る。
【0100】
図11は、図3のCAN IDSに採用できるIDS探知レイヤでのさらに他のCANメッセージ削除手続きを説明するための例示図である。
【0101】
図11を参照すると、探知エンジン160aは政策バイナリ(policy binary)のルックアップテーブルのすべてのCANメッセージを削除することができる。
【0102】
具体的には、探知エンジン160aはIDSコアから伝達されたCANメッセージのバッファリングテーブル(buffering table)の情報を通じてバッファリングテーブルのすべてのCANメッセージを削除することができる。探知エンジン160aからAPIを含んだインターフェース108ですべてのメッセージ削除要請が伝達されると(S112)、バッファリングテーブル182a、182bは、インターフェース108を通じて伝達されるすべてのメッセージ削除要請によりバッファリングテーブル182a、182bの開始位置から全体メッセージを削除し、ヘッド(head)情報とテール(tail)情報を初期化することができる(S114、S116)。
【0103】
前述した探知エンジンはバッファリングテーブルでCANメッセージを持ってき、IDSコアから伝達された政策インデックス情報を通じてフラッシュメモリなどのメモリに保存された政策バイナリの政策ボディーのメッセージ探知政策ルールに基づいてそれぞれのメッセージを探知することができる。CANメッセージの探知政策はBUS探知、メッセージ(message)探知、シグナル(signal)探知、メッセージ周期(interval)探知(例えば1秒ごとに)を記載された順で処理される探知政策順序を含むことができる。このようなCANメッセージ別探知政策は独立的であり、探知政策の設定によって動作の有無が決定され得る。
【0104】
図12a~図12cは、図3のCAN IDSに採用できるCANメッセージの探知政策に対する遂行過程に対するフローチャートである。
【0105】
図12aを参照すると、探知エンジンはCANメッセージ別探知政策により探知を開始する時、まず探知終了(detection end、DE)を初期化することができる(S121)。DE初期化(DE initialize、S121)によると、バス(bus)、バス仲裁のための仲裁識別子(arbitraton id)、ローメッセージ(raw message)、政策ヘッダー(policy header)、政策インデックス(policy index)、バッファリングインデックス(buffering index)等に対するデフォルト(default)設定が初期化され得る。DE初期化(S121)が正常に遂行されず、事前で設定された手続きにより現在探知プロセスを終了することができる。
【0106】
次に、探知エンジンはバス検出フラグ(bus_detect flag)がオン(on)であるかオフ(off)であるかを判断することができる(S122)。バス検出フラグがオフ(off)であれば、探知終了状態に進行することができる。
【0107】
バス検出フラグがオン(on)であれば、探知エンジンはバスロード検出フラグ(bus_load_detect flag)がオン(on)であるかオフ(off)であるかを判断することができる(S123)。
【0108】
バスロード検出フラグがオン(on)であれば、探知エンジンは該当バスロード検出フラグが無効なバスロード(invalid bus load)であるかを判断することができる(S123a)。バスロード検出フラグが無効なバスロードあれば、探知エンジンは探知ログを生成(make detection log)することができる(S123b)。一方、バスロード検出フラグが無効なバスロードでなければ、バスロード検出フラグがオフ(off)である段階に進行することができる。
【0109】
バスロード検出フラグがオフ(off)であれば、探知エンジンはメッセージヘッダーが存在するかを判断することができる(S124)。メッセージヘッダーが存在しなければ、あるいはメッセージヘッダーがヌル(null)であれば、探知エンジンは知られていないCAN ID検出フラグ(unknown_canid_detect flag)がオン(on)であるかオフ(off)であるかを判断することができる(S124a)。知られていないCAN ID検出フラグがオン(on)であれば、探知エンジンは探知ログを生成することができる(S124b)。一方、探知エンジンは知られていないCAN ID検出フラグがオフ(off)であるか探知ログが生成された後に探知プロセスの現在状態を探知終了段階に進行することができる。
【0110】
前述した段階(S123、S123a、S123b、S124、S124a、S124b)はバス(bus)探知手続きに該当し得る。
【0111】
一方、メッセージヘッダーが存在すれば(S124のYes)、探知エンジンはデータ長さコード(data length code、DLC)が正しく定義されているかを判断することができる(S125)。DLCが正しくないと判断した場合、探知エンジンはDLC探知フラグ(dlc_detect flag)がオン(on)であるかオフ(off)であるかを判断することができる(S125a)。DLC探知フラグがオンであれば、探知エンジンは探知ログを生成し(S125b)、現在探知プロセスを終了することができる。一方、DLC探知フラグがオフ(off)であれば、探知プロセスの現在状態はDLCに関係なくDLCが正しいと判断した段階に進行することができる。
【0112】
前述した段階(S125、S125a)はメッセージ(message)探知手続きに該当し得る。
【0113】
図12bを参照すると、探知エンジンはCANバスに載せられたCANメッセージに対して制約条件利用可能であるか(constraint enabled、S126a)、循環重複検査(cyclic redundancy check、CRC)利用可能であるか(CRC enabled、S126b)、チェックサム利用可能であるか(checksum enabled、S126c)、カウンター利用可能であるか(counter enabled、S126d)、羅列(enumerate、enum)利用可能であるか(enum enabled、S126e)、オーバーフロー利用可能であるか(overflow enabled、S126f)、アンダーフロー利用可能であるか(underflow enabled、S126g)、そして、カスタムルール利用可能であるか(custom rule enabled、S126h)を並列的にあるいは選択的に判断することができる。
【0114】
その次に、探知エンジンは、制約条件を利用できるのであれば、制約条件感知ロジック(const detection logic)を実行したり(S127a)、CRCを利用できるのであれば、CRC計算ロジック(CRC calculate logic)を実行したり(S127b)、チェックサムを利用できるのであれば、チェックサム計算ロジック(checksum calculate logic)を実行したり(S127c)、カウンターを利用できるのであれば、カウンターパターンを比較したり(compare counter pattern、S127d)、羅列を利用できるのであれば、羅列値を比較したり(compare enum values、S127e)、オーバーフローを利用できるのであれば、オーバーフロー値をテストしたり(test overflow value、S127f)、アンダーフローを利用することができ、アンダーフロー値をテストしたり(test underflow value、S127g)、そして、カスタムルールを利用できるのであれば、カスタム条件をテストしたり(test costom condition、S127h)することができる。
【0115】
その次に、図12cに示した通り、探知エンジンはどのようなものが探知されたかを判断することができる(something detected、S129)。何も探知されなかったと判断されると、探知エンジンはいま信号が感知されているかを判断し(are there still signals to be detected、S129a)、まだまだ信号が探知中であれば、すべての信号に対して(for all signals)、前記の信号探知プロセスを繰り返し(repeat)遂行するように以前の段階(S126a~S126h)に戻ることができる。
【0116】
一方、何らかのものが探知されたのであれば、探知エンジンは探知ログを生成することができる(S130)。そして、信号が探知中でなければ、探知エンジンは現在探知プロセスの状態を探知ログ生成(S130)後に進行することができる。
【0117】
前述した探知過程(S126a~S126h、S1127a~S127h、S129、S129a、S130)は信号(signal)探知プロセスに対するものであり、探知エンジンによる信号探知結果はCANバスに載せられ得る。
【0118】
引き続き、図12cを参照すると、探知エンジンは周期フラグ(interval_flag)がオン(on)であるかオフ(off)であるかを判断することができる(S131)。周期フラグがオン(on)であれば、探知エンジンは周期が正しいかを判断することができる(interval correct、S131a)。周期が正しくなければ、探知エンジンは現在メッセージが無効であるかを判断することができる(Is current message is invalid、S131b)。現在メッセージが無効であれば、探知エンジンは探知ログを生成することができる(make detection log、S131c)。
【0119】
一方、周期フラグがオフ(on)であるか、周期フラグの周期値が正しいか、現在メッセージが無効でないか、すなわち、過去メッセージが非正常的であるか(old message is abnormal)、現在メッセージが無効であるため探知ログを生成するそれぞれの場合に、探知エンジンは一つのメッセージ探知を完了したもの(detection of one message has been completed)と作動することができる。
【0120】
前述した過程(S131、S131a、S131bおよびS131c)はメッセージ周期(message interval)探知または簡略に周期探知に該当し得る。
【0121】
図13は、図3のCAN IDSのロギングシステム(logging system)に対する例示図である。
【0122】
図13を参照すると、ロギングシステムはIDSコアや探知エンジン、政策規則から受信された探知ログを管理して記録する機能を担当することができる。また、ロギングシステムは記録されたログをクラウドサーバー(cloud server)等の外部システムに伝送することができる。
【0123】
ロギングシステムは外部システムにログメッセージを伝達するために、統合診断サービス(unified diagnostic service、UDS)プロトコルのデータ識別子(data identifier、DID)を利用して車両内のCANメッセージの探知ログ記録を伝送することができる。このために、ロギングシステムは第1ノード(Node#1)と第2ノード(Node#2)の間に約束されたメモリアドレスを共有するように具現され得る。
【0124】
ここで、メモリ106aはSRAM(static ramdom access memory)等の半導体メモリを含むことができる。探知ログ(detection log)記録は所定の大きさ、例えば104バイト(byte)大きさで保存され得る。メモリ106aには読み取り位置(read position、read pos)と書き込み位置(write pos)および所定の大きさ(例えば、48バイト)の状態ログ(status log)が保存され得る。
【0125】
第1ノードはIDSロギングフィーチャー(IDS logging feature、107)を開始し、異常探知(anomaly detection)時に読み取り位置をアップデートし(update read pos)、バッファがオーバーフローされると(if buffer is overflowed)書き込み位置をアップデートすることができる(update write pos)。アップデートされた記録はメモリ106aの読み取り位置または書き込み位置に保存され得る。また、第1ノードは毎1分の周期で状態ログをメモリ106aの状態ログ(status log)に保存することができる。
【0126】
第2ノードはゲートウェイ(gateway、GW)UDSフィーチャー109を開始し、100ミリ秒の周期でメモリ106aの読み取り位置と書き込み位置を読み取り(polling)、これを利用して4個の探知ログデータを獲得することができる。また、第2ノードは毎10分の周期で状態ログを読み取って自身の状態を状態ログに保存することができる。
【0127】
前述したロギングシステムは第1ノードのIDSロギングフィーチャー107に対応することができ、外部システムに探知ログ情報を入れたログメッセージを提供するために第2ノードのゲートウェイGWを利用するように構成され得る。
【0128】
前述したロギングシステムはIDSすなわち、探知エンジンでCANバスで異常状況を探知した場合に動作する。発生されるログメッセージはゲートウェイのUDSプロトコルを通じて外部システムに伝達され得る。ロギングシステムはUDSプロトコルを利用したメッセージ伝送機能を通じて予め共有された共有メモリアドレスを有することができる。
【0129】
図14は、図13のロギングシステムに採用できるメッセージフォーマットに対する例示図である。
【0130】
図14を参照すると、ロギングシステムに採用できるメッセージフォーマットはUDSプロトコルを利用するメッセージフォーマットを含むことができる。
【0131】
メッセージフォーマットはバッファヘッダー(buffer header、buf header)、探知ログ(detection log)および状態ログ(status log)で構成され得る。
【0132】
バッファヘッダーは1バイトの大きさを有し、ヘッド(head)とテール(tail)を含むことができる。ヘッドとテールはそれぞれ4ビット(bit)の大きさを有することができるが、これに限定されはしない。すなわち、バッファヘッダーはヘッダー(head)に対応する書き込み位置(write position)とテール(tail)に対応する読み取り位置(read position)で構成され得る。読み取り位置は第2ノードが管理し、書き込み位置は第1ノードが管理することができる。
【0133】
探知ログは1040バイトの大きさを有し、104バイトの10個のバッファ(buffer[0]~buffer[9])を含むことができるが、これに限定されはしない。
【0134】
探知ログが発生すれば、バッファヘッダーの書き込み位置を読み込んで記録する探知ログ位置を求めた後、該当位置にメッセージを保存し、次の位置の探知ログ位置に読み取り位置をアップデートすることができる。状態ログは1分ごとにIDSまたは探知エンジンの現在状態を記録することができる。状態ログは48バイトの大きさを有し、IDSまたは探知エンジンの状態情報(status information、status info)を記録することができる。
【0135】
前述した場合、第2ノードでは100msごとに共有メモリのバッファヘッダーの書き込み位置または読み取り位置の差に伝送する探知ログが存在するかを確認することができる。伝送する探知ログがある場合、第2ノードは伝送する探知ログの個数を求め、UDSプロトコルを利用して該当探知ログを外部システムに伝送することができる。
【0136】
また、第2ノードはUDSリクエスト(request)イベント要請または毎10分ごとに状態ログを読み込んでUDSに伝送することができる。該当時間は顧客の要求事項により時間を修正することができ、IDS攻撃の有無にかかわらずゲートウェイの状態値を伝送することができる。
【0137】
図15は、図3のCAN IDSに採用できる探知ログバッファのメッセージ構造を示した例示図である。
【0138】
図15を参照すると、探知ログバッファのための探知ログのメッセージ構造は1バイトのログタイプ(log type)を含む。ログタイプは1ビット(bit)のタイプ(type)と7ビットのログサイズで構成され、ここでタイプはログ類型を区分し、ログサイズはログタイプを含んだ全体の大きさを示す。探知ログのログ類型は例えば0で設定され得る。
【0139】
また、探知ログのメッセージ構造は異常探知されたCANバス番号を示す1バイトのCANバス番号(can bus number)、1バイトの異常探知された規則の番号(violation rule id)、メッセージの信号開始位置を数字で表示する2バイトの信号開始ビット(signal start bit)、CANメッセージの信号の長さを数字で表示する2バイトの信号の長さ(signal length)、CANメッセージの信号の長さを数字で表示する1バイトのローメッセージ長さ(raw message length)、4バイトのCANメッセージのCAN ID(message can id)、異常探知された時間を年月日時分秒に変換できるベース数字で表示する4バイトの探知時間(detection time)、異常探知された内容を数字で表示する8バイトの探知理由(detection reason)、ログが重複する時に重複された回数を数字で表示する2バイトの重複回数(duplication number)、デフォルトで0x0に初期化され得、追加必要情報を入れるための予約空間を表示する14バイトの予約(reserved)、CANメッセージの全体データを表示する64バイトのローメッセージボディ(raw message body)で構成されるフィールドを含むことができる。
【0140】
図16は、図3のCAN IDSの探知ログ関連作動手続きを説明するための例示図である。
【0141】
図16を参照すると、CAN IDS160bで異常探知メッセージが発生すれば、探知エンジンはバッファヘッダーの書き込み値(write value)を参照して該当メモリのバッファ領域の探知ログバッファに異常探知メッセージを記録する。
【0142】
具体的には、異常探知メッセージが発生すれば、CAN IDS160bはバッファヘッダーの読み取り位置に第1探知ログ(Detection log #1)を記録することができる(S162)。読み取り位置がバッファ[0]であるとき、書き込み位置はバッファ[1]で設定され得る。
【0143】
次に、異常探知メッセージが発生すれば、CAN IDS160bはバッファヘッダーの読み取り位置に第2探知ログ(Detection log #2)を記録することができる(S164)。この時、読み取り位置はバッファ[0]で維持され、書き込み位置は以前のメッセージが記録されたバッファ位置の次の位置であるバッファ[2]で設定され得る。
【0144】
次に、異常探知メッセージが発生すれば、CAN IDS160bはバッファヘッダーの読み取り位置に第3探知ログ(Detection log #3)を記録することができる(S166)。この時、読み取り位置はバッファ[0]で維持され、書き込み位置は以前のメッセージが記録されたバッファ位置の次の位置であるバッファ[3]で設定され得る。
【0145】
一方、ゲートウェイ190はDIDデータ伝送状態を記録しなければならず、すでに外部システムで読み込んだDIDに対してもゲートウェイが重複で要請することができないので、ゲートウェイ190に合う適切なDIDデータ伝送手続きが必要である。
【0146】
図17は、図16のCAN IDS作動手続きに対するゲートウェイの作動手続きを説明するための例示図である。
【0147】
図17を参照すると、ゲートウェイ190はまず、バッファヘッダーの読み取り値と書き込み値を比較するか読み取り値と書き込み値を通じてバッファカウントをチェックすることができる(S171)。
【0148】
次に、ゲートウェイ190は読み取り値と書き込み値の差だけ計数されたバッファのアドレスをデータ抽出要請信号に含ませて外部システム200に伝送することができる(S172)。例えば、計数されたバッファのアドレスが3であれば、ゲートウェイ190は伝送される3個のログデータに対する情報を外部システム200に伝達することに該当し得る。本実施例にゲートウェイ190は最大4個のDID番号でデータ抽出を要請するものとして例示するが、これに限定されるものではない。
【0149】
また、ゲートウェイ190はOTA(over the air)、DIAGに対する例外処理を遂行し、3個のログデータのDIDを読み込むように要請メッセージを生成することができる。そして、遠隔DIAGのための例外処理関連メッセージを外部システム200に伝送することができる(S173)。
【0150】
この時、外部システム200はゲートウェイ190から伝達された要請に対してUDS DID読み取り要請メッセージをゲートウェイ190に伝達することができる(S174)。すなわち、ゲートウェイ190は外部システム200から先立って伝達した要請に対応するUDS DID読み取り要請メッセージを受けることができる。
【0151】
次に、UDS DID読み取り要請メッセージを受信すれば、ゲートウェイ190はバッファヘッダーの読み取り値を参照するバッファのデータを読み込み、読み込んだデータを外部システム200に伝送することができる(S175)。例えば、ゲートウェイ190はUDS DID読み取り要請メッセージの受信によりバッファで第1ログデータ(0 log dataまたはlog data #0)を読み込み、UDS DID読み取り要請メッセージの応答(response)として第1ログデータを外部システム200に提供することができる。
【0152】
ゲートウェイ190からメッセージを受信すれば、外部システム200は成功メッセージをゲートウェイ190に伝送することができる(S176)。成功メッセージを受信したゲートウェイ190は読み取り値に1を足すことができる。すなわち、ゲートウェイ190は成功メッセージの受信によりバッファヘッダーの読み取り位置をアップデートすることができる(update read position of buffer header)。
【0153】
一方、車両に配布されたCAN IDSのバージョン情報およびシステム資源使用情報などを含む状態ログ(status log)は割り当てられたアドレス領域にデータを記録するように構成される。この時、ゲートウェイ190は状態ログバッファに1個のDID保存空間を提供することができる。
【0154】
図18は、図3のCAN IDSに採用できる状態ログバッファのメッセージ構造を示した例示図である。
【0155】
図18を参照すると、状態ログバッファのための状態ログのメッセージ構造は1個のDID保存空間であり、多数のフィールドで構成され得る。まず、状態ログのメッセージ構造は1バイトのログタイプ(log type)を含むことができる。ログタイプは1ビット(bit)のタイプ(type)と7ビットのログサイズで構成され、ここでタイプはログ類型を区分し、ログサイズはログタイプを含んだ全体の大きさを示すことができる。状態ログのログ類型は例えば0で設定され得る。
【0156】
また、状態ログのメッセージ構造は順次発生した状態メッセージの番号を表示する2バイトの順序番号(sequnce number)を含むことができる。順序番号は状態メッセージを書き込む時に順次増加し、ゲートウェイが予め保存された順序番号を持っていくと初期化され得る。
【0157】
また、状態ログのメッセージ構造はCAN IDSが使用中のRAMメモリを表示する4バイトのメモリ使用量(memory usage)を含むことができる。メモリ使用量の単位はパーセント(%)であり得るが、これに限定されはしない。
【0158】
また、状態ログのメッセージ構造はIDSが政策保存のために使用中であるフラッシュメモリを表示する4バイトのフラッシュ使用量(flash usage)を含むことができる。フラッシュ使用量の政策ファイルの大きさの単位はパーセント(%)であり得、政策バイナリファイルの上位4バイトを使うことができる。
【0159】
また、状態ログのメッセージ構造は政策バージョン情報を表示する6バイトの政策バージョン(policy version)を含むことができる。政策バージョンは重要である(major)、重要でない(minor)、リリース(release)情報などを含むことができる。例えば、重要であるは1で表示し、重要でないは0で表示し、リリース情報は1次を示す1、2次を示す2などで表示され得る。
【0160】
また、状態ログのメッセージ構造はIDSファームウェアバージョン情報を表示する6バイトのIDSファームウェアバージョン(IDS firmwar version)を含むことができる。IDSファームウェアバージョンは多数(major)、少数(minor)、リリース(release)情報などを含むことができる。例えば、多数は1で表示し、小数は0で表示し、リリース情報は1次を示す1、2次を示す2などで表示され得る。
【0161】
また、状態ログのメッセージ構造は基本であるいはデフォルトで0x0で初期化され得、追加で必要な情報を入れるための予約空間を示す25バイトの予約(reserved)を含むことができる。
【0162】
前述した状態ログは1分ごとに状態ログバッファに上書き(overwrite)で記録され得る。
【0163】
図19は、図3のCAN IDSの状態ログ関連作動手続きを説明するための例示図である。
【0164】
図19を参照すると、CAN IDS160bまたはCAN IDS160bの探知エンジンは状態情報バッファ(status info buffer、192)に状態ログ(status log)を周期的に記録することができる。状態情報バッファ192の大きさは48バイトであり得るが、これに限定されはしない。
【0165】
一例として、CAN IDS160bは第一状態ログ(status log #0)を状態情報バッファ192に記録(write)することができる(S190)。そして、1分(1 minute、1Min)間隔で第2状態ログ(status log #1)、第3状態ログ(status log #2)、そして、第n状態ログ(status log #n)を状態情報バッファ192に順次記録することができる(S191、S192、S19n)。nは4以上の任意の自然数であり得る。
【0166】
図20は、本開示の他の実施例に係るCAN IDSに対する概略的な構成図である。
【0167】
図20を参照すると、CAN IDS2000は少なくとも一つのプロセッサ(processor、2010)、メモリ(memory、2020)、およびネットワークと連結されて通信を遂行する送受信装置(transceiver、2060)を含むことができる。また、CAN IDS2000は保存装置(storage device、2030)、入力インターフェース装置(input interface device、2040)、出力インターフェース装置(output interface device、2050)等をさらに含むことができる。CAN IDS2000に含まれたそれぞれの構成要素はバスによって連結されて通信を遂行できる。
【0168】
プロセッサ2010は中央処理装置(central processing unit、CPU)、グラフィック処理装置(graphics processing unit、GPU)、または本発明の実施例に係る方法が遂行される専用のプロセッサを意味し得る。
【0169】
メモリ2020および保存装置2030それぞれは揮発性保存媒体および不揮発性保存媒体のうち少なくとも一つで構成され得る。例えば、メモリ2020は読み取り専用メモリ(read only memory、ROM)およびランダムアクセスメモリ(random access memory、RAM)のうち少なくとも一つで構成され得る。
【0170】
また、プロセッサ2010はメモリ2020および保存装置2030のうち少なくとも一つに保存されたプログラム命令(program command)を実行することができる。プログラム命令は少なくとも一つの命令を含み、少なくとも一つの命令はソフトウェアモジュールやプログラムに含まれ得る。
【0171】
入力インターフェース装置2040はキーボード、マイク、タッチパッド、タッチスクリーンなどの入力手段から選択される少なくとも一つと少なくとも一つの入力手段を通じて入力される信号を予め保存された命令とマッピングしたり処理する入力信号処理部を含むことができる。
【0172】
出力インターフェース装置2050はプロセッサ2010の制御により出力される信号を予め保存された信号形態やレベルでマッピングしたり処理する出力信号処理部と、出力信号処理部の信号により振動、光などの形態で信号や情報を出力する少なくとも一つの出力手段を含むことができる。少なくとも一つの出力手段はスピーカー、ディスプレイ装置、プリンタ、光出力装置、振動出力装置などの出力手段から選択される少なくとも一つを含むことができる。
【0173】
送受信装置2060は近距離無線ネットワークやケーブル連結、衛星との通信、汎用基地局との有線または無線通信、モバイルエッジコアネットワークやコアネットワーク(core network)とのアイディアルバックホールリンク(ideal backhaul link)またはノン(non)-アイディアルバックホールリンクの連結などのための通信インターフェースやサブ通信システムを含むことができる。
【0174】
前述した本発明に係る方法は、多様なコンピュータ手段を通じて実行され得るプログラム命令形態で具現されてコンピュータ読み取り可能媒体に記録され得る。コンピュータ読み取り可能媒体はプログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。コンピュータ読み取り可能媒体に記録されるプログラム命令は本発明のために特別に設計されて構成されたものであるかコンピュータソフトウェア当業者に公知の使用可能なものであってもよい。
【0175】
コンピュータ読み取り可能媒体の例にはロム(rom)、ラム(ram)、フラッシュメモリ(flash memory)等のようにプログラム命令を保存し遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例にはコンパイラ(compiler)により作られるような機械語コードだけでなくインタープリタ(interpreter)等を使ってコンピュータによって実行され得る高級言語コードを含む。前述したハードウェア装置は本発明の動作を遂行するために少なくとも一つのソフトウェアモジュールで作動するように構成され得、その逆も同様である。
【0176】
本発明の一部の側面は装置の文脈で説明されたが、それは相応する方法による説明も示すことができ、ここでブロックまたは装置は方法段階または方法段階の特徴に相応する。同様に、方法の文脈で説明された側面はまた、相応するブロックまたはアイテムまたは相応する装置の特徴で示すことができる。方法段階のいくつか又は全部は例えば、マイクロプロセッサ、プログラム可能なコンピュータまたは電子回路のようなハードウェア装置によって(または利用して)遂行され得る。いくつかの実施例で、最も重要な方法段階の少なくとも一つ以上はこのような装置によって遂行され得る。
【0177】
実施例で、プログラム可能なロジック装置例えば、フィールドプログラマブルゲートアレイがここで説明された方法の機能の一部又は全部を遂行するために使われ得る。実施例で、フィールドプログラマブルゲートアレイ(field-programmable gate array)はここで説明された方法のうち一つを遂行するためのマイクロプロセッサ(microprocessor)とともに作動することができる。一般的に、方法は何らかのハードウェア装置によって遂行されることが好ましい。
【0178】
以上、実施例を参照して説明したが、該当技術分野の熟練した当業者は下記の特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で本発明を多様に修正および変更できることが理解できるであろう。
【要約】      (修正有)
【課題】コントローラ領域ネットワーク(CAN)の侵入を探知する侵入探知システム(IDS)及びその作動方法を提供する。
【解決手段】作動方法は、CANパケットミラーリングシステムによって、AUTOSAR階層のAUTOSAR Pduルータ領域に存在するCANドライバからCANメッセージを受信する段階、受信したメッセージをメモリの複数の保存領域に保存する段階、IDSコアによって、CANパケットミラーリングシステムでコピーされたデータを読み込んで探知エンジンベースに伝達する段階およびIDSコア階層のIDSコアによって、IDSの政策規則である政策バイナリファイルを保存する第1メモリ領域とCANメッセージをバッファリングし保存するためのバッファリングテーブルを保存する第2メモリ領域を分けて管理する段階を含む。
【選択図】図3
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12a
図12b
図12c
図13
図14
図15
図16
図17
図18
図19
図20