JP6527295B2 - 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム - Google Patents
攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム Download PDFInfo
- Publication number
- JP6527295B2 JP6527295B2 JP2018543894A JP2018543894A JP6527295B2 JP 6527295 B2 JP6527295 B2 JP 6527295B2 JP 2018543894 A JP2018543894 A JP 2018543894A JP 2018543894 A JP2018543894 A JP 2018543894A JP 6527295 B2 JP6527295 B2 JP 6527295B2
- Authority
- JP
- Japan
- Prior art keywords
- rop
- data sequence
- address
- unit
- label
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Description
実施の形態に係る攻撃コード検知装置は、事前に、ROPチェーンを含む悪性文書ファイルの特徴を学習した確率モデルと、良性文書ファイルの特徴を学習した確率モデルと、を生成する。さらに、この攻撃コード検知装置は、ROPチェーンに用いられるライブラリファイルを事前に解析し、ライブラリファイル内に含まれる有効なROPガジェットのアドレスと、該ROPガジェットが実行された際のスタックポインタの増加値(オフセット)と、の組をオフセット辞書として取得する。
まず、図1を参照して、実施の形態に係る攻撃コード検知装置の構成について説明する。図1は、実施の形態に係る攻撃コード検知装置の構成の一例を説明するための図である。
次に、ラベル付き悪性文書ファイル100について説明する。図2は、ラベル付き悪性ファイル文書100の一例を示す図である。ラベル付き悪性文書ファイル100は、実際の悪性文書ファイルを調査し得られたものであり、例えば、図2のファイルDに示すように、エクスプロイトコード部、シェルコード部、ROPチェーン部などを含む。本実施の形態では、このうち、ROPチェーン部に着目する。
次に、ラベル付き良性文書ファイル200について説明する。ラベル付き良性文書ファイル200は、一般に流通している悪性でない文書ファイルであり、攻撃コードを含まない。ラベル付き良性文書ファイル200は、ラベル付き悪性文書ファイル100と同様に、各バイトに対応したラベルを持ち、ROPチェーンを持たないために、そのラベルはすべて文書ラベルとなる。
ROPチェーンに用いられる学習データライブラリファイル400は、ROPによる攻撃の対象となるアプリケーションがメモリ上に読み込むライブラリファイルである。攻撃の対象となるアプリケーションとは、例えば文書ファイルを用いた攻撃であれば、ビューアアプリケーション等である。そして、学習データライブラリファイル400は、アドレス空間のランダム化 (Address Space Layout Randomization) が無効化されている(以降、Non-ASLRと表現する)ものである。一般に、こうしたライブラリファイルは、限定的であり、網羅が可能である。
次に、学習部123の処理を説明する。学習部123は、上述したようなラベル付き悪性文書ファイル100及びラベル付き良性文書ファイル200を用いて、それらの文書ファイルが持つバイト列の構造的特徴を学習した確率モデルをそれぞれ生成する。
次に、事前実行部11の処理を説明する。事前実行部11は、ROPチェーンに用いられるライブラリファイルのコード領域をエミュレーション実行していき、ファイル中のROPガジェットの先頭アドレスと、そのROPガジェットが実行された際にスタックポインタがどれだけ動くかを示す移動値(オフセット値)と、を対応付けたオフセット辞書を生成する。
ここで、攻撃コード検知装置10では、事前実行部11で生成したオフセット辞書の利用方法を示すために、ROP Chain Integrity(RCI)を導入する。
そこで、検知部124による検知処理について詳細に説明する。検知部124は、学習部123が生成した確率モデルと、事前実行部11が生成したオフセット辞書と、を用いて、検査対象未知文書ファイル300が、ROPチェーンを含んだ悪性文書ファイルらしさが高いか、或いは、良性文書ファイルらしさが高いか、を検知する。検知部124は、検知の結果、悪性文書ファイルらしさが高い場合に、検査対象未知文書ファイル300が、ROPチェーンを含んだ悪性文書ファイルであるとして検知する。
次に、攻撃コード検知装置10が確率モデルを生成するまでの処理手順について説明する。図10は、図1に示す攻撃コード検知装置10が確率モデルを生成するまでの処理手順を示すフローチャートである。
次に、図10に示す確率モデル生成処理の処理手順について説明する。図11は、図10に示す確率モデル生成処理(ステップS16)の処理手順を示すフローチャートである。
次に、図12を用いて、事前実行部11がオフセット辞書を生成する処理の流れについて説明する。図12は、図1に示す攻撃コード検知装置10がオフセット辞書を生成するまでの処理手順を示すフローチャートである。
次に、図12に示すオフセット辞書生成処理の流れについて説明する。図13は、図12に示すオフセット辞書生成処理(ステップS43)の処理手順を示すフローチャートである。
次に、攻撃コード検知装置10による検査対象未知文書ファイル300に対する判定の流れを説明する。図14は、図1に示す攻撃コード検知装置10が検査対象未知文書ファイル300を、ROPチェーンを持つ悪性文書ファイルか否かを判定するまでの処理手順を示すフローチャートである。
次に、図14に示す検知処理の流れについて説明する。図15は、図14に示す検知処理(ステップS67)の処理手順を示すフローチャートである。
以上のように、本実施の形態に係る攻撃コード検知装置10は、事前に、ROPチェーンを含む悪性文書ファイルの特徴を学習した確率モデルと、良性文書ファイルの特徴を学習した確率モデルと、をそれぞれ生成する。また、攻撃コード検知装置10は、ROPガジェットに用いられるライブラリファイルを事前に解析することにより、ROPアドレスとスタックポインタのオフセットとを対応付けて記憶させたオフセット辞書を生成する。そして、攻撃コード検知装置10は、生成した確率モデルとオフセット辞書とに基づき、検査対象未知文書ファイル300に対し、悪性文書ファイルらしさを示す尤度と良性文書ファイルらしさを示す尤度とを算出する。この尤度計算の際には、攻撃コード検知装置10は、ROPチェーンが実行された際にROPガジェット同士が正しく繋がるか否かを考慮する。そして、攻撃コード検知装置10は、尤度比検定により、ROPチェーンを含んだ悪性文書ファイルを検知する。
[学習の方法]
本実施形態では系列の学習に確率モデルを用いたが、必ずしも確率モデルであることを要しない。前提として、ROPチェーンの静的検知の問題は、系列データを学習する構造学習という問題であると捉えられ、さらに、本実施の形態では、ROPチェーンの静的検知にRCIによる制約を付加しているため、制約付き構造学習という問題として捉えることができる。こうした制約付き構造学習は、本実施の形態に記載の確率モデルを用いた高速な近似計算手法のほか、構造化パーセプトロン(詳細は、Ming-Wei Chang, Lev Ratinov and Dan Roth, “Structured learning with constrained conditional models”,Machine learning 88.3 (2012): 399-431.参照)のような確率モデル以外の学習モデルでも解けることが知られている。そのため、必ずしも確率モデルであることを要しない。
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、或いは、ワイヤードロジックによるハードウェアとして実現され得る。
図16は、プログラムが実行されることにより、攻撃コード検知装置10が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
11 事前実行部
12 制御部
13 出力部
14 記憶部
20 オフセット辞書データベース(DB)
30 確率モデルDB
100 ラベル付き悪性文書ファイル
121 ファイル形式判定部
122 デコード部
123 学習部
124 検知部
200 ラベル付き良性文書ファイル
300 検査対象未知文書ファイル
400 学習データライブラリファイル
Claims (6)
- ROP(Return Oriented Programming)チェーンに用いられる学習用のライブラリファイルを事前に解析し、前記ライブラリファイル内のコード片であるROPガジェットのアドレスと、該ROPガジェットが実行された際のスタックポインタの増加値と、の組を取得する事前実行部と、
前記事前実行部の取得結果を用いて、検査対象の未知のデータ系列について、前記ROPガジェット同士が正しく繋がる有効な前記ROPチェーンであるかを検証することによって、前記検査対象の未知のデータ系列が悪性データ系列であるか否かを検知する検知部と、
を有することを特徴とする攻撃コード検知装置。 - 前記ROPチェーンを含む既知の悪性データ系列と、既知の良性データ系列とを学習データとして、悪性データ系列のバイト列の特徴を学習したモデルと、良性データ系列のバイト列の特徴を学習したモデルと、を生成する学習部をさらに有し、
前記検知部は、前記モデルを用いた確率計算に基づいて前記検査対象の未知のデータ系列が悪性データ系列であるか否かを検知することを特徴とする請求項1に記載の攻撃コード検知装置。 - 前記検知部は、前記ROPガジェット同士が正しく繋がる可能性を考慮して、悪性データ系列のモデルと、良性データ系列のモデルとの間での尤度比検定を行い、前記検査対象の未知のデータ系列が悪性データ系列であるか否かを検知することを特徴とする請求項2に記載の攻撃コード検知装置。
- 前記悪性データ系列及び前記良性データ系列は、文書ファイルであることを特徴とする請求項2または3に記載の攻撃コード検知装置。
- 攻撃コード検知装置が実行する攻撃コード検知方法であって、
ROPチェーンに用いられる学習用のライブラリファイルを事前に解析し、前記ライブラリファイル内のコード片であるROPガジェットのアドレスと、該ROPガジェットが実行された際のスタックポインタの増加値と、の組を取得する事前実行工程と、
前記事前実行工程における取得結果を用いて、検査対象の未知のデータ系列について、前記ROPガジェット同士が正しく繋がる有効な前記ROPチェーンであるかを検証することによって、前記検査対象の未知のデータ系列が悪性データ系列であるか否かを検知する検知工程と、
を含んだことを特徴とする攻撃コード検知方法。 - ROPチェーンに用いられる学習用のライブラリファイルを事前に解析し、前記ライブラリファイル内のコード片であるROPガジェットのアドレスと、該ROPガジェットが実行された際のスタックポインタの増加値と、の組を取得する事前実行ステップと、
前記事前実行ステップにおける取得結果を用いて、検査対象の未知のデータ系列について、前記ROPガジェット同士が正しく繋がる有効な前記ROPチェーンであるかを検証することによって、前記検査対象の未知のデータ系列が悪性データ系列であるか否かを検知する検知ステップと、
をコンピュータに実行させるための攻撃コード検知プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016198409 | 2016-10-06 | ||
JP2016198409 | 2016-10-06 | ||
PCT/JP2017/035828 WO2018066516A1 (ja) | 2016-10-06 | 2017-10-02 | 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018066516A1 JPWO2018066516A1 (ja) | 2019-02-21 |
JP6527295B2 true JP6527295B2 (ja) | 2019-06-05 |
Family
ID=61830935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018543894A Active JP6527295B2 (ja) | 2016-10-06 | 2017-10-02 | 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11010471B2 (ja) |
EP (1) | EP3506140B1 (ja) |
JP (1) | JP6527295B2 (ja) |
WO (1) | WO2018066516A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI812329B (zh) * | 2019-11-20 | 2023-08-11 | 美商奈米創尼克影像公司 | 用於判定網路攻擊及產生警告之製造系統及電腦實施方法 |
US12111922B2 (en) | 2020-02-28 | 2024-10-08 | Nanotronics Imaging, Inc. | Method, systems and apparatus for intelligently emulating factory control systems and simulating response data |
US12111923B2 (en) | 2019-10-08 | 2024-10-08 | Nanotronics Imaging, Inc. | Dynamic monitoring and securing of factory processes, equipment and automated systems |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3506140B1 (en) * | 2016-10-06 | 2021-04-14 | Nippon Telegraph and Telephone Corporation | Hacking code sensing device, hacking code sensing method, and hacking code sensing program |
CN108234347B (zh) * | 2017-12-29 | 2020-04-07 | 北京神州绿盟信息安全科技股份有限公司 | 一种提取特征串的方法、装置、网络设备及存储介质 |
US11042634B2 (en) * | 2018-12-21 | 2021-06-22 | Fujitsu Limited | Determining information leakage of computer-readable programs |
US12013935B2 (en) | 2019-03-05 | 2024-06-18 | C2A-Sec, Ltd. | Return-oriented programming protection |
US11610000B2 (en) * | 2020-10-07 | 2023-03-21 | Bank Of America Corporation | System and method for identifying unpermitted data in source code |
US20230342460A1 (en) * | 2022-04-25 | 2023-10-26 | Palo Alto Networks, Inc. | Malware detection for documents with deep mutual learning |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495541B2 (en) * | 2011-09-15 | 2016-11-15 | The Trustees Of Columbia University In The City Of New York | Detecting return-oriented programming payloads by evaluating data for a gadget address space address and determining whether operations associated with instructions beginning at the address indicate a return-oriented programming payload |
US9256730B2 (en) * | 2012-09-07 | 2016-02-09 | Crowdstrike, Inc. | Threat detection for return oriented programming |
US9292688B2 (en) * | 2012-09-26 | 2016-03-22 | Northrop Grumman Systems Corporation | System and method for automated machine-learning, zero-day malware detection |
US10192052B1 (en) * | 2013-09-30 | 2019-01-29 | Fireeye, Inc. | System, apparatus and method for classifying a file as malicious using static scanning |
US9189627B1 (en) * | 2013-11-21 | 2015-11-17 | Fireeye, Inc. | System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection |
US9594912B1 (en) * | 2014-06-06 | 2017-03-14 | Fireeye, Inc. | Return-oriented programming detection |
US9904780B2 (en) * | 2014-07-31 | 2018-02-27 | Nec Corporation | Transparent detection and extraction of return-oriented-programming attacks |
EP3506140B1 (en) * | 2016-10-06 | 2021-04-14 | Nippon Telegraph and Telephone Corporation | Hacking code sensing device, hacking code sensing method, and hacking code sensing program |
US10965675B2 (en) * | 2018-03-14 | 2021-03-30 | Bank Of America Corporation | Preventing unauthorized access to secure information systems using advanced pre-authentication techniques |
-
2017
- 2017-10-02 EP EP17858354.8A patent/EP3506140B1/en active Active
- 2017-10-02 WO PCT/JP2017/035828 patent/WO2018066516A1/ja unknown
- 2017-10-02 US US16/338,496 patent/US11010471B2/en active Active
- 2017-10-02 JP JP2018543894A patent/JP6527295B2/ja active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12111923B2 (en) | 2019-10-08 | 2024-10-08 | Nanotronics Imaging, Inc. | Dynamic monitoring and securing of factory processes, equipment and automated systems |
TWI812329B (zh) * | 2019-11-20 | 2023-08-11 | 美商奈米創尼克影像公司 | 用於判定網路攻擊及產生警告之製造系統及電腦實施方法 |
US12111922B2 (en) | 2020-02-28 | 2024-10-08 | Nanotronics Imaging, Inc. | Method, systems and apparatus for intelligently emulating factory control systems and simulating response data |
Also Published As
Publication number | Publication date |
---|---|
EP3506140A1 (en) | 2019-07-03 |
WO2018066516A1 (ja) | 2018-04-12 |
JPWO2018066516A1 (ja) | 2019-02-21 |
EP3506140B1 (en) | 2021-04-14 |
US20190384913A1 (en) | 2019-12-19 |
EP3506140A4 (en) | 2020-03-04 |
US11010471B2 (en) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6527295B2 (ja) | 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム | |
JP6592177B2 (ja) | 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム | |
US9946880B2 (en) | Software vulnerability analysis method and device | |
Yakura et al. | Neural malware analysis with attention mechanism | |
Kapravelos et al. | Revolver: An automated approach to the detection of evasive web-based malware | |
EP3330879B1 (en) | Vulnerability discovering device, vulnerability discovering method, and vulnerability discovering program | |
Sekar | An Efficient Black-box Technique for Defeating Web Application Attacks. | |
JP7115552B2 (ja) | 解析機能付与装置、解析機能付与方法及び解析機能付与プログラム | |
KR102151318B1 (ko) | 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치 | |
Gülmez et al. | Graph-based malware detection using opcode sequences | |
EP3087527B1 (en) | System and method of detecting malicious multimedia files | |
US11283836B2 (en) | Automatic decoy derivation through patch transformation | |
Sayadi et al. | Towards ai-enabled hardware security: Challenges and opportunities | |
US20240045956A1 (en) | Malicious source code detection | |
Song et al. | HGIVul: Detecting inter-procedural vulnerabilities based on hypergraph convolution | |
WO2023067668A1 (ja) | 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム | |
CN104008336B (zh) | 一种ShellCode检测方法和装置 | |
WO2023067663A1 (ja) | 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム | |
WO2023067667A1 (ja) | 解析機能付与方法、解析機能付与装置及び解析機能付与プログラム | |
JP5687593B2 (ja) | 解析装置、解析方法および解析プログラム | |
Marastoni | Program Similarity Analysis for Malware Classification and its Pitfalls | |
Kozak et al. | Updating Windows Malware Detectors: Balancing Robustness and Regression against Adversarial EXEmples | |
Pathania | Detection of Malicious Code in PDF Files using Machine Learning Algorithms. | |
CN117077138A (zh) | 一种基于浏览器的异常检测方法、系统、介质及设备 | |
CN116578979A (zh) | 一种基于代码特征的跨平台二进制代码匹配方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181004 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190305 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190417 |
|
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: 20190507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6527295 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |