JP2006268775A - Software operation modeling device and software operation monitoring device - Google Patents

Software operation modeling device and software operation monitoring device Download PDF

Info

Publication number
JP2006268775A
JP2006268775A JP2005089891A JP2005089891A JP2006268775A JP 2006268775 A JP2006268775 A JP 2006268775A JP 2005089891 A JP2005089891 A JP 2005089891A JP 2005089891 A JP2005089891 A JP 2005089891A JP 2006268775 A JP2006268775 A JP 2006268775A
Authority
JP
Japan
Prior art keywords
model
instruction
software
unit
instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005089891A
Other languages
Japanese (ja)
Other versions
JP2006268775A5 (en
JP4913353B2 (en
Inventor
Akira Konno
晃 金野
Takehiro Nakayama
雄大 中山
Atsushi Takeshita
敦 竹下
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2005089891A priority Critical patent/JP4913353B2/en
Publication of JP2006268775A publication Critical patent/JP2006268775A/en
Publication of JP2006268775A5 publication Critical patent/JP2006268775A5/ja
Application granted granted Critical
Publication of JP4913353B2 publication Critical patent/JP4913353B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a software operation modeling device, capable of performing right and wrong determination upon detection of an unlearnt operation while preventing false attack. <P>SOLUTION: The software operation modeling device 100 comprises an instruction acquisition part 110 acquiring instructions issued by monitoring object software 10 during operation; an instruction accumulation part 120 accumulating the acquired instructions in time series for every trial; a model generation part 130 reading the time series of instructions accumulated in the instruction accumulation part 120 for every trial, and generating an operation model from the time series of instructions; and a model accumulation part accumulating operation models of the monitoring object software generated by the model generation part 130 by the previous reading. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、ソフトウェア動作モデル化装置及びソフトウェア動作監視装置に関する。   The present invention relates to a software behavior modeling device and a software behavior monitoring device.

PCやワークステーション、サーバ、ルータ、携帯電話、PDAなど、すべての計算機は外部もしくは内部からの攻撃にさらされている。代表的な攻撃は、計算機上で実行されているソフトウェアの脆弱性を踏み台にしたものである。攻撃者はソフトウェアの脆弱性を利用した悪意のある実行コードを計算機に送り込み、実行中のプロセスの制御を奪い、当該プロセスの権限を利用して不正操作をおこなう。ソフトウェアの脆弱性を利用した攻撃の対策として、実行中ソフトウェアの異常を検知するシステムが開示されている(例えば、非特許文献1及び非特許文献2参照。)。   All computers such as PCs, workstations, servers, routers, mobile phones, and PDAs are exposed to attacks from outside or inside. A typical attack is based on the vulnerability of software running on a computer. An attacker sends malicious execution code that uses software vulnerabilities to the computer, takes control of the running process, and performs unauthorized operations using the authority of the process. As countermeasures against attacks using software vulnerabilities, systems that detect abnormalities in running software have been disclosed (for example, see Non-Patent Document 1 and Non-Patent Document 2).

非特許文献1に記載のシステムは、ソフトウェアのソースコードを予め取得しておき、ソースコードを静的解析することによってソフトウェアの正常な動作、すなわち、正常動作時に発行されるシステムコールの発行パターンを表すモデルを作成し、ソフトウェアの実行系列がこのモデルに受理されるどうかを検査することによって、正常動作からの乖離すなわち異常動作を検知するものである。モデルの生成はコンパイラによって行われ、モデルが決定性有限オートマトンで記述されることがこのシステムの特徴である。ソフトウェアのソースコードには条件分岐や関数呼び出しなど非決定性を生む箇所が多数存在するため、静的解析からは非決定性オートマトンのクラスでしかモデルの生成ができないが、関数ごとに生成されたオートマトンの直列接続および独自システムコールの追加および修正を行うことで非決定性を削減している。又、関数ポインタやlongjmp命令、シグナルは、性質上静的解析によってオートマトンに反映させることが不可能であるとされるが、監視対象ソフトウェアを動作させながら、モデルへ動的に反映させることで対応していることも特徴である。   The system described in Non-Patent Document 1 acquires the software source code in advance and statically analyzes the source code to obtain a normal operation of the software, that is, a system call issue pattern issued during normal operation. By creating a model to represent and checking whether the execution sequence of the software is accepted by this model, a deviation from normal operation, that is, abnormal operation is detected. The model is generated by a compiler, and the feature of this system is that the model is described by a deterministic finite automaton. The software source code has many places that cause non-determinism such as conditional branches and function calls, so static analysis can only generate models with non-deterministic automaton classes, but the automaton generated for each function Non-determinism is reduced by adding and modifying serial connections and original system calls. In addition, function pointers, longjmp instructions, and signals cannot be reflected in the automaton by static analysis due to their properties, but they can be handled by dynamically reflecting them in the model while operating the monitored software. It is also a feature.

非特許文献2に記載のシステムも、非特許文献1同様ソフトウェアの正常な動作、すなわち、システムコールの発行パターンを表すモデルを作成するが、ソースコードを利用せず、攻撃から隔離された環境下でソフトウェアを動作させ、そこで得られる入出力などのログを取得しモデルを学習するものである。システムコール、コールスタックの状況、プログラムカウンタを入力系列とし、プログラムカウンタを状態、システムコール、コールスタックの状況を辺とした非決定性有限オートマトンを学習により生成することが特徴である。システムコールのプログラムカウンタは学習時と検証時に変わってしまう可能性がある(例:動的リンクライブラリ利用時)が、システムコールのプログラムカウンタを直近の静的リンク関数のアドレスとすることで、検証時に、学習したオートマトンを利用できるようにしている。   The system described in Non-Patent Document 2 also creates a model that represents the normal operation of software, that is, the system call issue pattern, as in Non-Patent Document 1, but does not use source code and is isolated from attacks. The software is operated by, the input / output logs obtained there are acquired, and the model is learned. A feature is that a nondeterministic finite automaton having a system call, call stack status, and a program counter as an input sequence and a program counter as a status, a system call, and a call stack status as an edge is generated by learning. The system call program counter may change during learning and verification (eg, when using a dynamic link library), but verification can be performed by using the system call program counter as the address of the most recent static link function. At times, the learned automaton can be used.

又、正常動作で発行されるインストラクション集合をあらかじめ設定しておき、コンピュータの動作中に取得したインストラクションが、あらかじめ設定してあった正常動作で発行されるインストラクション集合の中に含まれているか否かを検証するコンピュータ作動状況監視装置も開示されている(例えば、特許文献1参照。)。これは、正常動作では発行されるはずのないインストラクションが発行された場合は、異常であると判定するものである。
特開平11−219304号公報 L. Lamら “Automatic Extraction of Accurate Application-Specific Sandboxing Policy”, EUROCOM International Symposium on Recent Advances in Intrusion Detection (RAID) 2004, September 2004 D.Gaoら “On Gray-Box Program Tracking for Anomaly Detection”, 13th USENIX Security Symposium, August 2004
Whether the instruction set issued in normal operation is set in advance, and whether the instruction acquired during computer operation is included in the instruction set issued in normal operation set in advance A computer operating state monitoring device for verifying the above is also disclosed (for example, see Patent Document 1). In this case, when an instruction that should not be issued in normal operation is issued, it is determined that there is an abnormality.
JP 11-219304 A L. Lam et al. “Automatic Extraction of Accurate Application-Specific Sandboxing Policy”, EUROCOM International Symposium on Recent Advances in Intrusion Detection (RAID) 2004, September 2004 D. Gao et al. “On Gray-Box Program Tracking for Anomaly Detection”, 13th USENIX Security Symposium, August 2004

非特許文献1に記載のシステムでは、ソフトウェアのソースコードを予め取得しておかなければならないが、ソフトウェア提供者はソフトウェアの不正な流用を防ぐためにソースコードを開示しないことが容易に考えられる。ソフトウェア提供者がソースコードを静的に解析し生成したモデルを端末側に送ることも考えられるが、モデルはソースコードとほぼ同等の意味をもつため、ソースコードを開示したこととほぼ同じとなる。そのため、ソフトウェア提供者はモデルの開示さえしないと考えられる。又、このシステムは条件分岐や関数ポインタなど実行コードの制御が移り変わる箇所の検証を考慮しているが、条件分岐がソースコードどおりに動作しているかを検証していない。   In the system described in Non-Patent Document 1, it is necessary to obtain the source code of the software in advance, but it is easy for the software provider not to disclose the source code in order to prevent unauthorized use of the software. The software provider can analyze the source code statically and send the generated model to the terminal side, but the model has almost the same meaning as the source code, so it is almost the same as the source code disclosed. . As a result, software providers may not even disclose models. In addition, this system considers verification of the place where execution code control changes, such as conditional branching and function pointers, but does not verify whether conditional branching operates in accordance with source code.

又、非特許文献2に記載のシステムでは、システムコールのプログラムカウンタではない値をシステムコールのプログラムカウンタとしている。そのため、攻撃者はプログラムカウンタの値を偽装し、モデルに受理される攻撃コードを生成することが可能である。攻撃者がこの偽装を行うためには、モデルに受理されるプログラムカウンタの値を知る必要がある。そのため、偽装から守るためにプログラムカウンタをランダム化し、プログラムカウンタの値を秘匿化することが考えられるが、完全に秘匿化するためにはソースコードが必要となってしまう。以上により、非特許文献1に記載のシステムと同様の理由で、適用することが難しい。又、モデルがプログラムカウンタを状態とするオートマトンで記述される。オートマトンは過去の検証結果を現在の検証に利用しない場合に効率的なモデルであるが、プログラムカウンタを状態としているため、条件分岐などによって入り線が複数の状態が存在することになり、条件分岐を正しく検証しようとすると、過去の条件分岐の結果を保持する必要があるため、非効率である。   In the system described in Non-Patent Document 2, a value that is not a system call program counter is used as a system call program counter. Therefore, the attacker can disguise the value of the program counter and generate an attack code accepted by the model. In order for an attacker to perform this camouflage, it is necessary to know the value of the program counter accepted by the model. Therefore, it is conceivable to randomize the program counter and conceal the value of the program counter in order to protect it from impersonation. However, in order to conceal it completely, source code is required. As described above, it is difficult to apply for the same reason as the system described in Non-Patent Document 1. The model is described by an automaton with the program counter as a state. Automata is an efficient model when past verification results are not used for the current verification, but because the program counter is in a state, there are multiple states of incoming lines due to conditional branching, etc. When trying to verify correctly, it is inefficient because it is necessary to retain the results of past conditional branches.

更に、非特許文献1、非特許文献2に記載のシステムはともに、システムコールの発生パターンをモデルとしているが、システムコールの発行は、ソフトウェアの動作の一部をモデル化しているにすぎない。そのため、攻撃者はバッファーオーバーフローなどを用いて、モデルに受理されるようにプログラムカウンタやリターンアドレスを偽装し、システムコールの発行を行い、かつ悪意ある実行コードを実行することが可能であった(偽装攻撃)。   Further, both the systems described in Non-Patent Document 1 and Non-Patent Document 2 model the generation pattern of system calls, but issuing system calls only models a part of the operation of software. As a result, attackers could use buffer overflows, etc. to disguise program counters and return addresses to be accepted by the model, issue system calls, and execute malicious execution code ( Camouflaged attack).

又、特許文献1に記載のコンピュータ作動状況監視装置は、システムコールよりも詳細なデータであるインストラクションを利用した監視を行っているが、インストラクションの時系列を考慮していないため、正常動作中に発行されるインストラクションのみを用いて攻撃コードを記述することが容易にできてしまう。したがって、攻撃を確実に検知できるとはいえない。   The computer operating state monitoring device described in Patent Document 1 performs monitoring using instructions that are more detailed data than system calls, but does not consider the time series of instructions, so during normal operation It is easy to write attack code using only issued instructions. Therefore, it cannot be said that an attack can be detected reliably.

又、実際のソフトウェアの動作から発行されるシステムコールやインストラクションからモデルを学習する、非特許文献2、特許文献1に記載の技術は、監視対象ソフトウェアの動作すべてを学習の段階で試行しなければならないが、データ領域に格納されたデータを含めて試行することや、すべての動作の組み合わせを試行することは一般的に不可能である。そのため、ソフトウェアの動作検証時に、本来ソフトウェアの正常動作であるが未学習であるため、正常動作ではないと判断せざるを得ない(誤検出)。   In addition, the techniques described in Non-Patent Document 2 and Patent Document 1 that learn a model from system calls and instructions issued from actual software operations must try all the operations of the monitored software at the learning stage. However, it is generally impossible to try including data stored in the data area, or to try a combination of all operations. For this reason, at the time of verifying the operation of the software, it is originally a normal operation of the software but has not yet been learned, so it must be determined that the operation is not normal (false detection).

そこで、本発明は、上記の課題に鑑み、偽装攻撃を防止するとともに、未学習動作が検知された場合の善悪判断を行うことができるソフトウェア動作モデル化装置及びソフトウェア動作監視装置を提供することを目的とする。   Therefore, in view of the above-described problems, the present invention provides a software behavior modeling device and a software behavior monitoring device that can prevent an impersonation attack and can make a right / bad judgment when an unlearned motion is detected. Objective.

上記目的を達成するため、本発明の第1の特徴は、監視対象ソフトウェアの正常動作をモデル化するソフトウェア動作モデル化装置であって、監視対象ソフトウェアを複数回試行させて、(a)監視対象ソフトウェアが動作中に発行したインストラクションを取得するインストラクション取得部と、(b)取得したインストラクションを試行毎に時系列で蓄積するインストラクション蓄積部と、(c)インストラクション蓄積部に蓄積されたインストラクションの時系列を試行毎に読み込み、インストラクションの時系列から動作モデルを作成するモデル生成部と、(d)モデル生成部が前回の読み込みまでで生成した監視対象ソフトウェアの動作モデルを蓄積するモデル蓄積部とを備え、モデル蓄積部は、(e)モデル生成部が前回の読み込みまでで生成した木構造モデルを蓄積する第1のモデル蓄積部と、(f)モデル生成部が前回の読み込みまでで生成したインストラクション発行の統計量を特徴量とする動作モデルを蓄積する第2のモデル蓄積部とを有し、モデル生成部は、(g)今回読み込んだインストラクションの時系列を学習系列とし、学習系列と第1のモデル蓄積部に蓄積された動作モデルとから木構造モデルを生成する第1のモデル生成部と、(h)学習系列から統計量を導出し、更に、第2のモデル蓄積部に蓄積された動作モデルを、統計量を用いて学習する第2のモデル生成部とを有するソフトウェア動作モデル化装置であることを要旨とする。   In order to achieve the above object, a first feature of the present invention is a software operation modeling device for modeling normal operation of monitoring target software, wherein the monitoring target software is tried a plurality of times, and (a) monitoring target An instruction acquisition unit for acquiring instructions issued during operation of the software; (b) an instruction storage unit for storing the acquired instructions in time series for each trial; and (c) a time series of instructions stored in the instruction storage unit. For each trial, and a model generation unit for creating an operation model from the time series of instructions, and (d) a model storage unit for storing the operation model of the monitored software generated by the model generation unit until the previous reading. The model storage unit (e) the model generation unit A first model storage unit that stores the tree structure model generated up to now, and (f) a second model in which the model generation unit stores an operation model whose feature value is an instruction issuance statistic generated up to the previous reading. The model generation unit includes (g) a time series of instructions read this time as a learning sequence, and a tree structure model is obtained from the learning sequence and the motion model stored in the first model storage unit. A first model generation unit for generating, and (h) a second model generation for deriving a statistic from the learning sequence and further learning an operation model stored in the second model storage unit using the statistic And a software operation modeling device having a section.

第1の特徴に係るソフトウェア動作モデル化装置によると、システムコールよりも詳細なデータであるインストラクションの時系列を利用した監視を行うことができ、偽装攻撃をほぼ不可能にできるモデルを生成できる。かつ、木構造モデルの各点は、プログラムカウンタなど入り線を複数にする情報を含めないため、過去の条件分岐の結果はモデルが保持していることとなる。すなわち、条件分岐を正しく検証することが可能なモデルを生成できる。   According to the software behavior modeling apparatus according to the first feature, it is possible to perform monitoring using a time series of instructions, which is more detailed data than a system call, and to generate a model that can make an impersonation attack almost impossible. In addition, since each point of the tree structure model does not include information such as a program counter that sets a plurality of entering lines, the model holds the results of past conditional branches. That is, it is possible to generate a model that can correctly verify the conditional branch.

又、木構造モデルだけでは未学習動作を異常動作として判定せざるを得ないが、インストラクション発行の統計量を特徴とした動作モデルを、木構造モデル生成と同時に生成することができる。   In addition, an unlearned operation must be determined as an abnormal operation only with a tree structure model, but an operation model characterized by statistics issued by instructions can be generated simultaneously with the generation of the tree structure model.

又、第1の特徴に係るソフトウェア動作モデル化装置において、第2のモデル蓄積部は、モデル生成部が前回の読み込みまでで生成したインストラクションの共起頻度を特徴量とする動作モデルを蓄積し、第2のモデル生成部は、学習系列から統計量を導出し、更に、第2のモデル蓄積部に蓄積された動作モデルを、共起頻度を用いて学習してもよい。   In the software behavior modeling device according to the first feature, the second model accumulation unit accumulates an operation model having the feature co-occurrence frequency of instructions generated by the model generation unit up to the previous reading, The second model generation unit may derive a statistic from the learning sequence, and further learn the behavior model stored in the second model storage unit using the co-occurrence frequency.

ソフトウェアの脆弱性をつき攻撃を行うためには、脆弱性をつく攻撃コードを注入する必要があるが、この攻撃コードは監視対象プログラムにはそもそも存在しなかった可能性が高く、統計的に正常挙動との乖離が考えられる。一方、本来正常動作であるが未学習である挙動の場合は、正常動作である以上、監視対象プログラムに存在していたルーチンや関数を呼び出すわけであり、統計的に正常挙動と近いものが得られる可能性が高いといえる。   In order to attack with software vulnerabilities, it is necessary to inject attack code that creates vulnerabilities, but this attack code is likely not present in the monitored program in the first place, and is statistically normal. Deviation from behavior can be considered. On the other hand, in the case of a behavior that is normally normal but not learned, the routine or function that existed in the monitored program is called as long as the behavior is normal. It can be said that it is highly possible.

このソフトウェア動作モデル化装置によると、正常状態のインストラクションの共起頻度を把握することができ、ソフトウェアの動作の変化をとらえることのできるモデルを生成することができる。動作の検証をする際、オートマトンや木構造モデルによる検証では未学習の動作を検知したら異常と判断せざるを得なかったが、インストラクションの共起頻度を利用するため、統計的に善悪の判断をすることが可能である。   According to this software behavior modeling apparatus, it is possible to grasp the co-occurrence frequency of instructions in a normal state, and to generate a model that can capture changes in software behavior. When verifying the operation, if the unlearned operation was detected in the verification using the automaton or the tree structure model, it had to be determined to be abnormal. Is possible.

又、第1の特徴に係るソフトウェア動作モデル化装置において、監視対象ソフトウェアの異常動作が入力された場合、取得したインストラクションから、異常動作によって生じたインストラクションの時系列を分離する負例分離部を更に備え、負例分離部は、取得したインストラクションを、第1のモデル蓄積部に蓄積された動作モデル上でトレースし、動作モデルと異なるインストラクションが現れた時点からのインストラクション時系列を異常動作によって生じたインストラクション列である負例であると判断し、第2のモデル生成部は、負例を用いて、異常動作のモデルを生成してもよい。   Further, in the software behavior modeling device according to the first feature, when an abnormal operation of the monitored software is input, a negative example separation unit that separates a time series of instructions caused by the abnormal operation from the acquired instructions The negative example separation unit traces the acquired instruction on the behavior model accumulated in the first model accumulation unit, and the instruction time series from the point in time when the instruction different from the behavior model appears is caused by abnormal operation. The second model generation unit may determine a negative example that is an instruction sequence, and generate a model of an abnormal operation using the negative example.

統計的なモデルで判別分析を行う際、負例を学習することで、正確な判別を行うことが可能である。しかし、負例を入力するためには、異常状態のソフトウェアの動作から、異常動作によって生じたインストラクションを抽出する必要がある。   When discriminant analysis is performed using a statistical model, it is possible to perform accurate discrimination by learning a negative example. However, in order to input a negative example, it is necessary to extract the instruction caused by the abnormal operation from the operation of the software in the abnormal state.

このソフトウェア動作モデル化装置によると、正例との差分をとることができ、負例を抽出することができる。   According to this software behavior modeling device, a difference from a positive example can be taken, and a negative example can be extracted.

又、第1の特徴に係るソフトウェア動作モデル化装置は、監視対象ソフトウェアを動作させた計算機環境情報を、生成した動作モデルにメタ情報として付与するメタ情報付与部を更に備えてもよい。   The software behavior modeling apparatus according to the first feature may further include a meta information adding unit that adds, as meta information, computer environment information in which the monitoring target software is operated to the generated operation model.

インストラクションは計算機環境によって異なる。そのため、ソフトウェアの動作を検証する際には、計算機環境が同一のモデルを選択する、もしくは、検証時の環境にモデル上のインストラクションを変更する必要がある。   Instructions vary depending on the computer environment. Therefore, when verifying the operation of the software, it is necessary to select a model having the same computer environment or to change the instruction on the model to the environment at the time of verification.

このソフトウェア動作モデル化装置によると、動作モデルに計算機環境情報を付与することができ、検証時におけるモデル選択や、インストラクションの変更を可能にする。   According to this software behavior modeling apparatus, computer environment information can be given to the behavior model, and model selection and instruction change at the time of verification can be performed.

本発明の第2の特徴は、監視対象ソフトウェアの動作を監視するソフトウェア動作監視装置であって、(a)監視対象ソフトウェアが動作中に発行したインストラクションを取得するインストラクション取得部と、(b)取得したインストラクションを時系列で蓄積するインストラクション蓄積部と、(c)監視対象ソフトウェアの木構造モデルを蓄積した第1のモデル蓄積部から木構造モデルを取得し、インストラクション取得部がインストラクションを取得する度に、木構造モデル上でトレースすることで、正常動作との乖離を判定する第1の検証部と、(d)インストラクション蓄積部が蓄積したインストラクションの時系列のうち、第1の検証部が乖離と判断した時点からの時系列を検証系列とし、監視対象ソフトウェアのインストラクション発行の統計量を特徴量とした動作モデルを蓄積した第2のモデル蓄積部から動作モデルを取得し、検証系列からの統計量を生成し、動作モデルとの判別分析によって、正常動作との乖離を判定する第2の検証部とを備えるソフトウェア動作監視装置であることを要旨とする。   A second feature of the present invention is a software operation monitoring apparatus that monitors the operation of monitored software, (a) an instruction acquisition unit that acquires instructions issued during operation of the monitored software, and (b) acquisition Each time the instruction acquisition unit acquires an instruction, the instruction acquisition unit acquires the tree structure model from the instruction storage unit that stores the instruction in time series, and (c) the first model storage unit that stores the tree structure model of the monitored software. A first verification unit that determines a deviation from a normal operation by tracing on the tree structure model; and (d) a first verification unit that is out of the time series of instructions accumulated by the instruction accumulation unit. The time series from the point of judgment is used as the verification series, and the monitored software installation The behavior model is obtained from the second model accumulation unit that accumulates the behavior model with the statistics issued as a feature, and the statistics from the verification sequence are generated. The gist of the present invention is that it is a software operation monitoring device including a second verification unit that determines a deviation.

第2の特徴に係るソフトウェア動作監視装置によると、インストラクションをひとつずつ監視していくことで正常状態を確実に判別できる木構造モデルと、インストラクションの時系列を監視することで未学習動作と異常動作を判別できる統計モデルとを利用することができる。 木構造モデルを利用して監視している間、統計モデルを生成、取得する必要がなくなるため、効率がよい。また、未学習の動作の善悪判断が可能になる。   According to the software operation monitoring apparatus according to the second feature, a tree structure model that can reliably determine a normal state by monitoring instructions one by one, and an unlearned operation and an abnormal operation by monitoring the time series of instructions And a statistical model that can discriminate. While monitoring using a tree structure model, it is not necessary to generate and acquire a statistical model, which is efficient. Also, it is possible to judge whether the unlearned operation is good or bad.

又、第2の特徴に係るソフトウェア動作監視装置において、第2のモデル蓄積部は、監視対象ソフトウェアが発行したインストラクションの共起頻度を特徴量とする動作モデルを蓄積し、第2のモデル検証部は、検証系列からインストラクションの共起頻度を導出し、動作モデルとの判別分析によって、正常動作との乖離を判定してもよい。   Further, in the software operation monitoring apparatus according to the second feature, the second model storage unit stores an operation model having the feature amount as a co-occurrence frequency of instructions issued by the monitoring target software, and a second model verification unit May derive the co-occurrence frequency of instructions from the verification sequence and determine the deviation from the normal operation by discriminant analysis with the operation model.

このソフトウェア動作監視装置によると、動作の検証をする際、オートマトンや木構造モデルによる検証では未学習の動作を検知したら異常と判断せざるを得なかったが、インストラクションの共起頻度を利用した善悪判断をすることが可能となる。   According to this software operation monitoring device, when verifying the operation, if it was detected by an automaton or a tree structure model that an unlearned operation was detected, it was determined that the operation was abnormal. Judgment can be made.

又、第2の特徴に係るソフトウェア動作監視装置において、インストラクション蓄積部が蓄積したインストラクションの時系列を学習系列とし、第1のモデル蓄積部に蓄積された木構造モデルと、第2のモデル蓄積部に蓄積されたインストラクション発行の統計量を特徴量とする動作モデルとを、学習系列を利用して学習するモデル学習部を更に備え、モデル学習部は、第2の検証部が、監視対象ソフトウェアの動作が正常であると判定した場合のみ、モデルを学習してもよい。   Further, in the software operation monitoring apparatus according to the second feature, the time series of the instructions accumulated by the instruction accumulation unit is used as a learning sequence, the tree structure model accumulated in the first model accumulation unit, and the second model accumulation unit A model learning unit that learns, using a learning sequence, an operation model that uses the issuance statistic accumulated in the instruction as a feature amount, and the model learning unit includes a second verification unit, The model may be learned only when it is determined that the operation is normal.

統計量を利用した動作モデルは、インストラクションの時系列から統計量を計算するコストが発生するため、できる限り利用しないようにしたほうがよい。   The behavior model using statistics is not used as much as possible because the cost of calculating the statistics from the time series of instructions is generated.

このソフトウェア動作監視装置によると、未学習動作を木構造モデルへ反映することができるため、次回の監視が効率よく行える。   According to this software operation monitoring device, the unlearned operation can be reflected in the tree structure model, so that the next monitoring can be performed efficiently.

又、第2の特徴に係るソフトウェア動作監視装置において、検証系列は、監視対象ソフトウェアが終了するまでに発行されたインストラクションの時系列の部分列の集合であってもよい。又、この部分列は、インストラクションの時系列を監視対象ソフトウェアがシステムコールを発行するタイミングで区切ることで生成されてもよい。   In the software operation monitoring apparatus according to the second feature, the verification sequence may be a set of time-series subsequences of instructions issued until the monitored software ends. This partial sequence may be generated by dividing the time series of instructions by the timing at which the monitoring target software issues a system call.

第2の検証部で統計量を計算することになるが、終了までのインストラクションの列を統計量計算の対象とするよりも、サブシーケンスを対象としたほうが、異常検知を早く行うことが可能であり、かつ、シーケンスに攻撃コードが含まれる場合には、統計量を計算するシーケンスのうち攻撃コードが閉める割合が大きくなり、より正常動作との乖離を判定しやすくなる。サブシーケンスの終了を決定するトリガは、あらかじめ与えた定数分のインストラクションが発行される、システムコールが発行される、jmp、call、retなど現在動作しているアドレスから離れたアドレスへ動作を遷移させるインストラクションが発行される、などである。特にシステムコールを利用したものは、システムコールがどのようなインストラクション発行を経て発行されたのかを検査するよいタイミングである。攻撃者がプログラムの脆弱性をついてシステムになんらかの影響を与えるためには、システムコールを発行しなければならないが、システムコールの発行タイミングでサブシーケンスを区切ることで、脆弱性をつく攻撃コードを検知できる可能性が高くなる。   Statistics are calculated by the second verification unit, but it is possible to detect anomalies more quickly by targeting subsequences than by calculating the sequence of instructions up to the end. When the attack code is included in the sequence, the rate at which the attack code is closed in the sequence for calculating the statistic is increased, and it is easier to determine the deviation from the normal operation. The trigger that determines the end of the sub-sequence is issued by a predetermined number of instructions, a system call is issued, jmp, call, ret, etc. Instructions are issued, etc. In particular, when a system call is used, it is a good timing to inspect through which instruction issuance the system call is issued. An attacker must issue a system call in order to affect the system with a program vulnerability, but it detects attack code that creates a vulnerability by dividing the subsequence at the issue timing of the system call. The possibility of being able to be increased.

本発明によると、偽装攻撃を防止するとともに、未学習動作が検知された場合の善悪判断を行うことができるソフトウェア動作モデル化装置及びソフトウェア動作監視装置を提供することができる。   According to the present invention, it is possible to provide a software behavior modeling device and a software behavior monitoring device that can prevent a spoofing attack and can make a good / bad judgment when an unlearned motion is detected.

次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には、同一又は類似の符号を付している。但し、図面は模式的なものであることに留意すべきである。   Next, embodiments of the present invention will be described with reference to the drawings. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals. However, it should be noted that the drawings are schematic.

<第1の実施の形態>
第1の実施の形態に係るソフトウェア動作モデル化装置100は、図1に示すように、監視対象ソフトウェア10を複数回試行させて、監視対象ソフトウェアの動作を表す動作モデルを生成する。又、第1の実施の形態に係るソフトウェア動作監視装置200は、図2に示すように、ソフトウェア動作モデル化装置100が生成した動作モデルを利用して監視対象ソフトウェア10の動作を監視し、異常動作がないかを検証する。
<First Embodiment>
As shown in FIG. 1, the software behavior modeling apparatus 100 according to the first embodiment causes the monitoring target software 10 to try a plurality of times, and generates an operation model representing the operation of the monitoring target software. Further, as shown in FIG. 2, the software operation monitoring apparatus 200 according to the first embodiment monitors the operation of the monitoring target software 10 using the operation model generated by the software operation modeling apparatus 100, and detects an abnormality. Verify that there is no operation.

(ソフトウェア動作モデル化装置)
ソフトウェア動作モデル化装置100は、図1に示すように、監視対象ソフトウェア10が動作中に発行するインストラクションを取得するインストラクション取得部110と、取得したインストラクションの時系列を蓄積するインストラクション蓄積部120と、インストラクション蓄積部120に蓄積されたインストラクション時系列を学習系列とみなし、動作モデルを生成するモデル生成部130と、モデル生成部130によって生成された木構造モデルを蓄積する第1のモデル蓄積部140と、モデル生成部130によって生成された共起頻度モデルを蓄積する第2のモデル蓄積部150とを備える。モデル生成部130は、インストラクション蓄積部120に蓄積されたインストラクション時系列より木構造モデルを生成する第1のモデル生成部131と、共起頻度モデルを生成する第2のモデル生成部132とを有する。
(Software behavior modeling device)
As shown in FIG. 1, the software behavior modeling device 100 includes an instruction acquisition unit 110 that acquires instructions issued during operation of the monitoring target software 10, an instruction storage unit 120 that stores a time series of the acquired instructions, An instruction time series stored in the instruction storage unit 120 is regarded as a learning series, a model generation unit 130 that generates an operation model, and a first model storage unit 140 that stores a tree structure model generated by the model generation unit 130; And a second model storage unit 150 that stores the co-occurrence frequency model generated by the model generation unit 130. The model generation unit 130 includes a first model generation unit 131 that generates a tree structure model from the instruction time series stored in the instruction storage unit 120, and a second model generation unit 132 that generates a co-occurrence frequency model. .

インストラクション取得部110は、LinuxのPTRACEを利用するなどして監視対象ソフトウェアがインストラクションを発行するたびにインストラクションを取得する。   The instruction acquisition unit 110 acquires an instruction each time the monitored software issues an instruction by using Linux PTRACE.

インストラクション蓄積部120は、取得したインストラクションを試行毎に時系列で蓄積する。   The instruction storage unit 120 stores the acquired instructions in time series for each trial.

第1のモデル生成部131は、動作モデルと学習系列とを時系列で比較し、動作モデルと異なるインストラクションが学習系列上に現れた時点で、動作モデルに新たな辺を追加することで木構造モデルを生成する。   The first model generation unit 131 compares the behavior model with the learning sequence in time series, and when an instruction different from the behavior model appears on the learning sequence, the first model generation unit 131 adds a new side to the behavior model to generate a tree structure. Generate a model.

第1のモデル蓄積部140は、第1のモデル生成部131が前回の読み込みまでで生成した木構造モデルを蓄積する。   The first model storage unit 140 stores the tree structure model generated by the first model generation unit 131 until the previous reading.

第2のモデル生成部132は、学習系列から共起頻度などの統計量を導出し、更に、第2のモデル蓄積部に蓄積された動作モデルを、統計量を用いて学習する。   The second model generation unit 132 derives a statistic such as the co-occurrence frequency from the learning sequence, and further learns the behavior model accumulated in the second model accumulation unit using the statistic.

第2のモデル蓄積部150は、第2のモデル生成部132が前回の読み込みまでで生成したインストラクション発行の共起頻度などの統計量を特徴量とする動作モデルを蓄積する。   The second model accumulating unit 150 accumulates an operation model having a statistic such as a co-occurrence frequency of instruction issuance generated by the second model generating unit 132 until the previous reading as a feature amount.

メタ情報付与部170は、監視対象ソフトウェア10を動作させた計算機環境情報を、生成した動作モデルにメタ情報として付与する。   The meta information adding unit 170 adds the computer environment information on which the monitoring target software 10 is operated as meta information to the generated operation model.

図3に動作モデルのデータ構造の例を示す。動作モデルのデータ構造は、インストラクションテーブル30、分岐先アドレステーブル40から構成される。インストラクションテーブル30は、インストラクションの識別子を記録するインストラクション名列31と、分岐先アドレステーブルへのポインタを記録する分岐ポインタ列32とから構成され、インストラクションの時系列、すなわち、木構造の辺を表す。分岐先アドレステーブル40は、インストラクションテーブルのアドレスを格納する分岐先アドレス列41の配列であり、分岐前のインストラクションと、分岐先の辺をリンクする。   FIG. 3 shows an example of the data structure of the behavior model. The data structure of the behavior model is composed of an instruction table 30 and a branch destination address table 40. The instruction table 30 includes an instruction name string 31 that records an instruction identifier and a branch pointer string 32 that records a pointer to a branch destination address table, and represents an instruction time series, that is, a tree-structured edge. The branch destination address table 40 is an array of a branch destination address column 41 that stores the address of the instruction table, and links the instruction before branching with the branch destination side.

(ソフトウェア動作モデル化方法)
次に、第1の実施の形態に係るソフトウェア動作モデル化方法について、図4〜7を用いて説明する。図4は、第1のモデル生成部131が、インストラクション蓄積部120に蓄積されたインストラクション時系列より木構造モデルを生成するフローチャートの例である。木構造モデル化には、モデル化関数、モデル化関数に呼ばれ初期モデルを生成する生成関数、モデル化関数に呼ばれ第1のモデル蓄積部140に蓄積された木構造モデルを学習する学習関数が用いられる。
(Software behavior modeling method)
Next, the software behavior modeling method according to the first embodiment will be described with reference to FIGS. FIG. 4 is an example of a flowchart in which the first model generation unit 131 generates a tree structure model from the instruction time series stored in the instruction storage unit 120. The tree structure modeling includes a modeling function, a generation function that is called by the modeling function and generates an initial model, and a learning function that is called by the modeling function and learns the tree structure model stored in the first model storage unit 140. Is used.

まず、ステップS101において、モデル化関数は、第1のモデル蓄積部140に蓄積された監視対象ソフトウェアの動作モデルを取得する。   First, in step S <b> 101, the modeling function acquires an operation model of the monitoring target software stored in the first model storage unit 140.

次に、ステップS102において、モデル取得に成功したか否か判断し、成功した場合は、ステップS103へ進み、学習関数を呼び出し、失敗した場合は、ステップS104へ進み、生成関数を呼び出す。ステップS103の学習処理と、ステップS104の生成処理は、後に詳述する。   Next, in step S102, it is determined whether or not the model acquisition is successful. If successful, the process proceeds to step S103, and the learning function is called. If unsuccessful, the process proceeds to step S104 and the generation function is called. The learning process in step S103 and the generation process in step S104 will be described in detail later.

次に、ステップS105において、生成もしくは学習された動作モデルを第1のモデル蓄積部140へ蓄積する。この際、インストラクションを取得した際の環境情報(例えば、インテルx86プロセッサ等のプロセッサ情報。プロセッサが変わればインストラクション名も変わる)をモデルへ付与することによって、次回、モデルを学習する際や、検証時に、適したモデルを選択することができる。環境情報の取得とメタ情報の付与は、メタ情報付与部170が行う。環境情報の取得は、環境情報を格納している箇所、たとえば、Linuxの場合、/proc/cpuinfoにはCPUの情報がおかれているが、/proc/cpuinfoなどを見るなどして取得する。取得した情報はメタ情報としてモデルへ付与される。   Next, in step S <b> 105, the generated or learned behavior model is accumulated in the first model accumulation unit 140. At this time, the environment information (for example, processor information of Intel x86 processor etc., the instruction name will change if the processor changes) at the time of acquiring the instruction is given to the model. A suitable model can be selected. Acquisition of environmental information and addition of meta information are performed by the meta information adding unit 170. The environment information is acquired by looking at the location where the environment information is stored, for example, in Linux, / proc / cpuinfo contains CPU information, but looks at / proc / cpuinfo. The acquired information is given to the model as meta information.

次に、図4のステップS104の詳細について、図5を用いて説明する。   Next, details of step S104 in FIG. 4 will be described with reference to FIG.

ステップS201において、生成関数は、インストラクション蓄積部120より監視対象ソフトウェアのインストラクション時系列を取得する。   In step S <b> 201, the generation function acquires the instruction time series of the monitoring target software from the instruction accumulation unit 120.

次に、ステップS202において、取得に成功したか否かを判断し、取得に失敗した場合、ステップS203へ進み、エラー処理を行い、関数を終了する。一方、成功した場合、ステップS204へ進み、インストラクションを時系列の先頭から順に読み込む。   Next, in step S202, it is determined whether the acquisition has succeeded. If the acquisition has failed, the process proceeds to step S203 to perform error processing, and the function ends. On the other hand, if successful, the process proceeds to step S204, and the instructions are read sequentially from the beginning of the time series.

次に、ステップS205において、インストラクション読み込みが終了した場合、生成関数を終了する。   Next, in step S205, when the instruction reading is finished, the generation function is finished.

一方、ステップS205において、インストラクション読み込みが終了していなければ、ステップS206において、インストラクションテーブルを作成し、ステップS207において、インストラクション名をインストラクション名列に、ヌルを分岐ポインタ列へ格納する。そして、ステップS204へ戻り、次のインストラクションを取得する。   On the other hand, if the instruction reading has not been completed in step S205, an instruction table is created in step S206, and in step S207, the instruction name is stored in the instruction name string and null is stored in the branch pointer string. Then, the process returns to step S204 to acquire the next instruction.

次に、図4のステップS103の詳細について、図6を用いて説明する。   Next, details of step S103 in FIG. 4 will be described with reference to FIG.

まず、ステップS301において、学習関数は、インストラクション蓄積部120より監視対象ソフトウェアのインストラクション時系列を取得する。   First, in step S <b> 301, the learning function acquires an instruction time series of the monitoring target software from the instruction storage unit 120.

ステップS302において、取得に成功したか否か判断し、取得に失敗した場合、ステップS303へ進み、エラー処理を行い、関数を終了する。一方、成功した場合、ステップS304へ進み、インストラクションを時系列の先頭から順に読み込む。   In step S302, it is determined whether or not the acquisition has succeeded. If the acquisition has failed, the process proceeds to step S303, error processing is performed, and the function is terminated. On the other hand, if successful, the process proceeds to step S304, and the instructions are read sequentially from the beginning of the time series.

次に、インストラクション読み込みが終了したか否か判断し、終了した場合、生成関数を終了する。終了していなければ、ステップS306へ進み、木をトレースする。木トレースについては、後に詳述する。   Next, it is determined whether or not the instruction reading has been completed. If it has been completed, the generation function is terminated. If not completed, the process proceeds to step S306 to trace the tree. The tree trace will be described in detail later.

次に、ステップS307において、トレースした結果、「読み込んだインストラクションは存在している」と判断すると、次のインストラクションを取得し、「新しい」と判断した場合、ステップS308へ進む。そして、ステップS308において、インストラクションテーブルを生成し、ステップS309において、分岐先アドレステーブルを生成し、新規に生成したインストラクションテーブルのアドレスを分岐先アドレス列に格納する。そして、ステップS310において、インストラクション名をインストラクション名列に、分岐先アドレステーブルのアドレスを分岐ポインタ列へ格納し、ステップS304へ戻り、次のインストラクションを取得する。   Next, in step S307, if it is determined that “the read instruction exists” as a result of tracing, the next instruction is acquired. If it is determined that “new”, the process proceeds to step S308. In step S308, an instruction table is generated. In step S309, a branch destination address table is generated, and the address of the newly generated instruction table is stored in the branch destination address string. In step S310, the instruction name is stored in the instruction name string and the address of the branch destination address table is stored in the branch pointer string, and the process returns to step S304 to acquire the next instruction.

次に、図6のステップS306の詳細について、図7を用いて説明する。   Next, details of step S306 in FIG. 6 will be described with reference to FIG.

まず、ステップS401において、現在トレースしているアドレスを示す現在位置を利用して、インストラクションテーブルの内容を確認する。   First, in step S401, the contents of the instruction table are confirmed using the current position indicating the currently traced address.

次に、ステップS402において、インストラクション名に取得したインストラクションが登録されているかを確認し、登録されていれば(インストラクションが新規でない場合)、ステップS410へ進み、存在していると判断する。そして、ステップS405において、現在位置を次のアドレスに更新し、木トレースを終了する。   Next, in step S402, it is confirmed whether or not the acquired instruction is registered in the instruction name. If the instruction is registered (if the instruction is not new), the process proceeds to step S410 to determine that it exists. In step S405, the current position is updated to the next address, and the tree trace is terminated.

一方、ステップS402において、登録されていなければ、分岐ポインタの値を確認し、ヌルであれば、ステップS404へ進み、新規インストラクションであると判断し、ステップS405において、現在位置を次のアドレスに更新し木トレースを終了する。   On the other hand, if it is not registered in step S402, the value of the branch pointer is confirmed. If it is null, the process proceeds to step S404, where it is determined that the instruction is a new instruction, and in step S405, the current position is updated to the next address. Ends the tree trace.

ステップS403において、ヌルでなければ、ステップS406において、分岐ポインタの値を利用して分岐先アドレステーブルを引き、分岐先アドレスを順に取得する。   If it is not null in step S403, a branch destination address table is looked up using the value of the branch pointer in step S406, and branch destination addresses are obtained in order.

次に、ステップS407において、取得が成功したか否か判断し、成功した場合は、ステップS408へ進み、分岐先アドレスが引くインストラクションテーブルの先頭のインストラクション名を確認する。そして、ステップS409において、取得したインストラクションが登録されているかを確認し、登録されていれば(インストラクションが新規でない場合)、ステップS410へ進み、存在していると判断する。そして、ステップS405において、現在位置を次のアドレスに更新し、木トレースを終了する。一方、ステップS409において、登録されていなければ、ステップS406へ戻り、次の分岐先アドレスを取得する。   Next, in step S407, it is determined whether or not the acquisition is successful. If the acquisition is successful, the process proceeds to step S408, and the instruction name at the head of the instruction table to which the branch destination address is drawn is confirmed. In step S409, it is confirmed whether or not the acquired instruction is registered. If it is registered (if the instruction is not new), the process proceeds to step S410, and it is determined that it exists. In step S405, the current position is updated to the next address, and the tree trace is terminated. On the other hand, if it is not registered in step S409, the process returns to step S406 to acquire the next branch destination address.

一方、ステップS407において、取得が失敗した場合、ステップ
S404において、新規インストラクションであると判断し、ステップS405において、現在位置を次のアドレスに更新し、木トレースを終了する。
On the other hand, if the acquisition fails in step S407, it is determined that the instruction is a new instruction in step S404. In step S405, the current position is updated to the next address, and the tree trace is terminated.

次に、図8〜10を用いて、モデルが学習される様子を説明する。   Next, how the model is learned will be described with reference to FIGS.

図8は、インストラクション蓄積部120に蓄積されたインストラクション時系列である。最左列には通し番号がふられており、1から順に読み込まれ、モデルに変換される。   FIG. 8 is an instruction time series stored in the instruction storage unit 120. A serial number is assigned to the leftmost column, which is read sequentially from 1 and converted into a model.

図9は2番のインストラクション時系列を読み込んで学習が終了した時点のモデルである。時系列上6番目のインストラクションにおいて、1番の時系列ではjmp、2番の時系列ではpopが存在しているため、jmpの分岐ポインタ列には分岐先アドレステーブルへのアドレス(AAAAAAAA)が登録され、分岐先アドレステーブルによって、第2のインストラクションテーブルが引かれるように学習されている。   FIG. 9 shows a model at the time when learning is completed after reading the second instruction time series. In the 6th instruction in the time series, jmp in the 1st time series and pop in the 2nd time series exist, so the address (AAAAAAAA) to the branch destination address table is registered in the jmp branch pointer column. The second instruction table is learned by the branch destination address table.

図10は、3番のインストラクション時系列を読み込んで学習が終了した時点のモデルである。順次インストラクション時系列が読み込まれるが、3番のインストラクション時系列上の19番目のインストラクションにおいて、図8のモデルに登録されていない新たなインストラクションmovが存在しているため、jmpの分岐ポインタ列には分岐アドレステーブルへのアドレス(BBBBBBBB)が登録され、分岐先アドレステーブルによって第3のインストラクションテーブルが引かれるよう学習されている。   FIG. 10 is a model at the time when learning is completed after reading the third instruction time series. The instruction time series is sequentially read, but in the 19th instruction on the 3rd instruction time series, there is a new instruction mov that is not registered in the model of FIG. The address (BBBBBBBB) to the branch address table is registered, and it is learned that the third instruction table is drawn by the branch destination address table.

次に、第1の実施の形態に係るソフトウェア動作モデル化方法について、図11〜図13を用いて説明する。第2のモデル生成部132は、インストラクション蓄積部120に蓄積されたインストラクションの時系列からN-gramを生成し、各N-gramの出現確率を動作モデルとして生成することを特徴とする。ここで計算される出現確率は、各N-gramの出現頻度を、生成したすべてのN-gramの出現頻度の総和で除算して求めるが、この分母は、複数回の試行により得られたインストラクションの時系列から生成されたN-gramを総合して求めてもよいし、試行ごと求めてもよい。   Next, a software behavior modeling method according to the first embodiment will be described with reference to FIGS. The second model generation unit 132 generates an N-gram from the time series of instructions stored in the instruction storage unit 120, and generates the appearance probability of each N-gram as an operation model. The appearance probability calculated here is obtained by dividing the appearance frequency of each N-gram by the sum of the appearance frequencies of all the generated N-grams. This denominator is an instruction obtained from multiple trials. N-grams generated from the time series may be obtained in a comprehensive manner, or may be obtained for each trial.

図11に、第2のモデル生成部132の動作例を表すフローチャートを示す。第2のモデル生成部132は、モデル化関数、生成関数、学習関数からなる。   FIG. 11 is a flowchart illustrating an operation example of the second model generation unit 132. The second model generation unit 132 includes a modeling function, a generation function, and a learning function.

まず、ステップS501において、モデル化関数は、第2のモデル蓄積部150から監視対象ソフトウェアに対応するモデルを取得する。   First, in step S <b> 501, the modeling function acquires a model corresponding to the monitoring target software from the second model storage unit 150.

そして、ステップS502において、取得に成功した場合は、ステップS503へ進み、取得に失敗した場合は、ステップS504へ進む。ステップS503及びステップS504の詳細は、後に詳述する。   If acquisition is successful in step S502, the process proceeds to step S503. If acquisition fails, the process proceeds to step S504. Details of step S503 and step S504 will be described later.

次に、ステップS505において、学習、生成されたモデルを第2のモデル蓄積部150に蓄積する。蓄積の際には、インストラクションを取得した際の環境情報をモデルへ付与することによって、次回モデルを学習する際や、検証時に、適したモデルを選択することができる。   Next, in step S <b> 505, the learned and generated model is stored in the second model storage unit 150. When accumulating, the environment information obtained when the instruction is acquired is given to the model, so that a suitable model can be selected when learning the model next time or at the time of verification.

次に、図11のステップS504の詳細について、図12を用いて説明する。   Next, details of step S504 in FIG. 11 will be described with reference to FIG.

まず、ステップS601において、生成関数では、インストラクション蓄積部120からインストラクション時系列を取得する。ステップS602において、取得に成功した場合、ステップS304へ進み、N-gramを生成する。そして、ステップS305において、各N-gramの出現頻度を計算し、生成を終了する。   First, in step S601, in the generation function, an instruction time series is acquired from the instruction storage unit 120. If acquisition is successful in step S602, the process proceeds to step S304 to generate an N-gram. In step S305, the appearance frequency of each N-gram is calculated, and the generation ends.

一方、ステップS602において、取得失敗した場合、エラー処理後に生成を終了する。   On the other hand, if acquisition fails in step S602, generation is terminated after error processing.

ここで生成されるN-gramは、たとえばひとつのインストラクションを1ワードとした連続Nワードの列であり、たとえば“A New Method of N-gram Statistics for Large Number of n and Automatic Extraction of Words and Phrases from Large Text Data of Japanese”に記載のアルゴリズムを用いるなどして生成される。本実施形態では、ひとつのインストラクションを1ワードとして取り扱うが、複数のインストラクションを1ワードとしてもよく、機能を限定するものではない。   The N-gram generated here is, for example, a sequence of consecutive N words with one instruction as one word. For example, “A New Method of N-gram Statistics for Large Number of n and Automatic Extraction of Words and Phrases from It is generated by using the algorithm described in “Large Text Data of Japanese”. In the present embodiment, one instruction is handled as one word, but a plurality of instructions may be handled as one word, and the function is not limited.

次に、図11のステップS503の詳細について、図13を用いて説明する。   Next, details of step S503 in FIG. 11 will be described with reference to FIG.

まず、ステップS701において、学習関数では、インストラクション蓄積部110からインストラクション時系列を取得し、取得に成功した場合、ステップS704において、上記の方法を用いるなどしてN-gramを生成し、ステップS705において、モデルの各N-gramの出現頻度の更新および新しいエントリを追加する。   First, in step S701, the learning function acquires an instruction time series from the instruction storage unit 110, and when acquisition is successful, in step S704, an N-gram is generated using the above method, and in step S705. , Update the frequency of appearance of each N-gram in the model and add new entries.

一方、ステップS702において、取得に失敗した場合、エラー処理後に生成を終了する。   On the other hand, if acquisition fails in step S702, generation is terminated after error processing.

図14にN-gramの例を示す。最右に位置する数字が出現頻度である。本実施形態では3-gramを例としているが、Nの数を限定するものではない。   FIG. 14 shows an example of an N-gram. The number located on the right is the appearance frequency. In this embodiment, 3-gram is taken as an example, but the number of N is not limited.

N-gramとは、言語処理の手法の一つで、ストリーム上の連続したN個の文字あるいは単語の列であり、軽量なアルゴリズムで文字や単語の共起関係を把握できる、優れた手法である。ソフトウェアとは、ソースコードとソースコードから呼ばれるライブラリ上のバイナリコードで構成される。すなわち、動作の異なるソフトウェアを生成するためには、おおむねソースコードを変更することになる。又、ソフトウェアには、外部からの実行コードの参入を許し、動的に動作を変更できるものも存在するが、ソフトウェア実行中に発行されるインストラクションは、動作の変更にともない変化する。すなわち、どちらの場合においても、動作が変化すれば正常状態とは異なる共起関係を有するインストラクション時系列を発行する。   N-gram is a linguistic processing method that consists of a sequence of N characters or words in a stream, and is an excellent method that can understand the co-occurrence of characters and words with a lightweight algorithm. is there. The software is composed of source code and binary code on a library called from the source code. That is, in order to generate software having different operations, the source code is generally changed. Some software allows the execution code to be entered from the outside and can dynamically change the operation, but the instruction issued during the execution of the software changes as the operation changes. That is, in either case, if the operation changes, an instruction time series having a co-occurrence relationship different from the normal state is issued.

正常かつ未学習の動作の場合は、同一のソースコードから発行されるインストラクションであれば、モデルと統計的に近いサンプルが得られる可能性が高い。なぜならば、同一の環境下でコンパイラを通って生成されたインストラクションであるからである。攻撃者の作成する攻撃コードは、アセンブラ(又は機械語)でかかれることが多く、ソフトウェアの被攻撃時には、実行コードが発行するインストラクションとは異なる共起関係を有するインストラクション時系列を発行する可能性が高い。   In the case of a normal and unlearned operation, a sample that is statistically close to the model is likely to be obtained if the instruction is issued from the same source code. This is because the instructions are generated through a compiler under the same environment. Attack code created by attackers is often written in assembler (or machine language), and when attacked by software, there is a possibility of issuing an instruction time series having a co-occurrence relationship different from the instruction issued by the execution code. high.

(ソフトウェア動作監視装置)
ソフトウェア動作監視装置200は、図2に示すように、監視対象ソフトウェア10を入力とし、ソフトウェア動作モデル化装置100によって生成された木構造モデルを蓄積する第1のモデル蓄積部250と、インストラクション発行の統計量(例えばインストラクションの共起頻度)を特徴とした動作モデルを蓄積する第2のモデル蓄積部260と接続する。
(Software operation monitoring device)
As shown in FIG. 2, the software operation monitoring apparatus 200 has a first model storage unit 250 that receives the monitoring target software 10 and stores the tree structure model generated by the software operation modeling apparatus 100, and an instruction issuance instruction. It is connected to a second model accumulation unit 260 that accumulates an operation model characterized by a statistic (for example, the co-occurrence frequency of instructions).

又、第1の実施の形態に係るソフトウェア動作監視装置200は、監視対象ソフトウェア10が動作中に発行したインストラクションを取得するインストラクション取得部210と、取得したインストラクションを時系列で蓄積するインストラクション蓄積部220と、インストラクション取得部210がインストラクションを取得するたびに第1のモデル蓄積部250から取得した木構造モデルで監視対象ソフトウェアの発行するインストラクションを検証する第1の検証部230と、インストラクション蓄積部220に蓄積したインストラクション時系列のうち、第1の検証部230が動作の異常を検知してからのインストラクションを検証系列としてとらえ、第2のモデル蓄積部260から取得したインストラクション発行の統計量(例えばインストラクションの共起頻度)を特徴とした動作モデルで監視対象ソフトウェアの発行するインストラクションを検証する第2の検証部240とを備え、第2の検証部240は、第1の検証部230がソフトウェア動作に異常を検知した場合にのみ動作する。   Also, the software operation monitoring apparatus 200 according to the first embodiment includes an instruction acquisition unit 210 that acquires instructions issued while the monitoring target software 10 is operating, and an instruction storage unit 220 that stores the acquired instructions in time series. Each time the instruction acquisition unit 210 acquires an instruction, the instruction verification unit 230 that verifies the instruction issued by the monitored software with the tree structure model acquired from the first model storage unit 250, and the instruction storage unit 220 Of the accumulated instruction time series, the instruction issued after the first verification unit 230 detects an abnormal operation is regarded as a verification series, and the instruction issuance statistics obtained from the second model storage unit 260 (example) For example, a second verification unit 240 that verifies instructions issued by the monitored software with an operation model characterized by the co-occurrence frequency of instructions). Operates only when an abnormality is detected in the operation.

即ち、第1の検証部230は、監視対象ソフトウェアの木構造モデルを蓄積した第1のモデル蓄積部250から木構造モデルを取得し、インストラクション取得部210がインストラクションを取得する度に、木構造モデル上でトレースすることで、正常動作との乖離を判定する。   That is, the first verification unit 230 acquires the tree structure model from the first model storage unit 250 that stores the tree structure model of the monitoring target software, and each time the instruction acquisition unit 210 acquires the instruction, the tree structure model is acquired. The deviation from the normal operation is determined by tracing above.

又、第2の検証部240は、インストラクション蓄積部220が蓄積したインストラクションの時系列のうち、第1の検証部230が乖離と判断した時点からの時系列を検証系列とし、監視対象ソフトウェアのインストラクション発行の共起頻度などの統計量を特徴量とした動作モデルを蓄積した第2のモデル蓄積部260から動作モデルを取得し、検証系列からの統計量を生成し、動作モデルとの判別分析によって、正常動作との乖離を判定する。   In addition, the second verification unit 240 uses the time series from the time point when the first verification unit 230 determines that there is a divergence among the time series of instructions stored by the instruction storage unit 220 as the verification series, and the instructions of the monitored software The behavior model is acquired from the second model accumulation unit 260 that accumulates the behavior model having the statistic such as the co-occurrence frequency of the issue as a feature amount, the statistic is generated from the verification sequence, and the discriminant analysis with the behavior model is performed. The deviation from the normal operation is determined.

モデル学習部270は、インストラクション蓄積部220が蓄積したインストラクションの時系列を学習系列とし、第1のモデル蓄積部250に蓄積された木構造モデルと、第2のモデル蓄積部260に蓄積されたインストラクション発行の統計量を特徴量とする動作モデルとを、学習系列を利用して学習する。そして、モデル学習部270は、第2の検証部240が、監視対象ソフトウェアの動作が正常であると判定した場合のみ、モデルを学習する。   The model learning unit 270 uses the time series of the instructions accumulated by the instruction accumulation unit 220 as a learning sequence, the tree structure model accumulated in the first model accumulation unit 250, and the instructions accumulated in the second model accumulation unit 260. The learning model is learned using the learning sequence with the statistical amount of issue as a feature value. The model learning unit 270 learns the model only when the second verification unit 240 determines that the operation of the monitoring target software is normal.

又、検証系列は、監視対象ソフトウェアが終了するまでに発行されたインストラクションの時系列の部分列の集合である。この部分列は、インストラクションの時系列を監視対象ソフトウェアがシステムコールを発行するタイミングで区切ることで生成される。   The verification sequence is a set of time series subsequences of instructions issued until the monitored software is terminated. This partial sequence is generated by dividing the time series of instructions by the timing at which the monitoring target software issues a system call.

尚、第1のモデル蓄積部140と第1のモデル蓄積部250は同一のものでもよい。又、第2のモデル蓄積部150と第2のモデル蓄積部260は同一のものでもよい。   The first model storage unit 140 and the first model storage unit 250 may be the same. Further, the second model storage unit 150 and the second model storage unit 260 may be the same.

(ソフトウェア動作監視方法)
次に、第1の実施の形態に係るソフトウェア動作監視方法について、図15及び図16を用いて説明する。
(Software operation monitoring method)
Next, a software operation monitoring method according to the first embodiment will be described with reference to FIGS. 15 and 16.

図15は、第1の検証部230の動作例を示すフローチャートである
まず、ステップS901において、監視対象ソフトウェアの動作モデルを第1のモデル蓄積部250から取得する。このとき、監視対象ソフトウェアの動作環境を取得しておいて、動作モデルに付与されているメタ情報と突合し、動作環境にあわせたモデルを取得するとよい。
FIG. 15 is a flowchart illustrating an operation example of the first verification unit 230. First, in step S901, an operation model of the monitoring target software is acquired from the first model storage unit 250. At this time, it is preferable to acquire the operating environment of the monitoring target software, collate with the meta information given to the operating model, and acquire the model according to the operating environment.

次に、ステップS902において、インストラクション蓄積部220に蓄積されたインストラクションを順次取得する。そして、ステップS903において、終了したか否か判断し、終了したならば、ステップS904において、正常と判定して、ステップS908において、判定結果を出力し、監視を終了する。   Next, in step S902, the instructions accumulated in the instruction accumulation unit 220 are sequentially acquired. Then, in step S903, it is determined whether or not the process has been completed. If the process has been completed, it is determined that the process is normal in step S904, the determination result is output in step S908, and the monitoring is terminated.

一方、ステップS903において、終了していなければ、ステップS905において、木トレース(詳細は、図7参照。)を呼び出す。   On the other hand, if it is not completed in step S903, a tree trace (refer to FIG. 7 for details) is called in step S905.

次に、ステップS906において、判定結果が新規であるか否か判断し、新規である場合は、ステップS907において、異常と判定し、ステップS908において、結果を出力し、監視を終了する。   Next, in step S906, it is determined whether or not the determination result is new. If the determination result is new, it is determined in step S907 that the determination is abnormal. In step S908, the result is output and monitoring is terminated.

一方、ステップS906において、判定結果が新規でない場合、即ち、存在であった場合、ステップS902へ戻り、次のインストラクションを取得する。   On the other hand, if the determination result is not new in step S906, that is, if it is present, the process returns to step S902 to acquire the next instruction.

以下、図8〜図10を用いて、監視対象ソフトウェアが監視される様子を説明する。   Hereinafter, how the monitoring target software is monitored will be described with reference to FIGS.

第1のモデル蓄積部250に、モデル生成のときに説明した図9記載のモデルが蓄積されているとし、図8記載のインストラクション時系列の1番がインストラクション蓄積部220に蓄積されているとする。   9 is stored in the first model storage unit 250, and the instruction time series No. 1 described in FIG. 8 is stored in the instruction storage unit 220. .

インストラクション時系列の先頭からインストラクションが順次読み込まれ、モデルとの乖離判定を行う。この場合、インストラクション時系列上のすべてのインストラクションが、モデル上に存在している(木トレースの結果が「存在」)ことから、動作検証部は正常である旨の結果を出力する。   Instructions are sequentially read from the beginning of the instruction time series, and the deviation from the model is determined. In this case, since all the instructions on the instruction time series exist on the model (the result of the tree trace is “existence”), the operation verification unit outputs a result indicating that it is normal.

次に、第1のモデル蓄積部250に、モデル生成のときに説明した図9記載のモデルが蓄積されているとし、図8記載のインストラクション時系列の3番がインストラクション蓄積部220に蓄積されているとする。インストラクション時系列の先頭からインストラクションが順次読み込まれ、モデルとの乖離判定を行う。この場合、19番目のインストラクションにおいて、新規インストラクションmovが検知され、動作検証部は異常である旨の結果を出力する。   Next, it is assumed that the model illustrated in FIG. 9 described when generating the model is stored in the first model storage unit 250, and the instruction time series No. 3 illustrated in FIG. 8 is stored in the instruction storage unit 220. Suppose that Instructions are sequentially read from the beginning of the instruction time series, and the deviation from the model is determined. In this case, in the 19th instruction, a new instruction mov is detected, and the operation verification unit outputs a result indicating that it is abnormal.

図16は、第2の検証部240の動作例を示すフローチャートである。   FIG. 16 is a flowchart illustrating an operation example of the second verification unit 240.

まず、ステップS1001において、第2の検証部240は、監視対象ソフトウェアの動作モデルを第2のモデル蓄積部260から取得する。このとき、監視対象ソフトウェアの動作環境を取得しておいて、動作モデルに付与されているメタ情報と突合し、動作環境にあわせたモデルを取得するとよい。   First, in step S <b> 1001, the second verification unit 240 acquires an operation model of the monitoring target software from the second model accumulation unit 260. At this time, it is preferable to acquire the operating environment of the monitoring target software, collate with the meta information given to the operating model, and acquire the model according to the operating environment.

次に、ステップS1002において、インストラクション蓄積部220に蓄積されたインストラクション時系列から 検証系列を取得する。検証系列とは異常判定が起きたインストラクションから終了までのインストラクションの列、あるいはそのサブシーケンスである。第2の検証部240が統計的な判断を行う際、統計量を計算することになるが、終了までのインストラクションの列を統計量計算の対象とするよりも、サブシーケンスを対象としたほうが、異常検知を早く行うことが可能であり、かつ、シーケンスに攻撃コードが含まれる場合には、統計量を計算するシーケンスのうち攻撃コードが閉める割合が大きくなり、より正常動作との乖離を判定しやすくなる。サブシーケンスの終了を決定するトリガは、あらかじめ与えた定数分のインストラクションが発行される、システムコールが発行される、jmp、call、retなど現在動作しているアドレスから離れたアドレスへ動作を遷移させるインストラクションが発行される、などである。特にシステムコールを利用したものは、システムコールがどのようなインストラクション発行を経て発行されたのかを検査するよいタイミングである。攻撃者がプログラムの脆弱性をついてシステムになんらかの影響を与えるためには、システムコールを発行しなければならないが、システムコールの発行タイミングでサブシーケンスを区切ることで、脆弱性をつく攻撃コードを検知できる可能性が高くなる。ただし、本実施例では、サブシーケンスの場合の説明をするが、機能を限定するものではない。   Next, in step S1002, a verification sequence is acquired from the instruction time series stored in the instruction storage unit 220. The verification sequence is a sequence of instructions from the instruction at which abnormality determination occurs to the end, or a subsequence thereof. When the second verification unit 240 makes a statistical decision, a statistic is calculated. However, it is better to target a subsequence than to target a column of instructions until the end of the statistic calculation. If it is possible to detect anomalies early and an attack code is included in the sequence, the attack code close ratio increases in the sequence for calculating statistics, and the deviation from normal operation is judged more. It becomes easy. The trigger that determines the end of the sub-sequence is issued by a predetermined number of instructions, a system call is issued, jmp, call, ret, etc. Instructions are issued, etc. In particular, when a system call is used, it is a good timing to inspect through which instruction issuance the system call is issued. An attacker must issue a system call in order to affect the system with a program vulnerability, but it detects attack code that creates a vulnerability by dividing the subsequence at the issue timing of the system call. The possibility of being able to be increased. However, in this embodiment, the case of the sub-sequence will be described, but the function is not limited.

次に、ステップS1003において、インストラクションの時系列を取得し、取得が終了したか否か判断し、取得が終了した場合、ステップS1004において、正常動作であると判定する。そして、ステップS1005において、判定結果を出力して監視を終了する。   Next, in step S1003, a time series of instructions is acquired, and it is determined whether the acquisition is completed. If the acquisition is completed, it is determined in step S1004 that the operation is normal. In step S1005, the determination result is output and monitoring is terminated.

一方、ステップS1003において、取得が終了していなければ、ステップS1006において、時系列よりN-gramを生成し、ステップS1007において、各N-gramの出現頻度を計算し、出現確率を導出しておく。   On the other hand, if the acquisition is not completed in step S1003, an N-gram is generated from the time series in step S1006. In step S1007, the appearance frequency of each N-gram is calculated, and the appearance probability is derived. .

次に、ステップS1008において、取得していた動作モデルと、先ほど生成したN-gramの出現確率を判別分析にかける。判別分析は、適当に閾値を定めることによる線形判別分析を用いるなどして、外れ値を検知する。   Next, in step S1008, the acquired behavior model and the appearance probability of the N-gram generated earlier are subjected to discriminant analysis. The discriminant analysis detects outliers by using linear discriminant analysis by appropriately setting a threshold value.

ステップS1009において、判別分析の結果、正常であるか否か判断し、正常である場合は、ステップS1002へ戻り、次のインストラクション時系列を取得する。   In step S1009, it is determined whether or not it is normal as a result of the discriminant analysis. If it is normal, the process returns to step S1002 to acquire the next instruction time series.

一方、ステップS1009において、異常であると判定された場合は、ステップS1010において、異常であると判断し、ステップS1011において、異常である旨を出力して、監視を終了する。   On the other hand, if it is determined in step S1009 that it is abnormal, it is determined in step S1010 that it is abnormal, in step S1011 it is output that it is abnormal, and monitoring is terminated.

(作用及び効果)
第1の実施の形態に係るソフトウェアモデル動作モデル化装置及びソフトウェアモデル化方法によると、木構造モデル化を行うことによって、システムコールよりも詳細なデータであるインストラクションの時系列を利用した監視を行うことができ、偽装攻撃をほぼ不可能にできるモデルを生成できる。かつ、モデルの各状態は、プログラムカウンタなど入り線を複数にする情報を含めないため、過去の条件分岐の結果はモデルが保持していることとなる。すなわち、条件分岐を正しく検証することが可能なモデルを生成できる。
(Action and effect)
According to the software model behavior modeling apparatus and the software modeling method according to the first embodiment, by performing tree structure modeling, monitoring is performed using a time series of instructions that are more detailed data than system calls. And can generate a model that can make a camouflaged attack almost impossible. In addition, since each state of the model does not include information such as a program counter that makes a plurality of incoming lines, the model holds the results of past conditional branches. That is, it is possible to generate a model that can correctly verify the conditional branch.

又、学習系列から統計量を導出し、第2のモデル蓄積部150に蓄積された動作モデルを、統計量を用いて学習することによって、正常状態のインストラクションの共起関係を把握することができ、ソフトウェアの動作の変化をとらえることのできるモデルを生成することができる。動作の検証をする際、オートマトンによる検証では未学習の動作を検知したら異常と判断せざるを得なかったが、インストラクションの共起関係を利用するため、統計的に正常と判断することが可能である。   In addition, by deriving statistics from the learning sequence and learning the behavior model stored in the second model storage unit 150 using the statistics, it is possible to grasp the co-occurrence relationship of instructions in the normal state. It is possible to generate a model that can capture changes in the operation of software. When verifying the operation, the automaton verification had to determine that it was abnormal if an unlearned operation was detected, but it can be determined statistically normal because it uses the co-occurrence relationship of instructions. is there.

ただし、本実施例では共起頻度を計測する手法としてN-gramをあげているが、アソシエーションルールなど、共起頻度が計測できればよく、これにこだわるものではない。   However, in this embodiment, N-gram is used as a method for measuring the co-occurrence frequency, but it is only necessary to be able to measure the co-occurrence frequency such as an association rule, and this is not particular.

又、第1の実施の形態に係るソフトウェア動作監視装置及びソフトウェア動作監視方法によると、インストラクションの共起頻度を利用した監視を行うことができ、未学習動作の正常、異常判別を確率的に求めることができる。   In addition, according to the software operation monitoring apparatus and the software operation monitoring method according to the first embodiment, it is possible to perform monitoring using the co-occurrence frequency of instructions, and to determine the normality / abnormality determination of unlearned operations stochastically. be able to.

又、第1の検証部230のあとに第2の検証部240を配置することで、インストラクションをひとつずつ監視していくことで正常状態を確実に判別できる木構造モデルと、インストラクションの時系列を監視することで未学習動作と異常動作を判別できるN-gramモデルを利用することができる。木構造モデルを利用して監視している間、N-gramの出現頻度を計算する必要がなくなるため、効率がよい。   In addition, by arranging the second verification unit 240 after the first verification unit 230, the tree structure model that can reliably determine the normal state by monitoring the instructions one by one, and the time series of the instructions are displayed. By monitoring, an N-gram model that can discriminate between unlearned behavior and abnormal behavior can be used. While monitoring using the tree structure model, it is not necessary to calculate the appearance frequency of the N-gram, which is efficient.

又、ソフトウェア動作監視装置200は、モデル学習部270をさらに配置し、第2の検証部240の検証により、ソフトウェア動作が正常であると判定された場合に、第2の検証部240で用いた検証系列を、木構造モデルに追加してもよい。N-gramのような統計量を特徴量とする動作モデルは、統計量を計算するコストが発生するため、計算コストを考慮するとできる限り利用しないようにしたほうがよい。上記の構成をとることによって、未学習動作を木構造モデルへ反映することができるため、次回の監視が効率よく行える。   Further, the software operation monitoring apparatus 200 further includes a model learning unit 270, and is used in the second verification unit 240 when it is determined by the verification of the second verification unit 240 that the software operation is normal. A verification sequence may be added to the tree structure model. Since an operation model that uses a statistic such as an N-gram has a cost for calculating the statistic, it is better not to use it as much as possible considering the calculation cost. By adopting the above configuration, the unlearned operation can be reflected in the tree structure model, so that the next monitoring can be performed efficiently.

<第2の実施の形態>
判別分析を効率よく行う手法として、負例を与えることが挙げられる。第1の実施の形態では、正例のみを扱っていたが、第2の実施の形態では、負例をともに扱うことについて説明する。
<Second Embodiment>
As a method for efficiently performing discriminant analysis, giving a negative example can be mentioned. In the first embodiment, only positive examples are handled. In the second embodiment, handling of both negative examples will be described.

(ソフトウェア動作モデル化装置)
第2の実施の形態に係るソフトウェア動作モデル化装置は、図17に示すように、図1に示すソフトウェア動作モデル化装置に加え、負例分離部160を備える。
(Software behavior modeling device)
As shown in FIG. 17, the software behavior modeling device according to the second exemplary embodiment includes a negative example separation unit 160 in addition to the software behavior modeling device shown in FIG. 1.

負例分離部160は、監視対象ソフトウェアの異常動作(例:被攻撃、バグによる動作)が入力された場合、取得したインストラクションから、異常動作によって生じたインストラクションの時系列を分離する。又、負例分離部160は、取得したインストラクションを、第1のモデル蓄積部140に蓄積された動作モデル上でトレースし、動作モデルと異なるインストラクションが現れた時点からのインストラクション時系列を異常動作によって生じたインストラクション列である負例であると判断する。   The negative example separation unit 160 separates the time series of instructions generated by the abnormal operation from the acquired instructions when the abnormal operation (eg, attacked, bug-induced) of the monitoring target software is input. In addition, the negative example separation unit 160 traces the acquired instruction on the operation model stored in the first model storage unit 140, and the instruction time series from the point in time when the instruction different from the operation model appears by the abnormal operation. It is determined that this is a negative example that is the generated instruction sequence.

第2のモデル生成部132は、負例を用いて、異常動作のモデルを生成する。   The second model generation unit 132 generates a model of abnormal operation using a negative example.

インストラクション取得部110、インストラクション蓄積部120、第1のモデル生成部131、第1のモデル蓄積部140、第2のモデル蓄積部150については、第1の実施の形態と同様であるので、ここでは、説明を省略する。   The instruction acquisition unit 110, the instruction storage unit 120, the first model generation unit 131, the first model storage unit 140, and the second model storage unit 150 are the same as those in the first embodiment. The description is omitted.

(ソフトウェア動作モデル化方法)
次に、第2の実施の形態に係るソフトウェア動作モデル化方法について、図18を用いて説明する。
(Software behavior modeling method)
Next, a software behavior modeling method according to the second embodiment will be described with reference to FIG.

まず、ステップS801において、第1のモデル蓄積部140よりモデルを、インストラクション蓄積部110よりインストラクション時系列をそれぞれ取得する。   First, in step S <b> 801, a model is acquired from the first model storage unit 140 and an instruction time series is acquired from the instruction storage unit 110.

次に、ステップS802において、取得に成功したか否かを判断し、失敗した場合は、ステップS803へ進み、エラー処理をして終了する。一方、ステップS802において、成功した場合は、ステップS804において、インストラクション時系列からインストラクションを順次読み込む。   Next, in step S802, it is determined whether the acquisition is successful. If the acquisition is unsuccessful, the process proceeds to step S803, where error processing is performed and the process ends. On the other hand, if successful in step S802, instructions are sequentially read from the instruction time series in step S804.

次に、ステップS805において、読み込みが終了したか否か判断し、終了した場合は、ステップS806において、エラー処理をして終了する。一方、ステップS805において、読み込みが終了していなければ、木をトレースする(詳細は、図7参照。)。   Next, in step S805, it is determined whether or not reading has been completed. If completed, error processing is performed in step S806, and the process ends. On the other hand, if the reading is not completed in step S805, the tree is traced (see FIG. 7 for details).

次に、ステップS808において、木トレースの結果、新規であるか否か判断する。新規である場合は、ステップS809において、現在位置から終了までの時系列をサブシーケンス化し、このサブシーケンスを負例として抽出し、負例分離を終了する。一方、ステップS808において、新規でない場合は、ステップS804へ戻り、次にインストラクションを取得する。   Next, in step S808, it is determined whether or not the result of tree tracing is new. If it is new, in step S809, the time series from the current position to the end is subsequenced, this subsequence is extracted as a negative example, and the negative example separation ends. On the other hand, if it is not new in step S808, the process returns to step S804, and then an instruction is acquired.

(作用及び効果)
第2の実施の形態に係るソフトウェア動作モデル化装置及びソフトウェア動作モデル化方法によると、負例を分離することで、異常動作時純粋のデータをモデルにすることができるため、判別分析に効果的な判別空間を生成できる。
(Action and effect)
According to the software behavior modeling apparatus and the software behavior modeling method according to the second embodiment, it is effective for discriminant analysis because pure data during abnormal operation can be modeled by separating negative examples. A discriminant space.

又、木構造モデルを用いることで、インストラクション発行パターンの変化点を正確に検知することができるので、正確な負例抽出が可能である。   Also, by using the tree structure model, the change point of the instruction issue pattern can be detected accurately, so that accurate negative examples can be extracted.

<第3の実施の形態>
第1及び第2の実施の形態では、ソフトウェア動作モデル化装置とソフトウェア動作監視装置を異なる装置として説明したが、これらの装置を一つの装置として構成してもよい。
<Third Embodiment>
In the first and second embodiments, the software behavior modeling device and the software behavior monitoring device have been described as different devices, but these devices may be configured as one device.

(ソフトウェア動作モデル化装置)
第3の実施の形態に係るソフトウェア動作モデル化装置100は、監視対象ソフトウェア10の動作モデルを生成、蓄積し、蓄積した動作モデルをもとに動作の監視を行う。
(Software behavior modeling device)
The software behavior modeling apparatus 100 according to the third embodiment generates and accumulates an operation model of the monitoring target software 10, and performs operation monitoring based on the accumulated operation model.

ソフトウェア動作監視装置200は、監視対象ソフトウェア10が動作中に発行するインストラクションを取得するインストラクション取得部210と、取得したインストラクションの時系列を蓄積するインストラクション蓄積部220と、インストラクション蓄積部に蓄積されたインストラクション時系列を学習系列とみなし、動作モデルを生成するモデル生成部130と、モデル生成部130によって生成された動作モデルを蓄積するモデル蓄積部280と、モデル蓄積部280に蓄積された動作モデルを用いて監視対象ソフトウェアの正常動作との乖離を判定する動作監視部290とを備える。   The software operation monitoring apparatus 200 includes an instruction acquisition unit 210 that acquires instructions issued while the monitoring target software 10 is operating, an instruction storage unit 220 that stores a time series of the acquired instructions, and instructions stored in the instruction storage unit. The time series is regarded as a learning series, and the model generation unit 130 that generates an operation model, the model storage unit 280 that stores the operation model generated by the model generation unit 130, and the operation model stored in the model storage unit 280 are used. And an operation monitoring unit 290 that determines a deviation from the normal operation of the monitored software.

インストラクション取得部210は、LinuxのPTRACEを利用するなどして、監視対象ソフトウェア10がインストラクションを発行するたびにインストラクションを取得する。   The instruction acquisition unit 210 acquires an instruction each time the monitoring target software 10 issues an instruction by using PTRACE of Linux or the like.

モデル生成部130は、インストラクション蓄積部220に蓄積されたインストラクション時系列を学習系列とし、学習系列をもとに木構造モデルを生成する第1のモデル生成部131と、学習系列をもとにインストラクションの共起頻度を計算し、その統計量を特徴量とする動作モデルを生成する第2のモデル生成部132とを備える。   The model generation unit 130 uses the instruction time series stored in the instruction storage unit 220 as a learning sequence, and generates a tree structure model based on the learning sequence. The model generation unit 130 includes an instruction based on the learning sequence. And a second model generation unit 132 for generating an operation model having the statistical quantity as a feature quantity.

第1のモデル生成部131は、例えば、図4に示すフローチャートで動作し、図3に示す木構造データを出力する。第2のモデル生成部132は、例えば、図11に示すフローチャートで動作し、図14に示すN-gramを出力する。   The first model generation unit 131 operates, for example, according to the flowchart shown in FIG. 4 and outputs the tree structure data shown in FIG. For example, the second model generation unit 132 operates according to the flowchart illustrated in FIG. 11 and outputs the N-gram illustrated in FIG.

モデル蓄積部280は、第1のモデル生成部131が生成した木構造モデルを蓄積する第1のモデル蓄積部250と、第2のモデル生成部132が生成したインストラクション発行の統計量(例えば共起頻度)を特徴量とする動作モデルを蓄積する第2のモデル蓄積部260とを備える。   The model storage unit 280 includes a first model storage unit 250 that stores the tree structure model generated by the first model generation unit 131 and an instruction issuance statistic generated by the second model generation unit 132 (for example, co-occurrence). A second model storage unit 260 that stores an operation model having a frequency) as a feature amount.

動作監視部290は、インストラクション取得部210がインストラクションを取得するたびに第1のモデル蓄積部250から取得した木構造モデルで監視対象ソフトウェアの発行するインストラクションを検証する第1の検証部230と、インストラクション蓄積部220に蓄積したインストラクション時系列のうち、第1の検証部230が動作の異常を検知してからのインストラクションを検証系列としてとらえ、第2のモデル蓄積部260から取得したインストラクション発行の統計量(例えば、インストラクションの共起頻度)を特徴とした動作モデルで監視対象ソフトウェア10の発行するインストラクションを検証する第2の検証部240とを備え、第2の検証部240は、第1の検証部230がソフトウェア動作に異常を検知した場合にのみ動作する。   The operation monitoring unit 290 includes a first verification unit 230 that verifies an instruction issued by the monitoring target software with the tree structure model acquired from the first model storage unit 250 each time the instruction acquisition unit 210 acquires an instruction, and an instruction Of the instruction time series stored in the storage unit 220, the instruction issued after the first verification unit 230 detects an abnormal operation is regarded as the verification series, and the instruction issuance statistics obtained from the second model storage unit 260 are obtained. A second verification unit 240 that verifies the instruction issued by the monitored software 10 with an operation model characterized by (for example, the co-occurrence frequency of instructions), and the second verification unit 240 includes the first verification unit 230 detects abnormalities in software operation Only operates when was.

