JP2017021777A - 仮想スタックマシンで実行可能な有害なファイルを検出するためのシステムおよび方法 - Google Patents
仮想スタックマシンで実行可能な有害なファイルを検出するためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2017021777A JP2017021777A JP2016093094A JP2016093094A JP2017021777A JP 2017021777 A JP2017021777 A JP 2017021777A JP 2016093094 A JP2016093094 A JP 2016093094A JP 2016093094 A JP2016093094 A JP 2016093094A JP 2017021777 A JP2017021777 A JP 2017021777A
- Authority
- JP
- Japan
- Prior art keywords
- file
- data
- cluster
- function
- checksum
- 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
Links
- 238000000034 method Methods 0.000 title claims description 42
- 230000006870 function Effects 0.000 claims description 106
- 230000008569 process Effects 0.000 claims description 8
- 210000003813 thumb Anatomy 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 7
- 238000004458 analytical method Methods 0.000 description 28
- 238000004364 calculation method Methods 0.000 description 11
- 230000002155 anti-virotic effect Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 208000015181 infectious disease Diseases 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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/53—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 executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- 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
-
- 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/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Detection And Correction Of Errors (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】ファイルのファイル・セクションにおけるパラメータ及び仮想スタックマシンで実行可能なファイルの関数におけるパラメータを含むデータを識別する210。データベースにおいて、第一閾値を超えるファイル・セクションの1つのパラメータの値、及び、第二閾値を越える上記関数のパラメータの値を含む安全なファイルのクラスタを検索する220。安全なファイルにおける識別されたクラスタに基づいて、仮想スタックマシンで実行可能なファイルにおけるデータのクラスタを生成する230。仮想スタックマシンで実行可能なファイルのデータにおける生成されたクラスタのチェックサムを計算する240。データベースにアクセスし計算されたチェックサムが、有害なファイルのチェックサムのデータベースでのチェックサムと一致する場合、有害なファイルであると判断する260。
【選択図】図2
Description
他の技術としては、"ヒューリスティック分析"を含み、
それは、解析されているプログラムを動作し、エミュレーション・ログ(API関数コールでのデータ、転送されたパラメータ、解析されているプログラムのコードセクション等を含む)を作成し、及び、有害なプログラムのエミュレーションのデータベースから、上記データを有する生成されたログに対応するものを検索する、エミュレーションである。
他の技術は、未だに"ホワイトリスト"と"ブラックリスト"を利用しており、それは、有害なプログラム(ブラックリスト)のチェックサムのデータベース又は合法なプログラム(ホワイトリスト)のチェックサムのデータベースで、解析されているプログラム(又はその一部)の計算されたチェックサムを検索することを含む。
そして最後に、技術は、
システムで実行中である解析プログラムのAPI関数コールの傍受によって、
解析プログラムの動作ログ(API関数コールでのデータ、転送されたパラメータ、解析されているプログラムのコードセクション等を含む)の生成によって、
及び、有害なプログラムのコールのデータベースから、データを有する生成されるログに対応するデータの検索によって、
積極的な保護を用いている。
ハードディスクプロセッサによって、前記識別されたデータに基づいて、データベースにおいて、第一閾値を超える上記ファイル・セクションの1つのパラメータの値、及び、第二閾値を越える上記関数の1つのパラメータの値、のうち少なくとも1つを含む、安全なファイルの少なくとも1つのクラスタを検索する工程と、
ハードディスクプロセッサによって、安全なファイルにおける識別された少なくとも1つのクラスタに少なくとも部分的に基づいて、仮想スタックマシンで実行可能なファイルにおけるデータのクラスタを生成する工程と、
ハードディスクプロセッサによって、仮想スタックマシンで実行可能なファイルのデータにおける生成されたクラスタの少なくとも1つのチェックサムを計算する工程と、
ハードディスクプロセッサによって、有害なファイルのチェックサムのデータベースにアクセスする工程と、
計算された少なくとも1つのチェックサムが、有害なファイルのチェックサムのデータベースでのチェックサムと一致する場合、ハードディスクプロセッサによって、仮想スタックマシンで実行されたファイルが有害なファイルであると判断する工程を含む。
そのルールは、
ファイルから識別されているデータの配列で、識別されたデータを連続クラスタに配置するというルール、
ファイル・セクションのデータのサイズがゼロと等しい場合、データのクラスタを生成するために、ファイル・セクションのパラメータを使わないというルール、
関数で使用されているローカル変数の数がゼロと等しい場合、データのクラスタを生成するために、ファイルの関数のパラメータを使わないというルール、及び、
データのクラスタを生成するために、安全なファイルにおけるクラスタのデータベースで識別されたクラスタから識別されたデータを使わないというルールのうち少なくとも1つを含む。
上記ハードウェアプロセッサは、
仮想スタックマシンで実行可能なファイルからのデータであって、
ファイルのファイル・セクションにおけるパラメータ及び仮想スタックマシンで実行可能なファイルの関数におけるパラメータのうち少なくとも1つを含むデータを識別し、
識別されたデータに基づいて、データベースで、第一閾値を超えるファイル・セクションの1つのパラメータの値及び第二閾値を超える関数の1つのパラメータの値のうち少なくとも1つを含む、安全なファイルにおける少なくとも1つのクラスタを検索し、
安全なファイルにおける識別された少なくとも1つのクラスタに少なくとも部分的に基づいて、仮想スタックマシンで実行可能なファイルのデータのクラスタを生成し、
仮想スタックマシンで実行可能なファイルのデータにおける生成されたクラスタの少なくとも1つのチェックサムを計算し、
有害なファイルのチェックサムのデータベースにアクセスし、及び、
計算された少なくとも1つのチェックサムが、有害なファイルのチェックサムのデータベースでのチェックサムと一致する場合、仮想スタックマシンで実行可能なファイルが、有害なファイルであると判断するように構成される。
その命令は、
仮想スタックマシンで実行可能なファイルからのデータであって、
上記ファイルのファイル・セクションにおけるパラメータ及び仮想スタックマシンで実行可能にされるファイルの関数におけるパラメータ、のうち少なくとも1つのパラメータを含むデータ、を識別する命令と、
識別されたデータに基づいて、データベースで、第一閾値を超えるファイル・セクションの1つのパラメータの値及び第二閾値を超える関数の1つのパラメータの値、の少なくとも1つを含む、安全なファイルにおける少なくとも1つのクラスタを検索する命令と、
安全なファイルにおける識別された少なくとも1つのクラスタでの少なくとも1つに基づいて、仮想スタックマシンで実行可能なファイルにおけるデータのクラスタを生成する命令と、
仮想スタックマシンで実行可能なファイルのデータにおける生成されたクラスタの少なくとも1つのチェックサムを計算する命令と、
有害なファイルのチェックサムのデータベースにアクセスする命令と、
及び、計算された少なくとも1つのチェックサムが、有害なファイルのチェックサムのデータベースでのチェックサムと一致する場合、仮想スタックマシンで実行可能なファイルが有害なファイルであると判断する命令とを含む。
又は、プラットフォームのハードウェアの仮想化を提供するために必要とされ、それはプログラム及びオペレーティング・システムでさえも互いに分離した環境を作成する。
例えば、ファイル拡張子(例えば、*.swf)又はファイルヘッダ(例えば、FWS)に基づいて、仮想スタックマシンで実行可能なファイルを識別し、
識別されたファイルの構造を解析し、
解析しているファイルから特定のデータを識別し、
解析しているファイルから識別されたデータに基づいて、安全なファイル150におけるクラスタのデータベースにあるクラスタの検索を実行し、
安全なファイルのクラスタのデータベース150で見つけられるクラスタから特定のデータを識別し、
及び、仮想スタックマシンで実行可能なファイルであって、解析しているファイルから識別されたデータと、安全なファイルにおけるクラスタのデータベース150で見つけられたクラスタを、クラスタリングモジュール120へ、転送する、
ように構成される。
ファイル構造解析モジュール110は、解析しているファイルから特定のデータを識別するように構成され、そのデータは、ファイル・セクションのパラメータ(コード、名前、ヘッダー型、セクションでのデータへのオフセット、及びセクションデータのサイズ等)を含むが、それに限定されない。
また、例示的な態様によれば、ファイル構造解析モジュール110も、他のデータを識別するように構成され、そのデータは、仮想スタックマシンで実行可能な関数のパラメータ(関数本体のインデックス、セクションでの関数コードの位置と長さ、関数記述子のインデックス、関数実行中のスタックの最大の深さ、関数によって使用されるローカル変数の数、関数の名前、オペランドの数、リターンがあるデータ型)を含むが、それに限定されない。
仮想スタックマシンで実行可能な様々なファイルのファイル構造における本知識は、様々なファイルの構造を解析すること、ファイルの特定の要素(関数)をエミュレートすること、及び、他のファイル解析技術を用いることによって得られる。
収集されたデータは、ファイルからの識別の順に、クラスタ内に配置されるべきである、というルール、
ファイル・セクションのパラメータは、ファイル・セクションデータのサイズがゼロと等しい場合、クラスタの生成に使用されるべきではない、というルール、
仮想スタックマシンで実行可能な関数におけるパラメータは、関数で使用されるローカル変数の数がゼロに等しい場合、クラスタの生成に使用されるべきではない、というルール、
及び、安全なファイルにおけるクラスタのデータベースで見つけられたクラスタからの識別データは、クラスタの生成に使用されるべきではない、というルール、である。
例えば、
code = 69 (FileAttributes), type = short, offset = 0x14, length = 0x4
code = 9 (SetBackgroundColor), type = short, offset = 0x1a, length = 0x3
code = 82 (DoABC), type = long, offset = 0x1f, length = 0x1a2e
例えば:
Method body 1: offset = 0xd24, length = 0xae, method = 0,
max_stack = 0x3, local_count = 0x1, exception_count = 0x0,
init_scope_depth = 0x0, max_scope_depth = 0x8, trait_count = 0x0.
script0$init():*
例えば、
code = 69 (FileAttributes), type = short, offset = 0x14, length = 0x4
例えば、
Method body 1: offset = 0xc67, length = 0xae, method = 0,
max_stack = 0x3, local_count = 0x1, exception_count = 0x0,
init_scope_depth = 0x0, max_scope_depth = 0x8, trait_count = 0x0.
script0$init():*
・セクションデータのセクション・ヘッダ型とサイズを含むクラスタ(例えば、short, 0x4, short, 0x17, long, 0x2c, short, 0x5,)
・仮想スタックマシンで実行可能な関数によって使用されるローカル変数の数を含むクラスタ(例えば、0x7, 0x5, 0x11, 0x7, 0xc, 0x2, 0xf, 0x5, 0x5, 0xa)
・仮想スタックマシンで実行可能な関数の名前を含むクラスタ(例えば、cript0$init, script0$read_data, script0$inject)
0xed4d37994bec687a9c31844e47928ec3
0xb07b30a8430a63ae8ef5bad369d653de
0xcaa351de76e20cff266d24b9bf9ebdc1
例示的な態様によれば、このようなファジーサムが見つかった場合、テストモジュール140は、解析しているファイルlaunchme.swfが、有害であると結論付ける。データベース160内のチェックサムと一致する計算されたファジーチェックサムの数は、システム設計者の設計する実装に応じて変化できることを理解すべきである。
その値は、
与えられた閾値(例えば、ファイルのセクションの型の数)を超えるファイル・セクションの1つのパラメータの値、
与えられた閾値(例えば、関数によって用いられるローカル変数の数)を超える、仮想スタックマシンで実行可能な関数の1つのパラメータの値、である。
そして、データは、見つけられたクラスタから識別される。
示されるように、コンピュータ・システムは、中央処理ユニット21、システムメモリ22及びシステムバス23を含み、システムバスは、様々なシステムコンポーネント(中央処理ユニット21に付随するメモリを含む)に接続している。システムバス23は、先行文献で知られている任意のバス構造のように実現され、順にバスメモリ又はバスメモリコントローラ、周辺バス、及びローカルバスを含み、それは、任意の他のバスアーキテクチャと相互作用することができる。システムメモリは、読み出し専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。基本入出力システム(BOIS)26は、パーソナルコンピュータ20の要素間で情報の転送を保証する基本的な手順を含み、ROM24を使用してオペレーティング・システムをロードする時にも同様である。
ユーザは、入力デバイス(キーボード40、マウス42)で、パーソナルコンピュータ20に、コマンドと情報を入力することができる。他の入力デバイス(図示せず)として、マイクロホン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることができる。そのような入力デバイスは、通常、シリアルポート46を介してコンピュータ・システム20に接続され、それは、順番に、システムバスに接続される。それらは、他の方法(例えば、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB))を用いて接続できる。モニター47又は他の型の表示デバイスもまた、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続される。モニター47に加えて、パーソナルコンピュータは、ラウドスピーカー、プリンター等の他の周辺出力デバイス(図示せず)を搭載することができる。
Claims (20)
- ハードウェアプロセッサによって、仮想スタックマシンで実行可能なファイルからのデータであって、前記ファイルのファイル・セクションにおけるパラメータ及び前記仮想スタックマシンで実行可能なファイルの関数におけるパラメータのうち少なくとも1つを含むデータ、を識別する工程と、
前記ハードウェアプロセッサによって、前記識別されたデータに基づいて、データベースにおいて、第一閾値を超える前記ファイル・セクションの1つのパラメータの値、及び、第二閾値を越える前記関数の1つのパラメータの値、のうちの少なくとも1つを含む、安全なファイルにおける少なくとも1つのクラスタを検索する工程と、
前記ハードウェアプロセッサによって、前記安全なファイルにおける識別された少なくとも1つのクラスタに少なくとも部分的に基づいて、前記仮想スタックマシンで実行可能なファイルにおけるデータのクラスタを生成する工程と、
前記ハードウェアプロセッサによって、前記仮想スタックマシンで実行可能なファイルのデータにおける生成されたクラスタの少なくとも1つのチェックサムを計算する工程と、
前記ハードウェアプロセッサによって、有害なファイルのチェックサムのデータベースにアクセスする工程と、
前記計算された少なくとも1つのチェックサムが、有害なファイルのチェックサムの前記データベースでのチェックサムと一致する場合、前記ハードウェアプロセッサによって、前記仮想スタックマシンで実行可能なファイルが有害なファイルであると判断する工程と、
を備える、仮想スタックマシンで実行可能である有害なファイルを検出する方法。 - 前記ファイルのファイル・セクションにおけるパラメータは、コード、名前、ヘッダー型、前記ファイル・セクションでのデータへのオフセット、及び、前記ファイル・セクションでのデータサイズ、のうち少なくとも1つを含む、請求項1に記載の方法。
- 前記ファイルの関数のパラメータは、関数本体のインデックス、前記ファイル・セクションでの関数コードの位置と長さ、関数記述子のインデックス、前記関数実行中のスタックの最大の深さ、前記関数で使用されるローカル変数の数、前記関数の名前、オペランドの数、及びリターンできるデータ型、のうち少なくとも1つを含む、請求項1に記載の方法。
- 前記第一閾値は、ファイル・セクションの型の数である、請求項1に記載の方法。
- 前記第二閾値は、前記関数で使用されるローカル変数の数である、請求項1に記載の方法。
- 少なくとも1つのチェックサムの計算する工程は、
MD5セットを計算することによって、ファジーチェックサムを計算する工程を備え、
MD5セットは、これらセクションのセクション・ヘッダ型及びサイズを含むクラスタ、
前記ファイルの前記関数で使用されるローカル変数の数を含むクラスタ、
及び、前記仮想スタックマシンで実行可能な関数の名前を含むクラスタ、
を含む、請求項1に記載の方法。 - 前記仮想スタックマシンで実行可能な前記ファイルが有害なファイルであると判断する工程は、前記MD5セットのクラスタの少なくとも2つのチェックサムが有害なファイルにおけるチェックサムの前記データベースでの少なくとも2つのチェックサムと一致する、という判断する工程を含む、請求項6に記載の方法。
- 前記ファイルのデータにおけるクラスタの生成する工程は、
クラスタリングのルールに従って実行され、前記ルールは、
前記ファイルから識別されている前記データの配列で、前記識別されたデータを連続クラスタに配置するというルール、
前記ファイル・セクションのデータのサイズがゼロと等しい場合、前記データのクラスタを生成するために、前記ファイル・セクションのパラメータを使わないというルール、
前記関数で使用されているローカル変数の数がゼロと等しい場合、前記データのクラスタを生成するために、前記ファイルの関数のパラメータを使わないというルール、及び、
前記データのクラスタを生成するために、安全なファイルにおけるクラスタの前記データベースで識別されたクラスタから識別されたデータを使わないというルールのうちの少なくとも1つを含む、
請求項1に記載の方法。 - 仮想スタックマシンで実行される有害なファイルを検出するためのシステムであって、前記システムは、少なくとも1つのデータベースとハードウェアプロセッサを含み、
前記データベースは、安全なファイルのクラスタと有害なファイルのチェックサムを保存するように構成され、
前記ハードウェアプロセッサは、
前記仮想スタックマシンで実行可能なファイルからのデータであって、前記ファイルのファイル・セクションにおけるパラメータ及び前記仮想スタックマシンで実行可能なファイルの関数におけるパラメータのうち少なくとも1つを含むデータを識別し、
前記識別されたデータに基づいて、データベースで、第一閾値を超えるファイル・セクションの1つのパラメータの値及び第二閾値を超える関数の1つのパラメータの値のうち少なくとも1つを含む、安全なファイルにおける少なくとも1つのクラスタを検索し、
安全なファイルにおける前記識別された少なくとも1つのクラスタに少なくとも部分的に基づいて、前記仮想スタックマシンで実行可能な前記ファイルのデータのクラスタを生成し、
前記仮想スタックマシンで実行可能な前記ファイルのデータにおける生成されたクラスタの少なくとも1つのチェックサムを計算し、
有害なファイルのチェックサムの前記データベースにアクセスし、及び、
前記計算された少なくとも1つのチェックサムが、有害なファイルのチェックサムの前記データベースでのチェックサムと一致する場合、前記仮想スタックマシンで実行可能なファイルが、有害なファイルであると判断するように構成される、
システム。 - 前記ファイルのファイル・セクションにおけるパラメータは、コード、名前、ヘッダー型、前記ファイル・セクションでのデータへのオフセット、及び、前記ファイル・セクションでのデータサイズ、のうち少なくとも1つを含む、請求項9に記載のシステム。
- 前記ファイルの関数のパラメータは、関数本体のインデックス、前記ファイル・セクションでの関数コードの位置と長さ、関数記述子のインデックス、前記関数実行中のスタックの最大の深さ、前記関数で使用されるローカル変数の数、前記関数の名前、オペランドの数、及びリターンできるデータ型、のうち少なくとも1つを含む、請求項9に記載のシステム。
- 前記第一閾値は、ファイル・セクションの型の数である、請求項9に記載のシステム。
- 前記第二閾値は、前記関数で使用されるローカル変数の数である、請求項9に記載のシステム。
- 前記ハードウェアプロセッサは、
MD5セットを計算することによって、ファジーチェックサムを計算することによって、少なくとも1つのチェックサムの計算し、
MD5セットは、これらセクションのセクション・ヘッダ型とサイズを含むクラスタ、
前記ファイルの前記関数で使用されるローカル変数の数を含むクラスタ、
及び、前記仮想スタックマシンで実行可能な関数の名前を含むクラスタ、
を含むように、さらに構成されている、請求項9に記載のシステム。 - 前記ハードウェアプロセッサは、
前記MD5セットのクラスタの少なくとも2つのチェックサムが有害なファイルにおけるチェックサムの前記データベースでの少なくとも2つのチェックサムと一致する、という判断によって、前記仮想スタックマシンで実行可能な前記ファイルは有害なファイルであるという判断するように、
さらに構成されている、請求項14に記載のシステム。 - 前記ハードディスクプロセッサは、
クラスタリングのルールに従って、前記ファイルのデータにおけるクラスタを生成するように、さらに構成され、
前記ルールは、
前記ファイルから識別されている前記データの配列で、前記識別されたデータを連続クラスタに配置するというルール、
前記ファイル・セクションのデータのサイズがゼロと等しい場合、前記データのクラスタを生成するために、前記ファイル・セクションのパラメータを使わないというルール、
前記関数で使用されているローカル変数の数がゼロと等しい場合、前記データのクラスタを生成するために、前記ファイルの関数のパラメータを使わないというルール、及び、
前記データのクラスタを生成するために、安全なファイルにおけるクラスタの前記データベースで識別されたクラスタから識別されたデータを使わないというルールのうちの少なくとも1つを含む、
請求項9に記載のシステム。 - 仮想スタックマシンで有害なファイルを検出するため、コンピュータ実行可能命令を格納する非一時的コンピュータ可読媒体であって、
前記命令は、
前記仮想スタックマシンで実行可能なファイルからのデータであって、前記ファイルのファイル・セクションにおけるパラメータ及び前記仮想スタックマシンで実行される前記ファイルの関数におけるパラメータ、のうち少なくとも1つのパラメータを含むデータ、を識別する命令と、
識別された前記データに基づいて、データベースで、第一閾値を超える前記ファイル・セクションの1つのパラメータの値及び第二閾値を超える前記関数の1つのパラメータの値、の少なくとも1つを含む、安全なファイルにおける少なくとも1つのクラスタを検索する命令と、
安全なファイルにおける前記識別された少なくとも1つのクラスタでの少なくとも1つに基づいて、前記仮想スタックマシンで実行可能な前記ファイルにおけるデータのクラスタを生成する命令と、
前記仮想スタックマシンで実行可能な前記ファイルのデータにおける生成されたクラスタの少なくとも1つのチェックサムを計算する命令と、
有害なファイルのチェックサムの前記データベースにアクセスする命令と、
及び、前記計算された少なくとも1つのチェックサムが、有害なファイルのチェックサムの前記データベースでのチェックサムと一致する場合、前記仮想スタックマシンで実行可能なファイルが有害なファイルであると判断する命令と、を含む、非一時的コンピュータ可読媒体。 - 少なくとも1つのチェックサムの計算する命令は、
MD5セットを計算することによって、ファジーチェックサムを計算する命令をさらに備え、
MD5セットは、これらセクションのセクション・ヘッダ型とサイズを含むクラスタ、
前記ファイルの前記関数で使用されるローカル変数の数を含むクラスタ、
及び、前記仮想スタックマシンで実行可能な関数の名前を含むクラスタ、
を含む、請求項17に記載の非一時的コンピュータ可読媒体。 - 前記仮想スタックマシンで実行可能な前記ファイルが有害なファイルであるという判断をする命令は、前記MD5セットのクラスタの少なくとも2つのチェックサムが有害なファイルにおけるチェックサムの前記データベースでの少なくとも2つのチェックサムと一致する、という判断を、さらに備える、請求項18に記載の非一時的コンピュータ可読媒体。
- 前記ファイルのデータにおけるクラスタの生成する命令は、
クラスタリングのルールに従って実行され、
前記ルールは、
前記ファイルから識別されている前記データの配列で、前記識別されたデータを連続クラスタに配置するというルール、
前記ファイル・セクションのデータのサイズがゼロと等しい場合、前記データのクラスタを生成するために、前記ファイル・セクションのパラメータを使わないというルール、
前記関数で使用されているローカル変数の数がゼロと等しい場合、前記データのクラスタを生成するために、前記ファイルの関数のパラメータを使わないというルール、及び、
前記データのクラスタを生成するために、安全なファイルにおけるクラスタの前記データベースで識別されたクラスタから識別されたデータを使わないというルールのうちの少なくとも1つを含む、
請求項17に記載の非一時的コンピュータ可読媒体。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2015125974A RU2624552C2 (ru) | 2015-06-30 | 2015-06-30 | Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины |
RU2015125974 | 2015-06-30 | ||
US14/833,620 | 2015-08-24 | ||
US14/833,620 US9396334B1 (en) | 2015-06-30 | 2015-08-24 | System and method for detecting harmful files executable on a virtual stack machine |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017021777A true JP2017021777A (ja) | 2017-01-26 |
JP6277224B2 JP6277224B2 (ja) | 2018-02-07 |
Family
ID=56381665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016093094A Active JP6277224B2 (ja) | 2015-06-30 | 2016-05-06 | 仮想スタックマシンで実行可能な有害なファイルを検出するためのシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9396334B1 (ja) |
EP (1) | EP3136276B8 (ja) |
JP (1) | JP6277224B2 (ja) |
CN (1) | CN106326737B (ja) |
RU (1) | RU2624552C2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019082989A (ja) * | 2017-09-29 | 2019-05-30 | エーオー カスペルスキー ラボAO Kaspersky Lab | 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法 |
WO2020183828A1 (ja) | 2019-03-12 | 2020-09-17 | 日本電気株式会社 | ホワイトリスト生成装置、制御方法、及びプログラム |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI599905B (zh) * | 2016-05-23 | 2017-09-21 | 緯創資通股份有限公司 | 惡意碼的防護方法、系統及監控裝置 |
RU2708355C1 (ru) * | 2018-06-29 | 2019-12-05 | Акционерное общество "Лаборатория Касперского" | Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде |
US11374946B2 (en) * | 2019-07-19 | 2022-06-28 | Palo Alto Networks, Inc. | Inline malware detection |
US11636208B2 (en) * | 2019-07-19 | 2023-04-25 | Palo Alto Networks, Inc. | Generating models for performing inline malware detection |
US11537523B2 (en) * | 2019-07-31 | 2022-12-27 | Red Hat, Inc. | Command result caching for building application container images |
US11469942B2 (en) | 2019-08-15 | 2022-10-11 | At&T Intellectual Property I, L.P. | System and method for SDN orchestration validation |
US11409868B2 (en) * | 2019-09-26 | 2022-08-09 | At&T Intellectual Property I, L.P. | Ransomware detection and mitigation |
RU2757408C1 (ru) * | 2020-09-24 | 2021-10-15 | Акционерное общество "Лаборатория Касперского" | Система и способ формирования правила проверки файла на вредоносность |
US20230350782A1 (en) * | 2022-04-28 | 2023-11-02 | Twilio Inc. | Data logging for api usage analytics |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014012863A2 (en) * | 2012-07-15 | 2014-01-23 | Eberhard Karls Universität Tübingen | Method of automatically extracting features from a computer readable file |
JP2014504399A (ja) * | 2010-12-01 | 2014-02-20 | ソースファイア インコーポレイテッド | 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法 |
WO2014035043A1 (ko) * | 2012-09-03 | 2014-03-06 | 주식회사 안랩 | 악성 애플리케이션 진단 장치 및 방법 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6618737B2 (en) * | 2000-03-09 | 2003-09-09 | International Business Machines Corporation | Speculative caching of individual fields in a distributed object system |
EP1154356A1 (en) * | 2000-05-09 | 2001-11-14 | Alcatel | Caching of files during loading from a distributed file system |
US7870610B1 (en) * | 2007-03-16 | 2011-01-11 | The Board Of Directors Of The Leland Stanford Junior University | Detection of malicious programs |
US8813222B1 (en) | 2009-01-21 | 2014-08-19 | Bitdefender IPR Management Ltd. | Collaborative malware scanning |
US8621636B2 (en) * | 2009-12-17 | 2013-12-31 | American Express Travel Related Services Company, Inc. | Systems, methods, and computer program products for collecting and reporting sensor data in a communication network |
US8468602B2 (en) * | 2010-03-08 | 2013-06-18 | Raytheon Company | System and method for host-level malware detection |
US8683216B2 (en) * | 2010-07-13 | 2014-03-25 | F-Secure Corporation | Identifying polymorphic malware |
CN103180862B (zh) * | 2010-08-25 | 2016-03-02 | 前景公司 | 用于服务器耦合的恶意软件防止的***和方法 |
US9454658B2 (en) * | 2010-12-14 | 2016-09-27 | F-Secure Corporation | Malware detection using feature analysis |
RU107621U1 (ru) * | 2011-04-25 | 2011-08-20 | Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" | Система для контроля хода выполнения программ |
EP2729895B1 (en) * | 2011-07-08 | 2016-07-06 | The UAB Research Foundation | Syntactical fingerprinting |
CN102930206B (zh) | 2011-08-09 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 病毒文件的聚类划分处理方法和装置 |
DE102011056502A1 (de) * | 2011-12-15 | 2013-06-20 | Avira Holding GmbH | Verfahren und Vorrichtung zur automatischen Erzeugung von Virenbeschreibungen |
CN102664875B (zh) * | 2012-03-31 | 2014-12-17 | 华中科技大学 | 基于云模式的恶意代码类别检测方法 |
CN102810138B (zh) * | 2012-06-19 | 2015-12-02 | 北京奇虎科技有限公司 | 一种用户端文件的修复方法和*** |
US9146767B2 (en) | 2012-06-19 | 2015-09-29 | Raytheon Company | Secure cloud hypervisor monitor |
WO2014012106A2 (en) * | 2012-07-13 | 2014-01-16 | Sourcefire, Inc. | Method and apparatus for retroactively detecting malicious or otherwise undesirable software as well as clean software through intelligent rescanning |
RU2514140C1 (ru) * | 2012-09-28 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ увеличения качества обнаружений вредоносных объектов с использованием правил и приоритетов |
CN102902925B (zh) * | 2012-09-29 | 2016-08-03 | 北京奇虎科技有限公司 | 一种染毒文件的处理方法和*** |
RU2523112C1 (ru) * | 2012-12-25 | 2014-07-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу |
US9317548B2 (en) * | 2013-01-30 | 2016-04-19 | International Business Machines Corporation | Reducing collisions within a hash table |
EP2819054B1 (en) | 2013-06-28 | 2018-10-31 | AO Kaspersky Lab | Flexible fingerprint for detection of malware |
US9058488B2 (en) * | 2013-08-14 | 2015-06-16 | Bank Of America Corporation | Malware detection and computer monitoring methods |
US9294501B2 (en) | 2013-09-30 | 2016-03-22 | Fireeye, Inc. | Fuzzy hash of behavioral results |
-
2015
- 2015-06-30 RU RU2015125974A patent/RU2624552C2/ru active
- 2015-08-24 US US14/833,620 patent/US9396334B1/en active Active
- 2015-09-07 EP EP15184122.8A patent/EP3136276B8/en active Active
-
2016
- 2016-02-29 CN CN201610113527.4A patent/CN106326737B/zh active Active
- 2016-05-06 JP JP2016093094A patent/JP6277224B2/ja active Active
- 2016-06-14 US US15/182,083 patent/US10013555B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014504399A (ja) * | 2010-12-01 | 2014-02-20 | ソースファイア インコーポレイテッド | 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法 |
WO2014012863A2 (en) * | 2012-07-15 | 2014-01-23 | Eberhard Karls Universität Tübingen | Method of automatically extracting features from a computer readable file |
WO2014035043A1 (ko) * | 2012-09-03 | 2014-03-06 | 주식회사 안랩 | 악성 애플리케이션 진단 장치 및 방법 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019082989A (ja) * | 2017-09-29 | 2019-05-30 | エーオー カスペルスキー ラボAO Kaspersky Lab | 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法 |
JP7084778B2 (ja) | 2017-09-29 | 2022-06-15 | エーオー カスペルスキー ラボ | 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法 |
WO2020183828A1 (ja) | 2019-03-12 | 2020-09-17 | 日本電気株式会社 | ホワイトリスト生成装置、制御方法、及びプログラム |
US11989281B2 (en) | 2019-03-12 | 2024-05-21 | Nec Corporation | White list generation device, control method, and program |
Also Published As
Publication number | Publication date |
---|---|
EP3136276A1 (en) | 2017-03-01 |
CN106326737A (zh) | 2017-01-11 |
CN106326737B (zh) | 2019-05-21 |
US9396334B1 (en) | 2016-07-19 |
US20170004310A1 (en) | 2017-01-05 |
JP6277224B2 (ja) | 2018-02-07 |
EP3136276B1 (en) | 2017-10-25 |
EP3136276B8 (en) | 2018-03-07 |
US10013555B2 (en) | 2018-07-03 |
RU2624552C2 (ru) | 2017-07-04 |
RU2015125974A (ru) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6277224B2 (ja) | 仮想スタックマシンで実行可能な有害なファイルを検出するためのシステムおよび方法 | |
JP6346632B2 (ja) | モバイルデバイスでの悪質なファイルを検出するシステム及び方法 | |
Aslan et al. | Investigation of possibilities to detect malware using existing tools | |
US10193906B2 (en) | Method and system for detecting and remediating polymorphic attacks across an enterprise | |
CN109145600B (zh) | 使用静态分析元素检测恶意文件的***和方法 | |
Afonso et al. | Identifying Android malware using dynamically obtained features | |
CN109271780B (zh) | 机器学习恶意软件检测模型的方法、***和计算机可读介质 | |
JP6731988B2 (ja) | 訓練された機械学習モデルを使用することで悪意のあるファイルを検出するシステムおよび方法 | |
RU2485577C1 (ru) | Способ увеличения надежности определения вредоносного программного обеспечения | |
US9135443B2 (en) | Identifying malicious threads | |
RU2617654C2 (ru) | Система и способ формирования набора антивирусных записей, используемых для обнаружения вредоносных файлов на компьютере пользователя | |
US9015814B1 (en) | System and methods for detecting harmful files of different formats | |
RU2491615C1 (ru) | Система и способ формирования записей для обнаружения программного обеспечения | |
RU2634178C1 (ru) | Способ обнаружения вредоносных составных файлов | |
JP6909770B2 (ja) | ウィルス対策レコードを作成するシステムと方法 | |
Zakeri et al. | A static heuristic approach to detecting malware targets | |
CN108369541B (zh) | 用于安全威胁的威胁风险评分的***和方法 | |
Naz et al. | Review of machine learning methods for windows malware detection | |
Wood et al. | Keyloggers in Cybersecurity Education. | |
JP6322240B2 (ja) | フィッシング・スクリプトを検出するためのシステム及び方法 | |
RU2673708C1 (ru) | Система и способ машинного обучения модели обнаружения вредоносных файлов | |
RU2510530C1 (ru) | Способ автоматического формирования эвристических алгоритмов поиска вредоносных объектов | |
Eskandari et al. | ERES: an extended regular expression signature for polymorphic worm detection | |
RU2774042C1 (ru) | Система и способ выявления потенциально вредоносных изменений в приложении | |
Wu et al. | Detection of Android Malware Behavior in Browser Downloads |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170829 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171129 |
|
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: 20180109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180115 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6277224 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |