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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/54—Monitoring 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
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には、アプリケーションの挙動を監視して正常か否かを判定するセキュリティ技術が提案されている。すなわち、このセキュリティ技術は、オフラインマルウェア検出検査にリアルタイムマルウェア検出検査が追加的に提供され、この追加された検出検査がアプリケーションの実行中にその挙動を記録し、記録された挙動から挙動パターンを抽出し、抽出された挙動パターンを正常なアプリケーションの基本パターン又は以前に記録された前記アプリケーションのパターンと比較するものである。これにより、悪質なアプリケーションが実環境のモバイルデバイスにダウンロード、インストールされ、そして実際に実行されたとしても、モバイルデバイスは、このアプリケーションの悪質な挙動を自動的に検出することができる。
特許文献3には、バッファオーバーラン現象を利用したコンピュータウイルスや不正アクセスを抑制することのできるオペレーティングシステムが記載されている。このオペレーティングシステムは、コンピュータウイルスや不正アクセスを抑制するために、プログラムから要求されたAPI(Application Program Interface)を実行する前に、メモリ装置上におけるプログラムの格納アドレスを取得し、そのアドレスが適正な位置を示しているか否かを判定することにより、APIをコールしたプログラムが適正か不正かを判断するものである。
特許文献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.
特許文献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
特許文献3は、バッファサイズを超えるデータが送り込まれることでシステムが誤動作を起こす脆弱性を狙って不正アクセスを実行するバッファオーバーラン現象への対応に着目した発明であって、プログラムの格納アドレスが適正か不正かを判断させる判断プログラムをオペレーティングシステムに付加したものである。特許文献4は、プロセス毎にプロセスモニタが設定され、このプロセスモニタが、プロセスの実行によって発生した情報であるモジュールの種類、呼び出された関数の種類、引数の値、読み出し元アドレス、タイムスタンプ情報等を振舞として収集し、不正な攻撃や侵入があったか否かを判定するもので、事前に規制するものではない。また、判別困難な範囲については、ホワイトリストとの照合を行うものである。
本発明は、上記に鑑みてなされたもので、悪意のプログラムによる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.
図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
情報処理装置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
HDD2は、各種プログラム及び必要なデータ類を格納する。HDD2は、複数のパーティションに分割されており、通常、例えばwindows(登録商標)のようなOS(Operating System)のプログラム、及びOS下で動作する各種アプリケーションプログラム(APP)は、場所(パス)としてCドライブ領域に格納されている。また、通常、各種APPで利用(アクセス)可能なデータファイル等は、パスとしてDドライブ領域に格納されている。HDD2には、本発明に係る監視モジュール130(図3参照)であるプログラムデータも格納されている。監視モジュール130の詳細は後述する。
The
RAM3は、情報処理装置100が起動する際に、フラッシュROM2A及びHDD2に格納されているBIOSやプログラム等がロードされると共に、処理途中の情報が一時的に格納される。情報処理装置100は、HDD2に格納されているプログラムファイル、データファイル等がRAM3にロードされ、CPU1によって実行されることで、例えば文書及び図形作成機能、ブラウザ機能等の種々の情報処理機能、さらに適用される分野に応じた各種の情報処理を実行する。
When the
入力部41は、テンキー等を備えたキーボードやマウス、又はタッチパネル等を含み、操作者からの所要の情報の入力や処理の指示を行うものである。出力部42は、処理結果等を画像で表示する表示部を想定している。なお、出力部42としては、プリンタやスピーカを含むことができる。
The
図2は、RAM3のリニアアドレス空間31の概要を示すマップ図である。なお、リニアアドレス空間31にマッピングされた各データ(プログラムデータやファイルデータ等)は、機能を示すものであり、詳細には、図3に示す物理メモリ30内のページテーブル303に格納されており、かつリニアアドレスから物理アドレスに置換することでCPU1から読み取り可能にされている。
FIG. 2 is a map diagram showing an outline of the
図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
ユーザモード領域312のシスコール3122は、APP3121,…がリソース(後述するレジスタ部123を代表するメモリ資源)に対してアクセスを要求する場合に用いる命令の群である。シスコール命令は、特権レベルをリングR=3からリングR=0に昇格させる拡張命令コードであり、これによって、シスコール命令の引数に対応したAPIが選択され、選択情報は例えば汎用レジスタraxに設定される。
A
カーネルモード領域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
図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
監視モジュール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
CPU1は、メモリコントローラ(MMU)11、制御ユニット12及び演算ユニット13を備えている。メモリコントローラ11は、物理メモリ30内のページテーブル303と制御ユニット12との間に接続され、フェッチされたリニアアドレスへのアクセスに対してページテーブル303を参照して物理アドレスに変換してアクセスし、アクセス内容を制御ユニット12に導くものである。
The CPU 1 includes a memory controller (MMU) 11, a
監視モジュール130は、本実施形態では、メモリ管理部1301、第1解析部1302、ハードウェア割込処理部1303、第2解析部1304、制御部1305、及び規約情報部1306を備えると共に、OSを所定の監視下で起動させるためのブートプログラム(ブート処理部)を有する。これらの詳細は後述する。また、演算ユニット13内には、監視モジュール130でフェッチされ、出力された命令コードを実行する命令実行部131を有する。
In this embodiment, the
監視モジュール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
制御ユニット12内には、本実施形態ではメモリ管理部1301を介してメモリコントローラ11に接続されたフェッチ部121、フェッチされた命令フォーマットを機械語に変換して解析するデコード部122、レジスタ部123を備えている。図3には一例としての命令フォーマット128を示している。命令フォーマット128の詳細は、図5で説明する。命令コード129がアセンブラ言語で例示されている。この例示された命令コードは、
mov rax, 10
であり、「汎用レジスタraxに、数値10をコピーする」との意味である。
In the
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
ここで、図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
次いで、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
次いで、OS3112のブートが終了すると(ステップS11でYes)、例えば最初のページフォルト(#PF)が発行されると、公知のように、OS3112内のAPローダによって、APP3121,…がユーザモード領域312にリングR=3の特権レベルでロードされる(ステップS13)。この起動処理によって、図2、図3に示すマップが完成する。
Next, when the booting of the
なお、起動時には、監視モジュール130は、CPU1の動作モードとして、リアルモード、プロテクトモード、IA32eモード(64ビットモード)及び16ビットでのSMM(SystemManagement mode)モードの各設定、ページテーブル303を有効化、シスコールの有効化の各処理を行う。また、監視モジュール130は、レジスタ部123の初期化、環境設定値の初期設定を行う。
At the time of start-up, the
図3に戻って、監視モジュール130の機能について説明する。監視モジュール130のメモリ管理部1301は、メモリコントローラ11とCPU1との間のデータの流れを監視するもので、例えば、この結果、監視モジュール130は、リニアアドレスと物理アドレスの両方を管理してリニアアドレスの改変や物理アドレスの改変への対処、OS(カーネル)以外のプログラムに対してレジスタ部123内の環境設定値の変更アクセスを規制する監視を行う。
Returning to FIG. 3, the function of the
監視モジュール130の解析部は、本実施形態では、機能的に、第1解析部1302と第2解析部1304とを備える。第1解析部1302は、デコードされた命令コードが4ビットで定義された基本命令コードか、それ以外の命令コードかを解析する。
In the present embodiment, the analysis unit of the
図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
図3において、第1解析部1302は、解析の結果が基本命令コードであれば、命令コードを命令実行部131に導き、それ以外の命令コードの場合、ハードウェア割込処理部1303に導く。
In FIG. 3, the
ハードウェア割込処理部1303は、第1解析部1302による解析の結果が基本命令コードでなければ(それ以外の命令コードであれば)、フック操作、すなわち割込処理を実行し、割込内容は、第2解析部1304に導かれる。なお、割込処理は、第2解析部1304の解析の終了によって復帰することができる。
If the result of analysis by the
第2解析部1304は、基本命令以外の命令、乃至は基本命令と基本命令以外の命令との組(プロセス)を規約情報部1306の規約に基づいて解析して、攻撃の準備に該当するか否かを決定する。第2解析部1304は、解析の対象がプロセスの場合、全ての命令コードのデコードの毎に、プロセスが準備に該当するか否かを逐次解析していくようにして、準備の段階で解析結果を得るようにしているため、攻撃そのものが未然に防止できる。第2解析部1304(又は後述する制御部1305の一方)は、ある時点でのステップに対する解析の結果が未だ攻撃の準備に該当していないと決定した段階では、解析した命令コードの命令実行部131での実行を許可する。これによって、最終的に攻撃の準備ではなかった(複数ステップの命令列からなる)プロセスをより自然に継続実行させることができる。
Does the
制御部1305は、第2解析部1304による解析の結果が、直ちに乃至は最終的に攻撃の準備と決定された段階で、プログラムの実行に対して一定の制御を行う制御信号を出力する。この制御信号は、実行中のプログラムを無効化、すなわちプログラムの実行停止、それまでの実行結果の削除、リセット等の処理を行うものでもよい。なお、命令コード(データ、パラメータ含む)の監視は、デコード部122の内容を参照する態様でもよいが、例えばプロセスリスト3114内のEプロセスの一部を利用して命令コードのロガーとして機能させることで、監視するようにしてもよい。
The
情報処理装置100に対する攻撃とは、情報処理装置100の入力部41からの操作に則して発行される、4ビット設計思想に基づく基本命令コードを、操作者が意図した処理とは異なる内容で実行させることをいい、実際の被害の有無、被害の形態を問わない。そして、攻撃の準備とは、操作者が意図した処理とは異なる内容での処理となるように導くためのプロセスをいう。なお、プロセスとは、少なくとも基本命令以外の1ステップの命令コード、またはこの1ステップを含む複数ステップからなるものを含む。
An attack on the
また、攻撃のための準備のタイミングとしては種々の態様が想定される。例えば、あるプログラムの実行中に、このプログラムに侵入して基本命令を奪う態様がある。また、マルチタスクによって複数のプログラム(例えばプログラム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
悪意のプログラムが基本命令コードを使用して攻撃を行おうとする場合、なりすまし、コピー、書き換えという、操作者の意図によらずにプログラム自身が動こうとする準備行為を要する。規約情報部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
以上によれば、規約情報部1306の規約は、OSが構築する保護されたプログラム実行環境(プログラムの環境)を維持する(変えない)ためのものである。例えば、起動された複数のプログラムには、プログラム間において干渉できない環境が提供される。具体的には、CPU1が提供するページテーブル303をプログラム毎に別々に作成することで、リニアアドレス空間を隔離し、他のプログラムへアクセスできなくしている。しかし、特定のカーネルAPI(syscall)を使用することで、この環境を変える(崩す)ことができる。また、プログラムによって新たに必要とされるメモリ領域は通常データ領域として使用されるため、カーネルが確保するメモリ領域は、CPU命令が実行できないリニアアドレス空間となる。しかし、これもカーネルAPI(syscall)の使用方法によって確保したメモリ領域を実行可能領域に変更することが可能であるため、これもまた、規約に違反する実行環境の変更となる。
As described above, the rules of the
また、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
一方、ステップ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
図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
一方、ステップ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
図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
なお、図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
本発明は、以下の態様が採用可能である。 The following aspects can be employed in the present invention.
(1)監視モジュール130は本実施形態の構成に限定されず、例えば、1つのモジュールでもよい。また、第2解析部が制御部1305の機能を実行する態様でもよい。また、ハードウェア割込処理部1303は、一般的なフック機能を実行する機能部でよい。ハードウェア割込処理部1303は、全ての命令コードに対して割込を行ってもよい。
(1) The
(2)本発明が仮想化支援技術VTで適用される態様では、監視モジュール130は、仮想マシンモニタ(VMM)領域に読み出される。
(2) In the aspect in which the present invention is applied to the virtualization support technology VT, the
(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
1301
3 RAM
3112 OS (kernel)
Claims (16)
前記解析手段によって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御手段とを備えた情報処理監視装置。 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 .
前記解析ステップによって前記プロセスが前記準備処理であると解析された場合、前記プロセスの実行に対する制御を行う、前記高い特権レベルと同一の特権レベルが設定された制御ステップとを備えた情報処理監視方法。 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 .
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021064358A (en) * | 2019-10-01 | 2021-04-22 | アクロニス・インターナショナル・ゲーエムベーハー | Systems and methods for preventing destruction of digital forensics information by malicious software |
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 |
Family Cites Families (5)
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 |
JP6005761B2 (en) * | 2012-12-21 | 2016-10-12 | 日本電信電話株式会社 | 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 |
-
2017
- 2017-06-23 JP JP2017122758A patent/JP2019008503A/en active Pending
-
2018
- 2018-06-20 WO PCT/JP2018/023433 patent/WO2018235858A1/en active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021064358A (en) * | 2019-10-01 | 2021-04-22 | アクロニス・インターナショナル・ゲーエムベーハー | Systems and methods for preventing destruction of digital forensics information by malicious software |
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 |
US12086244B2 (en) | 2021-02-05 | 2024-09-10 | Toyota Jidosha Kabushiki Kaisha | Onboard information processing device, information processing method, and non-transitory recording medium |
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 | |
US10296470B2 (en) | Systems and methods for dynamically protecting a stack from below the operating system | |
KR101955189B1 (en) | Page fault injection in virtual machines to cause mapping of swapped-out memory pages into vm virtualized memory | |
JP6370098B2 (en) | Information processing apparatus, information processing monitoring method, program, and recording medium | |
JP2019503539A (en) | System and method for auditing virtual machines | |
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 | |
Davoli et al. | On Kernel’s Safety in the Spectre Era (And KASLR is Formally Dead) | |
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 |