第1の検証部230は、例えば、図15に示すフローチャートで動作する。一方、第2の検証部240は、例えば、図16に示すフローチャートで動作する。   The first verification unit 230 operates, for example, according to the flowchart shown in FIG. On the other hand, the second verification unit 240 operates, for example, according to the flowchart shown in FIG.

(作用及び効果)
第3の実施の形態に係るソフトウェア動作モデル監視装置によると、自らモデル化し、自ら検証する端末を開発することができる。同一の環境でモデル化、検証を行うことができるため、環境情報を伝えるメタ情報を付与する必要がなく、効率がよい。
(Action and effect)
According to the software behavior model monitoring apparatus according to the third embodiment, it is possible to develop a terminal that models itself and verifies itself. Since modeling and verification can be performed in the same environment, there is no need to add meta information that conveys environmental information, which is efficient.

第1の実施の形態に係るソフトウェア動作モデル化装置の構成ブロック図である。1 is a configuration block diagram of a software behavior modeling device according to a first embodiment. FIG. 第1の実施の形態に係るソフトウェア動作監視装置の構成ブロック図である。It is a block diagram of the configuration of the software operation monitoring apparatus according to the first embodiment. 第1の実施の形態において用いられる木構造の一例である。It is an example of the tree structure used in 1st Embodiment. 第1の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである(その1)。It is a flowchart which shows the software operation modeling method which concerns on 1st Embodiment (the 1). 第1の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである(その2)。It is a flowchart which shows the software operation modeling method which concerns on 1st Embodiment (the 2). 第1の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである(その3)。It is a flowchart which shows the software operation modeling method which concerns on 1st Embodiment (the 3). 第1の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである(その4)。It is a flowchart which shows the software operation modeling method which concerns on 1st Embodiment (the 4). 第1の実施の形態において、蓄積されたインストラクション時系列の一例である。FIG. 3 is an example of accumulated instruction time series in the first embodiment. FIG. 第1の実施の形態において、動作モデルの一例である(その1)。In the first embodiment, it is an example of an operation model (part 1). 第1の実施の形態において、動作モデルの一例である(その2)。In the first embodiment, it is an example of an operation model (part 2). 第1の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである(その5)。It is a flowchart which shows the software operation modeling method which concerns on 1st Embodiment (the 5). 第1の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである(その6)。It is a flowchart which shows the software operation modeling method which concerns on 1st Embodiment (the 6). 第1の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである(その7)。It is a flowchart which shows the software operation modeling method which concerns on 1st Embodiment (the 7). 第1の実施の形態において、N-gramの一例である。In 1st Embodiment, it is an example of N-gram. 第1の実施の形態に係るソフトウェア動作監視方法を示すフローチャートである(その1)。It is a flowchart which shows the software operation | movement monitoring method which concerns on 1st Embodiment (the 1). 第1の実施の形態に係るソフトウェア動作監視方法を示すフローチャートである(その2)。It is a flowchart which shows the software operation | movement monitoring method which concerns on 1st Embodiment (the 2). 第2の実施の形態に係るソフトウェア動作モデル化装置の構成ブロック図である。It is a block diagram of the configuration of the software behavior modeling device according to the second embodiment. 第2の実施の形態に係るソフトウェア動作モデル化方法を示すフローチャートである。It is a flowchart which shows the software operation modeling method which concerns on 2nd Embodiment. 第3の実施の形態に係るソフトウェア動作監視装置の構成ブロック図である。It is a block diagram of the configuration of the software operation monitoring apparatus according to the third embodiment.

符号の説明Explanation of symbols

10…監視対象ソフトウェア
30…インストラクションテーブル
31…インストラクション名列
32…分岐ポインタ列
40…分岐先アドレステーブル
41…分岐先アドレス列
100…ソフトウェア動作モデル化装置
110…インストラクション取得部
110…インストラクション蓄積部
120…インストラクション蓄積部
130…モデル生成部
131…第1のモデル生成部
132…第2のモデル生成部
140…第1のモデル蓄積部
150…第2のモデル蓄積部
160…負例分離部
170…メタ情報付与部
200…ソフトウェア動作監視装置
210…インストラクション取得部
220…インストラクション蓄積部
230…第1の検証部
240…第2の検証部
250…第1のモデル蓄積部
260…第2のモデル蓄積部
270…モデル学習部
280…モデル蓄積部
290…動作監視部

DESCRIPTION OF SYMBOLS 10 ... Monitored software 30 ... Instruction table 31 ... Instruction name string 32 ... Branch pointer string 40 ... Branch destination address table 41 ... Branch destination address string 100 ... Software operation modeling device 110 ... Instruction acquisition part 110 ... Instruction storage part 120 ... Instruction accumulation unit 130 ... model generation unit 131 ... first model generation unit 132 ... second model generation unit 140 ... first model accumulation unit 150 ... second model accumulation unit 160 ... negative example separation unit 170 ... meta information Giving unit 200 ... Software operation monitoring device 210 ... Instruction acquisition unit 220 ... Instruction storage unit 230 ... First verification unit 240 ... Second verification unit 250 ... First model storage unit 260 ... Second model storage unit 270 ... MODE The learning section 280 ... model storage unit 290 ... operation monitoring unit

Claims (9)

監視対象ソフトウェアの正常動作をモデル化するソフトウェア動作モデル化装置であって、
前記監視対象ソフトウェアを複数回試行させて、
前記監視対象ソフトウェアが動作中に発行したインストラクションを取得するインストラクション取得部と、
前記取得したインストラクションを試行毎に時系列で蓄積するインストラクション蓄積部と、
前記インストラクション蓄積部に蓄積されたインストラクションの時系列を試行毎に読み込み、インストラクションの時系列から動作モデルを作成するモデル生成部と、
前記モデル生成部が前回の読み込みまでで生成した監視対象ソフトウェアの動作モデルを蓄積するモデル蓄積部とを備え、
前記モデル蓄積部は、
前記モデル生成部が前回の読み込みまでで生成した木構造モデルを蓄積する第1のモデル蓄積部と、
前記モデル生成部が前回の読み込みまでで生成したインストラクション発行の統計量を特徴量とする動作モデルを蓄積する第2のモデル蓄積部とを有し、
前記モデル生成部は、
今回読み込んだインストラクションの時系列を学習系列とし、前記学習系列と前記第1のモデル蓄積部に蓄積された動作モデルとから木構造モデルを生成する第1のモデル生成部と、
前記学習系列から統計量を導出し、更に、前記第2のモデル蓄積部に蓄積された動作モデルを、前記統計量を用いて学習する第2のモデル生成部とを有する
ことを特徴とするソフトウェア動作モデル化装置。
A software behavior modeling device that models the normal operation of monitored software,
Let the monitored software try multiple times,
An instruction acquisition unit for acquiring instructions issued during operation of the monitored software;
An instruction storage unit for storing the acquired instructions in a time series for each trial;
A model generation unit that reads the time series of instructions stored in the instruction storage unit for each trial and creates an operation model from the time series of instructions;
A model storage unit that stores an operation model of the monitoring target software generated by the model generation unit until the previous reading;
The model storage unit
A first model storage unit that stores the tree structure model generated by the model generation unit up to the previous reading;
A second model accumulating unit for accumulating an operation model whose feature value is a statistical amount of instruction issuance generated until the previous reading by the model generating unit;
The model generation unit
A time series of instructions read this time as a learning series, a first model generation unit that generates a tree structure model from the learning series and the motion model stored in the first model storage unit;
A second model generation unit for deriving a statistic from the learning sequence and further learning the behavior model stored in the second model storage unit using the statistic; Behavior modeling device.
前記第2のモデル蓄積部は、前記モデル生成部が前回の読み込みまでで生成したインストラクションの共起頻度を特徴量とする動作モデルを蓄積し、
前記第2のモデル生成部は、前記学習系列から統計量を導出し、更に、前記第2のモデル蓄積部に蓄積された動作モデルを、前記共起頻度を用いて学習することを特徴とする請求項1に記載のソフトウェア動作モデル化装置。
The second model accumulating unit accumulates an operation model having the feature co-occurrence frequency of instructions generated by the model generating unit until the previous reading,
The second model generation unit derives a statistic from the learning sequence, and further learns the behavior model stored in the second model storage unit using the co-occurrence frequency. The software behavior modeling apparatus according to claim 1.
前記監視対象ソフトウェアの異常動作が入力された場合、前記取得したインストラクションから、前記異常動作によって生じたインストラクションの時系列を分離する負例分離部を更に備え、
前記負例分離部は、前記取得したインストラクションを、前記第1のモデル蓄積部に蓄積された動作モデル上でトレースし、前記動作モデルと異なるインストラクションが現れた時点からのインストラクション時系列を異常動作によって生じたインストラクション列である負例であると判断し、
前記第2のモデル生成部は、前記負例を用いて、異常動作のモデルを生成することを特徴とする請求項1又は2に記載のソフトウェア動作モデル化装置。
When an abnormal operation of the monitoring target software is input, a negative example separation unit that separates a time series of instructions generated by the abnormal operation from the acquired instructions,
The negative example separation unit traces the acquired instruction on an operation model stored in the first model storage unit, and an instruction time series from the time when an instruction different from the operation model appears by an abnormal operation. Judged as a negative example of the resulting instruction sequence,
The software behavior modeling device according to claim 1, wherein the second model generation unit generates a model of an abnormal operation using the negative example.
前記監視対象ソフトウェアを動作させた計算機環境情報を、生成した動作モデルにメタ情報として付与するメタ情報付与部を更に備えることを特徴とする請求項1〜3のいずれか1項に記載のソフトウェア動作モデル化装置。   The software operation according to any one of claims 1 to 3, further comprising a meta information adding unit that adds, as meta information, computer environment information in which the monitoring target software is operated to the generated operation model. Modeling device. 監視対象ソフトウェアの動作を監視するソフトウェア動作監視装置であって、
前記監視対象ソフトウェアが動作中に発行したインストラクションを取得するインストラクション取得部と、
前記取得したインストラクションを時系列で蓄積するインストラクション蓄積部と、
前記監視対象ソフトウェアの木構造モデルを蓄積した第1のモデル蓄積部から前記木構造モデルを取得し、前記インストラクション取得部が前記インストラクションを取得する度に、前記木構造モデル上でトレースすることで、正常動作との乖離を判定する第1の検証部と、
前記インストラクション蓄積部が蓄積したインストラクションの時系列のうち、前記第1の検証部が乖離と判断した時点からの時系列を検証系列とし、前記監視対象ソフトウェアのインストラクション発行の統計量を特徴量とした動作モデルを蓄積した第2のモデル蓄積部から前記動作モデルを取得し、前記検証系列からの統計量を生成し、前記動作モデルとの判別分析によって、正常動作との乖離を判定する第2の検証部と
を備えることを特徴とするソフトウェア動作監視装置。
A software operation monitoring device for monitoring the operation of monitored software,
An instruction acquisition unit for acquiring instructions issued during operation of the monitored software;
An instruction storage unit for storing the acquired instructions in time series;
By acquiring the tree structure model from the first model storage unit that stores the tree structure model of the monitoring target software, and tracing the tree structure model each time the instruction acquisition unit acquires the instruction, A first verification unit for determining a deviation from normal operation;
Among the time series of instructions accumulated by the instruction accumulation unit, the time series from the time point when the first verification unit determines to be a divergence is used as a verification series, and the statistical amount of instruction issuance of the monitored software is used as a feature quantity. The behavior model is acquired from the second model accumulation unit that has accumulated the behavior model, a statistic is generated from the verification sequence, and discriminant analysis with the behavior model is performed to determine a deviation from the normal behavior A software operation monitoring apparatus comprising: a verification unit.
前記第2のモデル蓄積部は、前記監視対象ソフトウェアが発行したインストラクションの共起頻度を特徴量とする動作モデルを蓄積し、
前記第2のモデル検証部は、前記検証系列からインストラクションの共起頻度を導出し、前記動作モデルとの判別分析によって、正常動作との乖離を判定することを特徴とする請求項5に記載のソフトウェア動作監視装置。
The second model accumulating unit accumulates an operation model having a feature amount of a co-occurrence frequency of instructions issued by the monitoring target software,
The said 2nd model verification part derives | leads-out the co-occurrence frequency of an instruction | indication from the said verification series, and discriminate | determines the deviation from a normal operation | movement by discriminant analysis with the said operation | movement model. Software operation monitoring device.
前記インストラクション蓄積部が蓄積したインストラクションの時系列を学習系列とし、前記第1のモデル蓄積部に蓄積された木構造モデルと、前記第2のモデル蓄積部に蓄積されたインストラクション発行の統計量を特徴量とする動作モデルとを、前記学習系列を利用して学習するモデル学習部を更に備え、
前記モデル学習部は、前記第2の検証部が、前記監視対象ソフトウェアの動作が正常であると判定した場合のみ、モデルを学習することを特徴とする請求項5又は6に記載のソフトウェア動作監視装置。
A time series of instructions accumulated by the instruction accumulation unit is used as a learning sequence, and the tree structure model accumulated in the first model accumulation unit and the instruction issuance statistics accumulated in the second model accumulation unit are characterized. A model learning unit that learns the behavior model as a quantity using the learning sequence;
7. The software operation monitoring according to claim 5, wherein the model learning unit learns a model only when the second verification unit determines that the operation of the monitoring target software is normal. apparatus.
前記検証系列は、前記監視対象ソフトウェアが終了するまでに発行されたインストラクションの時系列の部分列の集合であることを特徴とする請求項5〜7のいずれか1項に記載のソフトウェア動作監視装置。   The software operation monitoring apparatus according to claim 5, wherein the verification sequence is a set of time series subsequences of instructions issued until the monitoring target software is terminated. . 前記部分列は、前記インストラクションの時系列を前記監視対象ソフトウェアがシステムコールを発行するタイミングで区切ることで生成されることを特徴とする請求項8に記載のソフトウェア動作監視装置。

9. The software operation monitoring apparatus according to claim 8, wherein the partial sequence is generated by dividing the time series of the instructions at a timing when the monitoring target software issues a system call.

JP2005089891A 2005-03-25 2005-03-25 Software operation modeling device and software operation monitoring device Expired - Fee Related JP4913353B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005089891A JP4913353B2 (en) 2005-03-25 2005-03-25 Software operation modeling device and software operation monitoring device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005089891A JP4913353B2 (en) 2005-03-25 2005-03-25 Software operation modeling device and software operation monitoring device

Publications (3)

Publication Number Publication Date
JP2006268775A true JP2006268775A (en) 2006-10-05
JP2006268775A5 JP2006268775A5 (en) 2008-05-08
JP4913353B2 JP4913353B2 (en) 2012-04-11

Family

ID=37204621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005089891A Expired - Fee Related JP4913353B2 (en) 2005-03-25 2005-03-25 Software operation modeling device and software operation monitoring device

Country Status (1)

Country Link
JP (1) JP4913353B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008129714A (en) * 2006-11-17 2008-06-05 Univ Of Tsukuba Abnormality detection method, abnormality detection device, abnormality detection program, and learning model generation method
JP2008186383A (en) * 2007-01-31 2008-08-14 Nec Corp User-level process controller having process management function, method for it, and program for it
WO2008117872A1 (en) * 2007-03-28 2008-10-02 Ntt Docomo, Inc. Software behavior modeling device, software behavior modeling method, software behavior verification device, and software behavior verification method
JP2009140485A (en) * 2007-11-13 2009-06-25 Intel Corp Method and system for whitelisting software component
JP2014041554A (en) * 2012-08-23 2014-03-06 Toyota Infotechnology Center Co Ltd Computer having self-monitoring function and monitoring program
WO2019167225A1 (en) * 2018-03-01 2019-09-06 日本電気株式会社 Information processing device, control method, and program

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004185345A (en) * 2002-12-04 2004-07-02 Hitachi Ltd Debug method and system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004185345A (en) * 2002-12-04 2004-07-02 Hitachi Ltd Debug method and system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008129714A (en) * 2006-11-17 2008-06-05 Univ Of Tsukuba Abnormality detection method, abnormality detection device, abnormality detection program, and learning model generation method
JP2008186383A (en) * 2007-01-31 2008-08-14 Nec Corp User-level process controller having process management function, method for it, and program for it
WO2008117872A1 (en) * 2007-03-28 2008-10-02 Ntt Docomo, Inc. Software behavior modeling device, software behavior modeling method, software behavior verification device, and software behavior verification method
JP2008243034A (en) * 2007-03-28 2008-10-09 Ntt Docomo Inc Software behavior modeling device, software behavior modeling method, software behavior verification device and software behavior verification method
US8407799B2 (en) 2007-03-28 2013-03-26 Ntt Docomo, Inc. Software behavior modeling device, software behavior modeling method, software behavior verification device, and software behavior verification method
JP2009140485A (en) * 2007-11-13 2009-06-25 Intel Corp Method and system for whitelisting software component
JP2014041554A (en) * 2012-08-23 2014-03-06 Toyota Infotechnology Center Co Ltd Computer having self-monitoring function and monitoring program
WO2019167225A1 (en) * 2018-03-01 2019-09-06 日本電気株式会社 Information processing device, control method, and program
JPWO2019167225A1 (en) * 2018-03-01 2021-03-18 日本電気株式会社 Information processing equipment, control methods, and programs
US11899793B2 (en) 2018-03-01 2024-02-13 Nec Corporation Information processing apparatus, control method, and program

Also Published As

Publication number Publication date
JP4913353B2 (en) 2012-04-11

Similar Documents

Publication Publication Date Title
JP4732874B2 (en) Software behavior modeling device, software behavior monitoring device, software behavior modeling method, and software behavior monitoring method
Cheng et al. Orpheus: Enforcing cyber-physical execution semantics to defend against data-oriented attacks
US10242043B2 (en) Software security via control flow integrity checking
US10387655B2 (en) Method, system and product for using a predictive model to predict if inputs reach a vulnerability of a program
JP5090661B2 (en) Software behavior modeling device, software behavior monitoring device, software behavior modeling method, and software behavior monitoring method
EP3566166B1 (en) Management of security vulnerabilities
JP4913353B2 (en) Software operation modeling device and software operation monitoring device
EP3121749B1 (en) Method and apparatus for ensuring control flow integrity
CN109271789B (en) Malicious process detection method and device, electronic equipment and storage medium
KR101640479B1 (en) Software vulnerability attack behavior analysis system based on the source code
CN110851352A (en) Fuzzy test system and terminal equipment
JP5868515B2 (en) Signature verification apparatus, signature verification method and program
CN117076301A (en) System performance test method and device and electronic equipment
EP3812940B1 (en) Vulnerability analyzer
Kim et al. Source code analysis for static prediction of dynamic memory usage
WO2020109252A1 (en) Test system and method for data analytics
US11989296B2 (en) Program execution anomaly detection for cybersecurity
CN110909351B (en) Hardware-assisted control structure invariant mining method
JP2007041777A (en) Language processing method
CN117909956A (en) Hardware-assisted embedded system program control flow security authentication method
TW202416160A (en) Program execution anomaly detection for cybersecurity
CN116346412A (en) Mimicry judging method and mimicry judging device based on control flow comparison
Hua et al. Efficient context-sensitive intrusion detection based on state transition table
CN115906077A (en) Information detection method, device, equipment and computer readable storage medium
CN113076540A (en) Attack detection method and device, electronic equipment and storage medium

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080321

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120119

R150 Certificate of patent or registration of utility model

Ref document number: 4913353

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees