JP2019008503A - Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus - Google Patents

Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus Download PDF

Info

Publication number
JP2019008503A
JP2019008503A JP2017122758A JP2017122758A JP2019008503A JP 2019008503 A JP2019008503 A JP 2019008503A JP 2017122758 A JP2017122758 A JP 2017122758A JP 2017122758 A JP2017122758 A JP 2017122758A JP 2019008503 A JP2019008503 A JP 2019008503A
Authority
JP
Japan
Prior art keywords
information processing
instruction code
unit
processing monitoring
monitoring apparatus
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.)
Pending
Application number
JP2017122758A
Other languages
Japanese (ja)
Inventor
杉中順子
Junko Suginaka
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP2017122758A priority Critical patent/JP2019008503A/en
Priority to PCT/JP2018/023433 priority patent/WO2018235858A1/en
Publication of JP2019008503A publication Critical patent/JP2019008503A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

To analyze attacks on CPUs by malicious programs at the preparation stage to prevent them from happening.SOLUTION: An information processing apparatus includes a first analysis unit 1302, a second analysis unit 1304, and a control unit 1305 which are set to a higher privilege level than an operating system. The first analysis unit 1302 and the second analysis unit 1304 analyze whether or not the process is preparation processing. The process includes at least one fetched instruction code other than a basic instruction code. The preparation processing changes the execution of the basic instruction code issued thereafter to an attack. When the first analysis unit 1302 and the second analysis unit 1304 analyze that the process is the preparation processing, the control unit 1305 invalidates the process.SELECTED DRAWING: Figure 3

Description

本発明は、コンピュータプログラムによって実行される情報処理動作を監視するセキュリティ技術に関する。   The present invention relates to a security technique for monitoring information processing operations executed by a computer program.

従来、悪意のあるアプリケーションプログラム(不正プログラム)のコンピュータデバイスへの侵入、攻撃によって、コンピュータの制御が奪われ、メモリに格納されているデータファイル等の改竄、消去等のデータ破壊、通信漏洩等が引き起こされてコンピュータのセキュリティが大きく損われている。そこで昨今、アプリケーションプログラムの振舞乃至は挙動を監視して、不正プログラムによる攻撃等を規制する各種の対応ソフトウェアが提案されている。   Conventionally, a malicious application program (unauthorized program) has been deprived of control of a computer due to an intrusion or attack on a computer device, and data destruction such as falsification or deletion of data files stored in memory, communication leakage, etc. This has caused a serious loss of computer security. Therefore, various types of compatible software have recently been proposed that monitor the behavior or behavior of application programs and regulate attacks by malicious programs.

特許文献1には、アプリケーションによるハードディスクHDD等の記憶装置へのアクセスがウイルス等の不正なアクセスか否かを判定する情報漏洩防止システムが記載されている。すなわち、この情報漏洩防止システムは、ハードディスクHDD等の記憶装置に記憶された情報へのアプリケーションによるアクセスを、オペレーティングシステム(OS)のフック機能を利用してフックし、予め設定されたアクセス許容条件表の内容と照合することでマッチング判定を行うものである。そして、マッチングしない場合にはウイルス等の不正なアクセスであるとして、記憶装置に記憶された情報のアプリケーションへの受け渡しを禁止するようにしている。   Patent Document 1 describes an information leakage prevention system that determines whether an access to a storage device such as a hard disk HDD by an application is an unauthorized access such as a virus. That is, this information leakage prevention system hooks access to information stored in a storage device such as a hard disk HDD by an application using a hook function of an operating system (OS), and sets a preset access permission condition table. Matching determination is performed by collating with the contents of. If there is no matching, it is determined that the access is illegal, such as a virus, and the delivery of information stored in the storage device to the application is prohibited.

特許文献2には、アプリケーションの挙動を監視して正常か否かを判定するセキュリティ技術が提案されている。すなわち、このセキュリティ技術は、オフラインマルウェア検出検査にリアルタイムマルウェア検出検査が追加的に提供され、この追加された検出検査がアプリケーションの実行中にその挙動を記録し、記録された挙動から挙動パターンを抽出し、抽出された挙動パターンを正常なアプリケーションの基本パターン又は以前に記録された前記アプリケーションのパターンと比較するものである。これにより、悪質なアプリケーションが実環境のモバイルデバイスにダウンロード、インストールされ、そして実際に実行されたとしても、モバイルデバイスは、このアプリケーションの悪質な挙動を自動的に検出することができる。   Patent Document 2 proposes a security technique that monitors the behavior of an application to determine whether it is normal. In other words, this security technology additionally provides real-time malware detection inspection to offline malware detection inspection, and this added detection inspection records its behavior while the application is running, and extracts the behavior pattern from the recorded behavior The extracted behavior pattern is compared with the basic pattern of a normal application or the pattern of the application recorded previously. This allows the mobile device to automatically detect the malicious behavior of this application even if the malicious application is downloaded, installed and actually executed on a real-world mobile device.

特許文献3には、バッファオーバーラン現象を利用したコンピュータウイルスや不正アクセスを抑制することのできるオペレーティングシステムが記載されている。このオペレーティングシステムは、コンピュータウイルスや不正アクセスを抑制するために、プログラムから要求されたAPI(Application Program Interface)を実行する前に、メモリ装置上におけるプログラムの格納アドレスを取得し、そのアドレスが適正な位置を示しているか否かを判定することにより、APIをコールしたプログラムが適正か不正かを判断するものである。   Patent Document 3 describes an operating system capable of suppressing computer viruses and unauthorized access using the buffer overrun phenomenon. In order to suppress computer viruses and unauthorized access, this operating system obtains a program storage address on the memory device before executing an API (Application Program Interface) requested by the program, and the address is appropriate. By determining whether or not the position is indicated, it is determined whether the program that called the API is appropriate or illegal.

特許文献4には、コンピュータシステムの脆弱性などのセキュリティーホールを攻撃して侵入する不正プログラムを、定義ファイルに依存することなくプロセスの振舞から検知可能にする情報処理装置が記載されている。この情報処理装置は、プロセスAの実行において発生した情報、例えばモジュールの種類、呼び出された関数の種類、引数の値、読み出し元アドレス、タイムスタンプなどを取得し、これら収集した情報から、不正な攻撃や侵入を示す挙動であるファイルアクセス、ネットワークアクセス、他プロセスの起動などの動作があったか否かを検知して、不正プログラムとみなすものである。さらに特許文献4には、不正ではないプロセスが、ユーザによる操作を検出できない期間中にファイルアクセス、ネットワークアクセス等の動作を行う場合に、不正プログラムとして検知されることから、この不正ではないプロセスを特定するホワイトリストに予め登録しておき、検知に際して、まず照合を行うことが記載されている。   Patent Document 4 describes an information processing apparatus that can detect an unauthorized program that attacks a security hole such as a vulnerability of a computer system from a process behavior without depending on a definition file. This information processing apparatus acquires information generated in the execution of the process A, for example, the type of module, the type of function called, the value of the argument, the read source address, the time stamp, etc. It detects whether or not there are operations such as file access, network access, and activation of other processes, which are behaviors indicating attacks and intrusions, and is regarded as a malicious program. Further, in Patent Document 4, since a non-invalid process is detected as an illegal program when performing an operation such as file access or network access during a period in which an operation by a user cannot be detected, It is described that the information is registered in advance in the specified white list, and the collation is first performed at the time of detection.

特開2007−140798号公報JP 2007-140798 A 特開2017−505944号公報JP 2017-505944 A 国際公開第2005/029328号公報International Publication No. 2005/029328 特開2015−082191号公報Japanese Patent Laying-Open No. 2015-082191

特許文献1は、アプリケーションによるハードディスクHDDに記憶された情報へのアクセスと予め設定されたアクセス許容条件表とのマッチングによるものであり、特許文献2は、検査対象のアプリケーションの実行中の挙動を記録し、記録された挙動から挙動パターンを抽出する一方、抽出された挙動パターンを正常なアプリケーションの基本パターン又は以前に記録された前記アプリケーションのパターンと比較するというものであり、いずれもホワイトリストとの照合といえるものである。   Patent Document 1 is based on matching between access to information stored in the hard disk HDD by an application and a preset access permission condition table, and Patent Document 2 records a behavior during execution of the application to be inspected. The behavior pattern is extracted from the recorded behavior, while the extracted behavior pattern is compared with the basic pattern of the normal application or the previously recorded pattern of the application. It can be said to be a collation.

特許文献3は、バッファサイズを超えるデータが送り込まれることでシステムが誤動作を起こす脆弱性を狙って不正アクセスを実行するバッファオーバーラン現象への対応に着目した発明であって、プログラムの格納アドレスが適正か不正かを判断させる判断プログラムをオペレーティングシステムに付加したものである。特許文献4は、プロセス毎にプロセスモニタが設定され、このプロセスモニタが、プロセスの実行によって発生した情報であるモジュールの種類、呼び出された関数の種類、引数の値、読み出し元アドレス、タイムスタンプ情報等を振舞として収集し、不正な攻撃や侵入があったか否かを判定するもので、事前に規制するものではない。また、判別困難な範囲については、ホワイトリストとの照合を行うものである。   Patent Document 3 is an invention that focuses on the response to a buffer overrun phenomenon in which unauthorized access is executed with the aim of a vulnerability in which the system malfunctions when data exceeding the buffer size is sent, and the storage address of the program is A judgment program for judging whether it is appropriate or illegal is added to the operating system. In Patent Document 4, a process monitor is set for each process, and this process monitor is a type of module, a type of a called function, a value of an argument, a read source address, and time stamp information. Etc. are collected as behavior, and it is determined whether there has been an unauthorized attack or intrusion, and is not regulated in advance. Also, the range that is difficult to distinguish is checked against the white list.

本発明は、上記に鑑みてなされたもので、悪意のプログラムによるCPUへの攻撃(プログラムの実行環境の変更)を準備段階で解析して未然に防止する情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置を提供することにある。   The present invention has been made in view of the above, and an information processing monitoring apparatus, an information processing monitoring method, and the like that analyze an attack on a CPU (change in the execution environment of a program) by a malicious program in advance and prevent it in advance. To provide a program, a recording medium, and an information processing apparatus.

本発明は、コンピュータ技術の発展の歴史と経緯に起因して現在のコンピュータに付与された基本的構造に鑑みてなされたものということができる。   It can be said that the present invention has been made in view of the basic structure given to current computers due to the history and history of the development of computer technology.

今日、パーソナルコンピュータは、ネットワーク及び種々の外部機器に接続されると共に64ビットの元で大量のデータ処理が可能とされ、その利便性と高性能さから重要インフラ等の基盤産業も含む殆どの産業分野に導入され、さらにIoT、AI及びビッグデータに対応する第4次産業革命用として、高い機密性の元での利活用が期待されている。   Today, a personal computer is connected to a network and various external devices and can process a large amount of data under 64 bits, and because of its convenience and high performance, most industries including basic industries such as important infrastructures. It is expected to be used under high confidentiality for the fourth industrial revolution that is introduced in the field and supports IoT, AI and big data.

パーソナルコンピュータは、1971年、4ビットマイクロプロセッサを搭載したアーキテクチャー(4ビットマイコン)として登場した。4ビットマイコンには、使用者の意図する処理を実現するプログラムが書き込まれ、その結果、使用者が直接マイコンを操作することでプログラムの実行を通してマイクロプロセッサに使用者の意図に沿った処理を実行させていた。すなわち当時はOSが未だ登場しておらず、マイコンは、マイコンを直接操作する者とマイクロプロセッサ(CPU)との一義的な関係を持つ設計思想に基づくものであった。次いで翌年、機能性の普及を目的としてOSを搭載した8ビットマイコンが登場した。OSとは、ユーザやアプリケーションとハードウェアとの中間に位置し、ユーザやアプリケーションに対して標準的なインターフェースを提供すると同時にハードウェアなどの各リソースに対して効率的な管理を行うもので、4ビット設計思想上、第三者としての立場にある。   The personal computer appeared in 1971 as an architecture (4-bit microcomputer) equipped with a 4-bit microprocessor. The 4-bit microcomputer is written with a program that realizes the process intended by the user. As a result, the user directly operates the microcomputer to execute the process according to the user's intention in the microprocessor through the execution of the program. I was letting. That is, at that time, no OS had yet appeared, and the microcomputer was based on a design concept that had a unique relationship between a person who directly operated the microcomputer and a microprocessor (CPU). Next year, an 8-bit microcomputer with an OS was introduced for the purpose of spreading functionality. The OS is located between the user and application and hardware, and provides a standard interface for the user and application and at the same time efficiently manages each resource such as hardware. In the bit design philosophy, he is in a position as a third party.

その後、特にインターネット等のネットワークや各種周辺機器の発展に伴い、これらとの接続を契機に量的、質的により高い情報処理の実現を図るべく、マイコンは、4ビット設計思想を維持した状態で、すなわち4ビット当時の実行命令処理を基本動作として保持したまま、CPUを16ビット、32ビット、64ビットアーキテクチャーとして進化させて、今日に至っている。かかる経緯を経て、今日の64ビットマイコンは、4ビット当時の設計思想を残しながら、一方でCPUの進化に応じて新たな機能を実現する目的で、基本動作以外の種々の拡張機能を実行可能にするルールの下での拡張命令が増設されている。拡張されたルールとは、16ビット、32ビット及び64ビットの進化に応じて増設された種々の機能を無条件乃至は低い条件でCPUに処理可能にする技術である。   Later, especially with the development of networks such as the Internet and various peripheral devices, the microcomputer maintains a 4-bit design philosophy in order to realize quantitative and qualitatively higher information processing triggered by the connection with these devices. In other words, the CPU has been evolved as a 16-bit, 32-bit, and 64-bit architecture while retaining execution instruction processing at the time of 4 bits as a basic operation. Through this process, today's 64-bit microcomputers can execute various extended functions other than basic operations for the purpose of realizing new functions according to the evolution of the CPU while retaining the design philosophy at the time of 4 bits. The extension instruction under the rule to make has been added. The extended rule is a technology that enables the CPU to process various functions added according to the evolution of 16 bits, 32 bits, and 64 bits under unconditional or low conditions.

かかる拡張機能を導入したことによって、より高度な情報処理が可能になった反面、使用者の操作に基づいて実行される本来の基本動作以外の、すなわち当該使用者が認識乃至意図しないような、第三者の悪意のプログラム(不当プログラム)が容易に侵入し、実行できる環境に移行してきている。   By introducing such an extended function, more advanced information processing has become possible, but other than the original basic operation executed based on the user's operation, that is, the user does not recognize or intend, Third-party malicious programs (unfair programs) have entered an environment where they can easily enter and execute.

かかる事情に鑑みて、本発明に係る情報処理監視装置は、基本命令コード以外の、フェッチされた少なくとも1つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステム(OS)よりも高い特権レベルに設定された解析手段と、前記解析手段によって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御手段とを備えたものである。   In view of such circumstances, the information processing monitoring apparatus according to the present invention provides a preparatory process for changing an execution of a basic instruction code issued after a process including at least one instruction code fetched other than the basic instruction code into an attack. And analyzing means set to a privilege level higher than that of the operating system (OS), and when the analyzing means analyzes that the process is the preparatory process, it controls the execution of the process. And a control means for setting the same privilege level as the high privilege level.

また、本発明は、前記情報処理監視装置を備えた情報処理装置である。   Moreover, this invention is an information processing apparatus provided with the said information processing monitoring apparatus.

また、本発明は、基本命令コード以外の、フェッチされた少なくとも1つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステムよりも高い特権レベルに設定された解析ステップと、前記解析ステップによって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御ステップとを備えた情報処理監視方法である。   In addition, the present invention provides an operating system for analyzing whether a process including at least one fetched instruction code other than the basic instruction code is a preparatory process for changing execution of the basic instruction code issued thereafter into an attack. An analysis step that is set to a higher privilege level, and if the analysis step is analyzed as the preparatory process, the same privilege level as the higher privilege level that controls the execution of the process is set. And an information processing monitoring method comprising the controlled steps.

また、本発明は、コンピュータを、前記情報処理監視装置として機能させるプログラムであり、さらに、そのプログラムを記録したコンピュータ読み取り可能な記録媒体である。   Further, the present invention is a program that causes a computer to function as the information processing monitoring apparatus, and is a computer-readable recording medium that records the program.

これらの発明によれば、オペレーティングシステムの起動時におけるリスク(感染、侵入等)が解消される。また、4ビット設計思想に基づく基本命令コード以外の、フェッチされた少なくとも1つの命令コードを含むプロセスが解析対象とされる。すなわち、基本的には、4ビット設計思想時代の命令以外の全ての命令コードが解析されることになる。そのため、攻撃のための準備処理に該当するか否かが解析可能となり、さらに攻撃の準備に該当すると解析された場合、準備段階で、当該プロセス乃至はこのプロセスを含むプログラムの実行が制御、例えば無効化される。従って、悪意のプログラムのCPUへの攻撃を準備段階で解析し、その攻撃が未然に防止される。なお、上記において、攻撃のための準備とは、すなわち、プログラムの実行環境を変えるための外部からのプログラムによる準備でもあり、この外部からのプログラムの実行は、攻撃の準備乃至は攻撃と等価と見なし得る。   According to these inventions, risks (infection, intrusion, etc.) at the time of starting the operating system are eliminated. Further, a process including at least one fetched instruction code other than the basic instruction code based on the 4-bit design concept is analyzed. In other words, basically all instruction codes other than those in the 4-bit design philosophy era are analyzed. Therefore, it is possible to analyze whether or not it corresponds to the preparation process for the attack, and when it is analyzed that it corresponds to the preparation for the attack, the execution of the process or the program including this process is controlled in the preparation stage, for example, It is invalidated. Therefore, an attack on the CPU of a malicious program is analyzed at the preparation stage, and the attack is prevented in advance. In the above, the preparation for an attack is also a preparation by an external program for changing the execution environment of the program, and the execution of the program from the outside is equivalent to an attack preparation or an attack. Can be considered.

また、前記解析手段は、フェッチされた命令コードが基本命令コードか否かを解析する第1解析手段と、前記第1解析手段で基本命令コードでないと解析された場合、前記プロセスが準備処理か否かを解析する第2解析手段とを備える。この構成によれば、基本命令コードであると解析された場合、例えばそのまま実行され、一方、基本命令コード以外の命令コードと解析された場合には、準備に該当するか否かの解析の対象となる。   In addition, the analysis means analyzes whether the fetched instruction code is a basic instruction code, and if the first analysis means analyzes that the fetched instruction code is not a basic instruction code, whether the process is a preparation process Second analysis means for analyzing whether or not. According to this configuration, when it is analyzed that it is a basic instruction code, for example, it is executed as it is. On the other hand, when it is analyzed with an instruction code other than the basic instruction code, it is analyzed whether it falls under preparation It becomes.

また、前記解析手段は、フェッチされた命令コードが基本命令コードと解析された場合、及び前記プロセスが前記準備処理でないと解析された場合、前記プロセスの命令コードを命令実行部に導くものである。この構成によれば、攻撃の準備処理に該当しないと解析された適正な命令コードは、命令実行部に導かれて、通常通り実行される。   The analyzing means guides the instruction code of the process to the instruction execution unit when the fetched instruction code is analyzed as a basic instruction code and when the process is analyzed as not being the preparation process. . According to this configuration, an appropriate instruction code analyzed as not corresponding to the attack preparation process is guided to the instruction execution unit and executed as usual.

また、本発明は、基本命令コード以外の命令コードがフェッチされる毎に、割込を発行する割込手段を備える。この構成によれば、攻撃の準備に該当する可能性が高い命令コードは割込によって解析対象とされる。   The present invention further includes an interrupt means for issuing an interrupt each time an instruction code other than the basic instruction code is fetched. According to this configuration, an instruction code that is highly likely to fall under preparation for an attack is analyzed by an interrupt.

また、前記解析手段は、拡張命令コードを含むプロセスに対して解析を行うことを特徴とする。この構成によれば、個々の拡張命令コードの他、拡張枚例コードを含む複数段の命令ステップからなるプロセスに関しても準備に該当するか否かの判断が行われる。   Further, the analyzing means analyzes the process including the extended instruction code. According to this configuration, it is determined whether or not the process includes a plurality of instruction steps including an extended example code in addition to the individual extended instruction codes.

また、前記解析手段は、シスコール命令を含むプロセスに対して解析を行うことを特徴とする。この構成によれば、拡張命令に対応して発行されるシスコール命令は全て解析対象とので、リソースへのアクセスは全て解析対象とされる。   Further, the analysis means performs analysis on a process including a syscall instruction. According to this configuration, all syscall instructions issued corresponding to the extended instructions are analyzed, and all accesses to resources are analyzed.

また、前記解析手段は、プロセス開始のシスコール命令からプロセス終了のシスコール命令までの命令コードを含むプロセスに対して解析を行うことを特徴とする。この構成によれば、準備処理期間との可能性のある、時間的に前後のシスコール命令の範囲で解析を行うため、準備段階での解析が可能となる。なお、準備処理期間は前後のシスコール命令の他、複数のシスコール命令による場合もある。   Further, the analyzing means analyzes a process including an instruction code from a process start syscall instruction to a process end syscall instruction. According to this configuration, since the analysis is performed in the range of the syscall instruction before and after the possibility of the preparation processing period, the analysis at the preparation stage is possible. The preparation processing period may be based on a plurality of syscall instructions in addition to the preceding and following syscall instructions.

また、前記解析手段は、msrレジスタを書き換る命令コードか否かの解析を行うことを特徴とする。この構成によれば、CPUの動作モードを切換えることで実行可能となる攻撃の準備に該当すると解析されて、直ちにプロセスは無効化される。   Further, the analysis means analyzes whether or not the instruction code rewrites the msr register. According to this configuration, the process is invalidated immediately after it is analyzed that it corresponds to the preparation for an attack that can be executed by switching the operation mode of the CPU.

また、本発明は、前記前記準備処理か否かを解析する規約情報を記憶した規約情報記憶部を備える。規約情報部を利用することで、攻撃の準備行為毎の解析処理方法に基づいて確実に解析することが可能となる。   In addition, the present invention includes a rule information storage unit that stores rule information for analyzing whether or not the preparation process is performed. By using the contract information section, it is possible to reliably analyze based on the analysis processing method for each attack preparation action.

また、前記規約情報は、カーネルAPIに対するものである。この構成によれば、リソースへアクセスするシスコール命令は、全てカーネルのAPIを利用してなされた、ものであり、係るAPIに対応する解析処理で全ての攻撃順位が解析される。   The contract information is for the kernel API. According to this configuration, all syscall instructions for accessing resources are made using the API of the kernel, and all attack orders are analyzed in the analysis processing corresponding to the API.

また、前記制御手段は、前記準備処理と解析された後に発行される命令コードの実行を停止することを特徴とする。この構成によれば、攻撃の実行前に、準備に該当すると解析された後の基本命令コード等の命令コードの実行は確実に無効化される。   Further, the control means stops execution of an instruction code issued after being analyzed with the preparation process. According to this configuration, the execution of an instruction code such as a basic instruction code after being analyzed as being ready is reliably invalidated before the attack is executed.

また、本発明は、前記解析手段及び前記制御手段を前記オペレーティングシステムよりも先に起動させるブート処理部を備える。この構成によれば、解析手段及び制御手段をOSよりも先に起動させることが可能となるため、OSよりも上位でOSプログラム、アプリケーションプログラムの各挙動を監視し得、OSへの不正プログラムの感染、侵入も検出し、阻止される。   The present invention further includes a boot processing unit that activates the analysis unit and the control unit prior to the operating system. According to this configuration, since the analysis unit and the control unit can be activated before the OS, each behavior of the OS program and the application program can be monitored at a higher level than the OS. Infections and intrusions are also detected and blocked.

本発明によれば、悪意のプログラムによるCPUへの攻撃(プログラムの環境を変える)を準備段階で解析して未然に防止する。   According to the present invention, an attack to the CPU (changing the program environment) by a malicious program is analyzed and prevented in advance.

本発明に係る情報処理装置の一実施形態を示す構成図である。It is a block diagram which shows one Embodiment of the information processing apparatus which concerns on this invention. 主メモリのリニアアドレス空間の概要を示すマップ図である。It is a map figure which shows the outline | summary of the linear address space of a main memory. CPU及び主メモリの物理メモリ空間の概要を示すマップ図である。It is a map figure which shows the outline | summary of the physical memory space of CPU and main memory. 起動処理の手順の一例を示すフローチャートである。It is a flowchart which shows an example of the procedure of a starting process. 命令フォーマットを示す図である。It is a figure which shows an instruction format. 監視モジュールによって実行される監視処理Iのフローチャートである。It is a flowchart of the monitoring process I performed by the monitoring module. 監視モジュールによって実行される監視処理IIのフローチャートである。It is a flowchart of the monitoring process II performed by the monitoring module. 監視モジュールによって実行される監視処理IIIのフローチャートである。It is a flowchart of the monitoring process III performed by the monitoring module. 監視モジュールによって実行される監視処理IVのフローチャートである。It is a flowchart of the monitoring process IV performed by the monitoring module.

図1は、本発明に係る情報処理装置の一実施形態を示す構成図である。本発明が適用される情報処理装置100としては、外部機器との通信の有無を問わず、各種のパーソナルコンピュータ、コンピュータを内蔵するサーバ装置、金融、ATM及びPOSシステム、また全てのインフラを稼働させる情報処理システムを含み、更に携行用であって情報通信、SNS及び電子マネー決済等が処理可能な情報処理端末等を含む。   FIG. 1 is a configuration diagram showing an embodiment of an information processing apparatus according to the present invention. The information processing apparatus 100 to which the present invention is applied operates various personal computers, server apparatuses incorporating a computer, financial, ATM and POS systems, and all infrastructure regardless of whether or not there is communication with an external device. It includes an information processing system, and further includes an information processing terminal that is portable and can process information communication, SNS, electronic money settlement, and the like.

情報処理装置100は、マイクロコンピュタで構成され、プロセッサとしてのCPU1を備える。CPU1は、バスBAを介して、補助記憶装置としてのハードディスクドライブ(HDD:Hard Disc Drive)2、BIOS格納用のフラッシュROM2A、主メモリとしてのRAM(Random Access Memory)3、入力部41及び出力部42と接続されている。また、CPU1は、NIC(Network Interface Card)43と接続されて、ローカルエリア及びインターネット等のネットワーク44を介して外部機器との間で各種情報の授受を可能にしている。   The information processing apparatus 100 includes a microcomputer and includes a CPU 1 as a processor. The CPU 1 includes a hard disk drive (HDD) 2 as an auxiliary storage device, a flash ROM 2A for BIOS storage, a RAM (Random Access Memory) 3 as a main memory, an input unit 41, and an output unit via a bus BA. 42 is connected. In addition, the CPU 1 is connected to a NIC (Network Interface Card) 43 and can exchange various information with external devices via a network 44 such as a local area and the Internet.

HDD2は、各種プログラム及び必要なデータ類を格納する。HDD2は、複数のパーティションに分割されており、通常、例えばwindows(登録商標)のようなOS(Operating System)のプログラム、及びOS下で動作する各種アプリケーションプログラム(APP)は、場所(パス)としてCドライブ領域に格納されている。また、通常、各種APPで利用(アクセス)可能なデータファイル等は、パスとしてDドライブ領域に格納されている。HDD2には、本発明に係る監視モジュール130(図3参照)であるプログラムデータも格納されている。監視モジュール130の詳細は後述する。   The HDD 2 stores various programs and necessary data. The HDD 2 is divided into a plurality of partitions. Usually, an OS (Operating System) program such as Windows (registered trademark) and various application programs (APP) operating under the OS are used as locations (paths). Stored in the C drive area. In general, data files that can be used (accessed) by various APPs are stored as paths in the D drive area. The HDD 2 also stores program data that is the monitoring module 130 (see FIG. 3) according to the present invention. Details of the monitoring module 130 will be described later.

RAM3は、情報処理装置100が起動する際に、フラッシュROM2A及びHDD2に格納されているBIOSやプログラム等がロードされると共に、処理途中の情報が一時的に格納される。情報処理装置100は、HDD2に格納されているプログラムファイル、データファイル等がRAM3にロードされ、CPU1によって実行されることで、例えば文書及び図形作成機能、ブラウザ機能等の種々の情報処理機能、さらに適用される分野に応じた各種の情報処理を実行する。   When the information processing apparatus 100 is activated, the RAM 3 is loaded with BIOS, programs, and the like stored in the flash ROM 2A and the HDD 2, and temporarily stores information being processed. In the information processing apparatus 100, program files, data files, and the like stored in the HDD 2 are loaded into the RAM 3 and executed by the CPU 1 to execute various information processing functions such as a document and graphic creation function, a browser function, and the like. Various information processing according to the field to which it is applied is executed.

入力部41は、テンキー等を備えたキーボードやマウス、又はタッチパネル等を含み、操作者からの所要の情報の入力や処理の指示を行うものである。出力部42は、処理結果等を画像で表示する表示部を想定している。なお、出力部42としては、プリンタやスピーカを含むことができる。   The input unit 41 includes a keyboard, a mouse, a touch panel, or the like provided with a numeric keypad, etc., and inputs required information and instructions for processing from an operator. The output unit 42 is assumed to be a display unit that displays processing results and the like as images. The output unit 42 can include a printer and a speaker.

図2は、RAM3のリニアアドレス空間31の概要を示すマップ図である。なお、リニアアドレス空間31にマッピングされた各データ(プログラムデータやファイルデータ等)は、機能を示すものであり、詳細には、図3に示す物理メモリ30内のページテーブル303に格納されており、かつリニアアドレスから物理アドレスに置換することでCPU1から読み取り可能にされている。   FIG. 2 is a map diagram showing an outline of the linear address space 31 of the RAM 3. Each data (program data, file data, etc.) mapped in the linear address space 31 indicates a function, and is stored in the page table 303 in the physical memory 30 shown in FIG. 3 in detail. In addition, the CPU 1 can read the data by replacing the linear address with the physical address.

図2に示すように、リニアアドレス空間31には、本実施形態では、特権レベル(リングR=0)のカーネルモード領域311と、特権レベル(リングR=3)のユーザモード領域312とが設定されている。カーネルモード領域311には、シスコール命令に対応するOS(カーネル)のAPI(Application Program Interface)3111、OS(カーネル)3112、システムテーブル3113、及びEプロセス等のプロセスリスト3114が展開されている。ユーザモード領域312には、各種のアプリケーションプログラム3121,…及び各種のシスコール(Syscall)3122が展開されている。   As shown in FIG. 2, in the present embodiment, a kernel mode area 311 having a privilege level (ring R = 0) and a user mode area 312 having a privilege level (ring R = 3) are set in the linear address space 31. Has been. In the kernel mode area 311, an OS (kernel) API (Application Program Interface) 3111, an OS (kernel) 3112 corresponding to the syscall instruction, a system table 3113, and a process list 3114 such as an E process are expanded. In the user mode area 312, various application programs 3121,... And various syscalls 3122 are developed.

ユーザモード領域312のシスコール3122は、APP3121,…がリソース(後述するレジスタ部123を代表するメモリ資源)に対してアクセスを要求する場合に用いる命令の群である。シスコール命令は、特権レベルをリングR=3からリングR=0に昇格させる拡張命令コードであり、これによって、シスコール命令の引数に対応したAPIが選択され、選択情報は例えば汎用レジスタraxに設定される。   A syscall 3122 in the user mode area 312 is a group of instructions used when the APP 3121,... Request access to a resource (a memory resource representing a register unit 123 described later). The syscall instruction is an extended instruction code for elevating the privilege level from ring R = 3 to ring R = 0, whereby the API corresponding to the argument of the syscall instruction is selected, and the selection information is set in the general-purpose register rax, for example. The

カーネルモード領域311のAPI3111は、シスコール3122から発行されるシスコール命令の引数に対応して設けられており、OS3112の管理に基づいて、リソースへのアクセス処理を実行する。システムテーブル3113は、リニアアドレス空間31内の各データ(プログラムデータやファイルデータ等)のアドレス等を格納したものである。例えば、システムテーブル3113にはGDT(Global Descriptor Table)が含まれる。システムテーブル3113内のGDTは、例えば8バイト単位で各データの格納箇所を管理するセグメントディスクリプタのリストである。各セグメントディスクリプタは、4つの属性、すなわちデータの「種別」(プログラムコード、データ、スタック)と、「ベースアドレス」と、「リミット」と、特権レベルを示す「DPL」を備えている。システムテーブル3113内のGDTと物理メモリ30内のページテーブル303とでリニアアドレスから物理アドレスへの変換を実現する。プロセスリスト3114は、OS3112が管理する、実行中のプログラムのプロセスの一覧を示すもので、例えばEプロセス(EPROCESS)を含む。   An API 3111 in the kernel mode area 311 is provided corresponding to an argument of a syscall instruction issued from the syscall 3122, and executes access processing to resources based on management of the OS 3112. The system table 3113 stores the address of each data (program data, file data, etc.) in the linear address space 31. For example, the system table 3113 includes a GDT (Global Descriptor Table). The GDT in the system table 3113 is a list of segment descriptors for managing the storage location of each data in units of 8 bytes, for example. Each segment descriptor has four attributes, ie, “type” (program code, data, stack) of data, “base address”, “limit”, and “DPL” indicating a privilege level. The GDT in the system table 3113 and the page table 303 in the physical memory 30 realize conversion from a linear address to a physical address. The process list 3114 shows a list of processes of the running program managed by the OS 3112, and includes, for example, an E process (EPROCESS).

図3は、CPU1及びRAM3の物理メモリ30内の各機能の説明、及びCPU1と物理メモリ30内の各機能との関係を説明するマップ図である。RAM3の一部に構成される物理メモリ30内には、BIOS301、ブートマネージャー302及びページテーブル303が展開されると共に監視モジュール130が展開される。BIOS301は、0〜1MBの領域に書き込まれる。ブートマネージャー302及びページテーブル303は、それ以上の領域に書き込まれる。BIOS301、ブートマネージャー302及びページテーブル303は、特権レベルであるリングR=0で書き込まれる。なお、ページテーブル303は、複数のページを有し、各ページは所定のデータ量、例えば4KB毎に分割されて構成されている。各ページデータには、物理アドレスとアクセス属性とが設定されている。また、各ページデータには、プログラムコード、データ、スタックのいずれかの種類が含まれる。アクセス属性は、特権レベルに相当するもので、「スーパーバイザー」と「ユーザ」とを有する。「スーパーバイザー」はカーネル空間での処理(カーネルモード)をいい、リングR=0〜リングR=2に該当し、「ユーザ」はリングR=3に該当する。   FIG. 3 is a map diagram for explaining the functions of the CPU 1 and the RAM 3 in the physical memory 30 and the relationship between the CPU 1 and the functions of the physical memory 30. In the physical memory 30 configured as a part of the RAM 3, the BIOS 301, the boot manager 302, and the page table 303 are expanded, and the monitoring module 130 is expanded. The BIOS 301 is written in an area of 0 to 1 MB. The boot manager 302 and the page table 303 are written in more areas. The BIOS 301, the boot manager 302, and the page table 303 are written with ring R = 0, which is a privilege level. Note that the page table 303 has a plurality of pages, and each page is divided into a predetermined amount of data, for example, 4 KB. Each page data is set with a physical address and an access attribute. Each page data includes any one of program code, data, and stack. The access attribute corresponds to a privilege level, and has “supervisor” and “user”. “Supervisor” refers to processing in the kernel space (kernel mode), and corresponds to ring R = 0 to ring R = 2, and “user” corresponds to ring R = 3.

監視モジュール130は、BIOS301の起動に続いて、すなわちOSより先に起動されることで、OSを管理可能に、すなわちOSよりも高い特権レベルを設定可能にされている。例えば、監視モジュール130を、ゲストOSである仮想マシンVMとホストOSである仮想マシンモニタVMMとを備えた仮想化支援技術VT−xに適用する態様では、監視モジュール130は仮想マシンモニタVMMに読み込まれてよい。そして、監視モジュール130によって、ゲストOSに対して、Entry/Exit処理を制御することで、実質的にOSより高い特権レベル(R=−1)が確保できる。 また、OSを特権レベルR=1又は2に書き換え、監視モジュール130を特権レベルR=0とすることでも、OSより高い特権レベルを確保することが可能となる。   The monitoring module 130 can be managed following the activation of the BIOS 301, that is, before the OS, so that the OS can be managed, that is, a privilege level higher than that of the OS can be set. For example, in a mode in which the monitoring module 130 is applied to the virtualization support technology VT-x including the virtual machine VM that is the guest OS and the virtual machine monitor VMM that is the host OS, the monitoring module 130 is read into the virtual machine monitor VMM. It may be. Then, by controlling the Entry / Exit process for the guest OS by the monitoring module 130, a privilege level (R = −1) substantially higher than that of the OS can be secured. Further, by rewriting the OS to the privilege level R = 1 or 2 and setting the monitoring module 130 to the privilege level R = 0, a privilege level higher than that of the OS can be secured.

CPU1は、メモリコントローラ(MMU)11、制御ユニット12及び演算ユニット13を備えている。メモリコントローラ11は、物理メモリ30内のページテーブル303と制御ユニット12との間に接続され、フェッチされたリニアアドレスへのアクセスに対してページテーブル303を参照して物理アドレスに変換してアクセスし、アクセス内容を制御ユニット12に導くものである。   The CPU 1 includes a memory controller (MMU) 11, a control unit 12, and an arithmetic unit 13. The memory controller 11 is connected between the page table 303 in the physical memory 30 and the control unit 12, and accesses the fetched linear address by referring to the page table 303 and converting it into a physical address. The access contents are guided to the control unit 12.

監視モジュール130は、本実施形態では、メモリ管理部1301、第1解析部1302、ハードウェア割込処理部1303、第2解析部1304、制御部1305、及び規約情報部1306を備えると共に、OSを所定の監視下で起動させるためのブートプログラム(ブート処理部)を有する。これらの詳細は後述する。また、演算ユニット13内には、監視モジュール130でフェッチされ、出力された命令コードを実行する命令実行部131を有する。   In this embodiment, the monitoring module 130 includes a memory management unit 1301, a first analysis unit 1302, a hardware interrupt processing unit 1303, a second analysis unit 1304, a control unit 1305, and a contract information unit 1306, and an OS. A boot program (boot processing unit) for starting up under predetermined monitoring is provided. Details of these will be described later. The arithmetic unit 13 includes an instruction execution unit 131 that executes an instruction code fetched and output by the monitoring module 130.

監視モジュール130を物理メモリ30に配置することで、OSに対しハードウェアの一部(MMIO(Memory-mappedI/O)空間)に見せかけることができる。このことにより、OSから監視モジュール130を隔離でき、かつ悪意のプログラムからも保護される。メモリ管理部1301は、第1解析部1302、ハードウェア割込処理部1303、第2解析部1304、制御部1305、規約情報部1306を物理メモリ130に配置し、実行可能環境を生成するとともに、OS側のプログラムによる物理メモリ130へのアクセスを監視する。これによりMMIO空間を使用したハードウェアへのアクセスやリニアアドレス空間を構成するページテーブル303へのアクセスも監視する。   By disposing the monitoring module 130 in the physical memory 30, it is possible to make it appear to the OS as a part of hardware (MMIO (Memory-mapped I / O) space). As a result, the monitoring module 130 can be isolated from the OS and protected from malicious programs. The memory management unit 1301 arranges the first analysis unit 1302, the hardware interrupt processing unit 1303, the second analysis unit 1304, the control unit 1305, and the rule information unit 1306 in the physical memory 130, generates an executable environment, The access to the physical memory 130 by the OS side program is monitored. Thereby, access to the hardware using the MMIO space and access to the page table 303 constituting the linear address space are also monitored.

制御ユニット12内には、本実施形態ではメモリ管理部1301を介してメモリコントローラ11に接続されたフェッチ部121、フェッチされた命令フォーマットを機械語に変換して解析するデコード部122、レジスタ部123を備えている。図3には一例としての命令フォーマット128を示している。命令フォーマット128の詳細は、図5で説明する。命令コード129がアセンブラ言語で例示されている。この例示された命令コードは、
mov rax, 10
であり、「汎用レジスタraxに、数値10をコピーする」との意味である。
In the control unit 12, in this embodiment, a fetch unit 121 connected to the memory controller 11 via the memory management unit 1301, a decode unit 122 that converts the fetched instruction format into a machine language and analyzes it, and a register unit 123. It has. FIG. 3 shows an instruction format 128 as an example. Details of the instruction format 128 will be described with reference to FIG. The instruction code 129 is exemplified in assembler language. This illustrated instruction code is
mov rax, 10
It means “copy numeric value 10 to general-purpose register rax”.

レジスタ部123は、各種のレジスタを備えるもので、汎用レジスタ124、制御レジスタ125、命令実行レジスタ126及びシステムレジスタ127を少なくとも備えている。汎用レジスタ124は、rax,rbx,rcx,rdx,…を有し、処理予定のデータ、パラメータを一時的に書き込む。なお、汎用レジスタ124の表記は、64ビットの場合にはrax、32ビットの場合にはeax、16ビットの場合にはax、8ビットの場合には、a又はhalと区別して使用する。制御レジスタ125は、レジスタcr0,cr1,cr2,…を有し、CPU1の動作モードを制御する。制御レジスタ125は、物理メモリ30から読み出された命令プログラムを受け取り、実行し、一次記憶し、また再配置するなどの制御用に用いられる。命令実行レジスタ126は、フェッチする命令コードを指定するレジスタRIP(Instraction Pointer)、命令の発行順番を指示するプログラムカウンタを備える。システムレジスタ127は、システムテーブル3113の内に現に使用されるデータが書き込まれると共に、動作モードを制御する各種のmsrレジスタ(ModelSpecific Register )を有する。なお、msrレジスタは、CPU1の内部制御用で、専用のrdmsr、wrmsr命令を使用して読み書きを行わせる。msrレジスタの中には、CPU1の動作としての、例えば拡張機能の有効無効をフラグで識別させて、プロテクトモードでは特権レベルR=0で読み書き可能にし、違反した場合にはフックさせるようにしている。   The register unit 123 includes various registers, and includes at least a general-purpose register 124, a control register 125, an instruction execution register 126, and a system register 127. The general-purpose register 124 has rax, rbx, rcx, rdx,... And temporarily writes data and parameters to be processed. The notation of the general register 124 is distinguished from rax for 64 bits, eax for 32 bits, ax for 16 bits, and a or hal for 8 bits. The control register 125 includes registers cr0, cr1, cr2,... And controls the operation mode of the CPU1. The control register 125 is used for control such as receiving an instruction program read from the physical memory 30, executing it, temporarily storing it, and rearranging it. The instruction execution register 126 includes a register RIP (Instraction Pointer) that designates an instruction code to be fetched, and a program counter that instructs an instruction issue order. The system register 127 has various msr registers (Model Specific Registers) in which data currently used is written in the system table 3113 and controls the operation mode. Note that the msr register is used for internal control of the CPU 1 and uses a dedicated rdmsr and wrmsr instruction to read and write. In the msr register, for example, validity / invalidity of the extended function as an operation of the CPU 1 is identified by a flag so that read / write is possible at the privilege level R = 0 in the protect mode, and when it violates, it is hooked. .

ここで、図4のフローチャートを用いて、起動処理の手順の一例を説明する。まず、情報処理装置100の電源が投入されると、BIOSプログラムがフラッシュROM2AからRAM3の所定領域に読み出されて(ロードされて)起動される(ステップS1)。次いで、BIOSによってHDD2の先頭セクタからMBR(Master Boot Record)がRAM3にロードされ、起動される(ステップS3)。   Here, an example of the procedure of the activation process will be described using the flowchart of FIG. First, when the information processing apparatus 100 is powered on, the BIOS program is read (loaded) from the flash ROM 2A to a predetermined area of the RAM 3 and started (step S1). Next, MBR (Master Boot Record) is loaded into the RAM 3 from the head sector of the HDD 2 by the BIOS and activated (step S3).

次いで、MBRによってHDD2のアクティブなパーティションテーブルに予め格納されている専用ローダがRAM3にロードされ、この専用ローダによって物理メモリ30の所定の一部領域に特権レベル(リングR=−1か0)が実質的に設定されて、この領域内に、HDD2のファイルスシステム外から読み出された監視モジュール130のプログラムがロードされる(ステップS5)。なお、上記において、実質的にリングR=−1か0との意味は、VT−x仮想化支援技術を適用した態様と通常のコンピュータの場合とを含み、いずれにしてもOS3112よりも高い特権レベルが設定されることを意味する。監視モジュール130のロード処理が終了すると、CPU1の制御が監視モジュール130に渡され、監視モジュール130のブート処理部によってブートマネージャー302が起動される(ステップS7)。ここで、カーネルモード領域311に特権レベルとしてリングR=0(又は1か2)の設定が行われ、この状態で、監視モジュール130のブート処理部によって作成されたPBR(Partition Boot Record)及びIPL(Initial Program Loader)で、ページテーブル303、GDT等を含むシステムテーブル3113、更にOS3112(ドライバ含む)がカーネルモード領域311にロードされ、起動される(ステップS9)。この結果、監視モジュール130は、コンピュータ内の全てを見ることが可能となる。   Next, a dedicated loader stored in advance in the active partition table of the HDD 2 is loaded into the RAM 3 by the MBR, and a privilege level (ring R = −1 or 0) is given to a predetermined partial area of the physical memory 30 by the dedicated loader. Substantially set, the program of the monitoring module 130 read from outside the file system of the HDD 2 is loaded in this area (step S5). In the above description, the meaning of the ring R = −1 or 0 substantially includes a mode in which the VT-x virtualization support technology is applied and a case of a normal computer, and in any case, a privilege higher than that of the OS 3112. It means that the level is set. When the loading process of the monitoring module 130 is completed, the control of the CPU 1 is transferred to the monitoring module 130, and the boot manager 302 is activated by the boot processing unit of the monitoring module 130 (step S7). Here, ring R = 0 (or 1 or 2) is set as a privilege level in the kernel mode area 311. In this state, the PBR (Partition Boot Record) and IPL created by the boot processing unit of the monitoring module 130 are set. In (Initial Program Loader), the page table 303, the system table 3113 including GDT, and the OS 3112 (including the driver) are loaded into the kernel mode area 311 and activated (step S9). As a result, the monitoring module 130 can see everything in the computer.

