JP6594213B2 - Control device and program - Google Patents
Control device and program Download PDFInfo
- Publication number
- JP6594213B2 JP6594213B2 JP2016009071A JP2016009071A JP6594213B2 JP 6594213 B2 JP6594213 B2 JP 6594213B2 JP 2016009071 A JP2016009071 A JP 2016009071A JP 2016009071 A JP2016009071 A JP 2016009071A JP 6594213 B2 JP6594213 B2 JP 6594213B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- call
- control
- control program
- fake
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明の実施形態は、制御装置およびプログラムに関する。 Embodiments described herein relate generally to a control device and a program.
不正アクセスなどのセキュリティ攻撃を検知する方法として、シグネチャベースの検知方法が知られている。このシグネチャベースの検知方法は、周知の攻撃パターンをシグネチャとして予め定義し(ブラックリストを定義し)、監視対象の装置の動作と、このシグネチャとを比較することで、セキュリティ攻撃の有無を検知する。しかしながら、このシグネチャベースの検知方法は、攻撃パターンを一般化することができないため、新たな攻撃を受けた場合、または、周知の攻撃が変更され、予め定義されたシグネチャと一致しなくなった場合には、攻撃を検知することができない場合があった。 A signature-based detection method is known as a method for detecting a security attack such as unauthorized access. In this signature-based detection method, a well-known attack pattern is defined in advance as a signature (a blacklist is defined), and the presence or absence of a security attack is detected by comparing the operation of the monitored device with this signature. . However, this signature-based detection method cannot generalize the attack pattern, so when a new attack is received or when a well-known attack is modified and no longer matches a predefined signature May not be able to detect attacks.
また、監視対象の装置の動作と、期待される正常動作(ホワイトリスト)とを比較することで不正アクセスを検知する方法も知られている。しかしながら、攻撃者がこの装置の正常動作の内容を把握できた場合には、この装置の正常動作の内容を模倣することで、攻撃を検知することができない場合があった。 There is also known a method for detecting unauthorized access by comparing the operation of a monitoring target device with an expected normal operation (white list). However, when the attacker can grasp the contents of the normal operation of this apparatus, there are cases where the attack cannot be detected by imitating the contents of the normal operation of this apparatus.
本発明が解決しようとする課題は、セキュリティ攻撃に対する保護機能を高めることができる制御装置およびプログラムを提供することである。 The problem to be solved by the present invention is to provide a control device and a program capable of enhancing a protection function against a security attack.
実施形態の制御装置は、記憶部と、メモリと、有効/無効処理部と、検出部とを持つ。記憶部は、少なくとも1つのダミー処理を含むプログラムを記憶する。有効/無効処理部は、記憶部からメモリにロードされたプログラムに含まれるダミー処理のそれぞれを有効化または無効化する。検出部は、プログラムの実行状態を監視し、有効/無効処理部によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムの改ざんを検出する。 The control device of the embodiment includes a storage unit, a memory, a valid / invalid processing unit, and a detection unit. The storage unit stores a program including at least one dummy process. The valid / invalid processing unit validates or invalidates each dummy process included in the program loaded from the storage unit into the memory. The detecting unit monitors the execution state of the program, and detects whether the program has been tampered with by determining whether or not the dummy process is matched with the result of validation or invalidation by the validation / invalidation processing unit.
以下、実施形態の制御装置およびプログラムを、図面を参照して説明する。 Hereinafter, a control device and a program according to an embodiment will be described with reference to the drawings.
(第1の実施形態)
図1は、第1の実施形態における、制御システムの一例を示す図である。制御システム1は、制御装置3と、制御対象機器5とを含んでよいが、これに限定されない。例えば、制御システム1は、鉄道の駅における入出場を管理する自動改札制御システム、工場におけるボイラー機器等の各種機器の機器制御システム、銀行における紙葉類処理制御システム、乗用車における運転処理制御システムなどに適用することができる。また、制御システム1は、上記の他、リアルタイム制御などを目的とした任意の制御システムに適用することができる。
(First embodiment)
FIG. 1 is a diagram illustrating an example of a control system according to the first embodiment. The
制御装置3は、制御対象機器5の動作を制御する。制御装置3は、プロセッサ10と、通信I/F12と、二次記憶装置(記憶部)14と、メモリ16と、ROM(Read Only Memory)18とを含んでよいが、これに限定されない。また、制御装置3は、外部装置(不図示)から各種データを受け取り、この各種データに基づいて、制御対象機器5の制御内容を決定してもよい。
The
プロセッサ10は、例えばCPU(Central Processing Unit)である。プロセッサ10は、ブートプログラムによって初期動作を開始し、二次記憶装置14に格納されたプログラムを、メモリ16に展開(ロード)して実行する。
The
通信部I/F12は、制御対象機器5の動作を制御する制御信号等を、制御対象機器5に送信するインターフェース装置である。
The communication unit I /
二次記憶装置14は、HDD(Hard Disk Drive)、SSD(Solid State Drive)などのフラッシュメモリ、EEPROM(Electrically Erasable Programmable ROM)などである。二次記憶装置14は、制御装置3のOS(Operating System)、アプリケーションプログラム、設定ファイル、データなどを格納する。例えば、OSは、有効/無効処理プログラムPG1、異常検出プログラムPG2などを含んでよいが、これに限定されない。また、例えば、アプリケーションプログラムは、制御対象機器5を制御するための制御プログラムPG3などを含んでよいが、これに限定されない。
The
メモリ16は、例えば、SRAM(Static Random Access Memory)などの揮発性メモリである。メモリ16は、二次記憶装置14に記憶されたOSおよびアプリケーションプログラムが図示しないDMA(Direct Memory Access)コントローラによってロードされる他、プロセッサ10によってワーキングエリアとして使用される。
The
ROM18は、前述したブートプログラム、プロセッサ10の初期設定値などを格納する。
The
制御対象機器5は、制御装置3の制御下において、各種処理を実行する。例えば、制御システム1が、鉄道の駅における入出場を管理する自動改札制御システムである場合、制御対象機器5は、自動改札機のアクチュエータ、表示装置などである。また、制御システム1が、工場におけるボイラー機器等の各種機器の機器制御システムである場合、制御対象機器5は、ボイラー機器等の各種機器である。
The
図2は、第1の実施形態における、制御装置3の機能ブロック図である。制御装置3は、OS実行部20と、アプリケーション実行部30とを含んでよいが、これに限定されない。OS実行部20は、例えば、二次記憶装置14に格納されたOS(有効/無効処理プログラムPG1、異常検出プログラムPG2など)が、メモリ16にロードされ、プロセッサ10によって実行されることにより実現される。また、アプリケーション実行部30は、例えば、二次記憶装置14に格納された制御プログラムPG3などが、メモリ16にロードされ、プロセッサ10によって実行されることにより実現される。
FIG. 2 is a functional block diagram of the
OS実行部20は、有効/無効処理部22と、異常検出部(検出部)24とを含んでよいが、これに限定されない。
The
有効/無効処理部22は、二次記憶装置14からメモリ16にロードされた制御プログラムPG3に含まれるフェイクコールと呼ばれるダミー処理のそれぞれを有効化または無効化する。また、異常検出部24は、二次記憶装置14からメモリ16にロードされた制御プログラムPG3の実行状態を監視し、有効/無効処理部22によりフェイクコールが有効化または無効化された結果と一致するか否かを判定することにより、制御プログラムPG3の改ざんを検出する。これらの機能部の動作については後述する。
The valid /
アプリケーション実行部30は、制御対象機器5を制御するための種々の処理を実行する。
The
[制御プログラム]
本実施形態における制御プログラムPG3には、二次記憶装置14に格納された段階で、フェイクコールが予め組み込まれている。このフェイクコールとは、OSに対して各種サービスを要求するシステムコール、または各種処理を実行するファンクションコールであって、制御プログラムPG3の本来の制御処理に影響を及ぼさない処理を行うものである。例えば、このフェイクコールは、存在しないファイルを指定したオープンコールや、既に存在するファイルを、同じファイルで上書きする処理などであってよい。
[Control program]
In the control program PG3 in the present embodiment, a fake call is incorporated in advance when it is stored in the
図3は、第1の実施形態における、制御プログラムPG3の一例を示す図である。この制御プログラムPG3には、制御処理を実現するためのコードに加えて、1以上のフェイクコールが任意の位置に組み込まれている。図3の例では、3つのフェイクコール(図中、fake_call)が組み込まれている。例えば、この制御プログラムPG3には、1.コール(A)の呼び出しを行い(図中、call(A))、2.コード1の処理を実行し(図中、code1)、3.第1のフェイクコール(R1)の呼び出しを行い(図中、fake_call(R1))、4.コール(B)の呼び出しを行い(図中、call(B))、5.コード2の処理を実行し(図中、code2)、6.第2のフェイクコール(R2)の呼び出しを行い(図中、fake_call(R2))、7.第3のフェイクコール(R3)の呼び出しを行い(図中、fake_call(R3))、8.コール(C)の呼び出しを行う(図中、call(C))という順でコードが記載されている。尚、制御プログラムPG3に組み込まれるフェイクコールの数および位置はこれに限定されない。
コール(A)、コール(B)、およびコール(C)の各々は、OSに対して各種サービスを要求するシステムコール、または各種処理を実行するファンクションコールである。例えば、コール(A)、コール(B)、およびコール(C)の各々は、ファイルオープンを行う“open()”、入力の読み込みを行う“read()”、ユーザーIDの設定を行う“setreuid()”、ファイルをメモリにマッピングする“mmap()”などに対応する。
FIG. 3 is a diagram illustrating an example of the control program PG3 in the first embodiment. In the control program PG3, one or more fake calls are incorporated at an arbitrary position in addition to a code for realizing the control process. In the example of FIG. 3, three fake calls (fake_call in the figure) are incorporated. For example, the control program PG3 includes: 1. Call (A) is called (call (A) in the figure). 2. Process code 1 (code1 in the figure); 3. Call the first fake call (R1) (fake_call (R1) in the figure). 4. Call (B) is called (call (B) in the figure). Execute
Each of the call (A), the call (B), and the call (C) is a system call for requesting various services to the OS or a function call for executing various processes. For example, each of call (A), call (B), and call (C) is “open ()” for opening a file, “read ()” for reading input, and “setreuid” for setting a user ID. () ”,“ Mmap () ”to map files to memory, etc.
図4は、第1の実施形態における、制御プログラムPG3内に含まれるフェイクコールの内容(図中、「Fake call」欄)および位置(図中、「Address」欄)を示す設定ファイルC1の一例を示す図である。この設定ファイルC1は、図3に示す制御プログラムPG3とともに、二次記憶装置14に格納されている。設定ファイルC1は、独立したファイルとして二次記憶装置14に格納されていてもよいし、OSの一部として埋め込まれていてもよい。図4に例示した設定ファイルC1は、制御プログラムPG3内において、フェイクコールR1、R2、およびR3の各々が、アドレス3、6、および7に存在していることを示している。
FIG. 4 shows an example of the setting file C1 indicating the contents (“Fake call” column in the figure) and the position (“Address” column in the figure) of the fake call included in the control program PG3 in the first embodiment. FIG. The setting file C1 is stored in the
(制御装置の動作)
図5および図6を参照して、第1の実施形態の制御装置3の動作について説明する。図5は、第1の実施形態における、制御装置3の処理の流れの一例を示すフローチャートである。図6は、第1の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図である。
(Operation of control device)
With reference to FIG. 5 and FIG. 6, the operation of the
まず、二次記憶装置14に記憶された制御プログラムPG3、有効/無効処理プログラムPG1、異常検出プログラムPG2、および設定ファイルC1が、メモリ16にロードされる(ステップS101)。図6に示すように、例えば、制御プログラムPG3が、メモリ16内のアプリケーション領域A1にロードされ、有効/無効処理プログラムPG1、異常検出プログラムPG2、および設定ファイルC1が、メモリ16内のOS領域A2にロードされる。
First, the control program PG3, valid / invalid processing program PG1, abnormality detection program PG2, and setting file C1 stored in the
次に、有効/無効処理部22は、制御プログラムPG3の実行開始前に、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3に含まれるフェイクコールのそれぞれを有効化(図6中、ON)または無効化(図6中、OFF)する(ステップS103)。
Next, the valid /
図6に示す例では、有効/無効処理部22は、OS領域A2にロードされた設定ファイルC1に基づいて、制御プログラムPG3内に記載された3つのフェイクコールの中で、アドレス3のフェイクコール(R1)およびアドレス6のフェイクコール(R2)を有効化し(ONフラグを設定し)、アドレス7のフェイクコール(R3)を無効化する(OFFフラグを設定する)。
In the example shown in FIG. 6, the valid /
この際、有効/無効処理部22は、どのフェイクコールを有効化または無効化したかを示すフラグを、設定ファイルC1内に書き込む(ステップS105)。図6の例では、有効/無効処理部22は、「Flag」欄にONまたはOFFを示す情報を書き込む。尚、有効/無効処理部22は、どのフェイクコールが有効化または無効化したかを示す情報を設定ファイルC1以外の設定ファイルに記憶させてもよい。
At this time, the valid /
有効/無効処理部22は、例えば、少なくとも1つのフェイクコールを有効化する。どのフェイクコールを有効化または無効化するかについてはランダムに決定してよい。また、有効/無効処理部22は、全てのフェイクコールを無効化しても構わない。
The valid /
また、全てのフェイクコールが有効化された制御プログラムPG3を二次記憶装置14に格納しておき、有効/無効処理部22が、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3に含まれるフェイクコールの中で、無効化するフェイクコールを設定するようにしてもよい。また、フェイクコールのそれぞれを有効化または無効化する場合に、ONフラグおよびOFFフラグを制御プログラムPG3に設定するのではなく、無効化するフェイクコール自体を、処理を実行しないコール(NOP命令)に書き換える処理を行ってもよい。
Further, the control program PG3 in which all the fake calls are validated is stored in the
次に、有効/無効処理部22は、メモリ16内のアプリケーション領域A1にロードされ、フェイクコールのそれぞれの有効化または無効化が行われた制御プログラムPG3の実行を開始する(ステップS107)。
Next, the valid /
次に、異常検出部24は、制御プログラムPG3の実行状態が適切か否かを判定する(ステップS109)。例えば、異常検出部24は、制御プログラムPG3に含まれるフェイクコールの中で有効化されたフェイクコールの内容および実行順序が、設定ファイルC1に定義された内容および実行順序と一致するか否かを判定する。有効化されたフェイクコールの内容および実行順序が設定ファイルC1に定義された内容および実行順序と一致する場合、異常検出部24は、有効化されたフェイクコールが順序通りに実行されているため、制御プログラムPG3の実行状態が適切であると判定する。制御プログラムの実行状態が適切であると判定した場合、異常検出部24は、制御プログラムPG3に改ざんが無いと判定する(ステップS111)。この場合、アプリケーション実行部30による制御対象機器5の制御が継続されるとともに、異常検出部24は、制御プログラムPG3の実行状態が適切か否かの判定(ステップS109)を再度実施する。また、異常検出部24は、制御プログラムPG3に記載されたフェイクコールの中で無効化されたフェイクコールが実行されていないことをステップS109の判定条件に加えてもよい。
Next, the
一方、制御プログラムの実行状態が適切でないと判定した場合、異常検出部24は、制御プログラムPG3の改ざんが行われたと判定する(ステップS113)。例えば、異常検出部24は、アドレス3のフェイクコール(R1)が実行された後に、アドレス6のフェイクコール(R2)が実行されなかった場合、アドレス3のフェイクコール(R1)が実行されることなく、アドレス6のフェイクコール(R2)が実行された場合などにおいて、制御プログラムPG3の改ざんが行われたと判定する。
On the other hand, if it is determined that the execution state of the control program is not appropriate, the
この場合、異常検出部24は、外部の監視端末に異常を通知する等のエラー処理を行い(ステップS115)、本フローチャートの処理を終了する。尚、この場合、異常検出部24は、アプリ実行プログラムPG3の実行を停止してもよい。
In this case, the
また、異常検出部24は、制御プログラムPG3に含まれるフェイクコールの実行状態に加え、制御プログラムPG3に含まれる通常処理を行うためのコール(コール(A)、コール(B)、コール(C))の実行状態を合わせて監視するようにしてもよい。また、異常検出部24は、制御プログラムPG3に含まれるフェイクコールが処理される際に利用されるパラメータの内容(例えば、OSに引き渡すパラメータの内容)を合わせて監視するようにしてもよい。
In addition to the execution state of the fake call included in the control program PG3, the
以上説明した第1の実施形態の制御装置3によれば、少なくとも1つのダミー処理を含むプログラムを記憶した二次記憶装置14と、メモリ16と、二次記憶装置14からメモリ16にロードされたプログラムPG3に含まれるダミー処理のそれぞれを有効化または無効化する有効/無効処理部22と、プログラムPG3の実行状態を監視し、有効/無効処理部22によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムPG3の改ざんを検出する異常検出部24とを備えることで、セキュリティ攻撃に対する保護機能を高めることができる。
According to the
第1の実施形態の制御装置3では、制御プログラムPG3の実行開始前に、制御プログラムPG3に含まれるフェイクコールがランダムに有効化または無効化されるため、制御プログラムPG3に含まれる有効化されたフェイクコールの内容、数、および順序は制御プログラムPG3の実行毎に異なる。このため、例えば、攻撃者が攻撃対象の装置の制御処理に関する通常動作の内容(制御プログラムのコードの内容)を把握できたとしても、実行毎に異なるフェイクコールの内容を把握することは出来ない。また、フェイクコールの内容や実行順序を解析したとしても、次の回の実行場面ではフェイクコールの内容や実行順序が変化することになるため、攻撃を失敗することが期待できる。このように、第1の実施形態の制御装置3によれば、ランダムに有効化されたフェイクコールの実行状態を監視することで、プログラムの改ざんを検知することができる。尚、毎回(メモリ16への制御プログラムPG3のロードの度に)フェイクコールの有効化または無効化の設定をランダムに行うのではなく、複数回に1回の頻度で行ってもよいし、制御プログラムPG3のロードの度に行うよりも高頻度に行ってもよい。
In the
(第2の実施形態)
以下、第2の実施形態について説明する。第2の実施形態に係る制御システム1は、制御プログラムPG3の実行が開始された後、任意のタイミングでフェイクコールの内容を動的に変更する点で、第1の実施形態と異なる。以下の説明において、上記の第1の実施形態と同様の部分には同じ参照番号を付与し、その説明を省略あるいは簡略化する。
(Second Embodiment)
Hereinafter, the second embodiment will be described. The
[制御装置の動作]
図7および図8を参照して、第2の実施形態の制御装置3の動作について説明する。図7は、第2の実施形態における、制御装置3の処理の流れの一例を示すフローチャートである。図8は、第2の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図である。
[Operation of control device]
With reference to FIG. 7 and FIG. 8, operation | movement of the
まず、二次記憶装置14に記憶された制御プログラムPG3、有効/無効処理プログラムPG1、異常検出プログラムPG2、および設定ファイルC1が、メモリ16にロードされる(ステップS201)。
First, the control program PG3, valid / invalid processing program PG1, abnormality detection program PG2, and setting file C1 stored in the
次に、有効/無効処理部22は、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3の実行を開始する(ステップS203)。ここで、例えば、制御プログラムPG3に含まれるフェイクコールは、いずれも有効化されている。
Next, the valid /
次に、有効/無効処理部22は、制御プログラムPG3に含まれるフェイクコールの実行条件を変更するフェイクコール変更トリガが発生したか否かを判定する(ステップS205)。このフェイクコール変更トリガは、例えば、図示しない他のプロセスによってランダムに発生される割り込み信号に基づくものである。
Next, the valid /
フェイクコール変更トリガが発生したと判定した場合、有効/無効処理部22は、実行中の制御プログラムPG3に含まれるフェイクコールのそれぞれを有効化または無効化する(ステップS207)。
If it is determined that a fake call change trigger has occurred, the valid /
図8に示す例では、有効/無効処理部22は、OS領域A2にロードされた設定ファイルC1に基づいて、制御プログラムPG3内に記載された3つのフェイクコールの中で、アドレス7のフェイクコール(R3)を無効化する。例えば、有効/無効処理部22は、アドレス7のフェイクコール(R3)を、処理を実行しないコール(NOP命令)に書き換える処理を行う。有効/無効処理部22は、どのフェイクコールを有効化または無効化するかについてはランダムに決定してよい。
In the example shown in FIG. 8, the valid /
この際、有効/無効処理部22は、どのフェイクコールを無効化したかを示すフラグを、設定ファイルC1内に書き込む(図中、「Flag」欄にOFFを示す情報を書き込む)(ステップS209)。
At this time, the valid /
尚、有効/無効処理部22は、アドレス7のフェイクコール(R3)を、処理を実行しないコール(NOP命令)に書き換える処理に代えて、第1の実施形態のように、制御プログラムPG3内に有効化または無効化を示すフラグを設定してもよい。また、有効/無効処理部22は、どのフェイクコールが有効化または無効化されたかを示す情報を設定ファイルC1以外の設定ファイルに記憶させてもよい。
The valid /
フェイクコール変更トリガが発生していないと判定した場合、有効/無効処理部22は、上記のフェイクコールの実行条件の変更処理(ステップS207)および設定ファイルC1の書き換え処理(ステップS209)を行わない。
When it is determined that the fake call change trigger has not occurred, the valid /
次に、異常検出部24は、制御プログラムPG3の実行状態が適切か否かを判定する(ステップ211)。例えば、異常検出部24は、制御プログラムPG3に記載されたフェイクコールの中で有効化されたフェイクコールの内容および実行順序が、設定ファイルC1に定義された内容および実行順序と一致するか否かを判定する。有効化されたフェイクコールの内容および実行順序が設定ファイルC1に定義された内容および実行順序と一致する場合、異常検出部24は、有効化されたフェイクコールが順序通りに実行されているため、制御プログラムPG3の実行状態が適切であると判定する。制御プログラムの実行状態が適切であると判定した場合、異常検出部24は、制御プログラムPG3に改ざんが無いと判定する(ステップS213)。この場合、アプリケーション実行部30による制御対象機器5の制御が継続されるとともに、異常検出部24は、フェイクコール変更トリガが発生したか否かを判定する処理(ステップS205)を再度実施する。
Next, the
一方、制御プログラムの実行状態が適切でないと判定した場合、異常検出部24は、制御プログラムPG3の改ざんが行われたと判定する(ステップS215)。例えば、異常検出部24は、アドレス3のフェイクコール(R1)が実行された後に、アドレス6のフェイクコール(R2)が実行されなかった場合、アドレス3のフェイクコール(R1)が実行されることなく、アドレス6のフェイクコール(R2)が実行された場合などにおいて、制御プログラムPG3の改ざんが行われたと判定する。
On the other hand, when it is determined that the execution state of the control program is not appropriate, the
この場合、異常検出部24は、外部の監視端末に異常を通知する等のエラー処理を行い(ステップS217)、本フローチャートの処理を終了する。
In this case, the
以上説明した第2の実施形態の制御装置3によれば、制御プログラムPG3の実行中に、制御プログラムPG3に含まれるフェイクコールがランダムに有効化または無効化されるため、制御プログラムPG3に含まれる有効化されたフェイクの内容、数、および順序を制御プログラムPG3の実行中に変化させることができる。このため、例えば、攻撃者が攻撃対象の装置の制御処理に関する動作の内容(フェイクコールの実行条件を含む制御プログラムPG3のコードの内容)を把握できたとしても、制御プログラムPG3の改ざんを検知することができる。
According to the
以上説明した第2の実施形態の制御装置3では、制御プログラムPG3の実行中に、制御プログラムPG3に含まれるフェイクコールをランダムに有効化または無効化する例を説明した。しかしながら、制御プログラムPG3の実行中に加え、上記の第1の実施形態の制御装置3のように、制御プログラムPG3の実行開始前にフェイクコールを有効化または無効化する処理を行ってもよい。
In the
以上説明した少なくとも一つの実施形態によれば、少なくとも1つのダミー処理を含むプログラムを記憶した二次記憶装置14と、メモリ16と、二次記憶装置14からメモリ16にロードされたプログラムPG3に含まれるダミー処理のそれぞれを有効化または無効化する有効/無効処理部22と、プログラムPG3の実行状態を監視し、有効/無効処理部22によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムPG3の改ざんを検出する異常検出部24とを備えることで、セキュリティ攻撃に対する制御装置の保護機能を高めることができる。
According to at least one embodiment described above, the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the spirit of the invention. These embodiments and their modifications are included in the scope and gist of the invention, and are also included in the invention described in the claims and the equivalents thereof.
1…制御システム、3…制御装置、5…制御対象機器、10…プロセッサ、12…通信I/F、14…二次記憶装置、16…メモリ、18…ROM、20…OS実行部、22…有効/無効処理部、24…異常検出部、30…アプリケーション実行部、A1…アプリケーション領域、A2…OS領域、C1…設定ファイル、PG1…有効/無効処理プログラム、PG2…異常検出プログラム、PG3…制御プログラム
DESCRIPTION OF
Claims (4)
メモリと、
前記記憶部から前記メモリにロードされた前記プログラムに含まれる前記ダミー処理のそれぞれを、実行可能となるように有効化または実行不可能となるように無効化する有効/無効処理部と、
前記プログラムの実行状態を監視し、実行された前記ダミー処理の内容および実行順序が、前記プログラムに含まれる前記ダミー処理のうち有効化されたダミー処理の内容および実行順序と一致するか否かを判定することにより、前記プログラムの改ざんを検出する検出部と
を備え、
前記有効/無効処理部は、前記メモリにロードされた前記プログラムに含まれる前記ダミー処理をNOP命令に書き換えることで、該ダミー処理を無効化する、
制御装置。 A storage unit storing a program including at least one dummy process;
Memory,
Each of the dummy processes included in the program loaded from the storage unit to the memory is enabled / disabled so as to be executable or disabled so as to be executable;
The execution state of the program is monitored, and whether or not the contents and execution order of the executed dummy processes match the contents and execution order of the dummy processes that are validated among the dummy processes included in the program. A detection unit that detects falsification of the program by determining, and
The valid / invalid processing unit invalidates the dummy process by rewriting the dummy process included in the program loaded in the memory into a NOP instruction.
Control device.
請求項1記載の制御装置。 The valid / invalid processing unit validates or invalidates each of the dummy processes included in the program before the execution of the program loaded from the storage unit into the memory is started.
The control device according to claim 1.
請求項1記載の制御装置。 The valid / invalid processing unit validates or invalidates each of the dummy processes included in the program during execution of the program loaded from the storage unit into the memory.
The control device according to claim 1.
メモリにロードされた制御プログラムに含まれる少なくとも一つのダミー処理のそれぞれを、実行可能となるように有効化または実行不可能となるように無効化させ、
前記制御プログラムの実行状態を監視させ、実行された前記ダミー処理の内容および実行順序が、前記制御プログラムに含まれる前記ダミー処理のうち有効化されたダミー処理の内容および実行順序と一致するか否かを判定させることにより、前記制御プログラムの改ざんを検出させるプログラムであって、
前記メモリにロードされた前記制御プログラムに含まれる前記ダミー処理をNOP命令に書き換えることで、該ダミー処理を無効化させる、
プログラム。 On the computer,
Each of at least one dummy process included in the control program loaded in the memory is enabled so that it can be executed or disabled so that it cannot be executed.
Whether or not the execution state of the control program is monitored and the contents and execution order of the executed dummy processes coincide with the contents and execution order of the dummy processes that are validated among the dummy processes included in the control program. A program for detecting falsification of the control program by determining whether or not
Rewriting the dummy process included in the control program loaded in the memory to a NOP instruction, thereby invalidating the dummy process;
program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016009071A JP6594213B2 (en) | 2016-01-20 | 2016-01-20 | Control device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016009071A JP6594213B2 (en) | 2016-01-20 | 2016-01-20 | Control device and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017130054A JP2017130054A (en) | 2017-07-27 |
JP6594213B2 true JP6594213B2 (en) | 2019-10-23 |
Family
ID=59395581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016009071A Active JP6594213B2 (en) | 2016-01-20 | 2016-01-20 | Control device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6594213B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0612506A (en) * | 1992-05-15 | 1994-01-21 | Nec Corp | Microprocessor |
JP4497450B2 (en) * | 2003-12-10 | 2010-07-07 | 独立行政法人科学技術振興機構 | Program authentication system |
CA2776913C (en) * | 2009-10-08 | 2017-01-03 | Irdeto Canada Corporation | A system and method for aggressive self-modification in dynamic function call systems |
JP5467271B2 (en) * | 2009-12-24 | 2014-04-09 | 和臣 大石 | Information processing apparatus and program, information processing method, and recording medium |
EP2378452B1 (en) * | 2010-04-16 | 2012-12-19 | Thomson Licensing | Method, device and computer program support for verification of checksums for self-modified computer code |
-
2016
- 2016-01-20 JP JP2016009071A patent/JP6594213B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017130054A (en) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102137773B1 (en) | System for transmitting secure data via security application and method thereof | |
EP3207485B1 (en) | Code pointer authentication for hardware flow control | |
CN106991324B (en) | Malicious code tracking and identifying method based on memory protection type monitoring | |
US9392016B2 (en) | System and method for below-operating system regulation and control of self-modifying code | |
US8925089B2 (en) | System and method for below-operating system modification of malicious code on an electronic device | |
US9262246B2 (en) | System and method for securing memory and storage of an electronic device with a below-operating system security agent | |
US8701187B2 (en) | Runtime integrity chain verification | |
US8966629B2 (en) | System and method for below-operating system trapping of driver loading and unloading | |
US8650642B2 (en) | System and method for below-operating system protection of an operating system kernel | |
US8549644B2 (en) | Systems and method for regulating software access to security-sensitive processor resources | |
US8959638B2 (en) | System and method for below-operating system trapping and securing of interdriver communication | |
US8443354B1 (en) | Detecting new or modified portions of code | |
US20120255014A1 (en) | System and method for below-operating system repair of related malware-infected threads and resources | |
US20120255031A1 (en) | System and method for securing memory using below-operating system trapping | |
US20140053267A1 (en) | Method for identifying malicious executables | |
US20120254995A1 (en) | System and method for below-operating system trapping and securing loading of code into memory | |
JP2007304954A (en) | Computer system having memory protecting function | |
US8024798B2 (en) | Method and apparatus for protecting against buffer overrun attacks | |
KR100745640B1 (en) | Method for protecting kernel memory and apparatus thereof | |
KR101311367B1 (en) | Method and apparatus for diagnosing attack that bypass the memory protection | |
JP6594213B2 (en) | Control device and program | |
US9536090B2 (en) | Method of defending a computer from malware | |
JP4643201B2 (en) | Buffer overflow vulnerability analysis method, data processing device, analysis information providing device, analysis information extraction processing program, and analysis information provision processing program | |
KR20100026195A (en) | Guarding apparatus and method for system | |
WO2014048751A1 (en) | Method and apparatus for detecting a malicious website |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180327 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190702 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190809 |
|
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: 20190827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190924 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6594213 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |