JP2017130054A - 制御装置およびプログラム - Google Patents

制御装置およびプログラム Download PDF

Info

Publication number
JP2017130054A
JP2017130054A JP2016009071A JP2016009071A JP2017130054A JP 2017130054 A JP2017130054 A JP 2017130054A JP 2016009071 A JP2016009071 A JP 2016009071A JP 2016009071 A JP2016009071 A JP 2016009071A JP 2017130054 A JP2017130054 A JP 2017130054A
Authority
JP
Japan
Prior art keywords
program
control
call
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.)
Granted
Application number
JP2016009071A
Other languages
English (en)
Other versions
JP6594213B2 (ja
Inventor
ロペス ダニエル サンゴリン
Sangorrin Lopez Daniel
ロペス ダニエル サンゴリン
良岳 小林
Yoshitaka Kobayashi
良岳 小林
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2016009071A priority Critical patent/JP6594213B2/ja
Publication of JP2017130054A publication Critical patent/JP2017130054A/ja
Application granted granted Critical
Publication of JP6594213B2 publication Critical patent/JP6594213B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】セキュリティ攻撃に対する保護機能を高めることができる制御装置およびプログラムを提供する。
【解決手段】制御装置3は、記憶部14と、メモリ16と、有効/無効処理プログラムPG1と、異常検出プログラムPG2とを持つ。記憶部14は、少なくとも1つのダミー処理を含む制御プログラムPG3を記憶する。有効/無効プログラムPG1は、記憶部14からメモリ16にロードされた制御プログラムPG3に含まれるダミー処理のそれぞれを有効化または無効化する。異常検出プログラムPG2は、制御プログラムの実行状態を監視し、有効/無効プログラムPG1によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、制御プログラムPG3の改ざんを検出する。
【選択図】図1

Description

本発明の実施形態は、制御装置およびプログラムに関する。
不正アクセスなどのセキュリティ攻撃を検知する方法として、シグネチャベースの検知方法が知られている。このシグネチャベースの検知方法は、周知の攻撃パターンをシグネチャとして予め定義し(ブラックリストを定義し)、監視対象の装置の動作と、このシグネチャとを比較することで、セキュリティ攻撃の有無を検知する。しかしながら、このシグネチャベースの検知方法は、攻撃パターンを一般化することができないため、新たな攻撃を受けた場合、または、周知の攻撃が変更され、予め定義されたシグネチャと一致しなくなった場合には、攻撃を検知することができない場合があった。
また、監視対象の装置の動作と、期待される正常動作(ホワイトリスト)とを比較することで不正アクセスを検知する方法も知られている。しかしながら、攻撃者がこの装置の正常動作の内容を把握できた場合には、この装置の正常動作の内容を模倣することで、攻撃を検知することができない場合があった。
特開2010−257150号公報 特開2011−258019号公報 特開2007−286656号公報 特開2007−148818号公報 特開2005−234849号公報
H. Feng et al.,"Anomaly Detection Using Call Stack Information", Proceedings of the IEEE Symposium on Security and Privacy, 2003, 62頁 H. Xu, W. Du, and S. J. Chapin. "Context sensitive anomaly monitoring of process control flow to detect mimicry attacks and impossible paths", Proceedings of the International Symposium on Recent Advances in Intrusion Detection RAID, Springer, 2004, 21-38頁 Danilo Bruschi et al., "An Efficient Technique for Preventing Mimicry and Impossible Paths Execution Attacks", Proceedings of the performance, computing, and communications conference (IPCCC), 2007, 418-425頁
本発明が解決しようとする課題は、セキュリティ攻撃に対する保護機能を高めることができる制御装置およびプログラムを提供することである。
実施形態の制御装置は、記憶部と、メモリと、有効/無効処理部と、検出部とを持つ。記憶部は、少なくとも1つのダミー処理を含むプログラムを記憶する。有効/無効処理部は、記憶部からメモリにロードされたプログラムに含まれるダミー処理のそれぞれを有効化または無効化する。検出部は、プログラムの実行状態を監視し、有効/無効処理部によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムの改ざんを検出する。
第1の実施形態における、制御システムの一例を示す図。 第1の実施形態における、制御装置の機能ブロック図。 第1の実施形態における、制御プログラムの一例を示す図。 第1の実施形態における、制御プログラム内に含まれるフェイクコールの内容および位置を示す設定ファイルの一例を示す図。 第1の実施形態における、制御装置の処理の流れの一例を示すフローチャート。 第1の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図。 第2の実施形態における、制御装置の処理の流れの一例を示すフローチャート。 第2の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図。
以下、実施形態の制御装置およびプログラムを、図面を参照して説明する。
(第1の実施形態)
図1は、第1の実施形態における、制御システムの一例を示す図である。制御システム1は、制御装置3と、制御対象機器5とを含んでよいが、これに限定されない。例えば、制御システム1は、鉄道の駅における入出場を管理する自動改札制御システム、工場におけるボイラー機器等の各種機器の機器制御システム、銀行における紙葉類処理制御システム、乗用車における運転処理制御システムなどに適用することができる。また、制御システム1は、上記の他、リアルタイム制御などを目的とした任意の制御システムに適用することができる。
制御装置3は、制御対象機器5の動作を制御する。制御装置3は、プロセッサ10と、通信I/F12と、二次記憶装置(記憶部)14と、メモリ16と、ROM(Read Only Memory)18とを含んでよいが、これに限定されない。また、制御装置3は、外部装置(不図示)から各種データを受け取り、この各種データに基づいて、制御対象機器5の制御内容を決定してもよい。
プロセッサ10は、例えばCPU(Central Processing Unit)である。プロセッサ10は、ブートプログラムによって初期動作を開始し、二次記憶装置14に格納されたプログラムを、メモリ16に展開(ロード)して実行する。
通信部I/F12は、制御対象機器5の動作を制御する制御信号等を、制御対象機器5に送信するインターフェース装置である。
二次記憶装置14は、HDD(Hard Disk Drive)、SSD(Solid State Drive)などのフラッシュメモリ、EEPROM(Electrically Erasable Programmable ROM)などである。二次記憶装置14は、制御装置3のOS(Operating System)、アプリケーションプログラム、設定ファイル、データなどを格納する。例えば、OSは、有効/無効処理プログラムPG1、異常検出プログラムPG2などを含んでよいが、これに限定されない。また、例えば、アプリケーションプログラムは、制御対象機器5を制御するための制御プログラムPG3などを含んでよいが、これに限定されない。
メモリ16は、例えば、SRAM(Static Random Access Memory)などの揮発性メモリである。メモリ16は、二次記憶装置14に記憶されたOSおよびアプリケーションプログラムが図示しないDMA(Direct Memory Access)コントローラによってロードされる他、プロセッサ10によってワーキングエリアとして使用される。
ROM18は、前述したブートプログラム、プロセッサ10の初期設定値などを格納する。
制御対象機器5は、制御装置3の制御下において、各種処理を実行する。例えば、制御システム1が、鉄道の駅における入出場を管理する自動改札制御システムである場合、制御対象機器5は、自動改札機のアクチュエータ、表示装置などである。また、制御システム1が、工場におけるボイラー機器等の各種機器の機器制御システムである場合、制御対象機器5は、ボイラー機器等の各種機器である。
図2は、第1の実施形態における、制御装置3の機能ブロック図である。制御装置3は、OS実行部20と、アプリケーション実行部30とを含んでよいが、これに限定されない。OS実行部20は、例えば、二次記憶装置14に格納されたOS(有効/無効処理プログラムPG1、異常検出プログラムPG2など)が、メモリ16にロードされ、プロセッサ10によって実行されることにより実現される。また、アプリケーション実行部30は、例えば、二次記憶装置14に格納された制御プログラムPG3などが、メモリ16にロードされ、プロセッサ10によって実行されることにより実現される。
OS実行部20は、有効/無効処理部22と、異常検出部(検出部)24とを含んでよいが、これに限定されない。
有効/無効処理部22は、二次記憶装置14からメモリ16にロードされた制御プログラムPG3に含まれるフェイクコールと呼ばれるダミー処理のそれぞれを有効化または無効化する。また、異常検出部24は、二次記憶装置14からメモリ16にロードされた制御プログラムPG3の実行状態を監視し、有効/無効処理部22によりフェイクコールが有効化または無効化された結果と一致するか否かを判定することにより、制御プログラムPG3の改ざんを検出する。これらの機能部の動作については後述する。
アプリケーション実行部30は、制御対象機器5を制御するための種々の処理を実行する。
[制御プログラム]
本実施形態における制御プログラムPG3には、二次記憶装置14に格納された段階で、フェイクコールが予め組み込まれている。このフェイクコールとは、OSに対して各種サービスを要求するシステムコール、または各種処理を実行するファンクションコールであって、制御プログラムPG3の本来の制御処理に影響を及ぼさない処理を行うものである。例えば、このフェイクコールは、存在しないファイルを指定したオープンコールや、既に存在するファイルを、同じファイルで上書きする処理などであってよい。
図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()”などに対応する。
図4は、第1の実施形態における、制御プログラムPG3内に含まれるフェイクコールの内容(図中、「Fake call」欄)および位置(図中、「Address」欄)を示す設定ファイルC1の一例を示す図である。この設定ファイルC1は、図3に示す制御プログラムPG3とともに、二次記憶装置14に格納されている。設定ファイルC1は、独立したファイルとして二次記憶装置14に格納されていてもよいし、OSの一部として埋め込まれていてもよい。図4に例示した設定ファイルC1は、制御プログラムPG3内において、フェイクコールR1、R2、およびR3の各々が、アドレス3、6、および7に存在していることを示している。
(制御装置の動作)
図5および図6を参照して、第1の実施形態の制御装置3の動作について説明する。図5は、第1の実施形態における、制御装置3の処理の流れの一例を示すフローチャートである。図6は、第1の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図である。
まず、二次記憶装置14に記憶された制御プログラムPG3、有効/無効処理プログラムPG1、異常検出プログラムPG2、および設定ファイルC1が、メモリ16にロードされる(ステップS101)。図6に示すように、例えば、制御プログラムPG3が、メモリ16内のアプリケーション領域A1にロードされ、有効/無効処理プログラムPG1、異常検出プログラムPG2、および設定ファイルC1が、メモリ16内のOS領域A2にロードされる。
次に、有効/無効処理部22は、制御プログラムPG3の実行開始前に、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3に含まれるフェイクコールのそれぞれを有効化(図6中、ON)または無効化(図6中、OFF)する(ステップS103)。
図6に示す例では、有効/無効処理部22は、OS領域A2にロードされた設定ファイルC1に基づいて、制御プログラムPG3内に記載された3つのフェイクコールの中で、アドレス3のフェイクコール(R1)およびアドレス6のフェイクコール(R2)を有効化し(ONフラグを設定し)、アドレス7のフェイクコール(R3)を無効化する(OFFフラグを設定する)。
この際、有効/無効処理部22は、どのフェイクコールを有効化または無効化したかを示すフラグを、設定ファイルC1内に書き込む(ステップS105)。図6の例では、有効/無効処理部22は、「Flag」欄にONまたはOFFを示す情報を書き込む。尚、有効/無効処理部22は、どのフェイクコールが有効化または無効化したかを示す情報を設定ファイルC1以外の設定ファイルに記憶させてもよい。
有効/無効処理部22は、例えば、少なくとも1つのフェイクコールを有効化する。どのフェイクコールを有効化または無効化するかについてはランダムに決定してよい。また、有効/無効処理部22は、全てのフェイクコールを無効化しても構わない。
また、全てのフェイクコールが有効化された制御プログラムPG3を二次記憶装置14に格納しておき、有効/無効処理部22が、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3に含まれるフェイクコールの中で、無効化するフェイクコールを設定するようにしてもよい。また、フェイクコールのそれぞれを有効化または無効化する場合に、ONフラグおよびOFFフラグを制御プログラムPG3に設定するのではなく、無効化するフェイクコール自体を、処理を実行しないコール(NOP命令)に書き換える処理を行ってもよい。
次に、有効/無効処理部22は、メモリ16内のアプリケーション領域A1にロードされ、フェイクコールのそれぞれの有効化または無効化が行われた制御プログラムPG3の実行を開始する(ステップS107)。
次に、異常検出部24は、制御プログラムPG3の実行状態が適切か否かを判定する(ステップS109)。例えば、異常検出部24は、制御プログラムPG3に含まれるフェイクコールの中で有効化されたフェイクコールの内容および実行順序が、設定ファイルC1に定義された内容および実行順序と一致するか否かを判定する。有効化されたフェイクコールの内容および実行順序が設定ファイルC1に定義された内容および実行順序と一致する場合、異常検出部24は、有効化されたフェイクコールが順序通りに実行されているため、制御プログラムPG3の実行状態が適切であると判定する。制御プログラムの実行状態が適切であると判定した場合、異常検出部24は、制御プログラムPG3に改ざんが無いと判定する(ステップS111)。この場合、アプリケーション実行部30による制御対象機器5の制御が継続されるとともに、異常検出部24は、制御プログラムPG3の実行状態が適切か否かの判定(ステップS109)を再度実施する。また、異常検出部24は、制御プログラムPG3に記載されたフェイクコールの中で無効化されたフェイクコールが実行されていないことをステップS109の判定条件に加えてもよい。
一方、制御プログラムの実行状態が適切でないと判定した場合、異常検出部24は、制御プログラムPG3の改ざんが行われたと判定する(ステップS113)。例えば、異常検出部24は、アドレス3のフェイクコール(R1)が実行された後に、アドレス6のフェイクコール(R2)が実行されなかった場合、アドレス3のフェイクコール(R1)が実行されることなく、アドレス6のフェイクコール(R2)が実行された場合などにおいて、制御プログラムPG3の改ざんが行われたと判定する。
この場合、異常検出部24は、外部の監視端末に異常を通知する等のエラー処理を行い(ステップS115)、本フローチャートの処理を終了する。尚、この場合、異常検出部24は、アプリ実行プログラムPG3の実行を停止してもよい。
また、異常検出部24は、制御プログラムPG3に含まれるフェイクコールの実行状態に加え、制御プログラムPG3に含まれる通常処理を行うためのコール(コール(A)、コール(B)、コール(C))の実行状態を合わせて監視するようにしてもよい。また、異常検出部24は、制御プログラムPG3に含まれるフェイクコールが処理される際に利用されるパラメータの内容(例えば、OSに引き渡すパラメータの内容)を合わせて監視するようにしてもよい。
以上説明した第1の実施形態の制御装置3によれば、少なくとも1つのダミー処理を含むプログラムを記憶した二次記憶装置14と、メモリ16と、二次記憶装置14からメモリ16にロードされたプログラムPG3に含まれるダミー処理のそれぞれを有効化または無効化する有効/無効処理部22と、プログラムPG3の実行状態を監視し、有効/無効処理部22によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムPG3の改ざんを検出する異常検出部24とを備えることで、セキュリティ攻撃に対する保護機能を高めることができる。
第1の実施形態の制御装置3では、制御プログラムPG3の実行開始前に、制御プログラムPG3に含まれるフェイクコールがランダムに有効化または無効化されるため、制御プログラムPG3に含まれる有効化されたフェイクコールの内容、数、および順序は制御プログラムPG3の実行毎に異なる。このため、例えば、攻撃者が攻撃対象の装置の制御処理に関する通常動作の内容(制御プログラムのコードの内容)を把握できたとしても、実行毎に異なるフェイクコールの内容を把握することは出来ない。また、フェイクコールの内容や実行順序を解析したとしても、次の回の実行場面ではフェイクコールの内容や実行順序が変化することになるため、攻撃を失敗することが期待できる。このように、第1の実施形態の制御装置3によれば、ランダムに有効化されたフェイクコールの実行状態を監視することで、プログラムの改ざんを検知することができる。尚、毎回(メモリ16への制御プログラムPG3のロードの度に)フェイクコールの有効化または無効化の設定をランダムに行うのではなく、複数回に1回の頻度で行ってもよいし、制御プログラムPG3のロードの度に行うよりも高頻度に行ってもよい。
(第2の実施形態)
以下、第2の実施形態について説明する。第2の実施形態に係る制御システム1は、制御プログラムPG3の実行が開始された後、任意のタイミングでフェイクコールの内容を動的に変更する点で、第1の実施形態と異なる。以下の説明において、上記の第1の実施形態と同様の部分には同じ参照番号を付与し、その説明を省略あるいは簡略化する。
[制御装置の動作]
図7および図8を参照して、第2の実施形態の制御装置3の動作について説明する。図7は、第2の実施形態における、制御装置3の処理の流れの一例を示すフローチャートである。図8は、第2の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図である。
まず、二次記憶装置14に記憶された制御プログラムPG3、有効/無効処理プログラムPG1、異常検出プログラムPG2、および設定ファイルC1が、メモリ16にロードされる(ステップS201)。
次に、有効/無効処理部22は、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3の実行を開始する(ステップS203)。ここで、例えば、制御プログラムPG3に含まれるフェイクコールは、いずれも有効化されている。
次に、有効/無効処理部22は、制御プログラムPG3に含まれるフェイクコールの実行条件を変更するフェイクコール変更トリガが発生したか否かを判定する(ステップS205)。このフェイクコール変更トリガは、例えば、図示しない他のプロセスによってランダムに発生される割り込み信号に基づくものである。
フェイクコール変更トリガが発生したと判定した場合、有効/無効処理部22は、実行中の制御プログラムPG3に含まれるフェイクコールのそれぞれを有効化または無効化する(ステップS207)。
図8に示す例では、有効/無効処理部22は、OS領域A2にロードされた設定ファイルC1に基づいて、制御プログラムPG3内に記載された3つのフェイクコールの中で、アドレス7のフェイクコール(R3)を無効化する。例えば、有効/無効処理部22は、アドレス7のフェイクコール(R3)を、処理を実行しないコール(NOP命令)に書き換える処理を行う。有効/無効処理部22は、どのフェイクコールを有効化または無効化するかについてはランダムに決定してよい。
この際、有効/無効処理部22は、どのフェイクコールを無効化したかを示すフラグを、設定ファイルC1内に書き込む(図中、「Flag」欄にOFFを示す情報を書き込む)(ステップS209)。
尚、有効/無効処理部22は、アドレス7のフェイクコール(R3)を、処理を実行しないコール(NOP命令)に書き換える処理に代えて、第1の実施形態のように、制御プログラムPG3内に有効化または無効化を示すフラグを設定してもよい。また、有効/無効処理部22は、どのフェイクコールが有効化または無効化されたかを示す情報を設定ファイルC1以外の設定ファイルに記憶させてもよい。
フェイクコール変更トリガが発生していないと判定した場合、有効/無効処理部22は、上記のフェイクコールの実行条件の変更処理(ステップS207)および設定ファイルC1の書き換え処理(ステップS209)を行わない。
次に、異常検出部24は、制御プログラムPG3の実行状態が適切か否かを判定する(ステップ211)。例えば、異常検出部24は、制御プログラムPG3に記載されたフェイクコールの中で有効化されたフェイクコールの内容および実行順序が、設定ファイルC1に定義された内容および実行順序と一致するか否かを判定する。有効化されたフェイクコールの内容および実行順序が設定ファイルC1に定義された内容および実行順序と一致する場合、異常検出部24は、有効化されたフェイクコールが順序通りに実行されているため、制御プログラムPG3の実行状態が適切であると判定する。制御プログラムの実行状態が適切であると判定した場合、異常検出部24は、制御プログラムPG3に改ざんが無いと判定する(ステップS213)。この場合、アプリケーション実行部30による制御対象機器5の制御が継続されるとともに、異常検出部24は、フェイクコール変更トリガが発生したか否かを判定する処理(ステップS205)を再度実施する。
一方、制御プログラムの実行状態が適切でないと判定した場合、異常検出部24は、制御プログラムPG3の改ざんが行われたと判定する(ステップS215)。例えば、異常検出部24は、アドレス3のフェイクコール(R1)が実行された後に、アドレス6のフェイクコール(R2)が実行されなかった場合、アドレス3のフェイクコール(R1)が実行されることなく、アドレス6のフェイクコール(R2)が実行された場合などにおいて、制御プログラムPG3の改ざんが行われたと判定する。
この場合、異常検出部24は、外部の監視端末に異常を通知する等のエラー処理を行い(ステップS217)、本フローチャートの処理を終了する。
以上説明した第2の実施形態の制御装置3によれば、制御プログラムPG3の実行中に、制御プログラムPG3に含まれるフェイクコールがランダムに有効化または無効化されるため、制御プログラムPG3に含まれる有効化されたフェイクの内容、数、および順序を制御プログラムPG3の実行中に変化させることができる。このため、例えば、攻撃者が攻撃対象の装置の制御処理に関する動作の内容(フェイクコールの実行条件を含む制御プログラムPG3のコードの内容)を把握できたとしても、制御プログラムPG3の改ざんを検知することができる。
以上説明した第2の実施形態の制御装置3では、制御プログラムPG3の実行中に、制御プログラムPG3に含まれるフェイクコールをランダムに有効化または無効化する例を説明した。しかしながら、制御プログラムPG3の実行中に加え、上記の第1の実施形態の制御装置3のように、制御プログラムPG3の実行開始前にフェイクコールを有効化または無効化する処理を行ってもよい。
以上説明した少なくとも一つの実施形態によれば、少なくとも1つのダミー処理を含むプログラムを記憶した二次記憶装置14と、メモリ16と、二次記憶装置14からメモリ16にロードされたプログラムPG3に含まれるダミー処理のそれぞれを有効化または無効化する有効/無効処理部22と、プログラムPG3の実行状態を監視し、有効/無効処理部22によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムPG3の改ざんを検出する異常検出部24とを備えることで、セキュリティ攻撃に対する制御装置の保護機能を高めることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…制御システム、3…制御装置、5…制御対象機器、10…プロセッサ、12…通信I/F、14…二次記憶装置、16…メモリ、18…ROM、20…OS実行部、22…有効/無効処理部、24…異常検出部、30…アプリケーション実行部、A1…アプリケーション領域、A2…OS領域、C1…設定ファイル、PG1…有効/無効処理プログラム、PG2…異常検出プログラム、PG3…制御プログラム

Claims (5)

  1. 少なくとも1つのダミー処理を含むプログラムを記憶した記憶部と、
    メモリと、
    前記記憶部から前記メモリにロードされた前記プログラムに含まれる前記ダミー処理のそれぞれを有効化または無効化する有効/無効処理部と、
    前記プログラムの実行状態を監視し、前記有効/無効処理部により前記ダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、前記プログラムの改ざんを検出する検出部と
    を備える制御装置。
  2. 前記有効/無効処理部は、前記記憶部から前記メモリにロードされた前記プログラムの実行開始前に、前記プログラムに含まれる前記ダミー処理のそれぞれを有効化または無効化する、
    請求項1記載の制御装置。
  3. 前記有効/無効処理部は、前記記憶部から前記メモリにロードされた前記プログラムの実行中に、前記プログラムに含まれる前記ダミー処理のそれぞれを有効化または無効化する、
    請求項1記載の制御装置。
  4. 前記検出部は、実行された前記ダミー処理の内容および実行順序を監視し、前記プログラムに含まれる前記ダミー処理のうち有効化されたダミー処理の内容および実行順序と一致するか否かを判定する、
    請求項1記載の制御装置。
  5. コンピューターに、
    メモリにロードされた制御プログラムに含まれる少なくとも一つのダミー処理のそれぞれを有効化または無効化させ、
    前記制御プログラムの実行状態を監視させ、前記ダミー処理を有効化または無効化させた結果と一致するか否かを判定させることにより、前記制御プログラムの改ざんを検出させる
    プログラム。
JP2016009071A 2016-01-20 2016-01-20 制御装置およびプログラム Active JP6594213B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016009071A JP6594213B2 (ja) 2016-01-20 2016-01-20 制御装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016009071A JP6594213B2 (ja) 2016-01-20 2016-01-20 制御装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2017130054A true JP2017130054A (ja) 2017-07-27
JP6594213B2 JP6594213B2 (ja) 2019-10-23

Family

ID=59395581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016009071A Active JP6594213B2 (ja) 2016-01-20 2016-01-20 制御装置およびプログラム

Country Status (1)

Country Link
JP (1) JP6594213B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612506A (ja) * 1992-05-15 1994-01-21 Nec Corp マイクロプロセッサ
JP2005173903A (ja) * 2003-12-10 2005-06-30 Japan Science & Technology Agency プログラム認証システム
WO2011041871A1 (en) * 2009-10-08 2011-04-14 Irdeto Canada Corporation A system and method for aggressive self-modification in dynamic function call systems
JP2011170836A (ja) * 2009-12-24 2011-09-01 Kazuomi Oishi 情報処理装置及びプログラム、情報処理方法、記録媒体
JP2011227897A (ja) * 2010-04-16 2011-11-10 Thomson Licensing 自己修正計算機コードのチェックサム検証のための方法、装置およびコンピュータ・プログラム担体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612506A (ja) * 1992-05-15 1994-01-21 Nec Corp マイクロプロセッサ
JP2005173903A (ja) * 2003-12-10 2005-06-30 Japan Science & Technology Agency プログラム認証システム
WO2011041871A1 (en) * 2009-10-08 2011-04-14 Irdeto Canada Corporation A system and method for aggressive self-modification in dynamic function call systems
JP2011170836A (ja) * 2009-12-24 2011-09-01 Kazuomi Oishi 情報処理装置及びプログラム、情報処理方法、記録媒体
JP2011227897A (ja) * 2010-04-16 2011-11-10 Thomson Licensing 自己修正計算機コードのチェックサム検証のための方法、装置およびコンピュータ・プログラム担体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
槙本 裕司: "システムコールの実行順と実行位置に基づく侵入検知システムの実現", 情報処理学会研究報告, vol. 2007, no. 83, JPN6019024015, 3 August 2007 (2007-08-03), JP, pages 23 - 30, ISSN: 0004063485 *

Also Published As

Publication number Publication date
JP6594213B2 (ja) 2019-10-23

Similar Documents

Publication Publication Date Title
EP3779745B1 (en) Code pointer authentication for hardware flow control
US8701187B2 (en) Runtime integrity chain verification
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
CN106991324B (zh) 一种基于内存保护类型监控的恶意代码跟踪识别方法
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
US8959638B2 (en) System and method for below-operating system trapping and securing of interdriver communication
US8549644B2 (en) Systems and method for regulating software access to security-sensitive processor resources
US20150248557A1 (en) System and method for below-operating system trapping and securing loading of code into memory
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
US9516056B2 (en) Detecting a malware process
JP2007304954A (ja) メモリ保護機能を有するコンピュータシステム
US8024798B2 (en) Method and apparatus for protecting against buffer overrun attacks
KR101816866B1 (ko) 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법
JP6594213B2 (ja) 制御装置およびプログラム
KR20100026195A (ko) 시스템 보호 장치 및 방법
WO2014048751A1 (en) Method and apparatus for detecting a malicious website
JP2006053760A (ja) バッファオーバーフロー脆弱性分析方法、データ処理装置、分析情報提供装置、分析情報抽出処理用プログラムおよび分析情報提供処理用プログラム

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 Request for written amendment filed

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 Request for written amendment filed

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