次いで、OS3112のブートが終了すると(ステップS11でYes)、例えば最初のページフォルト(#PF)が発行されると、公知のように、OS3112内のAPローダによって、APP3121,…がユーザモード領域312にリングR=3の特権レベルでロードされる(ステップS13)。この起動処理によって、図2、図3に示すマップが完成する。   Next, when the booting of the OS 3112 is completed (Yes in step S11), for example, when the first page fault (#PF) is issued, the APP 3121,... Is loaded with the privilege level of ring R = 3 (step S13). The map shown in FIGS. 2 and 3 is completed by this activation process.

なお、起動時には、監視モジュール130は、CPU1の動作モードとして、リアルモード、プロテクトモード、IA32eモード(64ビットモード)及び16ビットでのSMM(SystemManagement mode)モードの各設定、ページテーブル303を有効化、シスコールの有効化の各処理を行う。また、監視モジュール130は、レジスタ部123の初期化、環境設定値の初期設定を行う。   At the time of start-up, the monitoring module 130 validates each setting of the real mode, the protect mode, the IA32e mode (64-bit mode), and the 16-bit SMM (System Management mode) mode, and the page table 303 as the operation mode of the CPU 1. Execute each process of enabling Syscall. The monitoring module 130 also initializes the register unit 123 and initializes environment setting values.

図3に戻って、監視モジュール130の機能について説明する。監視モジュール130のメモリ管理部1301は、メモリコントローラ11とCPU1との間のデータの流れを監視するもので、例えば、この結果、監視モジュール130は、リニアアドレスと物理アドレスの両方を管理してリニアアドレスの改変や物理アドレスの改変への対処、OS(カーネル)以外のプログラムに対してレジスタ部123内の環境設定値の変更アクセスを規制する監視を行う。   Returning to FIG. 3, the function of the monitoring module 130 will be described. The memory management unit 1301 of the monitoring module 130 monitors the flow of data between the memory controller 11 and the CPU 1. For example, as a result, the monitoring module 130 manages both the linear address and the physical address and performs linear operation. Addressing the modification of the address and the modification of the physical address, and monitoring for restricting access to changing the environment setting value in the register unit 123 for programs other than the OS (kernel).

監視モジュール130の解析部は、本実施形態では、機能的に、第1解析部1302と第2解析部1304とを備える。第1解析部1302は、デコードされた命令コードが4ビットで定義された基本命令コードか、それ以外の命令コードかを解析する。   In the present embodiment, the analysis unit of the monitoring module 130 functionally includes a first analysis unit 1302 and a second analysis unit 1304. The first analysis unit 1302 analyzes whether the decoded instruction code is a basic instruction code defined by 4 bits or any other instruction code.

図5は、所定の様式を有する命令フォーマットを示している。命令フォーマットは、公知のように、命令を記述する部分と、データやパラメータ部分とから構成されている。命令フォーマットは、先頭側から、1バイトのプリフィックスと、1又は2バイトのオペコード(命令部)と、1バイトのModR/Mと、SIB(Scale Index Base)と、ディスプレイスメントと、即値とから構成されている。オペコード部は可変長で、基本命令は4ビットで記述され、拡張命令は2バイトで記述されている。   FIG. 5 shows an instruction format having a predetermined format. As is well known, the instruction format is composed of a part describing an instruction and data and parameter parts. The instruction format consists of 1 byte prefix, 1 or 2 byte opcode (instruction part), 1 byte ModR / M, SIB (Scale Index Base), displacement, and immediate value from the beginning. Has been. The opcode part has a variable length, the basic instruction is described in 4 bits, and the extension instruction is described in 2 bytes.

4ビットの基本命令とは、4ビット設計思想を維持した状態で、すなわち4ビット当時の実行命令処理を基本動作とするもので、mov(転送、コピー)、jmp(分岐)、更に、計算、論理、比較、In/Out等を行わせる命令をいう。基本命令は、1バイトで構成され、上位4ビットが“1”のときの下位4ビットで16通りの命令(基本命令という)が定義されている。   The 4-bit basic instruction maintains the 4-bit design philosophy, that is, the basic instruction is execution instruction processing at the time of 4-bit, and mov (transfer, copy), jmp (branch), calculation, An instruction that performs logic, comparison, In / Out, or the like. The basic instruction is composed of 1 byte, and 16 types of instructions (referred to as basic instructions) are defined by the lower 4 bits when the upper 4 bits are “1”.

一方、拡張命令は、各種の周辺機器の登場、ネットワークとの接続等によって、情報処理装置100の入力部41を介しての操作指示以外に、各種の動作の制御命令、またマルチタスク処理のためのマシンスイッチとしてのレジスタへの制御命令であって、制御用のmov、jmpその他の多数の制御命令が準備されている。拡張命令は、2バイトで構成され、先頭の1バイト目が“0F”のとき、2バイト目に拡張命令が定義される。拡張命令としては、システムコール用に用意された各種のシスコール(syscall)命令、シスエンタ(sysenter)命令、また拡張命令機能の有効/無効を規定するwrmsr命令等がある。また、拡張機能は、プリフィックス、2バイトのオペコード及びModR/Mの部分の組み合わせによって各種の制御命令、マルチタスク命令の設定を可能にしている。   On the other hand, extended commands are used for control commands for various operations and multitask processing in addition to operation instructions via the input unit 41 of the information processing apparatus 100 due to the appearance of various peripheral devices, connection to a network, and the like. A control command to a register as a machine switch of mov, jmp for control, and many other control commands are prepared. The extension instruction is composed of 2 bytes, and when the first byte is “0F”, the extension instruction is defined at the second byte. Examples of the extended instructions include various syscall instructions, sysenter instructions prepared for system calls, and a wrmsr instruction that defines the validity / invalidity of the extended instruction function. The extended function enables various control instructions and multitask instructions to be set by combining a prefix, a 2-byte opcode, and a ModR / M part.

図3において、第1解析部1302は、解析の結果が基本命令コードであれば、命令コードを命令実行部131に導き、それ以外の命令コードの場合、ハードウェア割込処理部1303に導く。   In FIG. 3, the first analysis unit 1302 guides the instruction code to the instruction execution unit 131 if the analysis result is a basic instruction code, and guides the instruction code to the hardware interrupt processing unit 1303 in the case of other instruction codes.

ハードウェア割込処理部1303は、第1解析部1302による解析の結果が基本命令コードでなければ(それ以外の命令コードであれば)、フック操作、すなわち割込処理を実行し、割込内容は、第2解析部1304に導かれる。なお、割込処理は、第2解析部1304の解析の終了によって復帰することができる。   If the result of analysis by the first analysis unit 1302 is not a basic instruction code (if it is any other instruction code), the hardware interrupt processing unit 1303 executes a hook operation, that is, an interrupt process, Is guided to the second analysis unit 1304. Note that the interrupt process can be restored upon completion of the analysis by the second analysis unit 1304.

第2解析部1304は、基本命令以外の命令、乃至は基本命令と基本命令以外の命令との組(プロセス)を規約情報部1306の規約に基づいて解析して、攻撃の準備に該当するか否かを決定する。第2解析部1304は、解析の対象がプロセスの場合、全ての命令コードのデコードの毎に、プロセスが準備に該当するか否かを逐次解析していくようにして、準備の段階で解析結果を得るようにしているため、攻撃そのものが未然に防止できる。第2解析部1304(又は後述する制御部1305の一方)は、ある時点でのステップに対する解析の結果が未だ攻撃の準備に該当していないと決定した段階では、解析した命令コードの命令実行部131での実行を許可する。これによって、最終的に攻撃の準備ではなかった(複数ステップの命令列からなる)プロセスをより自然に継続実行させることができる。   Does the second analysis unit 1304 analyze an instruction other than the basic instruction or a set (process) of the basic instruction and an instruction other than the basic instruction based on the rule of the rule information unit 1306 and corresponds to the preparation for the attack? Decide whether or not. When the analysis target is a process, the second analysis unit 1304 sequentially analyzes whether or not the process falls under preparation every time the instruction code is decoded. The attack itself can be prevented in advance. When the second analysis unit 1304 (or one of the control units 1305 to be described later) determines that the analysis result for the step at a certain time point does not yet correspond to the preparation for the attack, the instruction execution unit of the analyzed instruction code Execution at 131 is permitted. As a result, a process (consisting of a sequence of instructions of a plurality of steps) that was not finally prepared for an attack can be continuously executed more naturally.

制御部1305は、第2解析部1304による解析の結果が、直ちに乃至は最終的に攻撃の準備と決定された段階で、プログラムの実行に対して一定の制御を行う制御信号を出力する。この制御信号は、実行中のプログラムを無効化、すなわちプログラムの実行停止、それまでの実行結果の削除、リセット等の処理を行うものでもよい。なお、命令コード(データ、パラメータ含む)の監視は、デコード部122の内容を参照する態様でもよいが、例えばプロセスリスト3114内のEプロセスの一部を利用して命令コードのロガーとして機能させることで、監視するようにしてもよい。   The control unit 1305 outputs a control signal for performing constant control on the execution of the program when the result of analysis by the second analysis unit 1304 is determined immediately or finally as preparation for an attack. This control signal may be a signal that invalidates the program being executed, that is, performs processing such as stopping execution of the program, deleting execution results up to that point, and resetting. The instruction code (including data and parameters) may be monitored by referring to the contents of the decoding unit 122. For example, a part of the E process in the process list 3114 may be used to function as an instruction code logger. Thus, monitoring may be performed.

情報処理装置100に対する攻撃とは、情報処理装置100の入力部41からの操作に則して発行される、4ビット設計思想に基づく基本命令コードを、操作者が意図した処理とは異なる内容で実行させることをいい、実際の被害の有無、被害の形態を問わない。そして、攻撃の準備とは、操作者が意図した処理とは異なる内容での処理となるように導くためのプロセスをいう。なお、プロセスとは、少なくとも基本命令以外の1ステップの命令コード、またはこの1ステップを含む複数ステップからなるものを含む。   An attack on the information processing apparatus 100 means that a basic instruction code based on a 4-bit design philosophy issued in accordance with an operation from the input unit 41 of the information processing apparatus 100 is different from the process intended by the operator. It means that it is executed, regardless of whether there is actual damage or the form of damage. The preparation for the attack refers to a process for guiding the processing so that the processing is different from the processing intended by the operator. The process includes at least one-step instruction code other than the basic instruction or a plurality of steps including the one step.

また、攻撃のための準備のタイミングとしては種々の態様が想定される。例えば、あるプログラムの実行中に、このプログラムに侵入して基本命令を奪う態様がある。また、マルチタスクによって複数のプログラム(例えばプログラムA,B)の実行中に、いずれか一方であるプログラムBに侵入して(第1ステップとしての攻撃)、次いで、他方のプログラムAに介入して、基本命令を奪う(第2ステップとしての攻撃)態様がある。また、プログラム実行中でない期間において、情報処理装置100(コンピュータ)に侵入して準備を施して、後のプログラムの実行において発行される基本命令コードを奪う態様がある。さらに、In/Out命令を利用したSMI命令によってCPUの動作モードであるSMMに遷移し、OSの管理外で動作して攻撃を行う態様がある。本監視モジュール130は、これら全てについて攻撃に対する準備か否かを解析し、攻撃を未然に防ぐようにしている。   Moreover, various aspects are assumed as the timing of preparation for an attack. For example, during execution of a certain program, there is an aspect in which the basic instruction is taken by entering this program. Also, during execution of a plurality of programs (for example, programs A and B) by multitasking, one of the programs B is intruded (attack as the first step), and then the other program A is intervened. There is a mode of taking the basic command (attack as the second step). Further, there is a mode in which, during a period when the program is not being executed, the information processing apparatus 100 (computer) is intruded and prepared, and a basic instruction code issued in the subsequent execution of the program is taken away. Further, there is a mode in which an SMI instruction using an In / Out instruction makes a transition to SMM, which is an operation mode of the CPU, and performs an attack by operating outside the management of the OS. The monitoring module 130 analyzes whether or not all of these are prepared for an attack and prevents the attack in advance.

悪意のプログラムが基本命令コードを使用して攻撃を行おうとする場合、なりすまし、コピー、書き換えという、操作者の意図によらずにプログラム自身が動こうとする準備行為を要する。規約情報部1306は、かかる観点から、全ての命令コードに対して攻撃の準備に該当するかどうかを解析する際に利用する情報を記憶している。解析対象としての全ての命令コードとは、例えば既設のカーネルAPIというプロセスの命令コードをいう。例えば、命令コードのオペランドであるデータ及びパラメータの各項目の内容(場所(パス、Token・権限、時間、タイミング等)、発行元(データファイル名、実行ファイル名等)、権限の昇格降格、手続手順ルール、基本命令以外の命令コードを少なくとも含む。なお、場所(パス)としては、例えば、C:¥ ProgramFiles 配下のファイルでないかどうか、また、基本命令以外の命令コードとしては、例えば、現状では未使用乃至は非公開のカーネルモードのAPIかどうかなどである。また、トークンには、それぞれ権限の異なるユーザプロセス、システムプロセス、サービスプロセス及びアドミニストレータプロセスの各権限値を含んでよい。また、時間には、処理等に関わる時間情報を含み、また、タイミングには、処理等のスタートのタイミング情報を含む。なお、命令コードのデータ等の一部が実行ファイルに置き換えられているような場合、ソフトウェア割込、レジスタ部123の環境設定値の書き替え命令等も不当性ありの規約として設定されている。さらに、手続手順ルールには、複数のステップからなるプロセスが、4ビット設計思想に基づく基本命令コードの実行のための準備処理としてあり得ない、乃至は不必要な挙動を含む。   When a malicious program attempts to attack using a basic instruction code, a preparatory action that the program itself tries to run without the intention of the operator, such as impersonation, copying, and rewriting, is required. From this point of view, the contract information unit 1306 stores information used when analyzing whether or not all instruction codes fall under preparation for an attack. All instruction codes to be analyzed are, for example, instruction codes of a process called an existing kernel API. For example, the contents of each item of data and parameters that are operands of instruction codes (location (path, token / authority, time, timing, etc.), issuer (data file name, execution file name, etc.), promotion of authority demotion, procedure It contains at least instruction codes other than procedure rules and basic instructions, where the location (path) is, for example, whether it is a file under C: \ ProgramFiles, and the instruction codes other than basic instructions are, for example, currently Whether the API is unused or non-public kernel mode, etc. The token may include authority values of user processes, system processes, service processes, and administrator processes having different authorities. Includes time information related to processing, etc. Includes timing information on the start of processing, etc. When a part of the instruction code data or the like is replaced with an execution file, a software interrupt, an instruction to rewrite the environment setting value of the register unit 123, etc. In addition, in the procedural procedure rule, a process consisting of a plurality of steps cannot be prepared as a preparation process for executing a basic instruction code based on the 4-bit design concept. Contains unnecessary behavior.

以上によれば、規約情報部1306の規約は、OSが構築する保護されたプログラム実行環境(プログラムの環境)を維持する(変えない)ためのものである。例えば、起動された複数のプログラムには、プログラム間において干渉できない環境が提供される。具体的には、CPU1が提供するページテーブル303をプログラム毎に別々に作成することで、リニアアドレス空間を隔離し、他のプログラムへアクセスできなくしている。しかし、特定のカーネルAPI(syscall)を使用することで、この環境を変える(崩す)ことができる。また、プログラムによって新たに必要とされるメモリ領域は通常データ領域として使用されるため、カーネルが確保するメモリ領域は、CPU命令が実行できないリニアアドレス空間となる。しかし、これもカーネルAPI(syscall)の使用方法によって確保したメモリ領域を実行可能領域に変更することが可能であるため、これもまた、規約に違反する実行環境の変更となる。   As described above, the rules of the rule information unit 1306 are for maintaining (not changing) the protected program execution environment (program environment) constructed by the OS. For example, an environment that cannot interfere with each other is provided to the activated programs. Specifically, the page address table 303 provided by the CPU 1 is created separately for each program, thereby isolating the linear address space and making it impossible to access other programs. However, this environment can be changed (broken) by using a specific kernel API (syscall). In addition, since the memory area newly required by the program is used as a normal data area, the memory area secured by the kernel is a linear address space where CPU instructions cannot be executed. However, since the memory area secured by using the kernel API (syscall) can be changed to an executable area, this also changes the execution environment in violation of the rules.

また、CPU1の実行環境に関する前記規約は、CPU命令単位となり、起動時においてのみ使用される命令が特定のタイミング以降に使用されると規約違反としている。起動後に使用される命令に関しては、独自の解析結果から、発行元のプログラムを特定しており、それ以外からの使用命令を規約違反としている。   Moreover, the said rule regarding the execution environment of CPU1 becomes a CPU command unit, and it is considered as a violation of a rule when the command used only at the time of starting is used after a specific timing. For instructions used after startup, the program of the issuer is specified from the original analysis result, and the use instructions from other than that are violated the rules.

図6は、監視モジュール130によって実行される監視処理Iのフローチャートである。プログラムの実行開始された後、命令コードがデコードされると、第1解析、第2解析処理が実行され(ステップS21)、規約情報部1306に基づいて解析結果が攻撃の準備に該当するかどうか(すなわち、プログラムの実行環境を変更しようとする準備かどうか。以下同じ。)が決定される(ステップS23)。そして、解析結果が攻撃の準備に該当しないと決定された場合、命令コードはそのまま命令実行部131に導かれる。そして、プログラムが終了したか否かが判断され(ステップS25)、継続中であれば、ステップS21に戻って、同様の解析処理が継続される。   FIG. 6 is a flowchart of the monitoring process I executed by the monitoring module 130. When the instruction code is decoded after the execution of the program is started, the first analysis and the second analysis processing are executed (step S21), and whether or not the analysis result corresponds to the preparation for the attack based on the contract information part 1306 (In other words, whether or not the program execution environment is ready to be changed. The same applies hereinafter) is determined (step S23). When it is determined that the analysis result does not correspond to the preparation for the attack, the instruction code is directly guided to the instruction execution unit 131. Then, it is determined whether or not the program has ended (step S25). If the program is being continued, the process returns to step S21 and the same analysis process is continued.

一方、ステップS23で、解析結果が攻撃の準備に該当すると決定された場合、制御部1305から制御信号が出力され、実行中のプログラムを無効化等させて(ステップS27)、本フローを終了する。   On the other hand, if it is determined in step S23 that the analysis result corresponds to the preparation for the attack, a control signal is output from the control unit 1305, the program being executed is invalidated (step S27), and this flow ends. .

図7は、監視モジュール130によって実行される監視処理IIのフローチャートである。いずれかのプログラムの実行中において、あるタイミングで最初の(プロセスの開始となる)シスコール命令がデコードされると(ステップS31)、このシスコール命令以降にデコードされる各命令コードに対して第1解析、第2解析処理が実行され(ステップS33)、その都度、解析結果が攻撃の準備に該当するかどうか(適正かどうか)が決定される(ステップS35)。解析結果が攻撃の準備に該当しないと決定された場合、命令コードは命令実行部131に導かれる。次いで、現プロセスの終了に対応するシスコール命令が発行されたか否かが判断され(ステップS37)、プロセス終了に対応するシスコール命令ではないと判断されると、ステップS33に戻る。すなわち、ステップS33からステップS37の処理が繰り返し実行される。そして、解析結果が攻撃の準備に該当すると決定された場合、制御部1305から制御信号が出力され、実行中のプログラムを無効化等させて(ステップS39)、本フローを終了する。   FIG. 7 is a flowchart of the monitoring process II executed by the monitoring module 130. When the first syscall instruction (beginning of the process) is decoded at a certain timing during the execution of any program (step S31), the first analysis is performed on each instruction code decoded after the syscall instruction. Then, the second analysis process is executed (step S33), and each time it is determined whether or not the analysis result corresponds to the preparation for the attack (whether it is appropriate) (step S35). If it is determined that the analysis result does not correspond to attack preparation, the instruction code is guided to the instruction execution unit 131. Next, it is determined whether or not a syscall instruction corresponding to the end of the current process has been issued (step S37). If it is determined that the syscall instruction does not correspond to the end of the process, the process returns to step S33. That is, the processing from step S33 to step S37 is repeatedly executed. When it is determined that the analysis result corresponds to the preparation for the attack, a control signal is output from the control unit 1305, the program being executed is invalidated (step S39), and this flow is terminated.

一方、ステップS37で、プロセス終了に対応するシスコール命令であると判断された場合、プログラムの終了か否かが判断され(ステップS41)、終了でなければ、今回のシスコール命令をプロセス開始用に置換して(ステップS43)、ステップS33に戻る。これにより、プロセスの範囲内での攻撃準備の有無が監視される。   On the other hand, if it is determined in step S37 that the instruction is a syscall instruction corresponding to the process end, it is determined whether or not the program is ended (step S41). If not, the current syscall instruction is replaced for process start. Then (step S43), the process returns to step S33. Thereby, the presence or absence of an attack preparation within the scope of the process is monitored.

図8は、監視モジュール130によって実行される監視処理IIIのフローチャートである。プログラム実行中において、発行された命令コードがwrmsr命令か否かが解析される(ステップS51)。解析の結果がwrmsr命令でなければ、次いでプログラムが終了したか否かが判断され(ステップS53)、終了でなければステップS51に戻り、終了であれば、本フローを終了する。一方、ステップS51で、解析結果が、wrmsr命令であれば、攻撃の準備に該当するとして、制御部1305から制御信号が出力され、実行中のプログラムを無効化等させて(ステップS55)、本フローを終了する。   FIG. 8 is a flowchart of the monitoring process III executed by the monitoring module 130. During the program execution, it is analyzed whether the issued instruction code is a wrmsr instruction (step S51). If the result of the analysis is not the wrmsr instruction, it is then determined whether or not the program has been completed (step S53). If not, the process returns to step S51, and if it has been completed, this flow is terminated. On the other hand, if the analysis result is the wrmsr instruction in step S51, the control unit 1305 outputs a control signal, invalidating the program being executed, and the like (step S55). End the flow.

図9は、監視モジュール130によって実行される監視処理IVのフローチャートである。基本命令コード実行中に、SMI割込の発行によってSMMが起動し、拡張命令コードが実行される場合であって、この拡張命令コードによって、CPUの動作モード、プレフィックスその他のパラメータの変更による攻撃が行われる。図9に示す実施形態では、まず、プログラム実行中において、発行された命令コードがシステムマネージメント割込(SMI:SystemManagement Interrupt)命令か否かが解析される(ステップS61)。解析の結果がSMI命令でなければ、次いでプログラムが終了したか否かが判断され(ステップS63)、終了でなければステップS61に戻り、終了であれば、本フローを終了する。一方、ステップS61で、解析結果が、SMI命令であれば、攻撃の準備に該当するとして、制御部1305から制御信号が出力され、実行中のプログラムを無効化等させて(ステップS65)、本フローを終了する。   FIG. 9 is a flowchart of the monitoring process IV executed by the monitoring module 130. While the basic instruction code is being executed, the SMM is issued by issuing an SMI interrupt, and the extended instruction code is executed. This extended instruction code causes an attack by changing the CPU operation mode, prefix, and other parameters. Done. In the embodiment shown in FIG. 9, first, during execution of the program, it is analyzed whether or not the issued instruction code is a system management interrupt (SMI) instruction (step S61). If the result of the analysis is not an SMI instruction, it is then determined whether or not the program has ended (step S63). If it is not ended, the process returns to step S61. On the other hand, if the analysis result is an SMI command in step S61, the control unit 1305 outputs a control signal, invalidating the program being executed, and the like (step S65). End the flow.

なお、図6〜図9に示す監視処理は、個別に採用するほか、いずれかの2種類以上を採用したものでもよく、さらには全ての監視処理を採用することが好ましい。   Note that the monitoring processes shown in FIGS. 6 to 9 may be employed individually, or may employ any two or more types, and it is preferable to employ all the monitoring processes.

続いて、攻撃(プログラムの実行環境の変更)の準備動作に該当する具体例を説明する。   Next, a specific example corresponding to the preparatory operation for the attack (change of the program execution environment) will be described.

(1)制御レジスタへのアクセス例(2ステップ)
1)mov eax , 0x8xxxxxxx ・・(Opecode : B8xxxxxxxx)
2)mov cr0 , rax ・・(Opecode : 0F2xxx )
制御レジスタcr0へ設定するオペランドとしての汎用レジスタに対し、その前ステップである1)にて即値を設定するような処理(例えばプロテクトモードの有効化とページテーブルの有効化とを同時に行わせるような処理)は攻撃の準備に該当する。
(1) Example of access to control register (2 steps)
1) mov eax, 0x8xxxxxxx (Opecode: B8xxxxxxxx)
2) mov cr0, rax (Opecode: 0F2xxx)
For a general-purpose register as an operand to be set in the control register cr0, a process for setting an immediate value in the preceding step 1) (for example, enabling the protection mode and the page table at the same time) Processing) corresponds to the preparation of the attack.

(2)msrレジスタへのアクセス例(4ステップ)
1)mov ecx , 0xCxxxxxxx ・・(Opecode : B9xxxxxxxx)
2)mov edx , 0xFxxxxxxx ・・(Opecode : BAxxxxxxx)
3)mov eax , 0x12xxxxxx ・(Opecode : B8xxxxxxxx)
4)wrmsr ・・(Opecode : 0Fxx )
シスコール命令が発行されたときにリングR=0の呼び出し先アドレス(Entry Point)を設定(準備)する処理である。msrレジスタにセットする呼び出し先アドレスが上下4ビットに分けて設定されることは攻撃の準備に該当する。
(2) Example of access to msr register (4 steps)
1) mov ecx, 0xCxxxxxxx (Opecode: B9xxxxxxxx)
2) mov edx, 0xFxxxxxxx (Opecode: BAxxxxxxx)
3) mov eax, 0x12xxxxxx ・ (Opecode: B8xxxxxxxx)
4) wrmsr (Opecode: 0Fxx)
This is a process for setting (preparing) a call destination address (Entry Point) of ring R = 0 when a syscall instruction is issued. The fact that the call destination address set in the msr register is divided into upper and lower 4 bits is set in preparation for an attack.

(3)カーネルAPIの呼び出し例(8ステップ)
1)mov rcx , [rsp] ・・(Opecode : 488xxxxxxx)
2)lea rdx , [rsp+0x10] ・・(Opecode : 488xxxxxxx)
3)lea r8 ,[rsp+0x20] ・(Opecode : 4c8xxxxxxx)
4)mov r9d, 0x01 ・(Opecode : 41Bxxxxxxx)
5)push byte 0xxx ・・(Opecode : 6xxxx )
6)mov eax , 0xxx ・(Opecode : B8xxxxxxx )
7)mov r10 , rcx ・(Opecode : 49xxxx )
8)syscall ・ (Opecode : 0Fxx )
主メモリ内のファイルをHDD2に格納する前に消去する処理は、痕跡の隠蔽処理として広い意味で攻撃の準備に該当する。
(3) Calling example of kernel API (8 steps)
1) mov rcx, [rsp] (Opecode: 488xxxxxxx)
2) lea rdx, [rsp + 0x10] (Opecode: 488xxxxxxx)
3) lea r8, [rsp + 0x20] ・ (Opecode: 4c8xxxxxxx)
4) mov r9d, 0x01 (Opecode: 41Bxxxxxxx)
5) push byte 0xxx ・ ・ (Opecode: 6xxxx)
6) mov eax, 0xxx ・ (Opecode: B8xxxxxxx)
7) mov r10, rcx (Opecode: 49xxxx)
8) syscall (Opecode: 0Fxx)
The process of erasing a file in the main memory before storing it in the HDD 2 corresponds to preparation for an attack in a broad sense as a trace concealment process.

本発明は、以下の態様が採用可能である。   The following aspects can be employed in the present invention.

(1)監視モジュール130は本実施形態の構成に限定されず、例えば、1つのモジュールでもよい。また、第2解析部が制御部1305の機能を実行する態様でもよい。また、ハードウェア割込処理部1303は、一般的なフック機能を実行する機能部でよい。ハードウェア割込処理部1303は、全ての命令コードに対して割込を行ってもよい。 (1) The monitoring module 130 is not limited to the structure of this embodiment, For example, one module may be sufficient. Further, the second analysis unit may execute the function of the control unit 1305. The hardware interrupt processing unit 1303 may be a functional unit that executes a general hook function. The hardware interrupt processing unit 1303 may interrupt all instruction codes.

(2)本発明が仮想化支援技術VTで適用される態様では、監視モジュール130は、仮想マシンモニタ(VMM)領域に読み出される。 (2) In the aspect in which the present invention is applied to the virtualization support technology VT, the monitoring module 130 is read out to the virtual machine monitor (VMM) area.

(3)基本命令コードに対しては、解析を省略してもよいし、一定の範囲で解析を行ってもよい。例えばパラメータの内容をチェックするなどしてもよい。 (3) Analysis may be omitted for basic instruction codes, or analysis may be performed within a certain range. For example, the contents of parameters may be checked.

(4)前記の実施形態では、侵入した悪意あるプログラムの挙動を規制する構成及び方法を示したが、悪意あるプログラムの侵入を防止する対策を別途施してもよい。 (4) In the above-described embodiment, the configuration and method for restricting the behavior of an invading malicious program have been described. However, a countermeasure for preventing the invasion of a malicious program may be separately taken.

100 情報処理装置
1 CPU(コンピュータ)
11 メモリコントローラ
130 監視モジュール(情報処理監視装置)
1301 メモリ管理部
1302 第1解析部
1303 ハードウェア割込処理部
1304 第2解析部
1305 制御部
1306 規約情報部
2 HDD
3 RAM
3112 OS(カーネル)
100 Information processing apparatus 1 CPU (computer)
11 Memory Controller 130 Monitoring Module (Information Processing Monitoring Device)
1301 Memory Management Unit 1302 First Analysis Unit 1303 Hardware Interrupt Processing Unit 1304 Second Analysis Unit 1305 Control Unit 1306 Rule Information Unit 2 HDD
3 RAM
3112 OS (kernel)

Claims (16)

基本命令コード以外の、フェッチされた少なくとも1つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステムよりも高い特権レベルに設定された解析手段と、
前記解析手段によって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御手段とを備えた情報処理監視装置。
Set to a privilege level higher than that of the operating system that analyzes whether a process including at least one fetched instruction code other than the basic instruction code is a preparatory process that changes execution of the basic instruction code that is issued thereafter to an attack. Analyzed means,
An information processing monitoring apparatus comprising: a control means for setting the same privilege level as the high privilege level, which controls the execution of the process when the analysis means analyzes that the process is the preparation process .
前記解析手段は、フェッチされた命令コードが基本命令コードか否かを解析する第1解析手段と、前記第1解析手段で基本命令コードでないと解析された場合、前記プロセスが準備処理か否かを解析する第2解析手段とを備える請求項1に記載の情報処理監視装置。   A first analyzing unit that analyzes whether the fetched instruction code is a basic instruction code; and if the first analyzing unit analyzes that the fetched instruction code is not a basic instruction code, whether the process is a preparation process or not The information processing monitoring apparatus according to claim 1, further comprising: a second analysis unit that analyzes 前記解析手段は、フェッチされた命令コードが基本命令コードと解析された場合、及び前記プロセスが前記準備処理でないと解析された場合、前記プロセスの命令コードを命令実行部に導く請求項1又は2に記載の情報処理監視装置。   The analysis unit guides the instruction code of the process to an instruction execution unit when the fetched instruction code is analyzed as a basic instruction code and when the process is analyzed as not being the preparation process. Information processing monitoring device according to claim 1. 基本命令コード以外の命令コードがフェッチされる毎に、割込を発行する割込手段を備える請求項1〜3のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, further comprising an interrupt unit that issues an interrupt each time an instruction code other than the basic instruction code is fetched. 前記解析手段は、拡張命令コードを含むプロセスに対して解析を行うことを特徴とする請求項1〜4のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, wherein the analysis unit analyzes a process including an extended instruction code. 前記解析手段は、シスコール命令を含むプロセスに対して解析を行うことを特徴とする請求項1〜5のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, wherein the analysis unit analyzes a process including a syscall instruction. 前記解析手段は、プロセス開始のシスコール命令からプロセス終了のシスコール命令までの命令コードを含むプロセスに対して解析を行うことを特徴とする請求項1〜6のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, wherein the analysis unit performs analysis on a process including an instruction code from a process start syscall instruction to a process end syscall instruction. 前記解析手段は、msrレジスタを書き換る命令コードか否かの解析を行うことを特徴とする請求項1〜7のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, wherein the analysis unit analyzes whether the instruction code rewrites the msr register. 前記前記準備処理か否かを解析する規約情報を記憶した規約情報記憶部を備える請求項1〜8のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, further comprising a rule information storage unit that stores rule information for analyzing whether the preparation process is performed. 前記規約情報は、カーネルAPIに対するものである請求項1〜9のいずれかに記載の情報処理監視装置。 The information processing monitoring apparatus according to claim 1, wherein the rule information is for a kernel API. 前記制御手段は、前記準備処理と解析された後に発行される命令コードの実行を停止することを特徴とする請求項1〜10のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, wherein the control unit stops execution of an instruction code issued after being analyzed as the preparation process. 前記解析手段及び前記制御手段を前記オペレーティングシステムよりも先に起動させるブート処理部を備える請求項1〜11のいずれかに記載の情報処理監視装置。   The information processing monitoring apparatus according to claim 1, further comprising a boot processing unit that activates the analysis unit and the control unit prior to the operating system. 請求項1〜12のいずれかに記載の情報処理監視装置を備えた情報処理装置。   An information processing apparatus comprising the information processing monitoring apparatus according to claim 1. 基本命令コード以外の、フェッチされた少なくとも1つの命令コードを含むプロセスがその後に発行される基本命令コードの実行を攻撃に変える準備処理か否かを解析する、オペレーティングシステムよりも高い特権レベルに設定された解析ステップと、
前記解析ステップによって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御ステップとを備えた情報処理監視方法。
Set to a privilege level higher than that of the operating system that analyzes whether a process including at least one fetched instruction code other than the basic instruction code is a preparatory process that changes execution of the basic instruction code that is issued thereafter to an attack. Analysis steps performed,
An information processing monitoring method comprising: a control step in which the same privilege level as the high privilege level is set, which controls the execution of the process when the analysis step is analyzed as the preparation process .
コンピュータを、請求項1〜12のいずれかに記載の情報処理監視装置として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium storing a program that causes a computer to function as the information processing monitoring apparatus according to claim 1. コンピュータを、請求項1〜12のいずれかに記載の情報処理監視装置として機能させるプログラム。   The program which makes a computer function as an information processing monitoring apparatus in any one of Claims 1-12.
JP2017122758A 2017-06-23 2017-06-23 Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus Pending JP2019008503A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017122758A JP2019008503A (en) 2017-06-23 2017-06-23 Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus
PCT/JP2018/023433 WO2018235858A1 (en) 2017-06-23 2018-06-20 Information processing monitoring device, information processing monitoring method, program, recording medium and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017122758A JP2019008503A (en) 2017-06-23 2017-06-23 Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus

Publications (1)

Publication Number Publication Date
JP2019008503A true JP2019008503A (en) 2019-01-17

Family

ID=64735714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017122758A Pending JP2019008503A (en) 2017-06-23 2017-06-23 Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus

Country Status (2)

Country Link
JP (1) JP2019008503A (en)
WO (1) WO2018235858A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022100458A1 (en) 2021-02-05 2022-08-11 Toyota Jidosha Kabushiki Kaisha ON-BOARD INFORMATION PROCESSING EQUIPMENT, INFORMATION PROCESSING METHOD AND COMPUTER READABLE STORAGE MEDIA
JP7353251B2 (en) 2019-10-01 2023-09-29 アクロニス・インターナショナル・ゲーエムベーハー System and method for preventing malicious software from destroying digital forensic information

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007206933A (en) * 2006-02-01 2007-08-16 Matsushita Electric Ind Co Ltd Information processor, boot loader generation method and program transfer method in information processor
US9043903B2 (en) * 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
WO2014098239A1 (en) * 2012-12-21 2014-06-26 日本電信電話株式会社 Monitoring device and monitoring method
JP6370098B2 (en) * 2014-05-16 2018-08-08 杉中 順子 Information processing apparatus, information processing monitoring method, program, and recording medium
JP6317646B2 (en) * 2014-08-19 2018-04-25 杉中 順子 Information processing apparatus, illegal program execution prevention method, program, and recording medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7353251B2 (en) 2019-10-01 2023-09-29 アクロニス・インターナショナル・ゲーエムベーハー System and method for preventing malicious software from destroying digital forensic information
DE102022100458A1 (en) 2021-02-05 2022-08-11 Toyota Jidosha Kabushiki Kaisha ON-BOARD INFORMATION PROCESSING EQUIPMENT, INFORMATION PROCESSING METHOD AND COMPUTER READABLE STORAGE MEDIA

Also Published As

Publication number Publication date
WO2018235858A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
US10445498B2 (en) Systems and methods of application control in virtualized environments
US10810309B2 (en) Method and system for detecting kernel corruption exploits
KR101946982B1 (en) Process Evaluation for Malware Detection in Virtual Machines
KR102189296B1 (en) Event filtering for virtual machine security applications
US8904537B2 (en) Malware detection
KR101955189B1 (en) Page fault injection in virtual machines to cause mapping of swapped-out memory pages into vm virtualized memory
US10296470B2 (en) Systems and methods for dynamically protecting a stack from below the operating system
JP6370098B2 (en) Information processing apparatus, information processing monitoring method, program, and recording medium
JP2019503539A (en) System and method for auditing virtual machines
JP2018517985A (en) Behavioral malware detection using an interpreter virtual machine
Zhou et al. Hybrid user-level sandboxing of third-party android apps
US10467410B2 (en) Apparatus and method for monitoring confidentiality and integrity of target system
Ding et al. HyperVerify: A VM-assisted architecture for monitoring hypervisor non-control data
JP2019008503A (en) Information processing monitoring apparatus, information processing monitoring method, program, recording medium, and information processing apparatus
KR20170060815A (en) A Electronic Device And Method For Protecting The Kernel Space of the Memory
JP2015166952A (en) Information processor, information processing monitoring method, program and recording medium
Hua et al. Barrier: a lightweight hypervisor for protecting kernel integrity via memory isolation
US11556645B2 (en) Monitoring control-flow integrity
JP2018036695A (en) Information processing monitoring device, information processing monitoring method, monitoring program, recording medium, and information processing apparatus
EP4312401A1 (en) Methods and systems for analyzing environment-sensitive malware with coverage-guided fuzzing
JP2018174001A (en) Information processing device, information processing monitoring method, program, and recording medium
JP2017215648A (en) Information processing monitoring device, information processing monitoring method, program, recording medium, and information processing device
Iinuma GUESTGUARD: DYNAMIC KERNEL TAMPERING PROTECTION USING A PROCESSOR ASSISTED VIRTUAL MACHINE
GB2485602A (en) Executing a program with a smaller address size than the processor on which it is executing