JP6594213B2 - Control device and program - Google Patents

Control device and program Download PDF

Info

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
Application number
JP2016009071A
Other languages
Japanese (ja)
Other versions
JP2017130054A (en
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.)
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/en
Publication of JP2017130054A publication Critical patent/JP2017130054A/en
Application granted granted Critical
Publication of JP6594213B2 publication Critical patent/JP6594213B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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.

特開2010−257150号公報JP 2010-257150 A 特開2011−258019号公報JP 2011-258019 A 特開2007−286656号公報JP 2007-286656 A 特開2007−148818号公報JP 2007-148818 A 特開2005−234849号公報Japanese Patent Laid-Open No. 2005-234849

H. Feng et al.,“Anomaly Detection Using Call Stack Information”, Proceedings of the IEEE Symposium on Security and Privacy, 2003, 62頁H. Feng et al., “Anomaly Detection Using Call Stack Information”, Proceedings of the IEEE Symposium on Security and Privacy, 2003, p. 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頁H. Xu, W. Du, and SJ 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 page 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頁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, pp. 418-425

本発明が解決しようとする課題は、セキュリティ攻撃に対する保護機能を高めることができる制御装置およびプログラムを提供することである。   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.

第1の実施形態における、制御システムの一例を示す図。The figure which shows an example of the control system in 1st Embodiment. 第1の実施形態における、制御装置の機能ブロック図。The functional block diagram of the control apparatus in 1st Embodiment. 第1の実施形態における、制御プログラムの一例を示す図。The figure which shows an example of the control program in 1st Embodiment. 第1の実施形態における、制御プログラム内に含まれるフェイクコールの内容および位置を示す設定ファイルの一例を示す図。The figure which shows an example of the setting file which shows the content and position of the fake call contained in the control program in 1st Embodiment. 第1の実施形態における、制御装置の処理の流れの一例を示すフローチャート。The flowchart which shows an example of the flow of a process of the control apparatus in 1st Embodiment. 第1の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図。The figure which shows an example of the condition where the fake call contained in the control program in a 1st embodiment is validated or invalidated. 第2の実施形態における、制御装置の処理の流れの一例を示すフローチャート。The flowchart which shows an example of the flow of a process of the control apparatus in 2nd Embodiment. 第2の実施形態における、制御プログラム内に含まれるフェイクコールが有効化または無効化される状況の一例を示す図。The figure which shows an example of the condition where the fake call contained in the control program in a 2nd embodiment is validated or invalidated.

以下、実施形態の制御装置およびプログラムを、図面を参照して説明する。   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 control system 1 may include the control device 3 and the control target device 5, but is not limited to this. For example, the control system 1 includes an automatic ticket gate control system that manages entry / exit at a railway station, a device control system for various devices such as boiler equipment in a factory, a paper sheet processing control system in a bank, and an operation processing control system in a passenger car. Can be applied to. In addition to the above, the control system 1 can be applied to any control system intended for real-time control or the like.

制御装置3は、制御対象機器5の動作を制御する。制御装置3は、プロセッサ10と、通信I/F12と、二次記憶装置(記憶部)14と、メモリ16と、ROM(Read Only Memory)18とを含んでよいが、これに限定されない。また、制御装置3は、外部装置(不図示)から各種データを受け取り、この各種データに基づいて、制御対象機器5の制御内容を決定してもよい。   The control device 3 controls the operation of the control target device 5. The control device 3 may include a processor 10, a communication I / F 12, a secondary storage device (storage unit) 14, a memory 16, and a ROM (Read Only Memory) 18, but is not limited thereto. Further, the control device 3 may receive various data from an external device (not shown) and determine the control content of the control target device 5 based on the various data.

プロセッサ10は、例えばCPU(Central Processing Unit)である。プロセッサ10は、ブートプログラムによって初期動作を開始し、二次記憶装置14に格納されたプログラムを、メモリ16に展開(ロード)して実行する。   The processor 10 is, for example, a CPU (Central Processing Unit). The processor 10 starts an initial operation by the boot program, and expands (loads) the program stored in the secondary storage device 14 into the memory 16 and executes it.

通信部I/F12は、制御対象機器5の動作を制御する制御信号等を、制御対象機器5に送信するインターフェース装置である。   The communication unit I / F 12 is an interface device that transmits a control signal or the like for controlling the operation of the control target device 5 to the control target device 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などを含んでよいが、これに限定されない。   The secondary storage device 14 is a flash memory such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive), an EEPROM (Electrically Erasable Programmable ROM), or the like. The secondary storage device 14 stores an OS (Operating System), application programs, setting files, data, and the like of the control device 3. For example, the OS may include a valid / invalid processing program PG1, an abnormality detection program PG2, and the like, but is not limited thereto. Further, for example, the application program may include a control program PG3 for controlling the control target device 5, but is not limited thereto.

メモリ16は、例えば、SRAM(Static Random Access Memory)などの揮発性メモリである。メモリ16は、二次記憶装置14に記憶されたOSおよびアプリケーションプログラムが図示しないDMA(Direct Memory Access)コントローラによってロードされる他、プロセッサ10によってワーキングエリアとして使用される。   The memory 16 is a volatile memory such as SRAM (Static Random Access Memory). The memory 16 is used as a working area by the processor 10 in addition to the OS and application program stored in the secondary storage device 14 being loaded by a DMA (Direct Memory Access) controller (not shown).

ROM18は、前述したブートプログラム、プロセッサ10の初期設定値などを格納する。   The ROM 18 stores the above-described boot program, initial setting values of the processor 10, and the like.

制御対象機器5は、制御装置3の制御下において、各種処理を実行する。例えば、制御システム1が、鉄道の駅における入出場を管理する自動改札制御システムである場合、制御対象機器5は、自動改札機のアクチュエータ、表示装置などである。また、制御システム1が、工場におけるボイラー機器等の各種機器の機器制御システムである場合、制御対象機器5は、ボイラー機器等の各種機器である。   The control target device 5 executes various processes under the control of the control device 3. For example, when the control system 1 is an automatic ticket gate control system that manages entry / exit at a railway station, the control target device 5 is an actuator, a display device, or the like of an automatic ticket gate. When the control system 1 is a device control system for various devices such as boiler devices in a factory, the control target device 5 is various devices such as boiler devices.

図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 control device 3 in the first embodiment. The control device 3 may include the OS execution unit 20 and the application execution unit 30, but is not limited thereto. The OS execution unit 20 is realized, for example, by loading an OS (valid / invalid processing program PG1, abnormality detection program PG2, etc.) stored in the secondary storage device 14 into the memory 16 and executing it by the processor 10. The The application execution unit 30 is realized by, for example, loading a control program PG3 stored in the secondary storage device 14 into the memory 16 and executing it by the processor 10.

OS実行部20は、有効/無効処理部22と、異常検出部(検出部)24とを含んでよいが、これに限定されない。   The OS execution unit 20 may include a valid / invalid processing unit 22 and an abnormality detection unit (detection unit) 24, but is not limited thereto.

有効/無効処理部22は、二次記憶装置14からメモリ16にロードされた制御プログラムPG3に含まれるフェイクコールと呼ばれるダミー処理のそれぞれを有効化または無効化する。また、異常検出部24は、二次記憶装置14からメモリ16にロードされた制御プログラムPG3の実行状態を監視し、有効/無効処理部22によりフェイクコールが有効化または無効化された結果と一致するか否かを判定することにより、制御プログラムPG3の改ざんを検出する。これらの機能部の動作については後述する。   The valid / invalid processing unit 22 validates or invalidates each dummy process called a fake call included in the control program PG3 loaded from the secondary storage device 14 to the memory 16. In addition, the abnormality detection unit 24 monitors the execution state of the control program PG3 loaded from the secondary storage device 14 to the memory 16, and matches the result that the fake call is validated or invalidated by the valid / invalid processing unit 22. By determining whether or not to perform, alteration of the control program PG3 is detected. The operation of these functional units will be described later.

アプリケーション実行部30は、制御対象機器5を制御するための種々の処理を実行する。   The application execution unit 30 executes various processes for controlling the control target device 5.

[制御プログラム]
本実施形態における制御プログラム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 secondary storage device 14. The fake call is a system call for requesting various services to the OS or a function call for executing various processes, and performs a process that does not affect the original control process of the control program PG3. For example, this fake call may be an open call specifying a file that does not exist, or a process of overwriting an existing file with the same file.

図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 code 2 processing (code2 in the figure); 6. Call the second fake call (R2) (fake_call (R2) in the figure); 7. Call the third fake call (R3) (fake_call (R3) in the figure); Codes are written in the order of calling a call (C) (call (C) in the figure). Note that the number and position of fake calls incorporated in the control program PG3 are not limited to this.
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 secondary storage device 14 together with the control program PG3 shown in FIG. The setting file C1 may be stored in the secondary storage device 14 as an independent file, or may be embedded as a part of the OS. The setting file C1 illustrated in FIG. 4 indicates that each of the fake calls R1, R2, and R3 exists at addresses 3, 6, and 7 in the control program PG3.

(制御装置の動作)
図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 control device 3 of the first embodiment will be described. FIG. 5 is a flowchart illustrating an example of a processing flow of the control device 3 in the first embodiment. FIG. 6 is a diagram illustrating an example of a situation in which a fake call included in a control program is validated or invalidated in the first embodiment.

まず、二次記憶装置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 secondary storage device 14 are loaded into the memory 16 (step S101). As shown in FIG. 6, for example, the control program PG3 is loaded into the application area A1 in the memory 16, and the valid / invalid processing program PG1, the abnormality detection program PG2, and the setting file C1 are stored in the OS area A2 in the memory 16. To be loaded.

次に、有効/無効処理部22は、制御プログラムPG3の実行開始前に、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3に含まれるフェイクコールのそれぞれを有効化(図6中、ON)または無効化(図6中、OFF)する(ステップS103)。   Next, the valid / invalid processing unit 22 validates each fake call included in the control program PG3 loaded in the application area A1 in the memory 16 before the execution of the control program PG3 (ON in FIG. 6). Or invalidation (OFF in FIG. 6) (step S103).

図6に示す例では、有効/無効処理部22は、OS領域A2にロードされた設定ファイルC1に基づいて、制御プログラムPG3内に記載された3つのフェイクコールの中で、アドレス3のフェイクコール(R1)およびアドレス6のフェイクコール(R2)を有効化し(ONフラグを設定し)、アドレス7のフェイクコール(R3)を無効化する(OFFフラグを設定する)。   In the example shown in FIG. 6, the valid / invalid processing unit 22 performs the fake call at address 3 among the three fake calls described in the control program PG3 based on the setting file C1 loaded in the OS area A2. (R1) and the fake call (R2) at address 6 are validated (ON flag is set), and the fake call (R3) at address 7 is invalidated (OFF flag is set).

この際、有効/無効処理部22は、どのフェイクコールを有効化または無効化したかを示すフラグを、設定ファイルC1内に書き込む(ステップS105)。図6の例では、有効/無効処理部22は、「Flag」欄にONまたはOFFを示す情報を書き込む。尚、有効/無効処理部22は、どのフェイクコールが有効化または無効化したかを示す情報を設定ファイルC1以外の設定ファイルに記憶させてもよい。   At this time, the valid / invalid processing unit 22 writes a flag indicating which fake call is validated or invalidated in the setting file C1 (step S105). In the example of FIG. 6, the valid / invalid processing unit 22 writes information indicating ON or OFF in the “Flag” column. The valid / invalid processing unit 22 may store information indicating which fake call is validated or invalidated in a setting file other than the setting file C1.

有効/無効処理部22は、例えば、少なくとも1つのフェイクコールを有効化する。どのフェイクコールを有効化または無効化するかについてはランダムに決定してよい。また、有効/無効処理部22は、全てのフェイクコールを無効化しても構わない。   The valid / invalid processing unit 22 validates at least one fake call, for example. It may be determined randomly which fake call is enabled or disabled. Further, the valid / invalid processing unit 22 may invalidate all the fake calls.

また、全てのフェイクコールが有効化された制御プログラム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 secondary storage device 14, and the valid / invalid processing unit 22 is included in the control program PG3 loaded in the application area A1 in the memory 16. The fake call to be invalidated may be set in the fake call to be made. Further, when each of the fake calls is validated or invalidated, the fake call to be invalidated is not set to a call (NOP instruction) that does not execute processing, instead of setting the ON flag and the OFF flag in the control program PG3. You may perform the process to rewrite.

次に、有効/無効処理部22は、メモリ16内のアプリケーション領域A1にロードされ、フェイクコールのそれぞれの有効化または無効化が行われた制御プログラムPG3の実行を開始する(ステップS107)。   Next, the valid / invalid processing unit 22 starts execution of the control program PG3 loaded in the application area A1 in the memory 16 and in which each fake call is validated or invalidated (step S107).

次に、異常検出部24は、制御プログラムPG3の実行状態が適切か否かを判定する(ステップS109)。例えば、異常検出部24は、制御プログラムPG3に含まれるフェイクコールの中で有効化されたフェイクコールの内容および実行順序が、設定ファイルC1に定義された内容および実行順序と一致するか否かを判定する。有効化されたフェイクコールの内容および実行順序が設定ファイルC1に定義された内容および実行順序と一致する場合、異常検出部24は、有効化されたフェイクコールが順序通りに実行されているため、制御プログラムPG3の実行状態が適切であると判定する。制御プログラムの実行状態が適切であると判定した場合、異常検出部24は、制御プログラムPG3に改ざんが無いと判定する(ステップS111)。この場合、アプリケーション実行部30による制御対象機器5の制御が継続されるとともに、異常検出部24は、制御プログラムPG3の実行状態が適切か否かの判定(ステップS109)を再度実施する。また、異常検出部24は、制御プログラムPG3に記載されたフェイクコールの中で無効化されたフェイクコールが実行されていないことをステップS109の判定条件に加えてもよい。   Next, the abnormality detection unit 24 determines whether or not the execution state of the control program PG3 is appropriate (step S109). For example, the abnormality detection unit 24 determines whether or not the content and execution order of the fake call validated in the fake call included in the control program PG3 matches the content and execution order defined in the configuration file C1. judge. When the content and execution order of the activated fake call matches the content and execution order defined in the configuration file C1, the abnormality detection unit 24 executes the activated fake call in order. It is determined that the execution state of the control program PG3 is appropriate. When it is determined that the execution state of the control program is appropriate, the abnormality detection unit 24 determines that the control program PG3 has not been tampered with (step S111). In this case, the control of the control target device 5 by the application execution unit 30 is continued, and the abnormality detection unit 24 again determines whether or not the execution state of the control program PG3 is appropriate (step S109). Further, the abnormality detection unit 24 may add that the invalidated fake call is not executed in the fake call described in the control program PG3 to the determination condition in step S109.

一方、制御プログラムの実行状態が適切でないと判定した場合、異常検出部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 abnormality detection unit 24 determines that the control program PG3 has been tampered with (step S113). For example, if the fake call (R2) at address 6 is not executed after the fake call (R1) at address 3 is executed, the abnormality detection unit 24 executes the fake call (R1) at address 3 If the fake call (R2) at address 6 is executed, it is determined that the control program PG3 has been tampered with.

この場合、異常検出部24は、外部の監視端末に異常を通知する等のエラー処理を行い(ステップS115)、本フローチャートの処理を終了する。尚、この場合、異常検出部24は、アプリ実行プログラムPG3の実行を停止してもよい。   In this case, the abnormality detection unit 24 performs an error process such as notifying an external monitoring terminal of the abnormality (step S115), and ends the process of this flowchart. In this case, the abnormality detection unit 24 may stop the execution of the application execution program PG3.

また、異常検出部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 abnormality detecting unit 24 performs calls (call (A), call (B), call (C) for performing normal processing included in the control program PG3. ) May be monitored together. Further, the abnormality detection unit 24 may monitor the contents of parameters (for example, the contents of parameters delivered to the OS) used when a fake call included in the control program PG3 is processed.

以上説明した第1の実施形態の制御装置3によれば、少なくとも1つのダミー処理を含むプログラムを記憶した二次記憶装置14と、メモリ16と、二次記憶装置14からメモリ16にロードされたプログラムPG3に含まれるダミー処理のそれぞれを有効化または無効化する有効/無効処理部22と、プログラムPG3の実行状態を監視し、有効/無効処理部22によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムPG3の改ざんを検出する異常検出部24とを備えることで、セキュリティ攻撃に対する保護機能を高めることができる。   According to the control device 3 of the first embodiment described above, the secondary storage device 14 storing the program including at least one dummy process, the memory 16, and the secondary storage device 14 loaded into the memory 16. The valid / invalid processing unit 22 that validates or invalidates each dummy process included in the program PG3 and the execution state of the program PG3 are monitored, and the dummy process is validated or invalidated by the valid / invalid process unit 22. By determining whether or not the result matches, the abnormality detection unit 24 that detects falsification of the program PG3 can be provided, thereby enhancing the protection function against the security attack.

第1の実施形態の制御装置3では、制御プログラムPG3の実行開始前に、制御プログラムPG3に含まれるフェイクコールがランダムに有効化または無効化されるため、制御プログラムPG3に含まれる有効化されたフェイクコールの内容、数、および順序は制御プログラムPG3の実行毎に異なる。このため、例えば、攻撃者が攻撃対象の装置の制御処理に関する通常動作の内容(制御プログラムのコードの内容)を把握できたとしても、実行毎に異なるフェイクコールの内容を把握することは出来ない。また、フェイクコールの内容や実行順序を解析したとしても、次の回の実行場面ではフェイクコールの内容や実行順序が変化することになるため、攻撃を失敗することが期待できる。このように、第1の実施形態の制御装置3によれば、ランダムに有効化されたフェイクコールの実行状態を監視することで、プログラムの改ざんを検知することができる。尚、毎回(メモリ16への制御プログラムPG3のロードの度に)フェイクコールの有効化または無効化の設定をランダムに行うのではなく、複数回に1回の頻度で行ってもよいし、制御プログラムPG3のロードの度に行うよりも高頻度に行ってもよい。   In the control device 3 according to the first embodiment, the fake call included in the control program PG3 is randomly enabled or disabled before the execution of the control program PG3. The contents, number, and order of the fake call are different for each execution of the control program PG3. For this reason, for example, even if the attacker can grasp the contents of the normal operation related to the control processing of the attack target device (the contents of the code of the control program), the attacker cannot grasp the contents of the fake call that differs for each execution . Even if the contents and execution order of the fake call are analyzed, the contents and execution order of the fake call change in the next execution scene, so that the attack can be expected to fail. As described above, according to the control device 3 of the first embodiment, it is possible to detect falsification of the program by monitoring the execution state of the randomly activated fake call. It should be noted that each time (every time the control program PG3 is loaded into the memory 16), the setting for enabling or disabling the fake call is not performed at random, but may be performed at a frequency of once every multiple times. It may be performed more frequently than when the program PG3 is loaded.

(第2の実施形態)
以下、第2の実施形態について説明する。第2の実施形態に係る制御システム1は、制御プログラムPG3の実行が開始された後、任意のタイミングでフェイクコールの内容を動的に変更する点で、第1の実施形態と異なる。以下の説明において、上記の第1の実施形態と同様の部分には同じ参照番号を付与し、その説明を省略あるいは簡略化する。
(Second Embodiment)
Hereinafter, the second embodiment will be described. The control system 1 according to the second embodiment is different from the first embodiment in that the contents of the fake call are dynamically changed at an arbitrary timing after the execution of the control program PG3 is started. In the following description, the same reference numerals are assigned to the same parts as those in the first embodiment, and the description is omitted or simplified.

[制御装置の動作]
図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 control apparatus 3 of 2nd Embodiment is demonstrated. FIG. 7 is a flowchart illustrating an example of a processing flow of the control device 3 in the second embodiment. FIG. 8 is a diagram illustrating an example of a situation in which the fake call included in the control program is validated or invalidated in the second embodiment.

まず、二次記憶装置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 secondary storage device 14 are loaded into the memory 16 (step S201).

次に、有効/無効処理部22は、メモリ16内のアプリケーション領域A1にロードされた制御プログラムPG3の実行を開始する(ステップS203)。ここで、例えば、制御プログラムPG3に含まれるフェイクコールは、いずれも有効化されている。   Next, the valid / invalid processing unit 22 starts executing the control program PG3 loaded in the application area A1 in the memory 16 (step S203). Here, for example, all the fake calls included in the control program PG3 are validated.

次に、有効/無効処理部22は、制御プログラムPG3に含まれるフェイクコールの実行条件を変更するフェイクコール変更トリガが発生したか否かを判定する(ステップS205)。このフェイクコール変更トリガは、例えば、図示しない他のプロセスによってランダムに発生される割り込み信号に基づくものである。   Next, the valid / invalid processing unit 22 determines whether or not a fake call change trigger for changing a fake call execution condition included in the control program PG3 has occurred (step S205). The fake call change trigger is based on, for example, an interrupt signal that is randomly generated by another process (not shown).

フェイクコール変更トリガが発生したと判定した場合、有効/無効処理部22は、実行中の制御プログラムPG3に含まれるフェイクコールのそれぞれを有効化または無効化する(ステップS207)。   If it is determined that a fake call change trigger has occurred, the valid / invalid processing unit 22 validates or invalidates each fake call included in the control program PG3 being executed (step S207).

図8に示す例では、有効/無効処理部22は、OS領域A2にロードされた設定ファイルC1に基づいて、制御プログラムPG3内に記載された3つのフェイクコールの中で、アドレス7のフェイクコール(R3)を無効化する。例えば、有効/無効処理部22は、アドレス7のフェイクコール(R3)を、処理を実行しないコール(NOP命令)に書き換える処理を行う。有効/無効処理部22は、どのフェイクコールを有効化または無効化するかについてはランダムに決定してよい。   In the example shown in FIG. 8, the valid / invalid processing unit 22 performs the fake call at address 7 among the three fake calls described in the control program PG3 based on the setting file C1 loaded in the OS area A2. (R3) is invalidated. For example, the valid / invalid processing unit 22 performs a process of rewriting the fake call (R3) at address 7 into a call (NOP instruction) that does not execute the process. The valid / invalid processing unit 22 may randomly determine which fake call is to be validated or invalidated.

この際、有効/無効処理部22は、どのフェイクコールを無効化したかを示すフラグを、設定ファイルC1内に書き込む(図中、「Flag」欄にOFFを示す情報を書き込む)(ステップS209)。   At this time, the valid / invalid processing unit 22 writes a flag indicating which fake call is invalidated in the setting file C1 (writes information indicating OFF in the “Flag” column in the figure) (step S209). .

尚、有効/無効処理部22は、アドレス7のフェイクコール(R3)を、処理を実行しないコール(NOP命令)に書き換える処理に代えて、第1の実施形態のように、制御プログラムPG3内に有効化または無効化を示すフラグを設定してもよい。また、有効/無効処理部22は、どのフェイクコールが有効化または無効化されたかを示す情報を設定ファイルC1以外の設定ファイルに記憶させてもよい。   The valid / invalid processing unit 22 replaces the fake call (R3) at address 7 with a call (NOP instruction) that does not execute the process, as in the first embodiment, in the control program PG3. A flag indicating validation or invalidation may be set. In addition, the valid / invalid processing unit 22 may store information indicating which fake call is validated or invalidated in a setting file other than the setting file C1.

フェイクコール変更トリガが発生していないと判定した場合、有効/無効処理部22は、上記のフェイクコールの実行条件の変更処理(ステップS207)および設定ファイルC1の書き換え処理(ステップS209)を行わない。   When it is determined that the fake call change trigger has not occurred, the valid / invalid processing unit 22 does not perform the fake call execution condition change process (step S207) and the setting file C1 rewrite process (step S209). .

次に、異常検出部24は、制御プログラムPG3の実行状態が適切か否かを判定する(ステップ211)。例えば、異常検出部24は、制御プログラムPG3に記載されたフェイクコールの中で有効化されたフェイクコールの内容および実行順序が、設定ファイルC1に定義された内容および実行順序と一致するか否かを判定する。有効化されたフェイクコールの内容および実行順序が設定ファイルC1に定義された内容および実行順序と一致する場合、異常検出部24は、有効化されたフェイクコールが順序通りに実行されているため、制御プログラムPG3の実行状態が適切であると判定する。制御プログラムの実行状態が適切であると判定した場合、異常検出部24は、制御プログラムPG3に改ざんが無いと判定する(ステップS213)。この場合、アプリケーション実行部30による制御対象機器5の制御が継続されるとともに、異常検出部24は、フェイクコール変更トリガが発生したか否かを判定する処理(ステップS205)を再度実施する。   Next, the abnormality detection unit 24 determines whether or not the execution state of the control program PG3 is appropriate (step 211). For example, the abnormality detection unit 24 determines whether or not the content and execution order of the fake call validated in the fake call described in the control program PG3 matches the content and execution order defined in the configuration file C1. Determine. When the content and execution order of the activated fake call matches the content and execution order defined in the configuration file C1, the abnormality detection unit 24 executes the activated fake call in order. It is determined that the execution state of the control program PG3 is appropriate. When it is determined that the execution state of the control program is appropriate, the abnormality detection unit 24 determines that the control program PG3 has not been tampered with (step S213). In this case, control of the control target device 5 by the application execution unit 30 is continued, and the abnormality detection unit 24 performs again the process of determining whether or not a fake call change trigger has occurred (step S205).

一方、制御プログラムの実行状態が適切でないと判定した場合、異常検出部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 abnormality detection unit 24 determines that the control program PG3 has been tampered with (step S215). For example, if the fake call (R2) at address 6 is not executed after the fake call (R1) at address 3 is executed, the abnormality detection unit 24 executes the fake call (R1) at address 3 If the fake call (R2) at address 6 is executed, it is determined that the control program PG3 has been tampered with.

この場合、異常検出部24は、外部の監視端末に異常を通知する等のエラー処理を行い(ステップS217)、本フローチャートの処理を終了する。   In this case, the abnormality detection unit 24 performs an error process such as notifying an external monitoring terminal of the abnormality (step S217), and ends the process of this flowchart.

以上説明した第2の実施形態の制御装置3によれば、制御プログラムPG3の実行中に、制御プログラムPG3に含まれるフェイクコールがランダムに有効化または無効化されるため、制御プログラムPG3に含まれる有効化されたフェイクの内容、数、および順序を制御プログラムPG3の実行中に変化させることができる。このため、例えば、攻撃者が攻撃対象の装置の制御処理に関する動作の内容(フェイクコールの実行条件を含む制御プログラムPG3のコードの内容)を把握できたとしても、制御プログラムPG3の改ざんを検知することができる。   According to the control device 3 of the second embodiment described above, since the fake call included in the control program PG3 is randomly enabled or disabled during the execution of the control program PG3, it is included in the control program PG3. The contents, number, and order of the activated fake can be changed during the execution of the control program PG3. For this reason, for example, even if the attacker can grasp the content of the operation related to the control processing of the attack target device (the content of the code of the control program PG3 including the fake call execution condition), the tampering of the control program PG3 is detected. be able to.

以上説明した第2の実施形態の制御装置3では、制御プログラムPG3の実行中に、制御プログラムPG3に含まれるフェイクコールをランダムに有効化または無効化する例を説明した。しかしながら、制御プログラムPG3の実行中に加え、上記の第1の実施形態の制御装置3のように、制御プログラムPG3の実行開始前にフェイクコールを有効化または無効化する処理を行ってもよい。   In the control device 3 of the second embodiment described above, the example in which the fake call included in the control program PG3 is randomly enabled or disabled during the execution of the control program PG3 has been described. However, in addition to the execution of the control program PG3, a process for validating or invalidating the fake call may be performed before the execution of the control program PG3, as in the control device 3 of the first embodiment.

以上説明した少なくとも一つの実施形態によれば、少なくとも1つのダミー処理を含むプログラムを記憶した二次記憶装置14と、メモリ16と、二次記憶装置14からメモリ16にロードされたプログラムPG3に含まれるダミー処理のそれぞれを有効化または無効化する有効/無効処理部22と、プログラムPG3の実行状態を監視し、有効/無効処理部22によりダミー処理が有効化または無効化された結果と一致するか否かを判定することにより、プログラムPG3の改ざんを検出する異常検出部24とを備えることで、セキュリティ攻撃に対する制御装置の保護機能を高めることができる。   According to at least one embodiment described above, the secondary storage device 14 storing a program including at least one dummy process, the memory 16, and the program PG3 loaded from the secondary storage device 14 to the memory 16 are included. The execution / execution state of the program PG3 is monitored, and the execution / execution state of the program PG3 is monitored and coincides with the result of enabling / disabling the dummy processing by the enabling / disabling processing unit 22. By determining whether or not, it is possible to enhance the protection function of the control device against the security attack by including the abnormality detection unit 24 that detects falsification of the program PG3.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。   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 SYMBOLS 1 ... Control system, 3 ... Control apparatus, 5 ... Control object apparatus, 10 ... Processor, 12 ... Communication I / F, 14 ... Secondary storage device, 16 ... Memory, 18 ... ROM, 20 ... OS execution part, 22 ... Validity / invalidity processing unit, 24 ... anomaly detection unit, 30 ... application execution unit, A1 ... application area, A2 ... OS area, C1 ... setting file, PG1 ... validity / invalidity processing program, PG2 ... abnormality detection program, PG3 ... control program

Claims (4)

少なくとも1つのダミー処理を含むプログラムを記憶した記憶部と、
メモリと、
前記記憶部から前記メモリにロードされた前記プログラムに含まれる前記ダミー処理のそれぞれを、実行可能となるように有効化または実行不可能となるように無効化する有効/無効処理部と、
前記プログラムの実行状態を監視し、実行された前記ダミー処理の内容および実行順序が、前記プログラムに含まれる前記ダミー処理のうち有効化されたダミー処理の内容および実行順序と一致するか否かを判定することにより、前記プログラムの改ざんを検出する検出部と
を備え、
前記有効/無効処理部は、前記メモリにロードされた前記プログラムに含まれる前記ダミー処理を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.
JP2016009071A 2016-01-20 2016-01-20 Control device and program Active JP6594213B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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