JP7361912B2 - 制御システム - Google Patents
制御システム Download PDFInfo
- Publication number
- JP7361912B2 JP7361912B2 JP2022527371A JP2022527371A JP7361912B2 JP 7361912 B2 JP7361912 B2 JP 7361912B2 JP 2022527371 A JP2022527371 A JP 2022527371A JP 2022527371 A JP2022527371 A JP 2022527371A JP 7361912 B2 JP7361912 B2 JP 7361912B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- control
- processing
- arithmetic processing
- execution
- 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
Links
- 238000000034 method Methods 0.000 claims description 81
- 230000005856 abnormality Effects 0.000 claims description 67
- 238000004364 calculation method Methods 0.000 claims description 63
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 238000007689 inspection Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 description 21
- 238000007726 management method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
- B60W50/035—Bringing the control units into a predefined state, e.g. giving priority to particular actuators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/04—Monitoring the functioning of the control system
- B60W50/045—Monitoring control system parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Traffic Control Systems (AREA)
Description
本願は、制御システムに関するものである。
近年、自動車の車載システムはネットワークを介して車外の装置と接続されるようになり、悪意のある第三者が外部からネットワークを介して車載システムに侵入するリスクがある。車載システムに侵入されると、車両に搭載される制御装置である、例えばECU(Electronic Control Unit)において、記憶されているプログラムが改ざんされたり、ECUの制御を乗っ取られ、遠隔操作されることによって故意に事故を発生させる恐れがある。
車載システムでは、一部の装置が故障した場合でも、故障によって発生した異常を検知し、フェールセーフによって機能を縮退するなど、通常の走行ができるように、異常対処方法が考えられている。
しかし、上述したように、プログラムの改ざんによって、故障による異常を検知する仕組みが変更されたり、もしくは異常検知の対象となる情報が正常な値であるかのようになりすまされると、本来異常と判断されなければならない事象が、異常として検知することが困難となる。
このような課題に対し、セキュリティ保護の技術として、メッセージ認証またはディジタル署名などがある。しかし、これらは、既知の攻撃シナリオに対して対策された技術であり、未知のサイバー攻撃に対応できるとは限らない。例えば、通信データが、正常な値であるかのようになりすまされると、異常として検知することが困難となる。そのため、通信データだけでなく車両またはECUの挙動を監視する必要が生じる。
未知のサイバー攻撃対策の一つとして、セキュアブートがある。しかし、起動時にメモリチェックを行うため、走行中に攻撃を受けた場合には対応できない。また、走行中、常にメモリをチェックすると処理負荷が大きい課題がある。そこで、走行中に未知のサイバー攻撃を受けても制御処理の処理負荷に大きな影響を与えずに異常を検知し、車を通常に走行可能にする仕組みが必要である。
特許文献1は、複数のプロセスを実行するCPUを監視するために、複数のプロセスの実行状況に基づいて複数のプロセスの相互間の依存関係を抽出し、抽出した依存関係に基づいて複数のプロセスの動作の異常を検出することができるものである。
特許文献2は、電子制御装置の機能シーケンスの処理順番、実行条件、実行タイミング、および制御値などが、正規の状態から逸脱した場合、異常を検出することができるとしている。
特許文献1では、プロセスの実行順序および実行時間が正常であるが、プロセスの中身の処理の値が改ざんされている場合、異常を検知できない。また、複数のプロセス完了後に異常検知判定を行うため、単一プロセスの処理途中で異常が生じた場合、異常を検知するまでに時間がかかる。
また、特許文献2では、機能シーケンスの処理順番および制御値を対象としているが、シーケンスのステップ毎の出力値までは対象としていない。未知のサイバー攻撃によってシーケンスのステップの中で別の新たな処理が追加された場合、シーケンスは正常なルートを通り本来の制御値が実行されるが、このシーケンスと並行して制御に関わる重要な値が、追加された別の新たな処理により処理されてしまうような異常が起きると、検知することができない。また、シーケンスのステップで起きた異常は、シーケンスが終了しないと検知できない。
本願は、このような問題を解決するためになされたものであり、制御処理を実行する制御値を演算する演算処理において、ステップ毎に異常であるか否かを判定することにより、走行中の車両でも、未知のサイバー攻撃を受けても早期に異常を検知することができる制御システムを得ることを目的とする。
本願に開示される制御システムは、
制御装置の制御処理を実行する制御部、制御処理の制御値を複数ステップの演算処理によって演算する演算部、制御部の演算処理の実行順序および演算処理のステップ間の出力値の、正常時の情報が予め記憶されている記憶部、実行された演算処理の実行順序と演算処理のステップ間の出力値の、実行時の情報を取得する取得部、正常時の情報と実行時の情報とを比較する比較部、比較された演算処理の実行順序および演算処理のステップ間の出力値の少なくともいずれかが一致していない場合、異常と判定する判定部、を備えることを特徴とする。
制御装置の制御処理を実行する制御部、制御処理の制御値を複数ステップの演算処理によって演算する演算部、制御部の演算処理の実行順序および演算処理のステップ間の出力値の、正常時の情報が予め記憶されている記憶部、実行された演算処理の実行順序と演算処理のステップ間の出力値の、実行時の情報を取得する取得部、正常時の情報と実行時の情報とを比較する比較部、比較された演算処理の実行順序および演算処理のステップ間の出力値の少なくともいずれかが一致していない場合、異常と判定する判定部、を備えることを特徴とする。
本願に開示される制御システムによれば、走行中の車両でも、未知の攻撃による車両の異常を早期に検知し、車両を通常に走行することができる。
以下に、本願の制御システムの好適な実施の形態について、図面を用いて説明する。特に、制御システムの具体例として、制御対象を車両および車載機器とする車載制御装置(ECU)の制御システムに適用する場合について、詳細に説明する。なお、同一内容および相当部については同一符号を配し、その詳しい説明は省略する。以降の実施形態も同様に、同一符号を付した構成について重複した説明は省略する。
実施の形態1.
図1は、実施の形態1に係る制御システムを適用したECU(以下、制御装置10と称す)を搭載した車両を説明する図である。制御装置10は、車両1内の他の制御装置20と、通信線30、例えばCAN(Controller Area Network)、を介して接続されていてもよい。
<制御装置10内の各機能>
図2は、制御装置10の機能ブロック図である。制御装置10は、制御部100、演算部101、記憶部102、取得部103、比較部104、判定部105、判断部106、車両状態管理部107、周辺状況管理部108、特定部109、メモリ検査部110、待機用制御部111、切替部112、書換部113および通知部114を備えている。以下各構成要素を詳述する。
図2は、制御装置10の機能ブロック図である。制御装置10は、制御部100、演算部101、記憶部102、取得部103、比較部104、判定部105、判断部106、車両状態管理部107、周辺状況管理部108、特定部109、メモリ検査部110、待機用制御部111、切替部112、書換部113および通知部114を備えている。以下各構成要素を詳述する。
制御部100は、車内に搭載されている制御対象の機器を制御する機能を有している。制御装置10に1つ、もしくは複数存在してもよい。なお、図1で示す制御対象の機器2は、詳細には説明しないが、アクチュエータ等が該当する。以下単に制御対象2として説明する。
制御部100は、ROM(Read Only Memory)、及びRAM(Random Access Memory)から、制御対象2に対応した制御用プログラムデータを読み出し、読み出したプログラムを実行することで、制御対象2を制御する。制御方法は複数存在してもよい。例えば、条件Aの場合には、制御値Xを実行し、条件Bの場合には、制御値Yを実行する。
演算部101は、制御部100の制御処理で用いる制御値を演算する。この制御値を演算するための演算処理は、複数のステップからなる。また、演算処理は複数存在してもよい。例えば、演算処理Cにより制御値Xを演算し、演算処理Dにより制御値Yを演算する。
記憶部102は、後述する取得部103で取得した、演算部101で使用する演算処理ステップの実行順序と、ステップ毎の出力値を記憶部102内の特定の領域(ここでは、「実行時のメモリ」と称す)に記憶する。また、制御部100と演算部101の正常動作時の動作プログラム、および動作時に使用する制御値と演算処理のステップ毎の出力値を、「実行時のメモリ1021」の領域と異なる領域(ここでは、「正常動作時のメモリ1022」と称す)に記憶している。追って図4にて詳述する。
記憶部102に記憶する情報は、HSM(Hardware Security Module)により暗号鍵管理を行ってもよい。また、記憶する情報を圧縮してもよく、もしくはセキュリティ強化のため、記憶する情報に演算を加えた結果で記憶してもよい。例えば、暗号化またはハッシュ、MAC(Message Authentication Code)として記憶する方法がある。
取得部103は、実行時に、演算部101で使用する演算処理ステップの実行順序とステップ毎の出力値を取得する。取得するタイミングは演算処理のステップ毎に取得する、もしくは演算処理終了時までに取得したいタイミングでもよい。取得されたステップの実行順序とステップ毎の出力値は記憶部102の、「実行時のメモリ1021」に記憶する。
比較部104は、記憶部102に予め記憶している正常動作時の演算処理ステップの実行順序とステップ毎の出力値と、取得部103で取得した、実行時の演算処理ステップの実行順序とステップ毎の出力値とを比較する。また、比較するタイミングは、ステップ毎、もしくは演算処理終了時までに比較したいタイミングでもよい。
判定部105は、比較部104の比較結果が一致しなかった場合、異常と判定する。すなわち、異常と判定するには、比較結果が、演算処理ステップの実行順序と、ステップ毎の出力値のどちらか一方が一致しない、もしくはどちらも一致しない場合でもよい。また、判定方法は、演算処理ステップの実行順序、ステップ毎の出力値に限らず、演算処理の実行時間など、他の情報を追加してもよい。
判定部105が異常と判定した場合は、異常検出処理に移行する。正常と判定した場合は、制御部100の制御処理を引き続き実行する。
判断部106は、制御装置10の複数の制御部から、どの制御部を優先的に検査するかの優先順位をつける。制御部100が複数の制御部A~Cで構成される制御装置10の例を図3に示す。取得部103は判断部106の判断結果から、制御部Aと制御部Bと制御部Cの中から対象とする制御部を決定する。制御装置10に1つの制御部しかない場合、優先順位はつけない。
判断部106は、さらに、後述する車両状態管理部107と周辺状況管理部108の情報を基に、取得部103が情報を取得する対象とすべき制御部100を判断する。具体的には、サイバー攻撃によって車両が乗っ取られた場合に、被害の影響が大きくなる制御を優先する。例えば、図3の制御部Aにおいて、スピード急上昇時の「走る」に関連する処理、渋滞での「曲がる」に関連する処理、または天候が雪の場合の「止まる」に関連する処理が行われる場合、この制御部Aを優先する判断を行う。
車両状態管理部107は、車両の動作状態を管理する。動作状態とは、例えば、車両が、「走る」、「曲がる」、「止まる」などといった状態を示す。制御装置10以外の他の制御装置、例えば図1の制御装置20から動作状態を取得してもよい。
周辺状況管理部108は、車両の周辺状況を管理する。周辺状況とは、例えば、渋滞などの交通状況、または雪などの天候などを示す。制御装置10以外の他の制御装置、例えば図1の制御装置20から周辺状況を取得してもよい。
特定部109は、判定部105で異常と判定された場合、図4Aで示すように、記憶部102の、「実行時のメモリ1021」に記憶された、実行時の演算処理ステップの実行順序から異常の原因となるメモリの範囲を特定する。具体的には、取得部103から取得した情報を記憶部102に記憶した、すなわち、RAMおよび/またはROM内に記憶した、実行した演算処理に関連する「実行時のメモリ1021」中の該当範囲を読み出し、特定する。
メモリ検査部110は、図4Aに示すように、特定部109によって特定したメモリ中の該当範囲において、記憶部102に予め記憶している「正常動作時のメモリ1022」と一致するかを検査し、差異のある範囲を検出する。検査結果より、差異のある範囲を検出した例を図4Bに示す。メモリと一致するかを検査する方法は、メモリを分割して一致するかを検査してもよい。また、メモリデータをハッシュ化など圧縮して検査してもよい。処理高速化のために、HSMで検査してもよい。
待機用制御部111は、制御部100と同じ制御処理を実行することが可能な制御部100とは別の制御部である。具体的には、通常の制御処理では実行されない。切替部112より、切替処理が実行された場合のみ、制御処理を実行する。切替後すぐに実行するために、予め起動しておいてもよい。
切替部112は、判定部105で異常と判定された場合、制御部100の制御処理を待機用制御部111の制御処理に切り替える。切替後に制御部100は、機能を停止してもよい、もしくは機能を一部縮退して実行してもよい。
書換部113は、図4Cに示すように、切替部112によって制御部100の制御処理が待機用制御部111に切替後、メモリ検査部110で検出した差異のある範囲を、「正常動作時のメモリ1022」から「実行時のメモリ1021」が記憶されている記憶部102のROMおよび/またはRAMに書き換える。
通知部114は、判定部105により異常と判定された情報と書換部113の書換結果を制御装置10の外部へ通知する。通知方法は、異常と判定された情報と書換結果を同時に通知してもよい、もしくは別々に通知してもよい。通知先は、ダッシュボードの表示画面などにより運転手に通知する。もしくは車外の通知センターでもよい。また、通知内容は、異常情報、攻撃情報、または注意喚起などである。この通知内容をダッシュボードの表示画面に、例えば、「異常」、「正常」、「異常に対処した」、「攻撃された」、「スピード注意」などと表示してもよい。
制御装置10内のマイコンのハードウエアの一例を図5に示す。プロセッサ3と記憶装置4から構成され、図示していないが、記憶装置は、上述したRAMの揮発性記憶装置と、上述したROM、またはフラッシュメモリ等の不揮発性の補助記憶装置とを具備する。また、フラッシュメモリの代わりにハードディスクの補助記憶装置を具備してもよい。プロセッサ3は、上述したように、記憶装置4のRAMおよびROMから入力されたプログラムを実行する。この場合、補助記憶装置(例えばROM)から揮発性記憶装置(例えばRAM)を介してプロセッサ3にプログラムが入力される。また、プロセッサ3は、演算結果等のデータを記憶装置4の揮発性記憶装置(例えばRAM)に出力してもよいし、揮発性記憶装置を介して補助記憶装置にデータを保存してもよい。図2で示された機能ブロック図の各機能の内、記憶部102以外の機能は、プロセッサにより実行されてもよく、記憶装置4内に記憶部102の機能が存在していてもよく、プロセッサ3内に記憶部102の一部の機能が存在していてもよい。これらのハードウエアに加え、HSMなどのセキュリティのためのハードウエアを追加してもよい。
<制御処理>
次に、制御装置10の制御処理について、図6を用いて詳細に説明する。図6は、実施の形態1に係る制御部100の制御処理開始から、演算部101の3つの演算処理ステップの演算処理により制御値を演算し、制御処理を実行するまでの処理の流れを示すフローチャートである。演算処理のステップ数は、3つのステップに限らないことは言うまでもない。
次に、制御装置10の制御処理について、図6を用いて詳細に説明する。図6は、実施の形態1に係る制御部100の制御処理開始から、演算部101の3つの演算処理ステップの演算処理により制御値を演算し、制御処理を実行するまでの処理の流れを示すフローチャートである。演算処理のステップ数は、3つのステップに限らないことは言うまでもない。
まず、制御部100は、制御処理を開始する(ステップS201)。この制御処理とは、例えば、(1)演算部101で制御値を演算するために、制御装置10または制御装置20、またはそれらに接続されたセンサから、制御対象2を制御するための様々な車両の状態(例えば故障など)を検知する。(2)検知した車両の状態に基づいて、ROMまたは/およびRAMから制御対象2に対応した制御用プログラムデータを読み出し、制御対象2を制御するための制御値の演算を演算部101に指示するなどの処理である。
演算部101は、制御値を演算するための演算処理のステップ1を実行する(ステップS202)。ステップ1終了後、異常検出処理を行う(ステップS203)のと並行して、演算処理のステップ2を実行する(ステップS204)。
演算処理のステップとは、例えば、プロセッサに1つの演算を実行させるための、アセンブリ言語単位の命令、または機械語の命令セット単位での命令でもよい。また、複数の演算を行わせて、1つの出力を得る場合は複数の演算を1つの処理ステップとしてもよい。例えば、算術演算命令と論理演算命令を合わせた結果、1つの出力を得るのであれば、2つの命令を1つの演算処理ステップとしてもよい。
演算処理のステップとは、例えば、プロセッサに1つの演算を実行させるための、アセンブリ言語単位の命令、または機械語の命令セット単位での命令でもよい。また、複数の演算を行わせて、1つの出力を得る場合は複数の演算を1つの処理ステップとしてもよい。例えば、算術演算命令と論理演算命令を合わせた結果、1つの出力を得るのであれば、2つの命令を1つの演算処理ステップとしてもよい。
演算部101は、演算処理のステップ2終了後、異常検出処理を行う(ステップS203)のと並行して、演算処理のステップ3を実行する(ステップS205)。
全ての演算処理が終了し、演算処理により得られた制御値に基づいて、制御用プログラムを実行することにより、制御部100において制御対象2の制御を実行する(ステップS206)。その後、制御処理を終了する。
より具体的な例を次に説明する。
(1)ステップS201の制御処理により、センサA、B、C、Dの状態a、b、c、dを検知する。
(2)ステップS202の演算処理ステップ1により、センサAの状態aとセンサBの状態bの論理和Pを演算した後、ステップS203により異常検出処理を行う。
(3)ステップS204の演算処理ステップ2により、センサCの状態cとセンサDの状態dの論理和Qを演算した後、ステップS203により異常検出処理を行う。
(4)ステップS205の演算処理ステップ3により、論理和Pと論理和Qの論理積mを演算した後、ステップS203により異常検出処理を行う。
(5)ステップS206により、論理積mに基づいて、制御対象2に制御Mを実行する。
(1)ステップS201の制御処理により、センサA、B、C、Dの状態a、b、c、dを検知する。
(2)ステップS202の演算処理ステップ1により、センサAの状態aとセンサBの状態bの論理和Pを演算した後、ステップS203により異常検出処理を行う。
(3)ステップS204の演算処理ステップ2により、センサCの状態cとセンサDの状態dの論理和Qを演算した後、ステップS203により異常検出処理を行う。
(4)ステップS205の演算処理ステップ3により、論理和Pと論理和Qの論理積mを演算した後、ステップS203により異常検出処理を行う。
(5)ステップS206により、論理積mに基づいて、制御対象2に制御Mを実行する。
<異常検出処理>
次に、図6に示した異常検出処理について、図7を用いて詳細に説明する。図7は、実施の形態1に係る制御部100の制御開始から異常を検出するまでの処理の流れを示すフローチャートである。
次に、図6に示した異常検出処理について、図7を用いて詳細に説明する。図7は、実施の形態1に係る制御部100の制御開始から異常を検出するまでの処理の流れを示すフローチャートである。
上述したステップS201からステップS206のように、制御部100は、制御処理の実行を開始しており、演算部101は、制御処理の制御値を演算する演算処理を開始している。
取得部103は、演算部101の演算処理の実行順序を取得する(ステップS301)。実行順序は、例えば、プロセッサ3で行う算術演算命令、論理演算命令など、各命令単位でもよく、ある特定の命令、例えば算術演算命令のみの実行順序でもよい。上述した例では、論理和P、論理和Qおよび論理積mである。
取得部103は、演算部101の演算処理のステップ間の出力値を取得する(ステップS302)。上述した例では、論理和Pによる出力値(a+c)、論理和Qによる出力値(c+d)、論理積mによる出力値(a+c)*(c+d)である。
比較部104は、取得した演算処理の実行順序と記憶部102に予め記憶している演算処理の実行順序を比較する(ステップS303)。
比較部104は、取得した演算処理のステップ間の出力値と記憶部102に予め記憶している演算処理のステップ間の出力値を比較する(ステップS304)。
演算処理の実行順序または演算処理のステップ間の出力値の比較結果のいずれか、または両方が一致するか否かを判定する(ステップS305)。少なくとも比較結果のいずれかが一致しなかった場合は、異常判定時の処理を行う(ステップS306)。比較結果の両方が一致した場合は、異常検出処理を終了する。
判定部105が異常と判定された場合、異常判定時の処理として車両を通常に走行するための処理に移行する。異常判定時の処理終了後、異常検出処理を終了する。
<記憶部102の記憶処理>
次に、制御部100の制御処理実行前の記憶部102の記憶処理について、図8を用いて詳細に説明する。図8は、実施の形態1に係る制御部100の正常動作時の演算部101の演算処理の実行順序と演算処理のステップ間の出力値を、記憶部102内の、「正常動作時のメモリ」に記憶するまでの処理の流れを示すフローチャートである。この記憶処理は、工場出荷前に行う処理である。
次に、制御部100の制御処理実行前の記憶部102の記憶処理について、図8を用いて詳細に説明する。図8は、実施の形態1に係る制御部100の正常動作時の演算部101の演算処理の実行順序と演算処理のステップ間の出力値を、記憶部102内の、「正常動作時のメモリ」に記憶するまでの処理の流れを示すフローチャートである。この記憶処理は、工場出荷前に行う処理である。
まず、制御部100は、制御処理の実行を開始する。演算部101は、制御処理の制御値を演算する演算処理を開始する(ステップS401)。
記憶部102は、演算部101の演算処理の実行順序を記憶する(ステップS402)。
記憶部102は、演算部101の演算処理のステップ間の出力値を記憶する(ステップS403)。
記憶部102は、制御部100で行われる制御処理に関する全てのプログラムを記憶する。言い換えると、ハードウエアのROMとRAM内の制御処理実行のためのソフトウエアを全て記憶する(ステップS404)。
記憶部102は、演算部101で行われる演算処理に関する全てのプログラムを記憶する。言い換えると、ハードウエアのROMとRAM内の演算処理実行のためのソフトウエアを全て記憶する(ステップS405)。
記憶処理方法はステップ毎に記憶してもよく、すべての制御処理終了後にまとめて記憶してもよい。
<判断部106による判断処理>
次に、取得部103が、対象とする制御部100を決定するために、判断部106が行う判断処理について、図9を用いて詳細に説明する。図9は、実施の形態1に係る車両状態管理部107と周辺状況管理部108の情報から判断部106が優先順位をつけ、取得部103が対象とする制御部100を決定するまでの判断処理の流れを示すフローチャートである。ここでは、制御部100は複数あるものとする。処理の実行タイミングは、常に行われていてもよく、一定の条件の時に行ってもよい。一定の条件とは、例えば、通常走行時、または高速道路走行時などを示す。
次に、取得部103が、対象とする制御部100を決定するために、判断部106が行う判断処理について、図9を用いて詳細に説明する。図9は、実施の形態1に係る車両状態管理部107と周辺状況管理部108の情報から判断部106が優先順位をつけ、取得部103が対象とする制御部100を決定するまでの判断処理の流れを示すフローチャートである。ここでは、制御部100は複数あるものとする。処理の実行タイミングは、常に行われていてもよく、一定の条件の時に行ってもよい。一定の条件とは、例えば、通常走行時、または高速道路走行時などを示す。
車両状態管理部107は、車両1の動作状態の情報を取得する(ステップS501)。具体的には、車両動作の「走る」、「曲がる」、「止まる」といった状態である。また、この動作状態に、より詳細な情報を加えてもよい。例えば、車速、または車両の傾きの角度などの数値情報である。また、これら情報は、他の制御装置(例えば図1の制御装置20)に接続されたセンサなどから情報を取得してもよい。
周辺状況管理部108は、車両の周辺状況情報を取得する(ステップS502)。具体的には、交通状況または天候などを示す。周辺状況は、状況を細分化した情報にしてもよい。例えば、天候を例に挙げると、「晴れ」、「高温」、「曇り」、「雨」、「大雨」、「雪」、「大雪」、「強風」、「台風」などである。また、他の制御装置(例えば図1の制御装置20)に接続されたセンサまたは受信装置から取得してもよい。
判断部106は、車両状態管理部107の車両状態情報と周辺状況管理部108の車両の周辺状況情報より、取得部103が対象とする制御部100の優先順位を決定する(ステップS503)。具体的には、制御が乗っ取られた場合の被害の影響が大きいほど優先順位が高くなる。例えば、スピード急上昇時の、「走る」に関連する処理、渋滞での「曲がる」に関連する処理、または雪道での「止まる」に関連する処理などを示す。優先順位付けの方法は、工場出荷前に分析し、判断部106の判断処理に分析結果を反映する。また、OTA(Over the air)などの更新時に分析結果の内容を更新してもよい。
判断部106は、優先順位の最も高いと判断した制御部を、取得部103が対象とする制御部100と決定し(ステップS504)、その後判断処理を終了する。優先順位が最も高くなくても、車両走行において危険度が高いと判断できる場合は、その制御に該当する制御部100の異常検出処理を先に実施してもよい。
<異常判定時の処理>
次に、図7の異常判定時の処理について、図10を用いて詳細に説明する。図10は、異常判定時の処理の流れを示すフローチャートである。
次に、図7の異常判定時の処理について、図10を用いて詳細に説明する。図10は、異常判定時の処理の流れを示すフローチャートである。
特定部109は、判定部105で異常と判定された場合、記憶部102の「実行時のメモリ1021」(図4参照)で記憶された、実行時の演算処理ステップの実行順序から異常の原因となるメモリの範囲を特定する(ステップS601)。具体的には、記憶部102に記憶された、すなわち、RAMおよび/またはROM内に記憶した実際の処理に関連するメモリ中の該当範囲を読み出し、特定する。
メモリ検査部110は、特定部109によって特定した範囲が記憶部102で記憶しているメモリと一致するかのメモリチェックをし、差異のある範囲を検出する(ステップS602)。
切替部112は、判定部105で異常と判定された場合、制御部100の制御処理を待機用制御部111の制御処理に切り替える(ステップS603)。
切替部112は、制御部100の制御処理を停止する、または機能を一部縮退する(ステップS604)。
書換部113は、切替部112によって制御部100の制御処理を待機用制御部111の制御処理に切替後、メモリ検査部110で検出した記憶部102で記憶しているメモリの差異のある範囲をROMおよび/またはRAMに書き換える(ステップS605)。
通知部114は、判定部105より異常と判定された情報と書換部113の書換結果を制御装置10の外部へ通知し異常判定時の処理を終了する。通知方法は、異常情報と書換結果を同時に通知する(ステップS606)。通知は、別々に通知してもよい。通知先は表示画面で運転手に警告してもよい。
なお、以上説明した実施の形態1では、本願に係る制御システムを車載制御システムとして使用する例について説明した。しかしながら、本願に係る制御システムは、これに限られるものでない。例えば、高いセキュリティ強度を有し、かつ、早期に制御装置の異常を検出する仕組みを必要とする、通信線に接続された制御装置の制御システムに利用することができる。
以上説明した本願に係る実施の形態1によれば、制御処理において以下のような効果が得られる。
制御処理に用いられる制御値の演算処理の実行順序と演算処理のステップ間の出力値が正常動作時と比べて一致するか否かを比較することで、制御処理の異常を検出する構成を備えている。これにより、通信データに基づいた制御値または処理順序に特化した検出方法に限らず、未知のサイバー攻撃によって制御値、処理順序がなりすまされても、異常を検出することができる。
制御処理に用いられる制御値の演算処理の実行順序と演算処理のステップ間の出力値が正常動作時と比べて一致するか否かを比較することで、制御処理の異常を検出する構成を備えている。これにより、通信データに基づいた制御値または処理順序に特化した検出方法に限らず、未知のサイバー攻撃によって制御値、処理順序がなりすまされても、異常を検出することができる。
また、制御処理に用いられる制御値の演算処理の実行順序と演算処理のステップ間の出力値が正常動作時と比べて一致するか否かを、各ステップが終了する毎に比較することで、制御処理の異常を、制御処理が終了する前に早期に検出することができる。
また、制御部の制御処理と同じ制御をすることが可能な待機用制御部を備え、制御部が異常と判定された場合、制御処理を待機用制御部に切り替える構成を備えている。これにより通常の走行を保つことができる。
また、異常検出処理の対象となる制御部に優先順位をつけ、優先すべき制御処理を判断する構成を備えている。これによりサイバー攻撃によって被害の影響が大きい処理に優先的に対応することができ、被害を最小に抑えることができる。また、すべての制御処理に異常検出処理を行う場合に比べ、処理負荷を抑えることができる。
また、車両の動作状態を管理し、車両の動作状態より異常検出処理の対象となる制御部に優先順位をつけ、優先すべき制御処理を判断する構成を備えている。これにより車両動作の面から、制御が乗っ取られると被害の影響が大きい制御処理に優先的に対応することができる。
また、車両の周辺状況を管理し、車両の周辺状況より異常検出処理の対象となる制御部に優先順位をつけ、優先すべき制御処理を判断する構成を備えている。これにより周辺環境または交通状況の面から、制御が乗っ取られると被害の影響が大きい制御処理に優先的に対応することができる。
また、制御処理の異常と判定された場合、演算処理の実行順序から異常の原因となるメモリの範囲を特定する構成を備えている。これによりメモリチェックによってメモリの異常個所を検出する場合、全てのメモリではなく部分的にメモリチェックをすることができ、メモリチェック処理の効率化を図ることができる。
また、制御処理の異常と判定された場合、特定したメモリの範囲でメモリチェックを行い、制御処理の正常動作時に記憶していたメモリとの差異のある範囲を検出する構成を備えている。これにより未知のサイバー攻撃によって改ざんされたメモリの位置を検出できる。
また、制御処理の異常と判定された場合、制御処理を待機用制御部の制御処理に切り替え、制御処理の正常動作時に記憶していたメモリとの差異のある範囲をメモリに書き換える構成を備えている。これにより新たなバックドアを作られないように対処できる。
また、制御処理の異常と判定された情報と、書換結果を制御装置外部へ通知する構成を備えている。これにより運転手にサイバー攻撃されたことを即座に伝えることできる。また、攻撃を報知された運転手は車両の検査を迅速に行うことができる。
本願は、例示的な実施の形態が記載されているが、実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合が含まれるものとする。
従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合が含まれるものとする。
10:制御装置、100:制御部、101:演算部、102:記憶部、103:取得部、104:比較部、105:判定部、106:判断部、107:車両状態管理部、108:周辺状況管理部、109:特定部、110:メモリ検査部、111:待機用制御部、112:切替部、113:書換部、114:通知部。
Claims (10)
- 制御装置の制御処理を実行する制御部、
前記制御処理の制御値を複数ステップの演算処理によって演算する演算部、
前記制御部の演算処理の実行順序および演算処理のステップ間の出力値の、正常時の情報が予め記憶されている記憶部、
実行された演算処理の実行順序と演算処理のステップ間の出力値の、実行時の情報を取得する取得部、
前記正常時の情報と前記実行時の情報とを比較する比較部、
比較された演算処理の実行順序および演算処理のステップ間の出力値の少なくともいずれかが一致していない場合、異常と判定する判定部、
を備えることを特徴とする制御システム - 前記比較部は、実行される前記演算部の複数ステップの演算処理の中で、各ステップが終了する毎に前記演算処理の実行順序と前記演算処理のステップ毎の出力値を比較し、少なくともいずれかの比較結果が一致しない場合、前記判定部によって、前記制御部の異常を判定することを特徴とする請求項1に記載の制御システム。
- 前記制御部と同じ制御をすることが可能な前記制御部とは別の待機用制御部と、
前記判定部より異常と判定された場合、前記制御部の制御処理を前記待機用制御部の制御処理へ切り替える切替部と、
を備える請求項1または2に記載の制御システム。 - 前記制御部は複数あり、複数の制御部の内、前記取得部が対象とする制御部の優先順位をつける判断部を備え、前記取得部は、優先順位の高い制御部の制御処理の制御値を演算する複数ステップの演算処理の実行順序と前記演算部の演算処理のステップ間の出力値を取得することを特徴とする請求項1または2に記載の制御システム。
- 前記制御装置は、車両に搭載されており、前記車両の動作状態を管理する車両状態管理部を備え、前記判断部は、前記車両状態管理部の出力に基づいて、前記取得部が対象とする制御部の優先順位をつけることを特徴とする請求項4に記載の制御システム。
- 前記制御装置は、車両に搭載されており、前記車両の周辺状況を管理する周辺状況管理部を備え、前記判断部は、前記周辺状況管理部の出力に基づいて前記取得部が対象とする制御部の優先順位をつけることを特徴とする請求項4または5に記載の制御システム。
- 前記判定部により異常と判定された場合、前記記憶部で記憶している演算処理の実行順序のうち、異常の範囲を特定する特定部を備える請求項1から6のいずれか一項に記載の制御システム。
- 前記記憶部は、前記取得部で取得された、前記実行時の情報を記憶し、前記特定部で特定された異常の範囲において、前記実行時の情報と前記正常時の情報との差異のある部分を検出するメモリ検査部を備える請求項7に記載の制御システム。
- 前記制御部と同じ制御をすることが可能な前記制御部とは別の待機用制御部と、前記判定部より異常と判定された場合、前記制御部の制御処理を前記待機用制御部の制御処理へ切り替える切替部と、前記切替部で、前記待機用制御部に切替後、前記メモリ検査部で検出した差異のある部分を前記正常時の情報に書き換える書換部を備える請求項8に記載の制御システム。
- 前記判定部で判定された異常に関する情報と前記書換部の書換結果を前記制御装置の外部へ通知する通知部を備える請求項9に記載の制御システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2020/021033 WO2021240700A1 (ja) | 2020-05-28 | 2020-05-28 | 制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2021240700A1 JPWO2021240700A1 (ja) | 2021-12-02 |
JP7361912B2 true JP7361912B2 (ja) | 2023-10-16 |
Family
ID=78723138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022527371A Active JP7361912B2 (ja) | 2020-05-28 | 2020-05-28 | 制御システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11932269B2 (ja) |
JP (1) | JP7361912B2 (ja) |
CN (1) | CN115668191A (ja) |
DE (1) | DE112020007248T5 (ja) |
WO (1) | WO2021240700A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002303202A (ja) | 2001-04-04 | 2002-10-18 | Denso Corp | 車両用電子制御装置 |
WO2016047575A1 (ja) | 2014-09-25 | 2016-03-31 | 日本精工株式会社 | 車載用電子機器の制御装置及び制御方法 |
WO2019159615A1 (ja) | 2018-02-14 | 2019-08-22 | 日立オートモティブシステムズ株式会社 | 車両監視システム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5365273B2 (ja) | 2009-03-11 | 2013-12-11 | 日本電気株式会社 | 情報処理システム、監視方法及び監視プログラム |
-
2020
- 2020-05-28 US US17/919,935 patent/US11932269B2/en active Active
- 2020-05-28 JP JP2022527371A patent/JP7361912B2/ja active Active
- 2020-05-28 CN CN202080101016.5A patent/CN115668191A/zh active Pending
- 2020-05-28 WO PCT/JP2020/021033 patent/WO2021240700A1/ja active Application Filing
- 2020-05-28 DE DE112020007248.7T patent/DE112020007248T5/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002303202A (ja) | 2001-04-04 | 2002-10-18 | Denso Corp | 車両用電子制御装置 |
WO2016047575A1 (ja) | 2014-09-25 | 2016-03-31 | 日本精工株式会社 | 車載用電子機器の制御装置及び制御方法 |
WO2019159615A1 (ja) | 2018-02-14 | 2019-08-22 | 日立オートモティブシステムズ株式会社 | 車両監視システム |
Also Published As
Publication number | Publication date |
---|---|
CN115668191A (zh) | 2023-01-31 |
US20230174082A1 (en) | 2023-06-08 |
DE112020007248T5 (de) | 2023-03-09 |
JPWO2021240700A1 (ja) | 2021-12-02 |
WO2021240700A1 (ja) | 2021-12-02 |
US11932269B2 (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934520B2 (en) | Detecting data anomalies on a data interface using machine learning | |
CN110612527A (zh) | 信息处理装置以及异常应对方法 | |
US11829472B2 (en) | Anomalous vehicle detection server and anomalous vehicle detection method | |
WO2021084961A1 (ja) | 分析装置及び分析方法 | |
CN101369141B (zh) | 用于可编程数据处理设备的保护单元 | |
JP7361912B2 (ja) | 制御システム | |
JP7447905B2 (ja) | モビリティ制御システム、方法、および、プログラム | |
JP2008265618A (ja) | 車載電子制御装置 | |
JP7109621B1 (ja) | 制御システム | |
CN118043808A (zh) | 信息处理装置、信息处理装置的控制方法以及程序 | |
WO2022244200A1 (ja) | 制御装置 | |
JP6604661B2 (ja) | 車両制御装置 | |
US20160011932A1 (en) | Method for Monitoring Software in a Road Vehicle | |
WO2020008872A1 (ja) | 車載セキュリティシステムおよび攻撃対処方法 | |
WO2022255245A1 (ja) | インテグリティ検証装置及びインテグリティ検証方法 | |
WO2023058212A1 (ja) | 制御装置 | |
US20230267213A1 (en) | Mitigation of a manipulation of software of a vehicle | |
WO2023084624A1 (ja) | 車載制御装置 | |
JP7229426B2 (ja) | 車載制御システムおよび異常診断方法 | |
JP7403728B2 (ja) | 侵入検知システム | |
WO2022158020A1 (ja) | 電子制御装置、車載制御システム、及び冗長機能制御方法 | |
JP7391242B2 (ja) | 制御装置 | |
WO2024070044A1 (ja) | 検証システム、検証方法、及び、プログラム | |
WO2022190408A1 (ja) | 分析装置 | |
US20230376588A1 (en) | Vehicle control system and method for controlling vehicle control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220905 |
|
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: 20230905 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231003 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7361912 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |