JP4913353B2 - ソフトウェア動作モデル化装置及びソフトウェア動作監視装置 - Google Patents
ソフトウェア動作モデル化装置及びソフトウェア動作監視装置 Download PDFInfo
- Publication number
- JP4913353B2 JP4913353B2 JP2005089891A JP2005089891A JP4913353B2 JP 4913353 B2 JP4913353 B2 JP 4913353B2 JP 2005089891 A JP2005089891 A JP 2005089891A JP 2005089891 A JP2005089891 A JP 2005089891A JP 4913353 B2 JP4913353 B2 JP 4913353B2
- Authority
- JP
- Japan
- Prior art keywords
- model
- software
- instruction
- storage unit
- unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
第1の実施の形態に係るソフトウェア動作モデル化装置100は、図1に示すように、監視対象ソフトウェア10を複数回試行させて、監視対象ソフトウェアの動作を表す動作モデルを生成する。又、第1の実施の形態に係るソフトウェア動作監視装置200は、図2に示すように、ソフトウェア動作モデル化装置100が生成した動作モデルを利用して監視対象ソフトウェア10の動作を監視し、異常動作がないかを検証する。
ソフトウェア動作モデル化装置100は、図1に示すように、監視対象ソフトウェア10が動作中に発行するインストラクションを取得するインストラクション取得部110と、取得したインストラクションの時系列を蓄積するインストラクション蓄積部120と、インストラクション蓄積部120に蓄積されたインストラクション時系列を学習系列とみなし、動作モデルを生成するモデル生成部130と、モデル生成部130によって生成された木構造モデルを蓄積する第1のモデル蓄積部140と、モデル生成部130によって生成された共起頻度モデルを蓄積する第2のモデル蓄積部150とを備える。モデル生成部130は、インストラクション蓄積部120に蓄積されたインストラクション時系列より木構造モデルを生成する第1のモデル生成部131と、共起頻度モデルを生成する第2のモデル生成部132とを有する。
次に、第1の実施の形態に係るソフトウェア動作モデル化方法について、図4〜7を用いて説明する。図4は、第1のモデル生成部131が、インストラクション蓄積部120に蓄積されたインストラクション時系列より木構造モデルを生成するフローチャートの例である。木構造モデル化には、モデル化関数、モデル化関数に呼ばれ初期モデルを生成する生成関数、モデル化関数に呼ばれ第1のモデル蓄積部140に蓄積された木構造モデルを学習する学習関数が用いられる。
S404において、新規インストラクションであると判断し、ステップS405において、現在位置を次のアドレスに更新し、木トレースを終了する。
ソフトウェア動作監視装置200は、図2に示すように、監視対象ソフトウェア10を入力とし、ソフトウェア動作モデル化装置100によって生成された木構造モデルを蓄積する第1のモデル蓄積部250と、インストラクション発行の統計量(例えばインストラクションの共起頻度)を特徴とした動作モデルを蓄積する第2のモデル蓄積部260と接続する。
次に、第1の実施の形態に係るソフトウェア動作監視方法について、図15及び図16を用いて説明する。
まず、ステップS901において、監視対象ソフトウェアの動作モデルを第1のモデル蓄積部250から取得する。このとき、監視対象ソフトウェアの動作環境を取得しておいて、動作モデルに付与されているメタ情報と突合し、動作環境にあわせたモデルを取得するとよい。
第1の実施の形態に係るソフトウェアモデル動作モデル化装置及びソフトウェアモデル化方法によると、木構造モデル化を行うことによって、システムコールよりも詳細なデータであるインストラクションの時系列を利用した監視を行うことができ、偽装攻撃をほぼ不可能にできるモデルを生成できる。かつ、モデルの各状態は、プログラムカウンタなど入り線を複数にする情報を含めないため、過去の条件分岐の結果はモデルが保持していることとなる。すなわち、条件分岐を正しく検証することが可能なモデルを生成できる。
判別分析を効率よく行う手法として、負例を与えることが挙げられる。第1の実施の形態では、正例のみを扱っていたが、第2の実施の形態では、負例をともに扱うことについて説明する。
第2の実施の形態に係るソフトウェア動作モデル化装置は、図17に示すように、図1に示すソフトウェア動作モデル化装置に加え、負例分離部160を備える。
次に、第2の実施の形態に係るソフトウェア動作モデル化方法について、図18を用いて説明する。
第2の実施の形態に係るソフトウェア動作モデル化装置及びソフトウェア動作モデル化方法によると、負例を分離することで、異常動作時純粋のデータをモデルにすることができるため、判別分析に効果的な判別空間を生成できる。
第1及び第2の実施の形態では、ソフトウェア動作モデル化装置とソフトウェア動作監視装置を異なる装置として説明したが、これらの装置を一つの装置として構成してもよい。
第3の実施の形態に係るソフトウェア動作モデル化装置100は、監視対象ソフトウェア10の動作モデルを生成、蓄積し、蓄積した動作モデルをもとに動作の監視を行う。
第3の実施の形態に係るソフトウェア動作モデル監視装置によると、自らモデル化し、自ら検証する端末を開発することができる。同一の環境でモデル化、検証を行うことができるため、環境情報を伝えるメタ情報を付与する必要がなく、効率がよい。
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…動作監視部
Claims (4)
- 監視対象ソフトウェアの正常動作をモデル化するソフトウェア動作モデル化装置と、前記監視対象ソフトウェアの動作を監視するソフトウェア動作監視装置とを含むソフトウェア動作監視システムであって、
前記ソフトウェア動作モデル化装置は、
前記監視対象ソフトウェアを複数回試行させて、前記監視対象ソフトウェアが発行したインストラクションを取得するモデル化装置側インストラクション取得部と、
前記モデル化装置側インストラクション取得部が取得したインストラクションを試行毎に時系列で蓄積するモデル化装置側インストラクション蓄積部と、
前記監視対象ソフトウェアの分岐命令による分岐フローに基づいて生成した木構造モデルである第1の動作モデルを蓄積するモデル化装置側第1のモデル蓄積部と、
前記インストラクションの時系列から求めた共起頻度を特徴量とする動作モデルである第2の動作モデルを蓄積するモデル化装置側第2のモデル蓄積部と、
今回読み込んだインストラクションの時系列を学習系列とし、前記学習系列と前記モデル化装置側第1のモデル蓄積部に蓄積された動作モデルとを時系列で比較し、前記動作モデルと異なるインストラクションが学習系列上に現れた時点で、前記動作モデルに新たな辺を追加することで木構造モデルを生成し、当該木構造モデルを新たな第1の動作モデルとして前記モデル化装置側第1のモデル蓄積部に蓄積する第1のモデル生成部と、
前記学習系列から導出した共起頻度と、前記モデル化装置側第2のモデル蓄積部に蓄積された前記第2の動作モデルとから新たな共起頻度を導出し、当該共起頻度を特徴量とする動作モデルを生成し、当該動作モデルを新たな第2の動作モデルとして前記モデル化装置側第2のモデル蓄積部に蓄積する第2のモデル生成部と
を備え、
前記ソフトウェア動作監視装置は、
前記監視対象ソフトウェアが動作中に発行したインストラクションを取得する監視装置側インストラクション取得部と、
前記監視装置側インストラクション取得部が取得したインストラクションを時系列で蓄積する監視装置側インストラクション蓄積部と、
前記ソフトウェア動作モデル化装置によって生成された前記第1の動作モデルを蓄積する監視装置側第1のモデル蓄積部と、
前記ソフトウェア動作モデル化装置によって生成された前記第2の動作モデルを蓄積する監視装置側第2のモデル蓄積部と、
前記監視装置側第1のモデル蓄積部から前記第1の動作モデルを取得し、前記監視装置側インストラクション取得部がインストラクションを取得する度に、前記第1の動作モデルに基づいてトレースし、乖離した場合に異常であると判定する第1の検証部と、
前記監視装置側インストラクション蓄積部が蓄積したインストラクションの時系列のうち、前記第1の検証部が乖離と判断した時点からの時系列を検証系列とし、前記監視装置側第2のモデル蓄積部から前記第2の動作モデルを取得し、前記検証系列の共起頻度を導出し、前記第2の動作モデルとの判別分析によって、乖離が検出された場合に異常であると判定する第2の検証部と
を備えることを特徴とするソフトウェア動作監視システム。 - 前記検証系列は、前記監視対象ソフトウェアが終了するまでに発行されたインストラクションの時系列の部分列の集合であることを特徴とする請求項1に記載のソフトウェア動作監視システム。
- 前記部分列は、前記インストラクションの時系列を前記監視対象ソフトウェアがシステムコールを発行するタイミングで区切ることで生成されることを特徴とする請求項2に記載のソフトウェア動作監視システム。
- 監視対象ソフトウェアの正常動作をモデル化するとともに、前記監視対象ソフトウェアの動作を監視するソフトウェア動作監視システムであって、
前記監視対象ソフトウェアを複数回試行させて前記監視対象ソフトウェアが発行したインストラクション、及び前記監視対象ソフトウェアが動作中に発行したインストラクションを取得するインストラクション取得部と、
前記取得したインストラクションを時系列で蓄積するインストラクション蓄積部と、
前記監視対象ソフトウェアを複数回試行させて前記監視対象ソフトウェアが発行したインストラクションのうち、前記監視対象ソフトウェアの分岐命令による分岐フローに基づいて生成した木構造モデルである第1の動作モデルを蓄積する第1のモデル蓄積部と、
前記監視対象ソフトウェアを複数回試行させて前記監視対象ソフトウェアが発行した前記インストラクションの時系列から求めた共起頻度を特徴量とする動作モデルである第2の動作モデルを蓄積する第2のモデル蓄積部と、
今回読み込んだインストラクションの時系列を学習系列とし、前記学習系列と前記第1のモデル蓄積部に蓄積された動作モデルとを時系列で比較し、前記動作モデルと異なるインストラクションが学習系列上に現れた時点で、前記動作モデルに新たな辺を追加することで木構造モデルを生成し、当該木構造モデルを新たな第1の動作モデルとして前記第1のモデル蓄積部に蓄積する第1のモデル生成部と、
前記学習系列から導出した共起頻度と、前記第2のモデル蓄積部に蓄積された前記第2の動作モデルとから新たな共起頻度を導出し、当該共起頻度を特徴量とする動作モデルを生成し、当該動作モデルを新たな第2の動作モデルとして前記第2のモデル蓄積部に蓄積する第2のモデル生成部と、
前記第1のモデル蓄積部から前記第1の動作モデルを取得し、前記監視対象ソフトウェアが動作中に発行したインストラクションを前記インストラクション取得部が取得する度に、前記第1の動作モデルに基づいてトレースし、乖離した場合に異常であると判定する第1の検証部と、
前記監視対象ソフトウェアが動作中に発行したインストラクションであって、前記インストラクション蓄積部が蓄積したインストラクションの時系列のうち、前記第1の検証部が乖離と判断した時点からの時系列を検証系列とし、前記第2のモデル蓄積部から前記第2の動作モデルを取得し、前記検証系列の共起頻度を導出し、前記第2の動作モデルとの判別分析によって、乖離が検出された場合に異常であると判定する第2の検証部と
を備えることを特徴とするソフトウェア動作監視システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005089891A JP4913353B2 (ja) | 2005-03-25 | 2005-03-25 | ソフトウェア動作モデル化装置及びソフトウェア動作監視装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005089891A JP4913353B2 (ja) | 2005-03-25 | 2005-03-25 | ソフトウェア動作モデル化装置及びソフトウェア動作監視装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2006268775A JP2006268775A (ja) | 2006-10-05 |
JP2006268775A5 JP2006268775A5 (ja) | 2008-05-08 |
JP4913353B2 true JP4913353B2 (ja) | 2012-04-11 |
Family
ID=37204621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005089891A Expired - Fee Related JP4913353B2 (ja) | 2005-03-25 | 2005-03-25 | ソフトウェア動作モデル化装置及びソフトウェア動作監視装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4913353B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008129714A (ja) * | 2006-11-17 | 2008-06-05 | Univ Of Tsukuba | 異常検知方法、異常検知装置及び異常検知用プログラム並びに学習モデル生成方法 |
JP4962026B2 (ja) * | 2007-01-31 | 2012-06-27 | 日本電気株式会社 | プロセス管理機能をもつユーザレベルプロセス制御装置、その方法及びそのプログラム |
JP5081480B2 (ja) * | 2007-03-28 | 2012-11-28 | 株式会社エヌ・ティ・ティ・ドコモ | ソフトウェア挙動モデル化装置、ソフトウェア挙動モデル化方法、ソフトウェア挙動検証装置及びソフトウェア挙動検証方法 |
US8099718B2 (en) * | 2007-11-13 | 2012-01-17 | Intel Corporation | Method and system for whitelisting software components |
JP5714543B2 (ja) * | 2012-08-23 | 2015-05-07 | トヨタ自動車株式会社 | 自己監視機能を備えたコンピュータ、監視プログラム |
JP6892005B2 (ja) * | 2018-03-01 | 2021-06-18 | 日本電気株式会社 | 情報処理装置、制御方法、及びプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004185345A (ja) * | 2002-12-04 | 2004-07-02 | Hitachi Ltd | デバッグ方法およびシステム |
-
2005
- 2005-03-25 JP JP2005089891A patent/JP4913353B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006268775A (ja) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4732874B2 (ja) | ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法 | |
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 | |
Xu et al. | A sharper sense of self: Probabilistic reasoning of program behaviors for anomaly detection with context sensitivity | |
JP5090661B2 (ja) | ソフトウェア動作モデル化装置、ソフトウェア動作監視装置、ソフトウェア動作モデル化方法及びソフトウェア動作監視方法 | |
EP3566166B1 (en) | Management of security vulnerabilities | |
CN106326737B (zh) | 用于检测可在虚拟堆栈机上执行的有害文件的***和方法 | |
WO2008055156A2 (en) | Methods, media, and systems for detecting an anomalous sequence of function calls | |
JP4913353B2 (ja) | ソフトウェア動作モデル化装置及びソフトウェア動作監視装置 | |
EP3121749B1 (en) | Method and apparatus for ensuring control flow integrity | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN110851352A (zh) | 一种模糊测试***及终端设备 | |
JP5868515B2 (ja) | シグニチャ検証装置及びシグニチャ検証方法及びプログラム | |
CN117076301A (zh) | ***性能测试方法、装置及电子设备 | |
US20220335135A1 (en) | Vulnerability analysis and reporting for embedded systems | |
EP3812940B1 (en) | Vulnerability analyzer | |
JP5679347B2 (ja) | 障害検知装置、障害検知方法、及びプログラム | |
Kim et al. | Source code analysis for static prediction of dynamic memory usage | |
WO2020109252A1 (en) | Test system and method for data analytics | |
CN117909956B (zh) | 一种硬件辅助的嵌入式***程序控制流安全认证方法 | |
US11989296B2 (en) | Program execution anomaly detection for cybersecurity | |
Mohamed et al. | A control flow representation for component-based software reliability analysis | |
CN110909351B (zh) | 硬件协助的控制结构不变式挖掘方法 | |
JP2007041777A (ja) | 言語処理方法 |
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 |