JP7176569B2 - 情報処理装置、ログ分析方法及びプログラム - Google Patents

情報処理装置、ログ分析方法及びプログラム Download PDF

Info

Publication number
JP7176569B2
JP7176569B2 JP2020551224A JP2020551224A JP7176569B2 JP 7176569 B2 JP7176569 B2 JP 7176569B2 JP 2020551224 A JP2020551224 A JP 2020551224A JP 2020551224 A JP2020551224 A JP 2020551224A JP 7176569 B2 JP7176569 B2 JP 7176569B2
Authority
JP
Japan
Prior art keywords
graph structure
log
abnormality
objects
processes
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
JP2020551224A
Other languages
English (en)
Other versions
JPWO2020075808A1 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2020075808A1 publication Critical patent/JPWO2020075808A1/ja
Application granted granted Critical
Publication of JP7176569B2 publication Critical patent/JP7176569B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、ログ分析方法及びプログラムに関する。
今後普及が見込まれるコネクテッドカー(外部ネットワークに接続する車両)においては、従来においてディーラーでの持ち込み作業であったECU(Electronic Control Unit)のソフトウェアアップデートが無線で行われるなど、利便性の向上が期待されている。
一方で、車両やその制御機器が外部ネットワークに繋がることにより、従来のIT機器同様、悪意の有る攻撃者からのサイバー攻撃の対象となる懸念が指摘されている。実際に車両に搭載されたコントローラを外部ネットワークからのアクセスによって不正に改竄し、コントローラからECUに対して偽指令を行うことで車両制御を乗っ取ることが可能であったとする研究も報告されている(例えば、非特許文献1)。
車両へのサイバー攻撃を検知するために、車両の制御情報ネットワークであるCAN(Controller Area Network)に対する異常を検知するためのIDS(Intrusion Detection System)の検討が進められている(例えば、非特許文献2、3)。
Sen Nie他, "FREE-FALL: HACKING TESLA FROM WIRELESS TO CAN BUS"", BlackHat, 2017, [online], インターネット<URL:https://www.blackhat.com/docs/us-17/thursday/us-17-Nie-Free-Fall-Hacking-Tesla-From-Wireless-To-CAN-Bus-wp.pdf> 大塚敏史他, "既存EUCを変更不要な車載LAN向け侵入検知手法", 情報処理学会研究報告, Vol. 2013-EMB-28 No. 6, pp.31-35, 2013年 岡野靖他, "Variance Gamma分布およびDouble Gamma分布を用いたコントロールエリアネットワークに対するメッセージ挿入攻撃の異常検知", SCIS 2018, 2018年
車両へのサイバー攻撃が発生したときに、IDSが異常を検知する検討は進められているが、異常がどのように引き起こされたかを分析することは困難である。
非特許文献1のサイバー攻撃の例では、まず、車載Webブラウザが偽サイトにアクセスして不正コードをダウンロードする。その後、不正コードによって偽のコントローラ更新ソフトウェアがダウンロードされ、車両のコントローラのソフトウェアを更新する。その結果、コントローラからECUに偽指令が行われる。この例では、偽のコントローラ更新ソフトウェアをダウンロードする前後で攻撃経路が一旦中断される。このように、車両へのサイバー攻撃では、そのサイバー攻撃の発生から異常の検知までの攻撃経路が不連続になる可能性がある。ECUへの偽指令が行われたときにIDSが異常を検知することができても、異常は当該ECUだけではなく、車載Webブラウザまでの攻撃経路に渡って存在し、異常の根本的な原因である不正コードのダウンロードまでの攻撃経路を特定することは困難である。
なお、上記のような問題は、車両に限られず、ネットワークに接続される各種の機器について共通の課題であると考えられる。例えば、IoT(Internet of Things)機器はクライアント機器として動作し得るため、車両へのサイバー攻撃と同様に、異常が検知される前に攻撃が行われており、攻撃経路が不連続になる可能性がある。ネットワークに接続される機器において、攻撃経路等の影響範囲を効率的に分析することが求められる。さらに、異常が検知された場合のみならず、外部攻撃が疑われる場合にも、その影響範囲を効率的に分析できることが望まれる。
本発明は、上記の点に鑑みてなされたものであって、機器において指定された事象の影響範囲を効率的に分析することを目的とする。
そこで上記課題を解決するため、情報処理装置は、機器から取得されたログから、プロセスと当該プロセスに関連するオブジェクトとの関連付けを示すグラフ構造を生成する生成部と、前記機器のいずれかのオブジェクトにおいて異常が検知された場合、前記生成されたグラフ構造に基づいて、当該異常が検知されたオブジェクトに関連する異常なプロセスを特定し、当該異常なプロセスに関連する異常なオブジェクトを特定し、当該異常なオブジェクトの中に前記機器の外部に接続するためのオブジェクトが存在するか否かを判断し、当該判断の結果に基づいて、前記異常が外部攻撃によって発生したと判断する特定部とを有する。
また、情報処理装置は、機器から取得されたログから、プロセスと当該プロセスに関連するオブジェクトとの関連付けを示すグラフ構造を生成し、予め作成されたオブジェクトとプロセスとの間の紐付け情報を用いて、前記グラフ構造の関連付けを補完する生成部と、前記機器のいずれかのオブジェクトが指定された場合、前記生成されたグラフ構造に基づいて、当該指定されたオブジェクトに関連するプロセスを特定し、当該特定されたプロセスに関連するオブジェクトを特定する特定部とを有する。

機器において指定された事象の影響範囲を効率的に分析することができる。
本発明の実施の形態におけるシステム構成例を示す図である。 本発明の実施の形態における監視サーバ10のハードウェア構成例を示す図である。 本発明の実施の形態における車両20のハードウェア構成例を示す図である。 本発明の実施例1における車両20及び監視サーバ10の機能構成例を示す図である。 本発明の実施例1における車両20の機能構成例を示す図である。 本発明の実施例2における車両20及び監視サーバ10の機能構成例を示す図である。 本発明の実施例3における車両20及び監視サーバ10の機能構成例を示す図である。 ログの発生時における処理手順の一例を説明するためのフローチャートである。 正常時に実行される処理の一例を示すシーケンス図である。 正常時に実行される処理の一例を示すシーケンス図である。 図7A及び図7Bのシーケンスにおいてモニタ部251が取得するログの一例を示す図である。 外部攻撃時に実行される処理の一例を示すシーケンス図である。 外部攻撃時に実行される処理の一例を示すシーケンス図である。 図9A及び図9Bのシーケンスにおいてモニタ部251が取得するログの一例を示す図である。 グラフ構造の一例を示す図である。 紐付け情報の一例を示す図である。 グラフ構造の結合例を示す図である。 正常時のグラフ構造を示す図である。 外部攻撃時のグラフ構造を示す図である。 故障発生時に実行される処理の一例を示すシーケンス図である。 図15のシーケンスにおいてモニタ部251が取得するログの一例を示す図である。 通常の故障時のグラフ構造を示す図である。 外部攻撃時のグラフ構造を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を示す図である。図1において、複数の車両20は、インターネット等のネットワークN1を介して各種のサーバ(監視サーバ10、サービス提供サーバ30a、サービス提供サーバ30b等)に接続される自動車(コネクテッドカー)である。例えば、各車両20は、移動体通信網等の無線ネットワークを介してネットワークN1に接続し、各種のサーバと通信する。
サービス提供サーバ30a及びサービス提供サーバ30b等(以下、それぞれを区別しない場合「サービス提供サーバ30」という。)は、車両20に対して、又は車両20から収集される情報に基づいて所定のサービスを提供する1以上のコンピュータである。例えば、サービス提供サーバ30aは、テレマティクスサービスを提供してもよい。また、サービス提供サーバ30bは、各車両20から収集されるデータに基づくサービスを提供してもよい。
監視サーバ10は、車両20から送信(アップロード)されるデータに基づいて、車両20における異常の発生の検知や、異常の内容の解析等を行う1以上のコンピュータである。異常の一例として、車両20に対するネットワークを介したサイバー攻撃(外部攻撃)等が挙げられる。
図2は、本発明の実施の形態における監視サーバ10のハードウェア構成例を示す図である。図2において、監視サーバ10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
監視サーバ10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って監視サーバ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
図3は、本発明の実施の形態における車両20のハードウェア構成例を示す図である。図3において、車両20は、通信装置210、情報系サブシステム220、制御系サブシステム230及び関門器240等を含む。
通信装置210は、ネットワークN1に接続するための通信モジュールや、他の車両20又は道路上の機器等と通信するための通信モジュールや、スマートフォン等と無線LAN又は近距離無線通信を介して接続するための通信モジュール等を含む。
情報系サブシステム220は、インストールされたプログラムに応じた情報処理を実行する部分であり、CPU221、メモリ装置222、補助記憶装置223、表示装置224及び入力装置225等を含む。補助記憶装置223には、インストールされたプログラムや、当該プログラムによって利用される各種データが記憶される。メモリ装置222は、起動対象とされたプログラムを補助記憶装置223から読み出して格納する。CPU221は、メモリ装置222に格納されたプログラムに従って情報系サブシステム220に係る機能を実行する。表示装置224はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置225は、ボタン等やタッチパネル等の操作部品であり、様々な操作指示を入力させるために用いられる。なお、例えば、カーナビゲーション、カーオーディオのヘッドユニット等の車載機が情報系サブシステム220の一例である。
制御系サブシステム230は、車両20の挙動を制御する部分であり、各種の制御のための複数のマイコン231等を含む。例えば、CAN(Controller Area Network)のような非IPプロトコルが制御系サブシステム230において利用される。なお、例えば、ECU(Electronic Control Unit)がマイコン231の一例である。
関門器240は、情報系サブシステム220と制御系サブシステム230と接続するためのゲートウェイ(例えば、CGW(Central Gateway))である。関門器240は情報系サブシステム220のネットワークと制御系サブシステム230のネットワーク間の通信の中継を行う。関門器240は、通信フィルタリングにより、必要十分な通信のみを中継(シグナル中継)する場合があり、情報系サブシステム220と制御系サブシステム230をハードウェア的・ソフトウェア的に適切に分離(アイソレーション)する役割を担う。
なお、図3に示したハードウェア構成は、一例に過ぎない。後述の機能を実現可能であれば、車両20のハードウェア構成は特定のものに限定されない。
(実施例1)
本発明の実施例1では、監視対象とするデバイスから出力されたログを取得して、指定された事象に関する一連の動作を把握するための手段について説明する。
図4Aは、本発明の実施例1における車両20及び監視サーバ10の機能構成例を示す図である。図4Aにおいて、車両20の情報系サブシステム220は、モニタ部251及びログ送信部253等を有する。これら各部は、情報系サブシステム220にインストールされた1以上のプログラムが、CPU221に実行させる処理により実現される。情報系サブシステム220は、また、ログ管理DB271等のデータベース(記憶部)を有する。このデータベース(記憶部)は、例えば、メモリ装置222又は補助記憶装置223等を用いて実現可能であり、メモリ装置222又は補助記憶装置223等のメモリ保護領域に設けられてもよい。
モニタ部251は、監視対象とするデバイス(例えば、情報系サブシステム220、制御系サブシステム230のマイコン231、関門器240等)からログを取得する。モニタ部251がログを取得するタイミングは、一定の周期又は特定のイベントの発生等でもよく、例えば、異常検知装置(車両20内のIDS等)が異常を検知したタイミングでもよく、モニタ部251の実行トリガが人手又は他の装置によって入力されたタイミングでもよい。例えば、モニタ部251は、ログを取得するタイミングにおいて、情報系サブシステム220のCPU221上で実行するプロセス、制御系サブシステム230のマイコン231上で実行するプロセス、関門器240上で実行するプロセスに関するログを取得する。デバイスやその内部のプロセスによっては必ずしも必要なログが出力されないことがあるが、モニタ部251は、システムコマンド等を利用することによってログを取得する。例えば、監視対象とするデバイスがLinux(登録商標)ベースのシステムである場合、SystemTapによってカーネルの振る舞いを取得できる。また、例えば、監視対象とするデバイスがBSDベースのシステムである場合、DTraceによってプロセスの動きを取得できる。ログは、監視対象とするデバイスと、当該デバイス上で実行するプロセスと、当該プロセスに関連するオブジェクトと、当該プロセスがオブジェクトに対して実行するアクション等の項目を含む。オブジェクトとは、プロセスの制御対象であり、例えば、ファイル、通信アドレス、プロセス(子プロセス)、デバイス等である。アクションは、オブジェクトに対する操作である。例えば、オブジェクトがファイルである場合、アクションは生成、削除、変更、読み出し等である。なお、モニタ部251は、CPU221上で実行するアプリケーションのログを収集し、収集したログを上記の項目に加工してもよい。
モニタ部251により取得されたログはログ管理DB271に保存される。ログ管理DB271において、セキュリティのための署名や暗号化が行われてもよい。外部攻撃の発生から異常の検知までの時間を考慮して、必要な期間分のログがログ管理DB271に保持される。ログ管理DB271のリソースを節約するために、保持不要なログはログ管理DB271から削除されてもよい。例えば、車両20において或るファームウェアのファイルが更新された場合、当該ファイルの規定した世代より前のログは削除されてもよい。
ログ送信部253は、監視サーバ10への送信タイミングが到来したときに、ログ管理DB271に保存されているログを監視サーバ10へ送信する。
一方、監視サーバ10は、ログ受信部151、グラフ構造生成部152及びトラッキング部153等を有する。これら各部は、監視サーバ10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。監視サーバ10は、また、ログ管理DB171、グラフ管理DB172及び紐付け情報DB173等のデータベース(記憶部)を利用する。これら各データベース(記憶部)は、例えば、補助記憶装置102、又は監視サーバ10にネットワークを介して接続可能な記憶装置等を用いて実現可能であり、補助記憶装置102又はネットワークを介して接続可能な記憶装置等のメモリ保護領域に設けられてもよい。
ログ受信部151は、車両20から送信(アップロード)されるログを受信し、当該ログをログ管理DB171に記憶する。ログ管理DB171において、セキュリティのための署名や暗号化が行われてもよい。監視サーバ10においても、外部攻撃の発生から異常の検知までの時間を考慮して、必要な期間分のログがログ管理DB171に保持される。ログ管理DB171のリソースを節約するために、保持不要なログはログ管理DB171から削除されてもよい。例えば、車両20において或るファームウェアのファイルが更新された場合、当該ファイルの規定した世代より前のログは削除されてもよい。
グラフ構造生成部152は、ログ管理DB171に記憶されたログから、プロセスとオブジェクトとの関連付けを示すグラフ構造を生成する。グラフ構造には、有向非巡回グラフや二部グラフ等のグラフ理論に基づく生成アルゴリズムを用いることができる。生成されたグラフ構造は、グラフ管理DB172に保存される。グラフ管理DB172において、セキュリティのための署名や暗号化が行われてもよい。グラフ管理DB172のリソースを節約するために、グラフ構造は、LOUDS(Level-Order Unary Degree Sequence)等の簡潔データ構造を用いてグラフ管理DB172に保存されてもよい。グラフ管理DB172のリソースを節約するために、保持不要なグラフ構造はグラフ管理DB172から削除されてもよい。例えば、保持不要なログがログ管理DB171から削除された場合、削除されたログに関連付けられたグラフ構造はグラフ管理DB172から削除されてもよい。
監視対象とするデバイスによっては、ログの一部の項目が不足してグラフ構造が生成できない場合が存在する。例えば、オブジェクトがファイルである場合、そのファイルが何のデバイスのプロセスに関連するかを特定できない場合が存在する。また、ログ自体が取得できない場合も存在する。例えば、CAN通信が行われたが、通信相手のECUのログが取得できない場合が存在する。このような場合、予めオブジェクトとプロセスとの関連付けを紐付け情報として紐付け情報DB273において管理しておく。ファイルの例では、ファイルと当該ファイルを使用するプロセスとの関連付けを紐付け情報DB273において管理しておく。CAN通信の例では、CAN通信に関するオブジェクトと当該CAN通信の通信相手のECUのプロセスとの関連付けを紐付け情報DB273において管理しておく。グラフ構造生成部152は、紐付け情報DB273に保存された紐付け情報を用いて、グラフ構造の関連付けを補完する。
トラッキング部153は、グラフ管理DB172に保存されたグラフ構造を用いて、指定のオブジェクト等に関連するプロセスを特定し、特定したプロセスに関連するオブジェクトを更に特定する。トラッキング部153がプロセス及びオブジェクトを特定するタイミングは、異常検知装置(車両20内のIDS等)が異常を検知したタイミングでもよく、トラッキング部153の実行トリガが人手又は他の装置によって入力されたタイミングでもよい。例えば、車両20内のIDSにおいて或るマイコン231に異常が検知された場合、トラッキング部153は、当該マイコン231に関連する異常なプロセスを特定し、さらに、特定した異常なプロセスに関連するオブジェクトを特定する。なお、異常が検知されていない状態であっても疑わしいプロセス及びオブジェクトを特定するため、人手又は他の装置による実行トリガは、異常の検知とは異なるタイミングで行われてもよい。このように、トラッキング部153は指定された事象(異常の検知、外部攻撃の疑い等も含む)に関連するプロセス及びオブジェクトを特定することができ、指定された事象に関連しないプロセス及びオブジェクトを除外することができるため、指定された事象の影響範囲を特定することができる。また、指定された事象が発生するまでの経路を探索するための情報を提供できる。
図4Aには、監視サーバ10がグラフ構造生成部152及びトラッキング部153等の各部を含む例が示されているが、これらの機能部の一部又は全部が車両20に含まれてもよい。
図4Bは、本発明の実施例1における車両20の機能構成例を示す図である。図4Bでは、グラフ構造生成部254及びトラッキング部255の各部が車両20に含まれ、グラフ管理DB272及び紐付け情報DB273の各データベースが車両20に含まれている。グラフ構造生成部254及びトラッキング部255が実行する処理は、図4Aにおけるグラフ構造生成部152及びトラッキング部153と同じである。なお、グラフ構造生成部が車両20に含まれ、トラッキング部が監視サーバに含まれる構成も可能である。また、モニタ部が監視サーバ10に含まれてもよい。
(実施例2)
本発明の実施例2では、外部攻撃の判定を行うための手段について説明する。
図5Aは、本発明の実施例2における車両20及び監視サーバ10の機能構成例を示す図である。図5Aにおいて、車両20の情報系サブシステム220は、図4Aに示すモニタ部251及びログ送信部253に加えて、異常判定部252を更に有してもよい。異常判定部252は、車両20のIDS等によって実現されてもよい。異常判定部252も、情報系サブシステム220にインストールされた1以上のプログラムが、CPU221に実行させる処理により実現される。
車両20におけるモニタ部251及びログ送信部253の処理は、実施例1におけるモニタ部251及びログ送信部253の処理と同じである。
異常判定部252は、モニタ部251が取得したログに基づいて、異常の有無を判定する。例えば、マイコン231間の通信間隔や、マイコン231が出力したデータ値に基づいて異常の有無が判定されてもよい。また、例えば、ログを入力とし、異常度を出力とする学習済みのモデル(例えば、ニューラルネットワーク)に対し、モニタ部251が取得したログを入力することで、異常の有無が判定されてもよい。
監視サーバ10におけるログ受信部151及びグラフ構造生成部152の処理は、実施例1におけるログ受信部151及びグラフ構造生成部152の処理と同じである。
トラッキング部153は、グラフ管理DB172に保存されたグラフ構造を用いて、指定のオブジェクト等に関連するプロセスを特定し、特定したプロセスに関連するオブジェクトを更に特定する。例えば、車両20内のIDS又は異常判定部252等において或るマイコン231に異常が検知された場合、トラッキング部153は、当該マイコン231に関連する異常なプロセスを特定し、さらに、特定した異常なプロセスに関連するオブジェクトを特定する。このように、トラッキング部153は異常に関連するプロセス及びオブジェクトを特定することができ、異常に関連しないプロセス及びオブジェクトを除外することができるため、異常の影響範囲を特定することができる。また、異常が発生するまでの経路を探索するための情報を提供できる。
異常の検知においては、外部攻撃も故障も異常として検知される可能性がある。ほとんどの外部攻撃は外部起点があり、ほとんどの故障は外部起点がないという経験則を利用することで、トラッキング部153は、グラフ構造をたどって、外部起点があるとき、すなわち、車両20の外部に接続するための通信装置210が関与するときに外部攻撃の可能性があると判断してもよい。ただし、ディーラー等が通信装置210にアクセスしたことによって異常が検知された場合には、外部攻撃の可能性がないと判断するため、トラッキング部153は、外部起点の通信アドレスに関して予め設定されたブラックリスト又はホワイトリストを参照して、外部攻撃の可能性を判断してもよい。
また、トラッキング部153は、外部攻撃がない環境において生成された正常時のグラフ構造と、外部攻撃の可能性がある環境において生成されたグラフ構造とを比較して、外部攻撃の発生を検知してもよい。また、トラッキング部153は、外部攻撃が発生していない故障時又は正常時のグラフ構造を参照することで、当該グラフ構造ではあり得ない経路が発生したときに外部攻撃の可能性があると判断してもよい。また、トラッキング部153は、仕様によって規定された経路を表すグラフ構造と比較して、当該グラフ構造ではあり得ない経路が発生したときに外部攻撃の可能性があると判断してもよい。また、トラッキング部153は、仕様上又はセキュリティ上の理由であってはならない経路を表すグラフ構造と比較して、当該グラフ構造に一致する経路が発生したときに外部攻撃の可能性があると判断してもよい。
なお、図5Aには、車両20が異常判定部252を含む例が示されているが、異常判定部252は監視サーバ10に含まれてもよい。
(実施例3)
本発明の実施例3では、車両20等における安全性を考慮して、外部攻撃等による被害を防ぐための手段について説明する。
図5Bは、本発明の実施例3における車両20及び監視サーバ10の機能構成例を示す図である。図5Bにおいて、監視サーバ10は、図5Aに示すログ受信部151、グラフ構造生成部152及びトラッキング部153に加えて、アクション禁止部154を更に有する。アクション禁止部154も、監視サーバ10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
車両20におけるモニタ部251、異常判定部252及びログ送信部253の処理は、実施例2におけるモニタ部251、異常判定部252及びログ送信部253の処理と同じである。
監視サーバ10におけるログ受信部151、グラフ構造生成部152及びトラッキング部153の処理は、実施例2におけるログ受信部151、グラフ構造生成部152及びトラッキング部153の処理と同じである。
アクション禁止部154は、トラッキング部153において特定された影響範囲内のオブジェクトに対するアクションを禁止し、異常による被害の拡大を防ぐ。例えば、アクション禁止部154は、Linuxベースのシステムである場合、AppArmorによってオブジェクトへのアクセス制御を行うことができる。
なお、図5Bには、監視サーバ10がアクション禁止部154を含む例が示されているが、アクション禁止部154は車両20に含まれてもよい。
(具体例)
以下、図5Bに示す機能構成例において、車両20の情報系サブシステム220及び監視サーバ10が実行する処理手順について説明する。図6は、ログの発生時における処理手順の一例を説明するためのフローチャートである。
まず、車両20のモニタ部251は、監視対象とするデバイスが出力したログを取得する(S101)。例えば、モニタ部251は、一定の周期又は特定のイベントの発生等のタイミングにおいて、LinuxのSystemTapやBSDのDTrace等を用いることで、ログを取得する。監視対象とするデバイスに応じて、ログの取得タイミングは異なってもよい。
車両20内で実行される処理に応じてモニタ部251がログを取得する具体例について説明する。
図7A及び図7Bは、正常時に実行される処理の一例を示すシーケンス図である。図7A及び図7Bにおいて、OTA B.(Over The Air Backend)は車外にあるサービス提供サーバ30の1つであり、車両20に対して更新ソフトウェアを提供する機能を有する。TCU(Telematics Control Unit)は情報系サブシステム220の機能部であり、サービス提供サーバ30と通信するための機能を有する。FG(Flashing Gateway)は情報系サブシステム220又は制御系サブシステム230の機能部であり、OTA B.から受信したソフトウェアを一時的に保存する機能を有する。CTL(Controller)は関門器240に対応し、OTA B.から受信したソフトウェアを更新する機能(OTA)を有する。UI(User Interface)は運転パネル等であり、情報系サブシステム220の表示装置224及び入力装置225に対応する。ECU2はマイコン231に対応する。ECU2からはログが取得できないと仮定する。制御系サブシステム230におけるCAN通信時に、CTLはCAN-ID1を使用し、ECU2はCAN-ID2を使用することとする。
TCUは、一定の周期又は特定のイベントの発生等のタイミングにおいて、OTA B.に対して車両20内で更新すべきファームウェアがあるか否かを確認する(t1.1)。更新すべきファームウェアがある場合、TCUは、OTA B.に対して新たなファームウェアの更新ファイルを要求する(t1.2)。TCUが更新ファイルを受信した場合、更新ファイルをFGに保存する(t1.3)。
CTLは、一定の周期又は特定のイベントの発生等のタイミングにおいて、FGに対してCTLにおいて更新すべきファームウェアがあるか否かを確認し、更新すべきファームウェアがある場合、FGから新たなファームウェアの更新ファイルを取得する(t2.1)。CTLは、更新ファイルを用いてCTLのファームウェアを更新し(t2.2)、更新したファームウェアを有効にするためにCTLを再起動する(t2.3)。
UIが運転手等からECU2に対する操作命令を受け付けた場合、UIは操作命令を示すメッセージをCTLに送信する(t3.1)。CTLはTCUからのメッセージにCAN-ID1を付与してECU2に中継する(t3.2)。ECU2はメッセージに付与されたCTLのIDであるCAN-ID1を確認し、受信したメッセージに応じた動作を行う。
t1.1~t1.3における更新ファイルのダウンロード、t2.1~t2.3におけるファームウェアの更新、t3.1~t3.2におけるECU2への操作は、異なるタイミングに実施され、時間的に不連続になる。
図8は、図7A及び図7Bのシーケンスにおいてモニタ部251が取得するログの一例を示す図である。モニタ部251は、TCU、CTL及びUIのデバイスを対象として、LinuxのSystemTapやBSDのDTrace等を実行し、日時、デバイス、プロセス、SRC、DST及びアクションを含むログを取得する。日時はデバイス内のプロセスの実行日時である。デバイスは監視対象のデバイスであり、プロセスは監視対象のデバイス内で実行されたプロセスである。SRCはプロセスの制御元のオブジェクトであり、DSTはプロセスの制御先のオブジェクトである。アクションはオブジェクトに対して行われた操作である。
図8の1行目のログは、図7Aにおけるt1.1に対応する。t1.1の日時において、TCUのプロセス(tcu pid1)によって、送信元アドレス(IP:ip1:port1)から宛先アドレス(IP:ota_ip:80)に対して、更新すべきファームウェアがあるか否かを確認するアクション(http://ota_ip/info)を実行したときのログが取得される。同様に、t1.2の日時においてTCUが更新ファイルを要求するアクションを実行したときのログと、t1.3の日時においてTCUが更新ファイルをFGに保存するアクションを実行したときのログが取得される。「-」はログが取得できない項目である。
図8の4行目のログは、図7Aにおけるt2.1に対応する。t2.1の日時において、CTLがOTA機能のプロセス(ota pid1)によって、更新ファイルの取得先(FG:FirmwareCTL)から、新たなファームウェアの更新ファイルを取得するアクション(file:read)を実行したときのログが取得される。同様に、t2.2の日時においてCTLがファームウェアを更新するアクションを実行したときのログと、t2.3の日時においてCTLが自身のプロセスを終了するアクションを実行したときのログと、CTLが自身のプロセスを開始するアクションを実行したときのログが取得される。
図8の8行目のログは、図7Bにおけるt3.1に対応する。t3.1の日時において、UIがUIのプロセス(ui pid1)によって、制御先のCTL(CAN:ID1)に対してCAN通信のメッセージを送信するアクション(CAN)を実行したときのログが取得される。同様に、t3.2の日時においてCTLがメッセージをECU2に送信するアクションを実行したときのログが取得される。
図9A及び図9Bは、外部攻撃時に実行される処理の一例を示すシーケンス図である。図9A及び図9Bは、マルウェアに感染したときのシーケンス図であり、Mal CTLはマルウェアに感染した関門器240を示す。C&C(Command and Control)は不正操作を実施するサーバである。
TCUのブラウザは、例えば販売店・代理店・スタンドのホットスポット等に偽装された偽サイトにアクセスする(t1.1)。偽サイトへのアクセスによって攻撃スクリプトがTCUに送信される。攻撃スクリプトは、TCUの脆弱性を悪用して、ブラウザが任意のコードを実行できるように改竄する。ブラウザは、偽サイトに対してマルウェアを要求する(t1.2)。TCUがマルウェアを受信した場合、マルウェアを保存し(t1.3)、マルウェアを実行する(t1.4)。マルウェアは、TCUの脆弱性を悪用して、セキュリティ機能を無効してマルウェアの権限を昇格させる。マルウェアは、CTLのファームウェアの改竄ファイルを要求し(t1.5)、改竄ファイルを受信したときに、改竄ファイルをFGに保存する(t1.6)。
CTLは、一定の周期又は特定のイベントの発生等のタイミングにおいて、FGに対してCTLにおいて更新すべきファームウェアがあるか否かを確認し、更新すべきファームウェアがある場合、FGから新たなファームウェアの更新ファイルを取得する(t2.1)。この場合、改竄ファイルが取得される。CTLは、改竄ファイルを用いてCTLのファームウェアを更新し(t2.2)、更新したファームウェアを有効にするためにCTLを再起動する(t2.3)。その結果、CTLがマルウェアに感染し、CTLからのメッセージに任意のIDが付与できるように改竄される。
TCU内のマルウェアは、C&Cに対して不正コマンドを要求し(t3.1)、C&Cから不正コマンドを受信する。TCUは不正コマンドに含まれる操作命令を示すメッセージをMal CTLに送信する(t3.2)。Mal CTLはメッセージに任意のIDを付与できるように改竄されているため、不正なIDであるCAN-ID2をメッセージに付与することができる。Mal CTLはECU2に成りすますためにTCU上のマルウェアからのメッセージにCAN-ID2を付与し中継する(t3.3)。ECU2はメッセージに付与されたIDであるCAN-ID2を確認し、受信したメッセージに応じた動作を行う。ここで、t3.3におけるメッセージの送信が通常のタイミングから外れている等の理由で、IDSが異常を検知したとする。
t1.1~t1.6における改竄ファイルのダウンロード、t2.1~t2.3におけるファームウェアの更新、t3.1~t3.3におけるECU2への操作は、異なるタイミングに実施され、時間的に不連続になる。
図10は、図9A及び図9Bのシーケンスにおいてモニタ部251が取得するログの一例を示す図である。モニタ部251は、図8と同様にしてログを取得する。
図10の1行目のログは、図9Aにおけるt1.1に対応する。t1.1の日時において、TCUがブラウザのプロセス(browser pid1)によって、送信元アドレス(IP:ip1:port1)から宛先アドレス(IP:ip2:80)に対してアクセスするアクション(http://ip2/info)を実行したときのログが取得される。同様に、t1.2の日時においてTCUがマルウェアを要求するアクションを実行したときのログと、t1.3の日時においてTCUがマルウェアを保存するアクションを実行したときのログと、t1.4の日時においてTCUがマルウェアを実行するアクションを実行したときのログと、t1.5の日時においてTCUが改竄ファイルを要求するアクションを実行したときのログと、t1.6の日時においてTCUが改竄ファイルをFGに保存するアクションを実行したときのログが取得される。
図10の7行目のログは、図9Aにおけるt2.1に対応する。t2.1の日時において、CTLがOTA機能のプロセス(ota pid3)によって、更新ファイルの取得先(FG:FirmwareCTL)から、新たなファームウェアの更新ファイルを取得するアクション(file:read)を実行したときのログが取得される。同様に、t2.2の日時においてCTLがファームウェアを更新するアクションを実行したときのログと、t2.3の日時においてCTLが自身のプロセスを終了するアクションを実行し、CTLが自身のプロセスを開始するアクションを実行したときのログが取得される。
図10の11行目のログは、図9Bにおけるt3.1に対応する。t3.1の日時において、TCUがマルウェアのプロセス(malware pid2)によって、送信元アドレス(IP:ip1:port4)から宛先アドレス(IP:ip3:443)に対して不正コマンドを要求するアクション(https://ip3/command)を実行したときのログが取得される。同様に、t3.2の日時においてTCUが操作命令をCTLに送信するアクションを実行したときのログと、t3.3の日時においてCTLがメッセージをECU2に送信するアクションを実行したときのログが取得される。
なお、IDSによる異常検知に加えて、異常判定部252は、ログを確認して異常を検知することができる。異常の検知には公知技術を用いることができる。例えば、異常判定部252は、存在し得ないSRCからDSTへのアクションが存在する場合や、DSTがアクションを実行できる状態にない場合には異常であると判断する。また、例えば、異常判定部252は、ログの日時を確認して、異常なタイミングでアクションが実行されている場合には異常であると判断する。
ログはログ管理DB271に保存され、ログ送信部253は、ログ管理DB271に保存されているログを監視サーバ10へ送信する。異常が検知されたt3.3の日時におけるログに、異常であることを示すフラグが付与されてもよい。また、異常は、ログとは別のタイミングで監視サーバ10に通知されてもよい。
ログ受信部151は、ログを受信し、ログをログ管理DB171に記憶する。ログ管理DB171において、t3.3の日時においてCAN-ID2が付与されたメッセージの異常が検知されたことも記憶される。
グラフ構造生成部152は、ログ管理DB171に記憶されたログの中で日時が近いログを抽出し、プロセスとオブジェクトとの関連付けを示すグラフ構造を生成する(S102)。例えば、図10に示すログから、プロセスとオブジェクトとの関連付けを二部グラフ等で表現することができる。
図11は、グラフ構造の一例を示す図である。グラフ構造生成部152は、原則として、プロセスに対してDSTをオブジェクトとして関連付けを行い、二部グラフを生成する。グラフ構造生成部152は、図10のt1.1の日時におけるログから、ブラウザのプロセス(browser pid1)と、偽サイトのアドレスを示すオブジェクト(IP:ip2:80)との関連付けを示すグラフ構造を生成する。t1.1と同様に、グラフ構造生成部152は、t1.2~t1.6の日時におけるログからグラフ構造を生成する。ただし、t1.4の日時におけるアクション(proc:fork-exec)の場合、DST(malware pid2)もプロセスとし、SRC(FILE:malware hash1)をオブジェクトとして扱い、SRCのオブジェクトを2つのプロセス(browser pid1及びmalware pid2に関連付ける。
さらに、グラフ構造生成部152は、t2.1~t2.3の日時におけるログからグラフ構造を生成する。しかし、t2.2の日時におけるアクション(CAN:update)の場合、グラフ構造生成部152は、ログからはファームウェアの更新ファイルの情報が取得できない。このように、十分なログが取得できない場合に備えて、予めオブジェクトとプロセスとの関連付けが分かっているものを紐付け情報DB273において管理する。
図12は、紐付け情報の一例を示す図である。紐付け情報DB273において管理される紐付け情報は、予め分かっているオブジェクトとプロセスとの関連付けである。例えば、CTLのファームウェアの更新ファイルはCTLのプロセスに関係するため、FG:FirmwareCTLのオブジェクトとCTLのプロセスとの関連付けが紐付け情報DB273に保存される。同様に、FILE:ctlのオブジェクトはCTLのOTA機能のプロセスに関係するため、これらの関連付けが紐付けDB273に保存される。例えば、CTLやECU等のデバイスがCAN通信に用いるCAN-IDは予め分かっており、この例の場合、CTLはCAN:ID1を使用し、ECU2はCAN:ID2を使用するため、CAN:ID1のオブジェクトとCTLのプロセスとの関連付けが紐付け情報DB273に保存され、CAN:ID2のオブジェクトとECU2のプロセスとの関連付けが紐付け情報DB273に保存される。なお、ECU2のログは取得できないため、紐付け情報DB273にはECU2のプロセスの代わりに、ECU2のデバイス名が保存されてもよい。
t2.2の日時におけるアクション(proc:update)の場合、グラフ構造生成部152は、ログを用いる代わりに、紐付け情報DB273の紐付け情報を用いて、ota pid3のプロセスをFILE:ctlのオブジェクトに関連付ける。また、グラフ構造生成部152は、t2.3の日時におけるアクション(proc:start)の場合、CTLのプロセス(ctl pid5)をSRCのオブジェクト(FILE:ctl hash3)に関連付ける。このように、ログのアクションによっては、グラフ構造生成部152は、紐付け情報DB273を用いてプロセスとオブジェクトとの関連付けをしてもよく、プロセスに対してSRCをオブジェクトとして関連付けてもよい。
さらに、グラフ構造生成部152は、t3.1~t3.3の日時におけるログからグラフ構造を生成する。t3.3の日時において、グラフ構造生成部152は、紐付け情報DB273の紐付け情報を用いて、SRCのオブジェクト(CAN:ID2)をECU2のプロセスに関連付ける。このように、紐付け情報DB273における紐付け情報を用いて関連付けることができるオブジェクト及びプロセスが存在する場合、グラフ構造生成部152は紐付け情報を用いてグラフ構造を補完する。
t1.1~t3.3の日時におけるログから、図11に示す二部グラフが生成される。二部グラフの頂点はプロセス又はオブジェクトであり、辺はプロセスとオブジェクトとの関連付けである。図11における実線の関連付けはログに基づいて生成されたものであり、点線の関連付けは紐付け情報DB273の紐付け情報に基づいて生成されたものである。生成された二部グラフは、グラフ管理DB172に保存される。
なお、実際のログから生成されたグラフだけでなく、仕様上又はセキュリティ上の理由であってはならない経路を表すグラフ構造をブラックリストとしてグラフ管理DB172に登録してもよく、仕様によって規定された経路を表すグラフ構造をホワイトリストとしてグラフ管理DB172に登録してもよい。
トラッキング部153は、或るオブジェクトにおける異常が検知された場合(S103:Yes)、グラフ管理DB172に保存されたグラフ構造を結合し、異常が検知されたオブジェクトに関連する異常なプロセスを特定する。さらに、トラッキング部153は、特定した異常なプロセスに関連するオブジェクトを特定する(S104)。
例えば、CAN-ID2が付与されたメッセージの異常が検知された場合、トラッキング部153は、グラフ管理DB172からCAN:ID2を頂点とするグラフを抽出し、抽出したグラフの頂点(malware pid2、ctl pid 5、ECU2)を有するグラフを更に抽出する。同様の手順で、CAN:ID2に直接的又は間接的に繋がるグラフを抽出して、抽出したグラフを結合する。
図13は、グラフ構造の結合例を示す図である。図11に示すように、異常が検知されたオブジェクト(CAN:ID2)に関連するプロセス(malware pid2)を頂点とする2つの二部グラフが存在するため、これら2つの二部グラフが結合される。同様に、異常が検知されたオブジェクト(CAN:ID2)に関連するプロセス(ctl pid5)を頂点とする2つの二部グラフが結合される。その結果、図13から、異常が検知されたオブジェクト(CAN-ID2)の影響範囲は、5個のプロセス(browser pid1、malware pid2、ota pid3、ctl pid5、ECU2のプロセス)と、6個のオブジェクト(IP:ip2:80、FILE:malware hash1、FG:FirmwareCTL hash2、FILE:ctl hash3、IP:ip3:443、CAN:ID2)であることが特定できる。
なお、トラッキング部153は、異常が検知されない場合であっても、正常時のグラフ構造と外部攻撃時のグラフ構造を比較して、異常を検知できる。また、トラッキング部153は、グラフ管理DB172にブラックリスト又はホワイトリストとして登録されたグラフ構造と比較して、異常を検知してもよい。
図14Aは、正常時のグラフ構造を示す図であり、図14Bは、外部攻撃時のグラフ構造を示す図である。正常時のグラフ構造は、図8のt1.1~t2.3の日時のログから、グラフ構造生成部152が生成した二部グラフを結合したものである。外部攻撃時のグラフ構造は、図10のt1.1~t2.3の日時のログから、グラフ構造生成部152が生成した二部グラフを結合したものである。これらの2つのグラフを比較すると、外部攻撃時には正常時には存在しないプロセス(malware pid2)及びオブジェクト(FILE:malware hash1)が存在し、外部攻撃の可能性があると判断できる。外部攻撃の可能性があるプロセス(malware pid2)及びオブジェクト(FILE:malware hash1)を特定した場合、トラッキング部153は、図13を参照して説明した通り、外部攻撃の影響範囲を特定できる。
アクション禁止部154は、トラッキング部153において特定された影響範囲内のオブジェクトに対するアクションを禁止する(S105)。例えば、図13に示すように二部グラフを結合して影響範囲内の6個のオブジェクト(IP:ip2:80、FILE:malware hash1、FG:FirmwareCTL hash2、FILE:ctl hash3、IP:ip3:443、CAN:ID2)が特定された場合、アクション禁止部154は、これらの6個のオブジェクトに対するアクションを禁止する。
さらに、車両20内で実行される処理に応じてモニタ部251がログを取得する具体例について説明する。
図15は、故障発生時に実行される処理の一例を示すシーケンス図である。図15には、図7B又は図9Bに示すシーケンス図に続く処理が示されている。
ECU2における故障発生時に、ECU2の動作が他ECUに切り替えられものとする(t4.1)。その際に、ECU2はCAN-ID2をメッセージに付与して他ECUに送信する(t4.2)。ここで、他ECUの状態の不一致やECU2から他ECUに送信されたメッセージのタイミングずれ等によって、IDSが異常を検知した場合、ECU2はCAN-ID2と共に故障コードをCTLに送信する(t4.3)。CTLは故障コードを受信すると、CAN-ID1と共に故障コードをUIに送信する(t4.4)。UIが故障コードを受信すると、故障警告灯が点灯する(t4.5)。
図16は、図15のシーケンスにおいてモニタ部251が取得するログの一例を示す図である。モニタ部251は、図8と同様にしてログを取得する。
図16の1行目のログは、図15におけるt4.2に対応する。なお、ECU2からはログを取得できないため、t4.1に対応するログは存在しない。t4.2の日時において、ECU2のプロセスによってECU2(CAN:ID2)の故障検知が行われるアクションを実行したときのログが取得される。同様に、t4.3の日時において、CTLが故障コードを受信するアクションを実行したときのログと、t4.4の日時において、CTLが故障コードを送信するアクションを実行したときのログが取得される。なお、t4.3におけるログとt4.4におけるログとを区別するため、t4.3のログはECU2が故障コードを送信するアクションを実行したときのログに相当するが、送信元のCAN:ID2をDSTとして扱う。
図11~図13を参照して説明した通り、グラフ構造生成部152は、プロセスとオブジェクトとの関連付けを示すグラフ構造を生成することができる。
図17Aは、通常の故障時のグラフ構造を示す図であり、図17Bは、外部攻撃時のグラフ構造を示す図である。通常の故障時のグラフ構造は、図7Bに示すシーケンスに続いて図15に示すシーケンスが発生したときのグラフ構造であり、外部攻撃時のグラフ構造は、図9Bに示すシーケンスに続いて図15に示すシーケンスが発生したときのグラフ構造である。これらの2つのグラフを比較すると、外部攻撃時には通常の故障時には存在しないプロセス(malware pid2)及びオブジェクト(IP:ip3:443)が存在し、外部攻撃の可能性があることを検知できる。また、外部攻撃時には、外部環境に接続するためのオブジェクト(IP:ip3:443)が存在するが、通常の故障時には、外部環境に接続するためのオブジェクトが存在しないことが分かる。このように、未知の外部環境に接続するためのオブジェクトが存在する場合、トラッキング部153は、故障が外部攻撃によって発生したと判断してもよい。
なお、図15に示す例では、UIにおいて故障警告灯を点灯させる例が示されているが、故障コードをTCU経由でディーラー等に送信することも考えられる。この場合、通常の故障時においても、外部環境に接続するためのオブジェクトが存在する。トラッキング部153は、通信アドレスに関して予め設定されたホワイトリスト又はブラックリストを参照して、故障が外部攻撃によって発生したか否かを判断してもよい。また、トラッキング部153は、経路の順序に基づいて、例えば、異常の検知の前の時刻の経路に外部アドレスが存在する場合には、攻撃が外部攻撃によって発生したと判断してもよい。
このように、本実施の形態では、ログからプロセスとオブジェクトとの関連付けがグラフ構造として表現できる。グラフ構造は、異常の検知にも利用できる。或る事象が指定された場合(例えば、異常が検知された場合)、グラフ構造を利用して、指定された事象の影響範囲であるプロセスと、当該プロセスに関連するオブジェクトとを特定することができる。
なお、本実施の形態では、車両20を機器の一例として説明したが、通信機能を有する他の機器について本実施の形態が適用されてもよい。例えば、工場におけるロボット等の産業用制御機器、各地に配置されたセンサ、オーディオ機器、家電製品、通信端末(スマートフォン、タブレット端末等)や、一般的にIoT(Internet of Things)機器と呼ばれる機器について、本実施の形態が適用されてもよい。
上述したように、本実施の形態によれば、グラフ構造を利用して異常の影響範囲を特定することができ、その結果、異常の分析が効率化される。
また、ログから生成されたグラフ構造や、ホワイトリスト又はブラックリストとして登録されたグラフ構造を利用して、異常を検知することが可能になる。
また、異常の影響範囲の特定においてグラフ構造を利用することで、異常が外部攻撃によって発生したか、内部の故障によって発生したかを判断することが可能になる。
また、異常の影響範囲が特定できた場合、その範囲内のオブジェクトに対するアクションを禁止することで、外部攻撃による被害の拡大を防ぐことができる。
なお、本実施の形態において、車両20は、機器の一例である。監視サーバ10は、情報処理装置の一例である。グラフ構造生成部152は、生成部の一例である。トラッキング部153は、特定部の一例である。アクション禁止部154は、禁止部の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
本国際出願は2018年10月11日に出願した日本国特許出願2018-192413号に基づく優先権を主張するものであり、2018-192413号の全内容を本国際出願に援用する。
10 監視サーバ
20 車両
30a サービス提供サーバ
30b サービス提供サーバ
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
151 ログ受信部
152 グラフ構造生成部
153 トラッキング部
154 アクション禁止部
171 ログ管理DB
172 グラフ管理DB
173 紐付け情報DB
210 通信装置
221 CPU
222 メモリ装置
223 補助記憶装置
224 表示装置
225 入力装置
220 情報系サブシステム
230 制御系サブシステム
231 マイコン
240 関門器
251 モニタ部
252 異常判定部
253 ログ送信部
254 グラフ構造生成部
255 トラッキング部
256 アクション禁止部
271 ログ管理DB
272 グラフ管理DB
273 紐付け情報DB
B バス

Claims (7)

  1. 機器から取得されたログから、プロセスと当該プロセスに関連するオブジェクトとの関連付けを示すグラフ構造を生成する生成部と、
    前記機器のいずれかのオブジェクトにおいて異常が検知された場合、前記生成されたグラフ構造に基づいて、当該異常が検知されたオブジェクトに関連する異常なプロセスを特定し、当該異常なプロセスに関連する異常なオブジェクトを特定し、当該異常なオブジェクトの中に前記機器の外部に接続するためのオブジェクトが存在するか否かを判断し、当該判断の結果に基づいて、前記異常が外部攻撃によって発生したと判断する特定部と、
    を有する情報処理装置。
  2. 機器から取得されたログから、プロセスと当該プロセスに関連するオブジェクトとの関連付けを示すグラフ構造を生成し、予め作成されたオブジェクトとプロセスとの間の紐付け情報を用いて、前記グラフ構造の関連付けを補完する生成部と、
    前記機器のいずれかのオブジェクトが指定された場合、前記生成されたグラフ構造に基づいて、当該指定されたオブジェクトに関連するプロセスを特定し、当該特定されたプロセスに関連するオブジェクトを特定する特定部と、
    を有する情報処理装置。
  3. 前記特定部は、外部攻撃がない環境において前記機器から取得されたログから生成されたグラフ構造と、外部攻撃の可能性がある環境において前記機器から取得されたログから生成されたグラフ構造とを比較して、外部攻撃の発生を検知する、請求項1又は2に記載の情報処理装置。
  4. 前記特定されたプロセスに関連するオブジェクトに対するアクションを禁止する禁止部を更に有する、請求項1乃至のうちいずれか1項に記載の情報処理装置。
  5. 情報処理装置が、
    機器から取得されたログから、プロセスと当該プロセスに関連するオブジェクトとの関連付けを示すグラフ構造を生成するグラフ構造生成手順と、
    前記機器のいずれかのオブジェクトにおいて異常が検知された場合、前記生成されたグラフ構造に基づいて、当該異常が検知されたオブジェクトに関連する異常なプロセスを特定し、当該異常なプロセスに関連する異常なオブジェクトを特定する特定手順と、
    当該異常なオブジェクトの中に前記機器の外部に接続するためのオブジェクトが存在するか否かを判断し、当該判断の結果に基づいて、前記異常が外部攻撃によって発生したと判断手順と、
    を実行するログ分析方法。
  6. 情報処理装置が、
    機器から取得されたログから、プロセスと当該プロセスに関連するオブジェクトとの関連付けを示すグラフ構造を生成し、予め作成されたオブジェクトとプロセスとの間の紐付け情報を用いて、前記グラフ構造の関連付けを補完するグラフ構造生成手順と、
    前記機器のいずれかのオブジェクトが指定された場合、前記生成されたグラフ構造に基づいて、当該指定されたオブジェクトに関連するプロセスを特定し、当該特定されたプロセスに関連するオブジェクトを特定する特定手順と、
    を実行するログ分析方法。
  7. 請求項1乃至のうちいずれか1項に記載の各部として情報処理装置を機能させるためのプログラム。
JP2020551224A 2018-10-11 2019-10-10 情報処理装置、ログ分析方法及びプログラム Active JP7176569B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018192413 2018-10-11
JP2018192413 2018-10-11
PCT/JP2019/040031 WO2020075808A1 (ja) 2018-10-11 2019-10-10 情報処理装置、ログ分析方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2020075808A1 JPWO2020075808A1 (ja) 2021-09-02
JP7176569B2 true JP7176569B2 (ja) 2022-11-22

Family

ID=70164575

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020551224A Active JP7176569B2 (ja) 2018-10-11 2019-10-10 情報処理装置、ログ分析方法及びプログラム

Country Status (5)

Country Link
US (1) US20210377289A1 (ja)
EP (1) EP3848806A4 (ja)
JP (1) JP7176569B2 (ja)
CN (1) CN112823339A (ja)
WO (1) WO2020075808A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022131504A (ja) * 2021-02-26 2022-09-07 Nttセキュリティ・ジャパン株式会社 情報処理システム、情報処理方法、及びプログラム
WO2023223515A1 (ja) * 2022-05-19 2023-11-23 日本電信電話株式会社 攻撃経路推定システム、攻撃経路推定装置、攻撃経路推定方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257773A (ja) 2012-06-13 2013-12-26 Nippon Telegr & Teleph Corp <Ntt> 監視装置および監視方法
WO2016060067A1 (ja) 2014-10-14 2016-04-21 日本電信電話株式会社 特定装置、特定方法および特定プログラム
JP2016218788A (ja) 2015-05-21 2016-12-22 日本電信電話株式会社 ログ抽出システム、ログ抽出方法およびログ抽出プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065183A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 셀트 문법 형식의 셀이눅스 보안정책 자동 생성 장치 및방법
US9225730B1 (en) * 2014-03-19 2015-12-29 Amazon Technologies, Inc. Graph based detection of anomalous activity
US10367838B2 (en) * 2015-04-16 2019-07-30 Nec Corporation Real-time detection of abnormal network connections in streaming data
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system
US10783241B2 (en) * 2015-10-28 2020-09-22 Qomplx, Inc. System and methods for sandboxed malware analysis and automated patch development, deployment and validation
JP6648511B2 (ja) * 2015-12-08 2020-02-14 日本電気株式会社 支援装置、支援方法およびプログラム
WO2017175154A1 (en) * 2016-04-06 2017-10-12 Karamba Security Automated security policy generation for controllers
US9928366B2 (en) * 2016-04-15 2018-03-27 Sophos Limited Endpoint malware detection using an event graph
US10673880B1 (en) * 2016-09-26 2020-06-02 Splunk Inc. Anomaly detection to identify security threats
US10237294B1 (en) * 2017-01-30 2019-03-19 Splunk Inc. Fingerprinting entities based on activity in an information technology environment
US10205735B2 (en) * 2017-01-30 2019-02-12 Splunk Inc. Graph-based network security threat detection across time and entities
US10536482B2 (en) * 2017-03-26 2020-01-14 Microsoft Technology Licensing, Llc Computer security attack detection using distribution departure
US10909179B2 (en) * 2017-03-30 2021-02-02 AVAST Software s.r.o. Malware label inference and visualization in a large multigraph
JP6879048B2 (ja) 2017-05-16 2021-06-02 王子ホールディングス株式会社 塗工装置、衛生用品の製造装置、塗工方法、および、衛生用品の製造方法
CN107330034B (zh) * 2017-06-26 2020-08-07 百度在线网络技术(北京)有限公司 一种日志分析方法和装置、计算机设备、存储介质
US11082438B2 (en) * 2018-09-05 2021-08-03 Oracle International Corporation Malicious activity detection by cross-trace analysis and deep learning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257773A (ja) 2012-06-13 2013-12-26 Nippon Telegr & Teleph Corp <Ntt> 監視装置および監視方法
WO2016060067A1 (ja) 2014-10-14 2016-04-21 日本電信電話株式会社 特定装置、特定方法および特定プログラム
JP2016218788A (ja) 2015-05-21 2016-12-22 日本電信電話株式会社 ログ抽出システム、ログ抽出方法およびログ抽出プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WUECHNER, Tobias, et al.,Malware Detection with Quantitative Data Flow Graphs,Proceedings of the 9th ACM symposium on Information, computer and communication security,2014年06月06日,pp.271-282,<URL:https://dl.acm.org/citation.cfm?id=2590319>, <DOI:10.1145/2590296.2590319>

Also Published As

Publication number Publication date
EP3848806A4 (en) 2021-11-03
CN112823339A (zh) 2021-05-18
US20210377289A1 (en) 2021-12-02
JPWO2020075808A1 (ja) 2021-09-02
WO2020075808A1 (ja) 2020-04-16
EP3848806A1 (en) 2021-07-14

Similar Documents

Publication Publication Date Title
KR102178003B1 (ko) 네트워크 접속 제어 시스템 및 그 방법
US10931635B2 (en) Host behavior and network analytics based automotive secure gateway
KR102642875B1 (ko) 차량 내 네트워크에 보안을 제공하는 시스템 및 방법
US9973531B1 (en) Shellcode detection
CN107634959B (zh) 基于汽车的防护方法、装置及系统
KR102234402B1 (ko) 커넥티드 차량의 네트워크 이상징후 탐지 시스템 및 방법
WO2013117148A1 (zh) 检测远程入侵计算机行为的方法及系统
CN107465702B (zh) 基于无线网络入侵的预警方法及装置
JP7176569B2 (ja) 情報処理装置、ログ分析方法及びプログラム
WO2021145144A1 (ja) 侵入経路分析装置および侵入経路分析方法
CN107566401B (zh) 虚拟化环境的防护方法及装置
CN110839025A (zh) 中心化web渗透检测蜜罐方法、装置、系统及电子设备
CN109076011A (zh) 中继装置
CN105791250B (zh) 应用程序检测方法及装置
US11971982B2 (en) Log analysis device
US10885191B1 (en) Detonate targeted malware using environment context information
JP7024069B2 (ja) 車両の制御機器に対する攻撃を検出する方法
US20220337604A1 (en) System And Method For Secure Network Access Of Terminal
CN107517226B (zh) 基于无线网络入侵的报警方法及装置
JP7230147B1 (ja) 車両セキュリティ分析装置、方法およびそのプログラム
CN113868643B (zh) 运行资源的安全检测方法、装置、电子设备及存储介质
JP2020096320A (ja) 不正信号処理装置
KR102517982B1 (ko) 애플리케이션 검사 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
WO2019229969A1 (ja) データ通信制御装置、データ通信制御プログラムおよび車両制御システム
Hadi Sultani et al. Indicators of Compromise of Vehicular Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220711

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: 20221011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221024

R150 Certificate of patent or registration of utility model

Ref document number: 7176569

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150