JP7435929B2 - 不正通信検知装置、通信許可リスト生成装置、不正通信検知方法、通信許可リスト生成方法、不正通信検知プログラム、及び通信許可リスト生成プログラム - Google Patents

不正通信検知装置、通信許可リスト生成装置、不正通信検知方法、通信許可リスト生成方法、不正通信検知プログラム、及び通信許可リスト生成プログラム Download PDF

Info

Publication number
JP7435929B2
JP7435929B2 JP2023568237A JP2023568237A JP7435929B2 JP 7435929 B2 JP7435929 B2 JP 7435929B2 JP 2023568237 A JP2023568237 A JP 2023568237A JP 2023568237 A JP2023568237 A JP 2023568237A JP 7435929 B2 JP7435929 B2 JP 7435929B2
Authority
JP
Japan
Prior art keywords
communication
message
periodic
permission list
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023568237A
Other languages
English (en)
Other versions
JPWO2023170928A5 (ja
JPWO2023170928A1 (ja
Inventor
雅道 丹治
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2023170928A1 publication Critical patent/JPWO2023170928A1/ja
Publication of JPWO2023170928A5 publication Critical patent/JPWO2023170928A5/ja
Application granted granted Critical
Publication of JP7435929B2 publication Critical patent/JP7435929B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures

Description

本開示は、不正通信検知装置、通信許可リスト生成装置、不正通信検知方法、通信許可リスト生成方法、不正通信検知プログラム、及び通信許可リスト生成プログラムに関する。
近年、IoT(Internet of Things)システム内部に取り付けた不正機器などから、ネットワーク内を流れるメッセージに成りすました不正メッセージを送信することで、当該システムの制御を騙す攻撃が研究等で明らかにされている。
このため、ネットワーク内を流れるメッセージを監視し、不正メッセージを検知する不正通信検知機能を搭載する動きが進んでいる。ネットワーク内を流れるメッセージに固定的、周期的なものが多く存在するシステムにおいては、それら正常なメッセージに関する情報を許可リストとして保持し、そこから逸脱したメッセージが流れた場合に不正メッセージとして検知する、許可リスト型の不正通信検知機能の適用が有効である。許可リスト型の不正通信検知機能は、不正メッセージに関する情報を保持する拒否リスト型の不正通信検知機能と比べ、リストの更新を頻繁に行う必要がないというメリットも存在する。
不正通信検知機能が周期条件による検知を行う場合、すなわち、周期性を持つメッセージについて正常な周期から逸脱した場合に不正メッセージとして検知する機能を備える場合、当該ネットワークで通常発生し得る遅延、早着などの周期誤差を考慮した上で、適切な周期範囲(正常と判断する周期の上限値と下限値)を周期条件として設定する必要がある。設定した周期条件が狭すぎると、正常メッセージを不正メッセージと判断する誤検知の可能性が高まる。一方、広すぎると、不正メッセージを検知しない検知漏れの可能性が高まる。
そこで、特許文献1では、通信データを学習、解析して周期条件を設定する方式を提案している。
特開2021-048495号公報
特許文献1に開示された方法では、通信データ内で発生している周期誤差のワーストケースを包含した周期条件を生成することで、誤検知の発生を抑制することが可能となる。しかしながら、周期メッセージの中にはネットワーク環境やその周期メッセージを送信するアプリケーションの制約などによって、周期誤差が特徴的に変動するものが存在する。したがって、単に通信データ内の周期誤差のワーストケースを考慮しただけでは、正常メッセージと不正メッセージの判定ができないという問題があった。
本開示は、上記のような課題を解決するためになされたものであり、より精度良く通信メッセージが正常メッセージか否かの判定を行うことができる不正通信検知装置を得ることを目的とする。
本開示の一態様の不正通信検知装置は、通信メッセージを取得する通信取得部と、通信メッセージの時間変化する状態毎に設定された周期条件に基づき、通信メッセージが正常なメッセージか否かを判定する通信判定部と、を備え、通信判定部は、通信メッセージの周期誤差に影響を与える要因である遷移種別と、遷移種別毎に設定された複数の遷移条件とに基づいて分類される通信メッセージの状態に基づき、通信メッセージの周期条件を特定し、通信メッセージが正常なメッセージか否かを判定する
本開示の一態様の不正通信検知装置は、通信メッセージを取得する通信取得部と、通信メッセージの時間変化する状態毎に設定された周期条件に基づき、通信メッセージが正常なメッセージか否かを判定する通信判定部と、を備え、通信判定部は、帯域負荷、送信回数、時間間隔のうち少なくとも一つに基づき、通信メッセージの状態を特定し、特定した通信メッセージの状態に対して設定された周期条件に基づき、通信メッセージが正常なメッセージか否かを判定する。
本開示に係る不正通信検知装置は、通信メッセージの時間変化する状態毎に設定された周期条件に基づき、通信メッセージが正常なメッセージか否かを判定する通信判定部を備えたので、時間変化する状態毎の周期条件に基づき通信メッセージの判定を行うことにより、より精度良く通信メッセージが正常メッセージか否かの判定を行うことができる。
実施の形態1に係る車両システム10の構成を示す構成図である。 実施の形態1に係るGW11及び不正通信検知装置100の構成を示す構成図である。 通信メッセージのメッセージフォーマットの具体例を示す概念図である。 ルールリスト122のフォーマットの具体例を示す概念図である。 周期条件リスト123のフォーマットの具体例を示す概念図である。 周期条件リスト124のフォーマットの具体例を示す概念図である。 周期条件リスト125のフォーマットの具体例を示す概念図である。 周期条件リスト126のフォーマットの具体例を示す概念図である。 実施の形態1に係る不正通信検知装置100のハードウェア構成を示すハードウェア構成図である。 実施の形態1に係る不正通信検知装置100の動作を示すフローチャートである。 実施の形態1に係る通信許可リスト生成装置200の構成を示す構成図である。 実施の形態1に係る処理部210の内部動作及び入出力情報を説明するためのフロー図である。 通信仕様221のフォーマットの具体例を示す概念図である。 通信データ222のフォーマットの具体例を示す概念図である。 設定定義223のフォーマットの具体例を示す概念図である。 実施の形態1に係る通信許可リスト生成装置200のハードウェア構成を示すハードウェア構成図である。 実施の形態1に係る通信仕様解析部211が行う通信仕様解析処理を示すフローチャートである。 実施の形態1に係る通信仕様解析部211が行うメッセージ情報解析サブルーチンを示すフローチャートである。 実施の形態1に係る通信仕様解析部211が行うシグナル情報解析サブルーチンを示すフローチャートである。 内部生成ファイル301の具体例を示す概念図である。 内部生成ファイル302の具体例を示す概念図である。 内部生成ファイル303の具体例を示す概念図である。 内部生成ファイル304の具体例を示す概念図である。 内部生成ファイル305の具体例を示す概念図である。 実施の形態1に係る通信許可リスト出力部212が行う通信許可リスト出力処理を示すフローチャートである。 実施の形態1に係る通信データ解析部が行う通信データ解析処理を示すフローチャートである。
実施の形態1.
本開示では、初めに通信許可リストに基づいて不正通信検知を行う不正通信検知フェーズについて説明した後、当該通信許可リストを生成する通信許可リスト生成フェーズについて説明する。また、不正通信検知フェーズで説明する不正通信検知装置と、通信許可リスト生成フェーズで説明する通信許可リスト生成装置とを組み合わせて通信システムが構成される。
(不正通信検知フェーズ)
図1は、実施の形態1に係る車両システム10の構成を示す構成図である。
車両システム10は、GW(Gateway)11、ケーブル12、第一車載機器1、第二車載機器2、・・・第n車載機器nを備える。nは1以上の整数であり、実際の車両には数十から百数十個の車載機器が搭載される。
GW11、第一車載機器1、第二車載機器2、・・・第n車載機器nはケーブル12を介して互いに通信を行う。ケーブル12、車両内通信で標準的に用いられているCAN(Controller Area Network)通信に対応したケーブルである。CANはブロードキャスト通信のため、GW11はケーブル12を流れる通信を全て受信することが可能である。
図2は、GW11及び不正通信検知装置100の構成を示す構成図である。
GW11は、不正通信検知装置100、GW機能部130、通信部140を備える。以下において、「部」は機能構成の要素を意味し、「部」は適宜「処理」、「工程」に読み替えてもよい。また、不正通信検知装置100の動作が不正通信検知方法に対応し、不正通信検知方法をコンピュータに実行させるプログラムが不正通信検知プログラムに対応する。
GW機能部130は、通信メッセージの転送を行うものである。
通信部140は、データの通信を行うものである。通信部140は、データを受信する受信部141と、データを送信する送信部142とを備える。また、受信部141は、単位時間あたりに受信する通信メッセージの数をカウントすることで、ケーブル12の帯域負荷状況を観測する機能を有する。
不正通信検知装置100は、車両システム10を流れる通信メッセージの不正検知を行うものであり、処理部110及び記憶部120を備える。
処理部110は、通信取得部111、通信判定部112及びアラート部113を備える。
通信取得部111は、通信メッセージを取得するものである。実施の形態1において、通信取得部111は、受信部141が受信した通信メッセージを、受信部141での受信時刻情報と共に取得し、通信判定部112に送信する。
通信判定部112は、通信メッセージの時間変化する状態毎に設定された周期条件に基づき、通信メッセージが正常なメッセージか否かを判定するものである。ここで、通信メッセージの状態とは、周期誤差に対して影響を及ぼす通信メッセージの特徴を示すものであり、実施の形態1においては、通信メッセージの周期誤差に影響を与える要因である遷移種別と、遷移種別毎に設定された複数の遷移条件とに基づいて分類される。すなわち、通信判定部112は、遷移種別と遷移条件とに基づいて分類される通信メッセージの状態に基づき、通信メッセージの周期条件を特定し、通信メッセージが正常なメッセージか否かを判定する。
通信メッセージの状態について、より具体的には、通信メッセージの周期誤差に影響を与える特徴を帯域負荷、送信回数、時間間隔といった複数の遷移状態に項目分けした後、各項目においてさらに複数の項目を遷移条件として設定している。遷移状態と遷移条件の詳細については後述する。
実施の形態1において、通信判定部112は、通信メッセージの状態毎の周期条件が設定された周期条件リストを参照することにより、通信メッセージが正常なメッセージであるか否かを判定する。より具体的には、通信判定部112は、通信メッセージの受信周期が後述する周期条件リストに定められた周期範囲を逸脱しているか否かを判定することにより、通信メッセージが正常なメッセージか否かを判定する。
また、実施の形態1において、通信判定部112は、通信メッセージの周期誤差に影響を与える要因である遷移種別と、遷移種別毎に設定された複数の遷移条件とに基づいて分類される通信メッセージの状態に基づき、通信メッセージの周期条件を特定し、前記通信メッセージが正常なメッセージか否かを判定する。
ここでの遷移種別とは、例えば、帯域負荷、送信回数、時間間隔であって、実施の形態1において、通信判定部112は、帯域負荷、送信回数、時間間隔のうち少なくとも一つに基づき、通信メッセージの状態を特定し、特定した通信メッセージの状態に対して設定された周期条件に基づき、通信メッセージが正常なメッセージか否かを判定する。
アラート部113は、通信判定部112が通信メッセージが正常なメッセージでないと判定した場合、ユーザに対してアラートを提示するものである。
記憶部120は、各種情報を記憶するものであり、特に通信許可リスト121を記憶するものである。通信許可リスト121は、不正通信検知のルールを定めたものであり、ルールリスト122と周期条件リスト123~126を備える。すなわち、実施の形態1において、記憶部120は、複数の周期条件リスト123~126とルールリスト122とを通信許可リスト121として記憶する。
ルールリスト122は、通信メッセージに含まれるIDと周期条件リストの種類を示す周期条件IDとを対応付けたものである。
周期条件リスト123~126は、通信メッセージの状態毎の周期条件が設定されたものである。より具体的には、周期条件リストは、通信メッセージの状態毎の正常な周期範囲を周期条件として保持する。
実施の形態1において、周期条件リストは周期条件リスト123~126の4つのリストが存在するものとしているが、周期条件リストの数はこれに限らず少なくとも1つ以上であればよい。ルールリスト122および周期条件リスト123~126の詳細は後述する。通信許可リスト121は不揮発性の記憶装置に記憶され、GW11が起動する際に不揮発性の記憶装置からメモリに展開される。この他にも、記憶部120にはGW11で使用、生成、入力、出力、送信または受信される不図示のデータが記憶される。
図3は、車両システム10内を流れ、不正通信検知装置100が検知対象とするCANの通信メッセージのメッセージフォーマットである。CANの通信メッセージは、IDと、DLCと、データフィールドを備える。IDは通信メッセージを一意に識別するために付与されたメッセージ番号である。DLC(Data Length Code)は次に続くデータフィールドのデータ長をバイト単位で示す。データフィールドはアプリケーションが用いるデータが格納されたフィールドであり、CAN通信では最大8バイトである。データフィールドは複数のシグナルで構成される。シグナルは1~64ビットのデータ長を取り得る。ID、DLC、データフィールドおよび各シグナルの詳細は車両システム10毎に定義される。
CANの通信メッセージには、メッセージ毎に予め定められた周期で定期的に送信される周期メッセージが多く存在する。しかしながらその周期は必ずしも正確に維持されてはおらず、様々な要因の影響を受けて早着や遅延などの誤差が生じている。
実車内のネットワークの通信を観測した場合、これら周期メッセージの中には周期誤差の遷移に特徴がみられるものが存在する。例えば、10msなどの短い周期を持つ周期メッセージの場合、CANケーブルの帯域負荷の影響を受けやすく、負荷が高い場合には送信遅延が長くなり、周期誤差が大きくなる傾向がある。あるいは、送信回数や時間間隔など一定のタイミングで大きな周期誤差が生じる挙動を繰り返すものも存在する。これらは、当該周期メッセージを送信する車載機器やあるいは車載機器上のアプリケーションなどの影響によるものと推察される。本開示はこれら特徴をもつ周期メッセージに対する周期条件の設定方法に関するものである。
図4は、通信許可リスト121を構成するルールリスト122の内部構成及び取り得る値の一例を示すものである。通信許可リスト121は、車両システム10内を流れる正常なCANメッセージの情報を記載したリストである。
通信許可リスト121内のルールリスト122を構成する項目としては、ルール番号、ID,DLC,シグナル条件、周期条件IDがある。ルール番号はルールリスト122内で各ルールを一意に識別するためにシーケンシャルに付与される番号である。IDおよびDLCは、図3に示したCANの通信メッセージにおけるIDおよびDLCに対応する。シグナル条件は、図3に示したCANの通信メッセージにおける各シグナルの先頭ビット、レングス、最小値、最大値を定義する。周期条件IDは、周期メッセージについて、その周期条件を定義した周期条件リストへの紐づけを行うための番号である。
図4の例では、IDが0x10、0x20、0x30および0x40の4つの周期メッセージの情報が記載されている。ここで、ID=0x10の周期メッセージは、周期が10msであり、その周期誤差は帯域負荷の影響を大きく受けるメッセージであるものとする。具体的には、ID=0x10はケーブル12の帯域負荷が低い(例えば40%未満)場合には10msの周期に対して±1ms未満の周期誤差しか生じないものの、帯域負荷が中程度(例えば40%以上70%未満)の場合は±2ms未満、帯域負荷が高(例えば70%以上)の場合は±3ms未満の周期誤差となるものとする。
ID=0x20の周期メッセージは、周期が100msであり、その周期誤差は送信回数の影響を大きく受けるメッセージであるものとする。具体的には、ID=0x20は最初の3パケットは100msの周期に対して±2ms未満の周期誤差しか生じないものの、次の4パケット目は常に20msほど遅延するような挙動を繰り返すものとする。
ID=0x30の周期メッセージは、周期が200msであり、その周期誤差は時間間隔の影響を大きく受けるメッセージであるものとする。具体的には、ID=0x30は最初の約39秒間は200msの周期に対して±5ms未満の周期誤差しか生じないものの、続く1秒間は±15ms以上の周期誤差となる挙動を繰り返すものとする。
ID=0x40の周期メッセージは、周期が500msであり、その周期誤差の遷移は帯域負荷や一定タイミングとの関連は特にみられないものとする。本実施例では簡略化のためルールリスト122には4つのCANメッセージのルールのみ示しているが、車両システム10を流れ得る正常なCANメッセージの情報は、周期性を持たないメッセージも含めて、全て抜け漏れなく記載することが望ましい。
図5はID=0x10の周期条件リスト123の内部構成及び取り得る値の一例を示すものである。周期条件リスト123を構成する項目としては、周期条件ID,遷移種別、状態、周期条件、遷移条件がある。周期条件IDはルールリスト122と周期条件リスト123~126の紐づけを行うための番号で、ルールリスト122でID=0x10に関するルールが記載されたルール番号1における周期条件IDと同じ値が記載される。遷移種別には”帯域負荷”、”カウンタ”、”時間”、“無”のいずれかが記載される。ここで、”カウンタ”は送信回数に、”時間”は時間間隔に対応する。
実施の形態1において、ID=0x10の通信メッセージは帯域負荷の影響を受けるため、”帯域負荷”が記載される。本項目は文字列ではなく予め定めた種別番号などを記載する形式でも良い。状態及び遷移条件にはID=0x10の周期誤差に差異が現れる条件を定義する。実施の形態1においては、帯域負荷が低、中、高の3段階で、それぞれ周期誤差が±1ms未満、±2ms未満、±3ms未満と変化するので、この3段階を状態として定義する。周期条件は各状態において正常とみなす周期条件を前回受信時からの時間の取り得る値範囲として記載する。
図6はID=0x20の周期条件リスト124の内部構成及び取り得る値の一例を示すものである。周期条件リスト124の内部構成は周期条件リスト123と同一である。周期条件リスト124の周期条件IDは1、遷移種別は“カウンタ”が記載される。状態としては「最初の3パケット」と「後の1パケット」という2状態を定義する。
図7はID=0x30の周期条件リスト125の内部構成及び取り得る値の一例を示すものである。周期条件リスト125の内部構成は周期条件リスト123と同一である。周期条件リスト125の周期条件IDは2、遷移種別は“時間”が記載される。状態としては「最初の39秒間」と「後の1秒間」という2状態を定義する。
図8はID=0x40の周期条件リスト126の内部構成及び取り得る値の一例を示すものである。周期条件リスト126の内部構成は周期条件リスト123と同一である。周期条件リスト126の周期条件IDは3、遷移種別は“無”が記載される。状態は定義しないため0、遷移条件も“無”とする。周期条件は、周期500msに対し、実車環境で発生し得る周期誤差を考慮して任意のマージンを設けた値を記載する。実施の形態1においては±20msのマージンを設けることとする。
次に、不正通信検知装置100のハードウェア構成について説明する。図9は、不正通信検知装置100のハードウェア構成を示すハードウェア構成図である。不正通信検知装置100が備える通信取得部111、通信判定部112、及びアラート部113は、記憶装置1002に格納されたプログラムが処理装置1001で実行されることにより実現される。
処理装置1001は、CPU(Central Processing Unit)中央処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)等のプロセッサである。また、複数のプロセッサにより、不正通信検知装置100の各機能を実現しても良い。また、FPGA(Field Programmable Gate Array)やASIC等で不正通信検知装置100の各機能を実現しても良い。
記憶部120は、記憶装置1002によって実現され、記憶装置1002は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(ErasableProgrammable ROM)、EEPROM(Electrically EPROM)等の不揮発性または揮発性の半導体メモリであっても良いし、ハードディスク、フレキシブルディスク等の磁気ディスクであっても良いし、ミニディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)等の光ディスクでも良い。
通信装置3は、通信を行う装置であり、レシーバとトランスミッタとを備える。具体的には、通信装置3は通信チップまたはNIC(Network Interface Card)である。
図10は、不正通信検知装置100が行う不正通信検知処理のフローチャートである。
ステップS1において、通信取得部111は、受信部141が受信した通信メッセージを、受信部141での受信時刻情報と共に取得し、通信判定部112に送信する。
ステップS2において、通信判定部112は、渡された通信メッセージの内容を解析し、当該メッセージに含まれるID,DLC,データフィールドの値を取得する。
ステップS3において、通信判定部112は、当該通信メッセージに合致する情報がルールリスト122に存在するかを判定する。判定では、ルールリスト122に記載された検知ルールの中から、ID条件とDLC条件がステップS2で取得した値と一致するルールを探索する。一致するルールが存在した場合は、そのルールのシグナル条件に記載された全てのシグナルについて、先頭ビットとレングスの情報に従ってデータフィールドから値を読み出し、取り得る値の範囲内であるかをチェックする。
ステップS3の判定で、一致する情報がルールリスト122に存在しない場合は、ステップS9に進み、アラート部113にて、予め定められたアラート処理を行う。アラート処理としては、送信部242を介して、車両システム10内の不図示のログ記憶装置に対して不正通信の発生を示すログ情報を送信することや、不図示の操作パネルに警告メッセージを表示させて車両システム10の搭乗者に通知することなど、様々な処理を実施し得る。以上の処理ステップを実行した後、本フローチャートを終了する。
ステップS3の判定で、一致する情報がルールリスト122に存在する場合は、ステップS4において、通信判定部112は、ルールリスト122の周期条件IDを参照し、対応する周期条件リスト(123~126のいずれか)を取得する。
ステップS5において、通信判定部112は、取得した周期条件リストの遷移種別を参照し、当該メッセージに関する現在の状態を特定する。
例えば当該メッセージがID=0x10である場合は、周期条件リスト123の遷移種別が“帯域負荷”であるため、受信部141からケーブル12の帯域負荷状況を取得して、現在の状態が負荷低(=1)、負荷中(=2)、負荷高(=3)のいずれであるかを判断する。
当該メッセージがID=0x20である場合は、周期条件リスト124の遷移種別が“カウンタ”であるため、内部で管理しているID=0x20の受信カウンタの値を参照し、4の倍数であれば状態2、それ以外であれば状態1であると判断する。
当該メッセージがID=0x30である場合は、周期条件リスト125の遷移種別が“時間”であるため、内部で管理しているID=0x30の初回受信時点からのタイマ値を参照し、40秒区切りとした場合の残りの1秒間に該当すれば状態2、それ以外であれば状態1であると判断する。
当該メッセージがID=0x40である場合は、周期条件リスト126の遷移種別が“無”であるため、それ以上の処理は行わず、ステップS6に移る。
ステップS6において、通信判定部112は、特定した状態に対応する周期条件を取得する。
ステップS7において、通信判定部112は、ステップS1で取得した受信時刻情報と、予め内部で保持していた当該メッセージに関する前回の受信時刻情報とを比較し、受信間隔がステップS6で取得した周期条件の範囲内であるかをチェックする。
ステップS7の判定で、周期条件の範囲外であると判定した場合は、ステップS9に進み、アラート部113にて、予め定められたアラート処理を行った後、本フローチャートを終了する。
ステップS7の判定で、周期条件の範囲内であると判定した場合は、当該メッセージは正常メッセージであると判定し、ステップS8において、通信判定部112は、当該メッセージの情報を更新する。具体的には、通信判定部112は、内部で保持している当該メッセージに関する前回の受信時刻情報を、ステップS1で渡された受信時刻情報で上書きする。また、通信判定部112は、当該メッセージが遷移種別“カウンタ”のメッセージであった場合は、内部で管理している当該メッセージの受信カウンタの値をインクリメントする。
以上の処理ステップを実行した後、不正通信検知装置100は動作を終了する。
以上、不正通信検知装置100によれば、時間変化する状態毎の周期条件に基づき通信メッセージの判定を行うことにより、より精度良く通信メッセージが正常メッセージか否かの判定を行うことができる。また、自動車の車両内部に取り付けた不正な車載機器などから、当該車両の走行等に関わる制御を騙すような不正メッセージが送信された場合に、それを検知してアラートとして挙げることが可能となる。周期メッセージについて、メッセージ毎に生じ得る周期誤差に影響を与える特徴を状態として定義し、現在の状態に対応した周期条件に動的に切り替えることで、周期誤差の変化に対応したきめ細かい不正通信検知を実現することが可能となる。
(通信許可リスト生成フェーズ)
次に通信許可リスト121の生成処理について説明する。
上記のような通信許可リスト121を人が手作業で作成することは、作業負荷が高く、また、抜け漏れや記載ミスが発生する可能性が生じる。そこで、図2に示した通信許可リスト121を自動的に生成する通信許可リスト生成ツールが求められる。
以下では、通信許可リスト121を自動的に生成する通信許可リスト生成装置200について説明する。また、通信許可リスト生成装置200の動作が通信許可リスト生成方法に対応し、通信許可リスト生成方法をコンピュータに実行させるプログラムが通信許可リスト生成プログラムに対応する。
図11は、通信許可リスト生成装置200の構成を示す構成図である。
通信許可リスト生成装置200は、処理部210と記憶部220とを備える。
記憶部220は、各種情報を記憶するものであり、通信仕様221、通信データ222、設定定義223、通信許可リスト224および更新版通信許可リスト225を記憶する。
通信仕様221は、図1に示した車両システム10内を流れるCANメッセージの通信仕様を定義したファイルである。通信仕様221の詳細は図13で後述する。通信データ222は、図1に示した車両システム10内を実際に流れるCANメッセージをパケットキャプチャツールなどで取得して保存したファイルである。
通信データ222の詳細は図14で後述する。設定定義223は、処理部210が動作する際の設定情報を記載したファイルである。設定定義223の詳細は図15で後述する。
通信許可リスト224は通信許可リスト出力部212が出力するファイル、更新版通信許可リスト225は通信データ解析部213が出力するファイルであり、これらのフォーマットは、図2で示した通信許可リスト121と同じである。
この他にも、記憶部220は通信許可リスト生成装置200で使用、生成、入力、出力、送信または受信される不図示のデータが記憶される。
処理部210は、通信仕様解析部211、通信許可リスト出力部212、及び通信データ解析部213を備える。
通信仕様解析部211は、正常な通信メッセージの仕様を定義した通信仕様を解析するものである。
通信許可リスト出力部212は、通信仕様解析部の解析結果に基づき、不正な通信メッセージの検知に用いる通信許可リストを生成するものである。
通信データ解析部213は、実際の通信データ222に基づき、通信データ222に含まれる通信メッセージの周期誤差に変動が生じる条件を特定し、特定した条件ごとに正常な周期範囲を決定し、通信許可リストを更新するものである。また、ここでの条件とは、遷移種別及び遷移条件を意味する。
実施の形態1において、通信データ解析部213は、通信データ222に基づき、単位時間毎の帯域負荷を算出し、算出した帯域負荷を複数の段階に分類し、複数の段階毎の周期誤差を比較することにより、条件を特定する。より具体的には、通信データ解析部213は、複数の段階の周期誤差の差分が所定の閾値より大きい場合に、条件のうち遷移種別が”帯域負荷”であると特定し、分類した複数の段階に基づいて遷移条件を特定する。より詳細な処理については、図25で説明する。
また、実施の形態1において、通信データ解析部213は、一定のカウンタ間隔で通信メッセージの周期誤差が所定の閾値を超えているかを判定することにより、前記要因を特定する。より具体的には、通信データ解析部213は、一定のカウンタ間隔で通信メッセージの周期誤差が所定の閾値を超えている場合に、条件のうち遷移種別が”送信回数”であると特定し、上記一定のカウンタ間隔に基づいて遷移条件を特定する。より詳細な処理については、図25で説明する。
また、実施の形態1において、通信データ解析部213は、一定の時間間隔で通信メッセージの周期誤差が所定の閾値を超えているかを判定することにより、条件を特定する。より具体的には、通信データ解析部213は、一定の時間間隔で通信メッセージの周期誤差が所定の閾値を超えている場合に、条件のうち遷移種別が”時間間隔”であると特定すし、上記一定の時間間隔に基づいて遷移条件を特定する。より詳細な処理については、図25で説明する。
図12は、図11に示した処理部210の内部動作及び入出力情報に関するフロー図である。
処理部210は、通信仕様221、設定定義223および通信データ222を入力とし、更新版通信許可リスト225を出力とする。また、処理部210の内部では、通信許可リスト224が生成される。
通信仕様解析部211は、設定定義223に基づいて通信仕様221の内容を解析する。解析結果は通信許可リスト出力部212に出力する。
通信許可リスト出力部212は、入力した解析結果の内容に従って、通信許可リスト1024を生成する。
通信データ解析部213は、通信データ222の内容を解析し、解析結果に従って通信許可リスト224の内容を更新し、更新した結果を更新版通信許可リスト1025として出力する。
ここで、処理部210は、通信許可リスト224を単なる内部情報ではなく、外部に出力しても良い。この場合、処理部210は、通信許可リスト224と更新版通信許可リスト225を共に出力することになる。
更に、処理部210は、通信仕様解析部211と通信許可リスト出力部212からなる機能部と、通信データ解析部213からなる機能部とに分割され、それぞれ別の装置として動作しても良い。この場合、通信仕様解析部211と通信許可リスト出力部212からなる機能部は、通信仕様221と設定定義223を入力とし、通信許可リスト224を出力する。通信データ解析部213からなる機能部は、通信仕様221、通信データ222および通信許可リスト224を入力とし、更新版通信許可リスト225を出力する。
図13は、図11および図12に示した通信仕様221のフォーマットの一例である。通信仕様221は、車両システム10内を流れるCANメッセージの仕様が定義されたCANのデータベースファイルである。通信仕様221は、車両システム10や、GW(Gateway)11、第一車載機器1、第二車載機器2、・・・第n車載機器nなどの各車載機器の開発段階に作成、使用される設計情報である。通信仕様221は1つのファイルではなく、複数のファイルであっても良い。
通信仕様221は、装置情報、メッセージ情報、メッセージを構成するシグナルの情報、メッセージ種別情報、メッセージ周期情報などの情報を備える。装置情報は、通信仕様221内に定義されるメッセージの送受信に関わる車載機器の名称である。メッセージ情報は、各メッセージに関するメッセージID,DLC,送信元車載機器名などの情報である。各メッセージ情報は、そのメッセージのデータフィールド部分を構成するシグナル情報を備える。シグナル情報は、シグナル名、開始ビット、レングス、取り得る値などの情報である。メッセージ種別情報は、メッセージ情報で定義された各メッセージの種別に関する情報である。メッセージ種別としては、イベントトリガで送信されるメッセージや周期的に送信されるメッセージなどが存在する。メッセージ周期情報は、メッセージ種別情報で周期を持つメッセージと定義されたメッセージの送信周期に関する情報である。
図14は、図11および図12に示した通信データ222のフォーマットの一例である。通信データ222は、車両システム10内を流れる通信メッセージをパケットキャプチャツールなどで取得して保存したファイルである。通信データ222は、車両システム10や、GW(Gateway)11、第一車載機器1、第二車載機器2、第n車載機器nなどの各車載機器の開発段階で、実車両もしくはシミュレータ環境で取得される開発、評価用の情報である。通信データ222は1つのファイルではなく、複数のファイルであっても良い。
通信データ222は、日付情報と、キャプチャした通信メッセージに関する情報を備える。メッセージに関する情報は、キャプチャ時刻、メッセージID,DLC,データフィールドである。
図15は、図11および図12に示した設定定義223のフォーマットの一例である。設定定義223は、処理部210の動作に関連する設定情報を定義したテキストファイルである。設定定義223は対象機器、周期範囲などに関する情報を備える。対象機器は、通信仕様解析部211で解析対象とするメッセージの送信元車載機器を定義する。通信許可リスト出力部212が出力する通信許可リスト224には、対象機器に定義した車載機器が送信するメッセージに関するルールのみが定義されることとなる。対象機器の定義は省略することも可能である。この場合、通信仕様221に定義された全てのメッセージが通信仕様解析部211での解析対象となる。周期範囲は、通信仕様221に定義された周期情報に対し、どれだけのマージンをみて通信許可リスト224の周期条件として定義するかを比率で指定したものである。周期範囲で定義した比率は、通信仕様221に定義された全ての周期メッセージに対して適用される。
次に、通信許可リスト生成装置200のハードウェア構成について説明する。図16は、通信許可リスト生成装置200のハードウェア構成を示すハードウェア構成図である。通信許可リスト生成装置200が備える通信仕様解析部211、通信許可リスト出力部212、及び通信データ解析部213は、記憶装置2002に格納されたプログラムが処理装置2001で実行されることにより実現される。
処理装置2001は、CPU(Central Processing Unit)中央処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、またはDSP(Digital Signal Processor)等のプロセッサである。また、複数のプロセッサにより、不正通信検知装置100の各機能を実現しても良い。また、FPGA(Field Programmable Gate Array)やASIC等で通信許可リスト生成装置200の各機能を実現しても良い。
記憶部220は、記憶装置2002によって実現され、記憶装置2002は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(ErasableProgrammable ROM)、EEPROM(Electrically EPROM)等の不揮発性または揮発性の半導体メモリであっても良いし、ハードディスク、フレキシブルディスク等の磁気ディスクであっても良いし、ミニディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)等の光ディスクでも良い。
図17は、図11および図12に示した通信仕様解析部211が行う通信仕様解析処理のフローチャートである。
通信仕様解析部211は、ステップS201において、入力として受け付けた通信仕様221の内容を読み込む。具体的には、図13に示した通信仕様221のフォーマットの先頭からメッセージ情報を探索していく。
そして、ステップS202において、通信仕様解析部211は、メッセージ情報が存在するかを判断する。メッセージが存在する場合は、ステップS203において、メッセージ情報解析処理のサブルーチンを実行する。メッセージ情報解析サブルーチンについては図18で後述する。メッセージ情報解析サブルーチンを実行した後、ステップS202に戻り、以降、通信仕様221内の全てのメッセージ情報を解析するまで、ステップS202~ステップS203の処理ステップを繰り返す。
ステップS202において、通信仕様解析部211が、次のメッセージ情報は存在しないと判断した場合に、本フローチャートを終了する。
図18は、通信仕様解析部211が行うメッセージ情報解析サブルーチンのフローチャートである。図18の処理は、図17のステップS203に対応する。
通信仕様解析部211は、ステップS301において、通信仕様221から、解析対象のメッセージの送信元車載機器名を取得する。
次に、ステップS302において、ステップS301で取得した送信元車載機器名が、図15に示した設定定義223の対象機器に定義されているかを判断する。
定義されていない場合は、直ちに本フローチャートを終了する。
定義されている場合は、ステップS303において、通信仕様解析部211は、通信仕様221から、解析対象のメッセージのIDとDLCを取得する。
ステップS304において、通信仕様解析部211は、通信仕様221から、解析対象のメッセージのメッセージ種別を取得する。
そして、ステップS305において、通信仕様解析部211は、解析対象のメッセージが周期メッセージであるかを判断する。
周期メッセージの場合は、ステップS306において、通信仕様解析部211は、通信仕様221から解析対象のメッセージの周期情報を取得し、図15に示した設定定義223の周期範囲で指定された比率で下限値と上限値を算出する。例えば、取得した周期情報が10msであり、設定定義1023の周期範囲で10%と指定されている場合、当該周期メッセージの周期条件は9~11msの範囲となる。
ステップS307において、シグナル情報解析処理のサブルーチンを実行する。シグナル情報解析サブルーチンについては図19で後述する。
一方、ステップS305において周期メッセージでない場合は、直ちにステップS307に進み、シグナル情報解析サブルーチンを実行する。
以上の処理ステップを実行した後、本フローチャートを終了する。
図19は、通信仕様解析部211が行うシグナル情報解析サブルーチンのフローチャートである。図19は、図18のステップS307に対応する。
通信仕様解析部211は、ステップS401において、通信仕様221から、解析対象のメッセージのシグナル情報を読み込む。
ステップS402において、通信仕様解析部211は、シグナル情報から開始ビット、レングス、取り得る値の情報を取得する。
ステップS403において、通信仕様解析部211は、解析対象のメッセージに関する全てのシグナル情報の解析が完了したかを判断する。
完了していない場合、ステップS404に戻り、以降、未解析のシグナル情報が無くなるまで、ステップS401~ステップS403の処理ステップを繰り返す。
ステップS403で解析対象のメッセージに関する全てのシグナル情報の解析が完了した場合、通信仕様解析部211は、ステップS404において、ステップS402で取得した各シグナルの情報を、開始ビットの昇順にソートする。
以上の処理ステップを実行した後、本フローチャートを終了する。
図20~図24は、図17~図19に示した通信仕様解析部211の通信仕様解析処理の結果として生成されるファイルの一例である。
図20~図24に示した各ファイルは、処理部210の内部で、通信仕様解析部211から通信許可リスト出力部212への入力となる情報である。
図20に示す内部生成ファイル301は、ID、DLC、シグナル条件、周期条件IDを備える。IDおよびDLCは図18のS303で取得した情報が格納される。シグナル条件は、開始ビット、レングス、最小値、最大値を備え、いずれも図19のS402で取得した情報が格納される。図19のS404のソート処理を実行した結果として、ID毎のシグナル条件は開始ビットの値の昇順で内部生成ファイル301に記録される。周期条件IDは、周期メッセージについて、後述する内部生成ファイル302~内部生成ファイル305のいずれかへの紐づけを行うための番号である。図20の例では、図4で例示したのと同じ、IDが0x10、0x20、0x30および0x40の4つの周期メッセージの情報が記載されている。
図21に示す内部生成ファイル302は、IDが0x10のメッセージに関する周期条件が格納されたファイルである。図21に示す内部生成ファイル302は、図5に示したID=0x10の周期条件リスト123と同様に、周期条件ID、遷移種別、状態、周期条件、遷移条件を備える。周期条件には、図18のS306で算出した周期範囲が格納される。通信仕様221からは遷移種別、状態、遷移条件に関する情報は取得できないため、遷移種別は”無”、状態は0、遷移条件は”無”が格納される。
同様に、図22に示す内部生成ファイル303は、IDが0x20のメッセージに関する周期条件が格納されたファイルである。図23に示す内部生成ファイル304は、IDが0x30のメッセージに関する周期条件が格納されたファイルである。図24に示す内部生成ファイル305は、IDが0x40のメッセージに関する周期条件が格納されたファイルである。いずれも、図21に示す内部生成ファイル302と同様に、周期条件には、図18のS306で算出した周期範囲が格納され、遷移種別は”無”、状態は0、遷移条件は”無”が格納される。
図25は、図11および図12に示した通信許可リスト出力部212が行う通信許可リスト出力処理のフローチャートである。
通信許可リスト出力部212は、ステップS501において、通信許可リスト224が既に存在するかを判断する。
存在しない場合は、ステップS502において、通信許可リスト出力部212は、通信許可リスト224を新規作成する。通信許可リスト224は、図2に示した通信許可リスト121と同様に、ルールリストと複数の周期条件リストから構成される。ステップS502の処理ステップを実行した後、ステップS504に進む。
一方、ステップS501で通信許可リスト224が既に存在する場合は、ステップS503において、通信許可リスト出力部212は、既存の通信許可リスト224を編集可能なよう、ファイルオープンした後、ステップS504に進む。
ステップS504において、通信許可リスト出力部212は、内部生成ファイル301にメッセージ情報が存在するかを判断する。
存在する場合、ステップS505において、通信許可リスト出力部212は、内部生成ファイル301内のメッセージ情報に対応するルールが通信許可リスト224に既に存在するかを判断する。具体的には、内部生成ファイル301から対象メッセージのIDを取得し、同じIDのルールが通信許可リスト224内のルールリストに存在するかをまず判断する。存在した場合は、内部生成ファイル301のDLC,シグナル条件、周期条件IDが、対応する通信許可リスト224内のルールのDLC,シグナル条件、周期条件IDと合致するかを判断する。合致した場合は、更に、内部生成ファイル302~内部生成ファイル305のうち、対応する周期条件IDを持つファイルを特定して、そのファイルから周期条件を取得し、通信許可リスト224内の対応する周期条件リストの周期条件と合致するかを判断する。合致した場合は、同じIDのルールが通信許可リスト224に存在していると判断し、ステップS504に戻る。
ステップS505で同じIDのルールが通信許可リスト224に存在していない場合は、通信許可リスト出力部212は、ステップS506において、内部生成ファイル301のID,DLC,シグナル条件、周期条件IDの情報と、内部生成ファイル302~内部生成ファイル305のうち、対応する周期条件IDを持つファイルの遷移条件、状態、周期条件、遷移条件の情報を、通信許可リスト224に追記して、ステップS504に戻る。
以降、内部生成ファイル301のメッセージ情報を全て読み出すまで、ステップS504~ステップS506の処理ステップを繰り返す。
ステップS504において、内部生成ファイル301に次のメッセージ情報が存在しなくなった場合は、本フローチャートを終了する。
図20~図24で示した内部生成ファイル301~内部生成ファイル305の内容を入力として、図25に示した通信許可リスト出力処理を実施した場合に生成される通信許可リスト224内のルールリストおよび周期条件リストのフォーマットは、図4~図8に示したルールリスト122および周期条件リスト123~周期条件リスト126と同じフォーマットである。
図26は、図11および図12に示した通信データ解析部213が行う通信データ解析処理のフローチャートである。
通信データ解析部213は、ステップS601において、入力として受け付けた通信データ222の内容を読み込む。
ステップS602において、通信データ解析部213は、通信データ222の内容から単位時間毎の帯域負荷を算出し、各単位時間の通信ログを、帯域負荷が低(40%未満)、中(40%以上70%未満)、高(70%以上)の3段階に分類する。
ステップS603において、通信データ解析部213は、図25に示した通信許可リスト出力処理で生成された通信許可リスト224内のルールリストを参照し、通信データ222内の通信ログに未解析の周期メッセージが存在するかを判断する。
全ての周期メッセージの解析が終了している場合は、本フローチャートを終了する。
ステップS603の判断において、未解析の周期メッセージが存在する場合は、通信データ解析部213は、ステップS604において、当該周期メッセージのIDに合致する通信ログを通信データ222から全て取得し、各通信ログに先頭からシーケンシャルなログ番号を付与する。
ステップS605において、通信データ解析部213は、ステップS602での分類結果とステップS604での取得結果から、帯域負荷が低、中、高それぞれの期間における当該周期メッセージの周期誤差の最大値と最小値を取得する。
ステップS606において、通信データ解析部213は、帯域負荷毎の周期誤差の最大値/最小値を比較し、所定の閾値以上の差異が生じているかを判断する。
生じている場合は、ステップS607において、通信データ解析部213は、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容を更新する。周期条件リストの“遷移種別”を“帯域負荷”に変更し、状態及び遷移条件には帯域負荷が低、中、高の3段階を定義し、各状態の周期条件にはステップS605で取得した周期誤差の最大値、最小値に基づいた値範囲を設定する。本処理ステップを実行した結果、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容は、例えば図21に示した内部生成ファイル302の内容から、図5に示したID=0x10の周期条件リスト123の内容に更新される。
ステップS606の比較で帯域負荷毎の周期誤差に大きな差異が見られない場合は、通信データ解析部213は、ステップS608において、ステップS604で取得した当該周期メッセージの全ての通信ログから、周期誤差が所定の閾値を上回っているログを抽出する。
ステップS609において、通信データ解析部213は、抽出したログのログ番号を確認し、一定のカウンタ間隔で乖離が大きい通信ログが発生しているかを確認する。
一定の間隔の場合は、ステップS610において、通信データ解析部213は、ステップS604で取得した当該周期メッセージの全ての通信ログを、周期誤差の大きい通信ログとそれ以外の通信ログの2群に分類し、それぞれの群における周期誤差の最大値と最小値を取得する。
ステップS611において、通信データ解析部213は、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容を更新する。周期条件リストの“遷移種別”を“カウンタ”に変更し、状態には上記2群をそのまま2状態として定義する。遷移条件には、周期誤差が大きくなるタイミングとそれ以外のタイミングを定義する。各状態の周期条件にはS2410で取得した周期誤差の最大値、最小値に基づいた値範囲を設定する。本処理ステップを実行した結果、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容は、例えば図22に示した内部生成ファイル303の内容から、図6に示したID=0x20の周期条件リスト124の内容に更新される。
一方、ステップS609の判定で、周期誤差が大きい通信ログのログ番号が一定のカウンタ間隔となっていない場合には、通信データ解析部213は、ステップS612において、周期誤差が大きい通信ログを受信時刻が近いものでグループ分けし、グループ間の時間間隔が一定かを判断する。
一定の時間間隔の場合は、ステップS613において、通信データ解析部213は、ステップS604で取得した当該周期メッセージの全ての通信ログを、周期誤差の大きい通信ログとそれ以外の通信ログの2群に分類し、それぞれの群における周期誤差の最大値と最小値を取得する。
ステップS614において、通信データ解析部213は、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容を更新する。周期条件リストの“遷移種別”を“時間”に変更し、状態には上記2群をそのまま2状態として定義する。遷移条件には、周期誤差が大きくなるタイミングとそれ以外のタイミングを定義する。各状態の周期条件にはS2413で取得した周期誤差の最大値、最小値に基づいた値範囲を設定する。本処理ステップを実行した結果、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容は、例えば図23に示した内部生成ファイル304の内容から、図7に示したID=0x30の周期条件リスト125の内容に更新される。
一方、ステップS612の判定で時間間隔が一定でない場合には、ステップS615において、通信データ解析部213は、ステップS604で取得した当該周期メッセージの全ての通信ログにおける周期誤差の最大値と最小値を取得する。
ステップS616において、通信データ解析部213は、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容を更新する。周期条件に、ステップS615で取得した周期誤差の最大値、最小値に基づいた値範囲を設定する。遷移種別、状態、遷移条件には、ステップ図25に示したS506の処理ステップにおいて既にそれぞれ”無”、0、”無”という情報が格納されているため、本処理ステップでは変更しない。本処理ステップを実行した結果、通信許可リスト224内の当該周期メッセージに関する周期条件リストの内容は、例えば図24に示した内部生成ファイル305の内容から、図8に示したID=0x40の周期条件リスト126の内容に更新される。
以上の処理ステップを行った後、ステップS603に戻り、以降、全ての周期メッセージの解析が終了するまで、ステップS603~ステップS616の処理ステップを繰り返し、全ての周期メッセージについて解析が終了した場合、通信データ解析部213は動作を終了する。
以上のように、通信許可リスト生成装置200によれば、周期メッセージ毎の特徴を考慮した周期条件を、人の手作業に依らず、通信仕様と通信データから自動生成することが可能となる。そして、不正通信検知装置100と組み合わせて用いることにより、誤検知と検知漏れの発生を共に抑制した不正通信検知を実現できる。
(その他の実施形態)
本開示に係る不正通信検知装置及び通信許可リスト生成装置のその他の実施形態について説明する。
実施の形態1では例として車両システムにおけるCANメッセージを対象としたが、本開示に係る不正通信検知装置および通信許可リスト生成装置の適用対象は必ずしも上記に限定されない。例えば、本開示にかかる不正通信検知装置は、工場、ビル、家庭などに構築されたIoTシステム上の装置に搭載され、有線LANや無線LANを介したTCP/IP通信を検知対象としても良い。この場合、図4に示したルールリスト122を構成する項目は、IDではなく送信元と送信先のアドレス(IPアドレスとポート番号、プロトコル番号など)、DLCではなくTCP/IPメッセージのペイロード部分のデータ長、シグナル条件ではなくペイロード条件、となる。図13に示した通信仕様1021はIoTシステム上を流れるTCP/IP通信を定めた仕様書であり、図13に示した通信データ222はIoTシステム上を流れるTCP/IP通信をキャプチャしたファイルとなる。
実施の形態1では、図5~図8で示した周期条件リスト123~126が取り得る遷移種別として、“帯域負荷”、“カウンタ”、“時間”、“無”の4種類が存在したが、この他の種別を設けても良い。また、遷移種別は予め固定的に定義しておくのではなく、図11に示した通信データ解析部213において、通信データ222から抽出した周期メッセージ毎の特徴量に基づいて動的に定義しても良い。
上記実施の形態は、好ましい形態の例示であり、本開示の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
本開示に係る不正通信検知装置及び通信許可リスト生成装置は、車両システムやIoTシステム上における通信メッセージの不正通信検知に用いるのに適している。
1 第一車載機器、2 第二車載機器、10 車両システム、11 GW、12 ケーブル、100 不正通信検知装置、110 処理部、111 通信取得部、112 通信判定部、113 アラート部、120 記憶部、121 通信許可リスト、122 ルールリスト、123,124,125,126 周期条件リスト、130 GW機能部、140 通信部、141 受信部、142 送信部、200 通信許可リスト生成装置、210 処理部、211 通信仕様解析部、212 通信許可リスト出力部、213 通信データ解析部、220 記憶部、221 通信仕様、222 通信データ、223 設定定義、224 通信許可リスト、225 更新版通信許可リスト、301,302,303,304,305 内部生成ファイル、1001 処理装置、1002記憶装置、1003 通信装置、2001 処理装置、2002 記憶装置。

Claims (12)

  1. 通信メッセージを取得する通信取得部と、
    前記通信メッセージの時間変化する状態毎に設定された周期条件に基づき、前記通信メッセージが正常なメッセージか否かを判定する通信判定部と、
    を備え
    前記通信判定部は、前記通信メッセージの周期誤差に影響を与える要因である遷移種別と、前記遷移種別毎に設定された複数の遷移条件とに基づいて分類される前記通信メッセージの状態に基づき、前記通信メッセージの前記周期条件を特定し、前記通信メッセージが正常なメッセージか否かを判定する
    不正通信検知装置。
  2. 通信メッセージを取得する通信取得部と、
    前記通信メッセージの時間変化する状態毎に設定された周期条件に基づき、前記通信メッセージが正常なメッセージか否かを判定する通信判定部と、
    を備え
    前記通信判定部は、帯域負荷、送信回数、時間間隔のうち少なくとも一つに基づき、前記通信メッセージの状態を特定し、特定した前記通信メッセージの状態に対して設定された前記周期条件に基づき、前記通信メッセージが正常なメッセージか否かを判定する
    不正通信検知装置。
  3. 正常な通信メッセージの仕様を定義した通信仕様を解析する通信仕様解析部と、
    前記通信仕様解析部の解析結果に基づき、不正な通信メッセージの検知に用いる通信許可リストを生成する通信許可リスト出力部と、
    実際の通信データに基づき、前記通信データに含まれる通信メッセージの周期誤差に変動が生じる条件を特定し、前記条件ごとに正常な周期範囲を決定し、前記通信許可リストを更新する通信データ解析部と、
    を備える通信許可リスト生成装置。
  4. 前記通信データ解析部は、前記通信データに基づき、単位時間毎の帯域負荷を算出し、算出した前記帯域負荷を複数の段階に分類し、前記複数の段階毎の周期誤差を比較することにより、前記条件を特定する
    ことを特徴とする請求項に記載の通信許可リスト生成装置。
  5. 前記通信データ解析部は、一定のカウンタ間隔で前記通信メッセージの周期誤差が所定の閾値を超えているかを判定することにより、前記条件を特定する
    ことを特徴とする請求項又はに記載の通信許可リスト生成装置。
  6. 前記通信データ解析部は、一定の時間間隔で前記通信メッセージの周期誤差が所定の閾値を超えているかを判定することにより、前記条件を特定する
    ことを特徴とする請求項からのいずれか一項に記載の通信許可リスト生成装置。
  7. 通信メッセージを取得する通信取得部と、
    前記通信メッセージの時間変化する状態毎に設定された周期条件に基づき、前記通信メッセージが正常なメッセージか否かを判定する通信判定部と、
    を備える不正通信検知装置と、
    請求項からのいずれか一項に記載の通信許可リスト生成装置と、
    を備える通信システム。
  8. コンピュータが、通信メッセージを取得する通信取得工程と、
    コンピュータが、前記通信メッセージの時間変化する状態毎に設定された周期条件に基づき、前記通信メッセージが正常なメッセージか否かを判定する通信判定工程と、
    を含み、
    前記通信判定工程では、コンピュータが、前記通信メッセージの周期誤差に影響を与える要因である遷移種別と、前記遷移種別毎に設定された複数の遷移条件とに基づいて分類される前記通信メッセージの状態に基づき、前記通信メッセージの前記周期条件を特定し、前記通信メッセージが正常なメッセージか否かを判定する
    む不正通信検知方法。
  9. コンピュータが、通信メッセージを取得する通信取得工程と、
    コンピュータが、前記通信メッセージの時間変化する状態毎に設定された周期条件に基づき、前記通信メッセージが正常なメッセージか否かを判定する通信判定工程と、
    を含み、
    前記通信判定工程では、コンピュータが、帯域負荷、送信回数、時間間隔のうち少なくとも一つに基づき、前記通信メッセージの状態を特定し、特定した前記通信メッセージの状態に対して設定された前記周期条件に基づき、前記通信メッセージが正常なメッセージか否かを判定する
    を含む不正通信検知方法。
  10. 請求項8又は9に記載の全工程をコンピュータに実行させる不正通信検知プログラム。
  11. コンピュータが、正常な通信メッセージの仕様を定義した通信仕様を解析する通信仕様解析工程と、
    コンピュータが、前記通信仕様解析工程での解析結果に基づき、不正な通信メッセージの検知に用いる通信許可リストを生成する通信許可リスト出力工程と、
    コンピュータが、実際の通信データに基づき、前記通信データに含まれる通信メッセージの周期誤差に変動が生じる条件を特定し、前記条件ごとに正常な周期範囲を決定し、前記通信許可リストを更新する通信データ解析工程と、
    を含む通信許可リスト生成方法。
  12. 請求項11に記載の全工程をコンピュータに実行させる通信許可リスト生成プログラム。
JP2023568237A 2022-03-11 2022-03-11 不正通信検知装置、通信許可リスト生成装置、不正通信検知方法、通信許可リスト生成方法、不正通信検知プログラム、及び通信許可リスト生成プログラム Active JP7435929B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/010920 WO2023170928A1 (ja) 2022-03-11 2022-03-11 不正通信検知装置、通信許可リスト生成装置、不正通信検知方法、通信許可リスト生成方法、不正通信検知プログラム、及び通信許可リスト生成プログラム

Publications (3)

Publication Number Publication Date
JPWO2023170928A1 JPWO2023170928A1 (ja) 2023-09-14
JPWO2023170928A5 JPWO2023170928A5 (ja) 2024-02-15
JP7435929B2 true JP7435929B2 (ja) 2024-02-21

Family

ID=87936429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023568237A Active JP7435929B2 (ja) 2022-03-11 2022-03-11 不正通信検知装置、通信許可リスト生成装置、不正通信検知方法、通信許可リスト生成方法、不正通信検知プログラム、及び通信許可リスト生成プログラム

Country Status (2)

Country Link
JP (1) JP7435929B2 (ja)
WO (1) WO2023170928A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019087858A1 (ja) 2017-10-30 2019-05-09 日本電信電話株式会社 攻撃通信検出装置、攻撃通信検出方法、プログラム
WO2022014027A1 (ja) 2020-07-17 2022-01-20 三菱電機株式会社 通信許可リスト生成装置、通信許可リスト生成方法、及び、プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021005821A (ja) * 2019-06-27 2021-01-14 矢崎総業株式会社 異常検出装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019087858A1 (ja) 2017-10-30 2019-05-09 日本電信電話株式会社 攻撃通信検出装置、攻撃通信検出方法、プログラム
WO2022014027A1 (ja) 2020-07-17 2022-01-20 三菱電機株式会社 通信許可リスト生成装置、通信許可リスト生成方法、及び、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大須賀 節雄,データベースと知識ベース,第1版,株式会社オーム社,1989年07月30日,pp. 91-96,ISBN 4-274-07520-6

Also Published As

Publication number Publication date
WO2023170928A1 (ja) 2023-09-14
JPWO2023170928A1 (ja) 2023-09-14

Similar Documents

Publication Publication Date Title
US11943233B2 (en) Vehicle communication apparatus, in-vehicle network system, and vehicle communication method
JP6839963B2 (ja) 異常検知方法、異常検知装置及び異常検知システム
CN100445980C (zh) 利用动态选择性过滤标准的多级信息包筛选的装置和方法
US11296965B2 (en) Abnormality detection in an on-board network system
CN106105105B (zh) 网络通信系统、不正常检测电子控制单元以及不正常应对方法
EP3598329A1 (en) Information processing method, information processing system, and program
CN108353015B (zh) 中继装置
CN106537872B (zh) 用于检测计算机网络中的攻击的方法
JP6566400B2 (ja) 電子制御装置、ゲートウェイ装置、及び検知プログラム
WO2020209085A1 (ja) 登録システム、登録方法及び登録プログラム
JP2008518497A (ja) シリアルデータバスのためのスレーブバスサブスクライバ
CN112437920A (zh) 异常检测装置和异常检测方法
CN101834716A (zh) 确定有限自动机的混合表示
US10296746B2 (en) Information processing device, filtering system, and filtering method
JP7435929B2 (ja) 不正通信検知装置、通信許可リスト生成装置、不正通信検知方法、通信許可リスト生成方法、不正通信検知プログラム、及び通信許可リスト生成プログラム
EP3720061B1 (en) Bit assignment estimating device, bit assignment estimating method, and program
Francia et al. Applied machine learning to vehicle security
JP7170945B2 (ja) 通信許可リスト生成装置、通信許可リスト生成方法、及び、プログラム
WO2019207764A1 (ja) 抽出装置、抽出方法および記録媒体、並びに、検知装置
JP6925889B2 (ja) 中継装置、伝送処理プログラム
CN114731301B (zh) 决定方法、决定系统以及程序记录介质
Tylman SCADA intrusion detection based on modelling of allowed communication patterns
EP3605966B1 (en) Intrusion detection device, intrusion detection method, and intrusion detection system
KR102211804B1 (ko) 다양한 통신 프로토콜에 적용 가능한 차량 통신 메시지 보안성 평가 방법 및 그 장치
CN110535844B (zh) 一种恶意软件通讯活动检测方法、系统及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231106

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20231106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R151 Written notification of patent or utility model registration

Ref document number: 7435929

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151