JP6736532B2 - 静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法 - Google Patents

静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法 Download PDF

Info

Publication number
JP6736532B2
JP6736532B2 JP2017177984A JP2017177984A JP6736532B2 JP 6736532 B2 JP6736532 B2 JP 6736532B2 JP 2017177984 A JP2017177984 A JP 2017177984A JP 2017177984 A JP2017177984 A JP 2017177984A JP 6736532 B2 JP6736532 B2 JP 6736532B2
Authority
JP
Japan
Prior art keywords
resources
file
rules
rule
malicious
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
Application number
JP2017177984A
Other languages
English (en)
Other versions
JP2019003596A (ja
Inventor
ブイ. クリロフ ウラジミール
ブイ. クリロフ ウラジミール
ブイ. リスキン アレクサンダー
ブイ. リスキン アレクサンダー
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2019003596A publication Critical patent/JP2019003596A/ja
Application granted granted Critical
Publication of JP6736532B2 publication Critical patent/JP6736532B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、概してアンチウィルス技術に関し、より詳細には、静的分析の要素を使用して悪質なファイルを検出するためのシステム及び方法に関するものである。
近年のコンピュータ技術の急速な発展は、様々なコンピューティングデバイス(パーソナルコンピュータ、ノートブック、タブレット、スマートフォン等)の広範な使用と同様に、これらのデバイスを様々な活動分野で使用して、膨大な数の問題(インターネットサーフィンから銀行振込や電子文書化まで)を解決するための強力なインセンティブとなっている。
これらのデバイス上で動作するコンピューティングデバイスとソフトウェアの数の増加と並行して、悪質なプログラムの数も急速に増加している。
現在、膨大な種類の悪質なプログラムが存在している。それらの中には、ユーザのデバイスから個人情報や機密情報(ログインやパスワード、銀行情報、電子文書等)を盗むものがある。或いは、力まかせ探索法により他のコンピュータやコンピュータネットワーク上においてパスワードをソートするために、ユーザのデバイスを、分散型サービス拒否(DDOS)攻撃等の攻撃のための、所謂ボットネットへと変えるものもある。更に他には、介入広告、有料購読、有料電話番号へのSMSの送信等を通じて有料コンテンツをユーザへと提供するようなものもある。
特化型の、又はアンチウイルス用のプログラムを使用して、悪質なプログラムの検出、感染の防止、悪質なプログラムに感染したコンピュータシステムの復元等、悪質なプログラムへの対処がなされる。
アンチウイルスプログラムは、以下のような様々な悪質なプログラムを検出するために多様な技術を採用している。
・静的分析―分析中(その際、静的分析を介する)のプログラムを構成するファイルに含まれるデータに基づいた、分析されるプログラムの作業の起動又はエミュレーションを含む、プログラムの有害性の分析を行う。
・署名分析―分析されるプログラムの特定のコードセクションの、悪質なプログラムの署名のデータベースの中から得られた既知のコード(署名)との対応を検索する。
・ホワイトリスト及びブラックリスト―悪質なプログラムのチェックサムのデータベース(ブラックリスト)、又は安全なプログラムのチェックサムのデータベース(ホワイトリスト)内において、分析されるプログラムに対し計算されたチェックサム(又はその一部)を検索する。
・動的分析―分析中のプログラムの作業の実行中又はエミュレーションの過程(その際、動的分析を介する)で得られたデータに基づいて、プログラムの有害性の分析を行う。
・ヒューリスティック分析−分析されるプログラムの作業のエミュレーション、エミュレーションログの生成(API関数呼び出しに関するデータ、送信されたパラメータ、分析されるプログラムのコードセクション等を含む)、及び悪質なプログラムのエミュレートされた署名に関するデータベースから得られたデータを使用して生成されたログからのデータの対応関係の検索を実行する。
・プロアクティブな保護―分析される実行プログラムのAPI関数呼び出しの傍受、分析されるプログラムの作業に関するログの生成(API関数呼び出しに関するデータ、送信されたパラメータ、分析されるプログラムのコードセクション等)、及び悪質なプログラムの呼び出しに関するデータベースから得られたデータを使用して生成されたログからのデータの対応関係を検索する。
静的分析及び動的分析の両方には、それぞれ長所と短所がある。例えば、静的分析は、分析が行われているコンピュータシステムのリソースに対する要求が少なく、分析されるプログラムの実行又はエミュレーションを必要としないので、統計分析はより高速であるが有効性が低い。即ち、悪質なプログラムの検出率が低く、更に(アンチウイルスプログラムによって分析されているファイルが有害であると判断されるがファイル自体は安全であるというような)誤警告の割合が高くなる。動的分析は、分析中のプログラム動作の実行中又はエミュレーション中に得られたデータを使用するため、分析が遅くなり、分析が行われているコンピュータシステムのリソースに対し大きな要求を課すが、一方でその有効性は高い。最新のアンチウイルスプログラムは、静的分析と動的分析の両方の要素を含む複雑な分析を使用する。
既知の技術は、既に検出された悪質なファイル上で使用されているデータに類似したデータが含まれている場合に潜在的な脅威を構成するような悪質なファイルを検出することには優れているが、多くの場合、他の悪質なファイル上で以前に使用されたことのない、又は修正されたデータを利用した新たな悪質なファイルを特定する際の有効性は低い。
本開示は、統計分析の要素を用いて悪質なファイルを検出する際の問題を解決することを可能にする。
本発明によれば、電子ファイルが悪質であるかどうかを判定する方法であって、抽出ステップと、形成ステップと、特定ステップと、計算ステップと、判定ステップと、を備え、前記抽出ステップでは、前記電子ファイルから複数のリソースを抽出し、前記形成ステップでは、1つ又は複数の第1の規則を形成し、前記第1の規則は、抽出された前記複数のリソース間の機能的依存性を確立し、前記特定ステップでは、悪質なファイルのリソースのデータベースにおいて、1つ又は複数の第2の規則を特定し、前記第2の規則は、抽出された前記複数のリソースのうちの1つ又は複数に関連付けられ、前記計算ステップでは、前記第1及び第2の規則を比較して、これらの類似度を計算し、前記判定ステップでは、算出された前記類似度が所定の閾値を超えた場合に、電子ファイルを悪質なファイルであると判定する、方法が提供される。
好ましくは、前記悪質なファイルの削除及び隔離のうちの少なくとも1つを更に実行する。
好ましくは、前記電子ファイルを生成するために使用される開発環境に関するデータ、前記電子ファイルをパックしたソフトウェアアプリケーションに関するデータ、及び前記電子ファイルの電子署名のうちの少なくとも1つを抽出する。
好ましくは、抽出された前記複数のリソースの少なくとも1つのハッシュサムを計算し、
前記悪質なファイルリソースの前記データベースにおいて、計算された前記ハッシュサムに基づいて少なくとも1つの前記第2の規則を特定する。
好ましくは、抽出された前記複数のリソースの人工ニューラルネットを生成することにより、少なくとも1つの前記第1の規則を形成し、生成された前記人工ニューラルネットのノードは、抽出された前記リソースの分析であり、前記ノード間のリンクは、抽出された前記リソース間の機能的依存性を示す。
好ましくは、前記機能的依存性に基づいて、前記データベースにおいて前記少なくとも1つの第2の規則を更に特定する。
好ましくは、アイコンリソース、マニフェストリソース及びダイアログリソースを含む複数のリソースを抽出し、前記リソースの少なくとも2つの間に前記機能的依存性を形成し、前記少なくとも2つのリソース間の形成された機能的依存性に基づいて、少なくとも1つの前記第2のルールを前記データベース内で検索する。
好ましくは、判別分析によりパターン認識に基づいて類似度を更に計算し、前記類似度は、前記第1及び第2のルールにおける前記各リソースの機能的依存性の間におけるものである。
本発明によれば、電子ファイルが悪質であるかどうかを判定するシステムであって、少なくとも1つのデータベースと、少なくとも1つのプロセッサとを備え、前記データベースは、複数の悪質なファイルリソースに関連する複数の規則を格納し、前記プロセッサは、抽出ステップと、形成ステップと、特定ステップと、計算ステップと、判定ステップとを実行するように構成され、前記抽出ステップでは、前記電子ファイルから複数のリソースを抽出し、前記形成ステップでは、1つ又は複数の第1の規則を形成し、前記第1の規則は、抽出された前記複数のリソース間の機能的依存性を確立し、前記特定ステップでは、悪質なファイルのリソースのデータベースにおいて、1つ又は複数の第2の規則を特定し、前記第2の規則は、抽出された前記複数のリソースのうちの1つ又は複数に関連付けられ、前記計算ステップでは、前記第1及び第2の規則を比較して、これらの類似度を計算し、前記判定ステップでは、算出された前記類似度が所定の閾値を超えた場合に、電子ファイルを悪質なファイルであると判定する、システムが提供される。
本発明によれば、コンピュータで実行可能な命令を含む非一時的なコンピュータ可読媒体であって、前記命令は、電子ファイルが悪質であるかどうかを判定するもので、抽出ステップと、形成ステップと、特定ステップと、計算ステップと、判定ステップとを備え、前記抽出ステップでは、前記電子ファイルから複数のリソースを抽出し、前記形成ステップでは、1つ又は複数の第1の規則を形成し、前記第1の規則は、抽出された前記複数のリソース間の機能的依存性を確立し、前記特定ステップでは、悪質なファイルのリソースのデータベースにおいて、1つ又は複数の第2の規則を特定し、前記第2の規則は、抽出された前記複数のリソースのうちの1つ又は複数に関連付けられ、前記計算ステップでは、前記第1及び第2の規則を比較して、これらの類似度を計算し、前記判定ステップでは、算出された前記類似度が所定の閾値を超えた場合に、電子ファイルを悪質なファイルであると判定する、媒体が提供される。
本発明の例示的な態様に係る上述の簡略化した概要は、本発明の基本的な理解を提供するように機能するものである。この概要は、全ての企図された態様の広範な概要ではなく、全ての態様の重要な又は重要な要素を特定することも本発明の任意の又は全ての態様の範囲を描写することも意図されていない。唯一の目的は、以下の本発明のより詳細な説明の前置きとして、1つ又は複数の態様を簡略化した形で提示することである。前述の目的を達成するために、本発明の1つ又は複数の態様が記載され、これは特に特許請求の範囲において主張される特徴を含むものである。
添付の図面は、本明細書に組み込まれ、本明細書の一部を構成し、本発明の1つ又は複数の例示的な態様を示し、詳細な説明とともに、それらの基本原理及び実施形態を説明する役割を果たすものである。
例示的な態様における静的分析の要素を用いて悪質なファイルを検出するためのシステムのブロック図を示す。
例示的な態様における静的分析の要素を用いて悪質なファイルを検出するための方法のフローチャートを示す。
開示されたシステム及び方法が例示的な態様に従って実装され得る汎用コンピュータシステム(パーソナルコンピュータ又はサーバであり得る)の例を示す。
様々な態様が図面を参照して説明され、同様の参照番号は全体を通して同様の要素を指すために使用される。以下の説明では、説明のために、1つ又は複数の態様の完全な理解を促進するために、多数の特定の設計詳細が示される。しかしながら、以下に記載する特定の設計詳細を採用することなく、以下に記載される任意の態様を実施することができることは、いくつか又は全ての例において明らかである。他の例では、1つ又は複数の態様の説明を容易にするために、周知の構造及びデバイスがブロック図形式で示されている。以下は、態様の基本的な理解を提供するために、1つ又は複数の態様の簡略化された概要を提示する。この要約は、全ての企図された態様の広範な概観ではなく、全ての態様の重要な又は重要な要素を特定することも、任意又は全ての態様の範囲を描写することも意図していない。
以下の開示は、本開示の多様な態様の説明において使用される多数の定義及び概念を導入する。
「機能的依存性」とは、2つの属性のセット間の関係であり、全ての属性に共通する変換を介して、1つのセットの属性を、もう一方のセットの属性から得ることができる。
「データの類似性」は、数値パラメータ又は「類似度」で記述できるような、データを互いに関連付ける特性であり、既知の距離(「Levenshtein距離」等)を使用してどのように類似しているかを判断することができる(好ましくは、その値は一般に0〜1の範囲内にあり、0はデータが完全に同一であることを示し、1はデータが全く異なることを意味する)。
図1は、例示的な態様における静的分析の要素を用いて悪質なファイルの検出するためのシステムのブロック図を示す。
図示のように、静的分析の要素を用いて悪質なファイルを検出するためのシステムの構造図は、以下のモジュールのうちの複数を含むことができる。即ち、リソースを抽出するように構成されたモジュール110(「リソース抽出モジュール」)、規則を形成するように構成されたモジュール120(「規則形成モジュール」)、規則を検索するように構成されたモジュール130(「規則検索モジュール」)、規則を比較するように構成されたモジュール140(「規則比較モジュール」)、意思決定を実行するように構成されたモジュール150(「意思決定モジュール」)、及び、悪質なファイルのリソースのデータベース160である。
本明細書で使用する「モジュール」という用語は、例えば、特定用途向け集積回路(ASIC)又はフィールドプログラム可能なゲートアレイ(FPGA)等の、ハードウェアを使用して、或いは、モジュールの機能を実現するための命令のセット等により、(実行される際に)マイクロプロセッサシステムを専用デバイスへと変換するようなハードウェアとソフトウェアとの組み合わせとして実装されることができる、現実のデバイス、コンポーネント、又はコンポーネントの配列を指す。モジュールは、2つの要素の組み合わせとして実装されても良く、ハードウェアだけで実行可能であるような特定の機能、及びハードウェアとソフトウェアの組み合わせによって実行可能であるような他の機能を備えることができる。
特定の実装形態では、モジュールの少なくとも一部、場合によってはその全てを汎用コンピュータのプロセッサ上で実行することができる。従って、各モジュールは、様々な適切な構成により実現することができ、本明細書に例示された例示的な実装に限定されるわけではない。
例示的な態様によれば、リソースを抽出するように構成されたモジュール110は、分析されるファイルからリソースを抽出するように設計されており、更に、抽出されたリソースを、規則を形成するように構成されたモジュール120と、規則を検索するように構成されたモジュール130へと送信することができる。
このシステムの1つの変形態様では、分析されるファイルは、少なくとも実行可能ファイル又はスクリプトを含むファイルである。
例えば、実行可能ファイルは、filesexe(explorer.exe)、.dll(OCHelper.dll)、sys(mountmgr.sys)である。
更に別の例では、スクリプトを含むファイルは、第三者の実行可能ファイルを実行するファイルを含むファイルであってもよい(そのスクリプトは、ActionScript言語のスクリプト、スタックバーチャルマシンのAdobe Flashによって実行可能なスクリプト、Internet Explorerで呼び出されたMicrosoft Excelマクロ、 Visual Basic for Applicationsのような言語のスクリプト等である)。
システムの更に別の変形態様では、スクリプトを含むファイルは少なくとも、Microsoft Office(.doc、.docx、ppt、pptx、.xls、.xlsx等)Adobe Acrobat Reader(.pdf)、及びAdobe Flash Player(.swf)というPowerShell言語で書かれたスクリプトを含むファイルである。
本システムの更に別の変形態様では、分析されるファイルのリソースは、少なくとも次のようなものである。即ち、分析されるファイルのリソースセクションに含まれるリソース、分析されるファイルに含まれそのファイルを生成(コンパイル)するために使用された開発環境を記述するデータ、分析されるファイルに含まれデータ及びそのファイルをパッキングするために使用されるソフトウェアを記述するデータ、及び/又は分析されるファイルのデジタル署名に対応するデータである。
例えば、拡張子「.exe」で分析される実行可能ファイルのリソースセクションに含まれるリソースは、カーソル(RT_CURSOR)、アイコン(RT_ICON)、ダイアログウィンドウ(RT_DIALOG)、メニュー(RT_MENU)、文字列(RT_STRING) 、ビットマップ(RT_BITMAP)等であり、分析されるファイルのセクション「.rsrc」に格納され、ツリーの形で構成される。リソースのメタデータを構成するリソースに関する全ての情報(例えばアイコンに対しては、アイコンの次元、アイコン内の色当たりのビット数、アイコンのタイプ、ビットマップのポインタ等/例えばダイアログに対しては、ダイアログの次元、ダイアログの基本フォントのパラメータ、ダイアログに含まれる要素の数等)は、リソース自体に直接含まれていてもよい。
更に別の例では、(例えば、実行可能ファイル内のソースコードをコンパイルすることで)分析されるファイルを生成するために使用され、開発環境を記述するデータは、開発環境の名前、開発環境のバージョン、分析されるファイルが生成された(又はコンパイルされた)日付である(例えばMicrosoft Visual Studio 2015の場合)。開発環境を記述する前述のデータは、分析されるファイルに明示的な形で含まれるのではなく、寧ろ、ある開発環境に特有のシグネチャを使用し分析されるファイルの構造を分析することによって得られる場合があり、その署名は、関数及び/又は実行コードの呼び出しであってもよい。
更に別の例では、分析されるファイルをパッキングするためのソフトウェアを記述するデータは、パッキングを行うプログラムの名前、パッキングを行うプログラムのバージョン、分析されるファイルのパッキングのデータ(UPX3.94等)であってもよい。パッキングソフトウェアを記述する前述のデータは、分析されるファイルに明示的な形で含まれるのではなく、寧ろ、分析される実行可能ファイルのエントリーポイントに位置する実行可能コードの分析によって取得されてもよい(例えば、各パッキングソフトウェアは、パッキングされているファイル内にユニークなアンパックコードを生成するので、もしその特性、即ち、使用されているAPI関数、オペレータの呼び出し順序等が分かっている場合は、実際のパッケージングソフトウェアを決定することが可能であり、更に前述のアンパックコードの特性は、署名及びビットマスクによって指定することができる)。
更に別の例では、分析されるファイルのデジタル署名に対応するデータは、デジタル署名を発行する組織の名前、及び/又はそのデジタル署名の有効性(真正性)であってもよい。
システムの更に別の変形態様では、リソースを抽出するように構成されたモジュール110は、少なくとも以下に基づきリソースの抽出を行う。即ち、分析されるファイルに含まれるリソースの構造に関するデータ、及び/又は抽出されるリソースのメタデータを含む署名である。
例えば、拡張子「.exe」を有する実行可能ファイルにおいて、リソースの構造に関するデータは、そのファイルのヘッダと、リソースセクション「.rsrc」のヘッダに含まれており、そこではツリーが構成され、そのノード内においてリソースそのもの、又はリソースに関するデータが検出される。
システムの更に別の変形態様では、リソースを抽出するように構成されたモジュール110は、抽出された各リソースに基づいて、そのリソースのハッシュサムを更に計算し、計算されたハッシュサムを規則を検索するように構成されたモジュール130へと送信する。
例えば、ハッシュサムは、画像、メディアデータ、又は非構造化リソースに対するMD5サム(又は単純にMD5)、及び/又は、文字列、メニュー、及び字句データを含む他のリソースに対する字句に基づく畳み込みであってもよい。
更に別の例では、ハッシュサムは知覚ハッシュであり、類似のデータについては同一である。
例示的な態様では、規則を形成するように構成されたモジュール120は、得られたリソース間の機能面での依存性を達成するような規則(以下、単に規則)を少なくとも1つ形成するように構成され、ここで、規則は得られたリソースから人工ニューラルネットを作り出すことによって形成され、更にここで、人工ニューラルネットのノードは、得られたリソースの分析を行うためのモジュールであり、ニューラルネットの生成中に形成されるノード間のリンクは、取得されたリソース間の機能面での依存性を示し、形成された各規則を、規則を比較するように構成されたモジュール140へと送信する。
システムの1つの変形態様では、規則を形成するように構成されたモジュール120は、(例えば、ウイルス分析者又はアンチウィルス企業の自動アンチウィルスアプリケーション等の)第三者によって以前に確立された機能的依存性の全体から、その第三者によって実行されるファイルのリソースの間に規則を形成し、このとき、リソースを抽出するように構成されたモジュール110によって抽出されたリソースは、以前に確立された前述の機能的依存性を形成するのに使用されたリソースに類似している。
例えば、ウイルス分析者や自動分析アプリケーション(Kaspersky Security Network等のクラウドサービスのコンテキストで使用される)は、大量の悪質なファイルの分析に基づいて、悪質なファイルのリソース間に特定のリンクを予め確立している。即ち、メインアプリケーションのアイコン(RC_ICON)は、安全なアプリケーションのアイコン(Internet ExplorerやWindows Media Player等)と類似しているが、完全には一致しない(類似度は0に近づく傾向があるものの0にはならない。)。また、そこには唯一のダイアログ(RC_DIALOG)があり、それはメインウィンドウのダイアログである、といった具合である。
規則を形成するように構成されたモジュール120は、これらのリンクを使用して、リソースを抽出するように構成されたモジュール110によって分析されるファイルから抽出されたリソース間の機能的依存性を達成する。
システムの更に別の変形態様では、リソースを分析するように構成されたモジュールは、形成された人工ニューラルネットのノードの1つであり、得られたリソースに基づいた所定のアルゴリズムを使用して、上記のリソース間の機能的リンクを記述するデータを生成するように設計されている。
システムの更に別の変形態様では、取得されたリソースに基づいてリソースを分析するように構成されたモジュールの動作の結果は、リソースの畳み込みを構成する。
システムの更に別の変形態様では、リソース分析モジュールは、リソースの処理のためのアルゴリズムを記述するデータであり、このアルゴリズムの実行は、規則を形成するように構成されたモジュール120によって直接行われる。
例えば、リソース分析モジュールは、逆アフィン変換を記述するデータであり、画像をアフィノールのセットへと変換する。
更に別の例では、リソース分析モジュールは、テキストから字句を選び出し、選んだ字句からテキストの畳み込みを構成するためのアルゴリズムを記述するようなデータであってもよい。
システムの更に別の変形態様では、リソース分析モジュールは、クラスタ分析を実行するように供給されており、ここで、クラスタは、少なくとも以下により統合されたリソース群である。即ち、分析されるファイル内にある前記リソースのアプリケーション、前記リソースを記述するパラメータの所定の範囲、前記リソースに含まれる字句の分布に対する周波数特性の所定の範囲、及び/又はパターン認識である。
例えば、リソース分析モジュールは、(取得されたリソースである)画像と、(モジュールに含まれる)予め指定された画像とを比較し、上述の画像間の類似度を計算するためのアルゴリズムであってもよい(このとき、例えば「類似している/類似していない」という機能的リンクが達成される)。
システムの更に別の変形態様では、人工ニューラルネットは、リソースを抽出するように構成されたモジュール110から得られたリソースに基づき、人工ニューラルネット要素のデータベース170内から選択され、ここで、得られた人工ニューラルネットのノード及びリンクは、(例えば、ウイルス分析者又はアンチウィルス会社の自動アンチウィルスアプリケーションによって)予め決定される。上述の人工ニューラルネットを選択した後、規則を形成するように構成されたモジュール120は、リソースを抽出するように構成されたモジュール110から得られたリソースに基づき、これを学習する。
システムの更に別の変形態様では、規則を形成するように構成されたモジュール120は、パーセプトロンの方法を少なくとも使用して人工ニューラルネットを生成する。ここで、S要素はリソースであり、A要素及びR要素はリソース分析の方法であり、これらの要素間のリンクは、前述のリソースのメタデータ、及び/又は畳み込みニューラルネットワーク(CNN)に基づいて配置され、ここで、ニューラルネットのノードはリソース及び畳み込みである一方、リンクは前記リソースの畳み込みを実行するリソース分析モジュールである。
システムの更に別の変形態様では、規則を形成するように構成されたモジュール120は、機械学習アルゴリズムに基づいて、生成された人工ニューラルネットのノード間のリンクを形成する。
システムの更に別の変形態様では、機械学習の方法を利用して、規則を形成するように構成されたモジュール120により、生成された人工ニューラルネットのノード間のリンクが形成され、規則を形成するように構成されたモジュール120は教師あり学習を使用する。ここで、教師の役割は、第三者(例えば、ウイルス分析者又はアンチウィルスソフトウェアの自動アンチウィルスソフトウェアアプリケーション)によってなされ、一方で、誤りの訂正は、前記第三者により悪質なファイルのリソースのデータベース160を形成する間に分析されたファイルに基づき、(やはり)前記第三者によって予め行われている。
システムの更に別の変形態様では、規則を形成するように構成されたモジュール120により、機械学習の方法が使用され、生成された人工ニューラルネットのノード間のリンクが形成され、規則を形成するように構成されたモジュール120は、教師あり学習を採用する。ここで、エラーの後方伝播の方法が、人工ニューラルネットに対し教師として使用される。
システムの更に別の変形態様では、規則を形成するように構成されたモジュール120は、機能的依存性が確立されたリソースに関する情報を、規則を検索するように構成されたモジュール130へと送信し、規則を検索するように構成されたモジュール130は、前記情報が取得されたリソースについてのみ、悪質なファイルのリソースのデータベース160内において規則の検索を実行する。
規則を検索するように構成されたモジュール130は、リソースを抽出するように構成されたモジュール110から得られたリソースに基づいて、悪質なファイルのリソースのデータベース160内の少なくとも1つの規則を検索するように設計されており、更に(データベース内に)見つかった各規則を、規則を比較するように構成されたモジュール140へと送信する。
システムの更に別の変形態様では、規則を検索するように構成されたモジュール130は、得られたリソースのハッシュサムに基づいて、悪質なファイルのリソースのデータベース160内の少なくとも1つの規則の検索を追加的に実行する。
例えば、悪質なファイルのリソースのデータベース160内の各リソースには、そのリソースのMD5が対応する。この場合、規則を検索するように構成されたモジュール130に対し検索されるリソースに関して、事前にMD5を計算した上で、計算されたMD5の値に基づき、悪質なファイルのリソースのデータベース160内の規則に対し検索が実行される(例えば、二分探索法等による)。
システムの更に別の変形態様では、悪質なファイルのデータベース160内の規則を検索する際、規則を検索するように構成されたモジュール130は、リソースを抽出するように構成されたモジュール110から得られたリソースと、悪質なファイルのリソースのデータベース160に含まれ、そこで規則の形成が行われるようなリソースとの間の類似度の判定に基づいて規則を検出する。
例えば、悪質なファイルのリソースのデータベース内の画像に対し、ある1つの画像(抽出されたリソースの1つである)に基づいて検索が実行される場合、規則を検索するように構成されたモジュール130は、次の動作を実行する。即ち、
・分析対象のファイルから得られた画像から、YUV成分を形成する(ここで、YUV成分は、明るさY及び2つの色度U及びVという指標により、その画像を構成する点の色を表す色モデルにおいて前記画像を記述するデータを構成する)。
・形成された各成分について、色合いの頻度分布が最も暗いもの(0)から最も明るいもの(255)までを計算し、256成分の距離ベクトルを形成し、データ配列(行データ)を構成する。
・形成されたベクトルは、潜在的なキー(候補キー、以下、単にキー)として使用されるデータ配列(即ち、入力された他のデータの検索を実行するために使用されるデータ)を同様に構成し、悪質なファイルのリソースのデータベース160から得られた他の256成分の距離べクトルと比較される。そしてこの目的のために、形成されたベクトルとキーとのスカラー積(ベクトル間の角度が計算される)を計算する。
・計算されたスカラー積の値が所定の値よりも小さい場合には、上述のベクトルが形成される基礎となるような画像は、類似しているとみなされる。
システムの更に別の変形態様では、規則を探索するように構成されたモジュール130は、リソースの抽出に構成されたモジュールから得られたリソースの、悪質なファイルのリソースのデータベース160に含まれる規則を形成する際に基礎として使用されるリソースに対する類似度を計算し、その際、判別関数の分析を介したパターン認識方法が利用される。
システムの更に別の変形態様では、規則を検索するように構成されたモジュール130は、悪質なリソースのデータベース160内に含まれる規則を定式化するために使用されたリソースのうち、リソース110を抽出するように構成されたモジュールから得られたリソースと同じ種類のリソースのみに基づいて、悪質なファイルのリソースのデータベース160内の規則に対し検索を実行する。
例えば、悪質なファイルのリソースのデータベース160のアイコンに基づいて、規則を検索するように構成されたモジュール130は、それらを形成するのにアイコンが使用されたような規則を検出する。例えば、Internet Explorerアイコンに基づいて、Internet ExplorerアイコンのMD5をMicrosoftによって生成されたマニフェスト(RT_MANIFECT)に関連付けるような規則が、悪質なファイルのリソースのデータベース160内において検出される。
システムの更に別の変形態様では、規則を検索するように構成されたモジュール130は、リソースを抽出するように構成されたモジュール110から得られ、その間において規則を形成するように構成されたモジュール120が機能的依存性を確立しているようなリソースのみに基づいて、悪質なファイルのリソースのデータベース160内の規則を追加的に検索する。
例えば、リソースを抽出するように構成されたモジュール110は、ファイル「explorer.ex」から、アイコン「icon1.ico」、「icon2.ico」、マニフェスト「manifest.txt」及びメインウィンドウダイアログ「DIALOG_1」を抽出する。規則を形成するように構成されたモジュール120は、アイコン「icon1.ico」とダイアログ「DIALOG_1」との間の機能的依存性を確立する(アイコン「icon1.ico」はダイアログ「DIALOG_1」からのボタンに示されている)。規則を検索するように構成されたモジュール130は、悪質なファイルのリソースのデータベース160内の規則を検索するために、アイコン「icon1.ico」とダイアログ「DIALOG_1」のみをキーとして使用し、アイコン「icon2.ico」は、マニフェスト「manifect」は無視される。
規則を比較するように構成されたモジュール140は、規則を形成するように構成されたモジュール120から得られた規則と、規則を検索するように構成されたモジュール130との間の類似度を計算するように設計されており、更に、計算された類似度を、判断を行うように構成されたモジュール150へと送信する。
システムの1つの変形態様では、類似度は、0(規則は同一)から1(規則は異なる)までの間の数値である。
例えば、各々5つの構成要素を有する2つの規則に対し、1つの規則のうち4つの構成要素がもう1つの規則の4つの構成要素と同一であり、残りの2つの構成要素同士が異なる場合、これら2つの規則は0.2の類似度を持つ、ということになる。
システムの更に別の変形態様では、規則を比較するように構成されたモジュール140は、判別分析を用いながら、パターン認識の方法を使用して規則間の類似度を計算する。
システムの更に別の変形態様では、規則を形成するように構成されたモジュール120又は規則を検索するように構成されたモジュール130から少なくとも2つの規則が得られた場合、規則を比較するように構成されたモジュール140は、次の計算を行うように更に構成される。即ち、少なくとも2つの規則対に対して類似度の計算を行うこと(ここで、その内1つの規則は規則を形成するように構成されたモジュール120から得られ、もう一方の規則は規則を検索するように構成されたモジュール130から得られていて、更にここで、少なくとも2つの規則対は、規則を形成するように構成されたモジュール120、又は規則を検索するように構成されたモジュール130の中から異なる規則を含んでいる)、そして、類似度の合計を、以前に計算された類似度の中心傾向の計測値として、及び/又は以前に計算された類似度のファジーハッシュとして計算を行うこと、である。
例えば、規則を形成するように構成されたモジュール120は、リソース#1、リソース#2、リソース#3、規則r_1、r_2に基づいて定式化され、規則を検索するように構成されたモジュール130が規則m_1を検出したとする。このとき、規則を比較するように構成されたモジュール140は次のように類似度を計算する:
r_1→ m_1=0.251
r_2→ m_1=0.374
更に、以前に計算された類似度の算術平均として類似度の合計を計算する:
{r_i}→ m_1=0.3125
判断を行うように構成されたモジュール150は、得られた類似度が所定の閾値を超えた場合に、分析されるファイルを悪質であると判断するように設計されている。
システムの1つの変形態様では、類似性の閾値は、悪質なファイルのリソースのデータベース160に含まれる規則の統計分析に基づいて、第三者(ウィル分析者又はアンチウィルス会社の自動アンチウィルスソフトウェアアプリケーション等)によって事前に設定され、それは、判断を行うように構成されたモジュール150によってなされ、第三者によって分析された安全なファイルに対しての有害性に関する判断結果が否定的であり、一方で、悪質なファイルに対しての結果が肯定的であるように設定される。
例えば、悪質なファイルのリソースのデータベース160を生成する場合、1つ又は複数の自動ソフトウェアアプリケーションを介して、ウイルス分析者が1000個のファイルを分析し、そのうちの659個は悪質であると判明し、残りの341個は安全であったとする。まず、分析された悪質なファイルのリソースに基づいて規則が定式化され、悪質なファイルのリソースのデータベース160へと入力される。この後、分析された1000個のファイルの各々について、分析されたファイルのリソースに基づいて定式化された規則と、生成された、悪質なファイルのリソースのデータベース160に含まれる規則との類似度が計算される。計算された類似度に基づいて、類似度の閾値が以下の式に従って設定される。
s_limit=ave(min({s_clean}),max({s_malvare}))
ここで、s_limitは類似度の閾値、s_cleanは安全なファイルの類似度、s_malvareは悪質なファイルの類似度、である。
システムの更に別の変形態様では、判断を行うように構成されたモジュール150は、判断を行うように構成されたファイルが、分析されるファイルが悪質であると判断するした場合において更に、規則を形成するように構成されたモジュール120によって形成されるように、少なくとも1つの規則を、悪質なファイルのリソースのデータベース160へと追加的に入力する。
例えば、リソースを抽出するように構成されたモジュール110によって、分析されるファイル「video.avi.exe」から抽出されたリソース{d_i}に基づいて、規則を形成するように構成されたモジュール120は、規則{r_i}を定式化し、これは、判断を行うように構成されたモジュール150が、分析されるファイルが悪質であると判断したことに基づいている。判断を行うように構成されたモジュール150は、リソース{d_i}をキーとして、規則{r_i}を、悪質なファイルのリソースのデータベース160へと入力する。
悪質なファイルのリソースのデータベース160は、各規則が、少なくとも1つリソースと、当該の悪質なファイルのリソースとの間に機能的依存性を確立するような、少なくとも2つの規則を含むデータベースである。
システムの1つの変形態様では、悪質なファイルのリソースのデータベース160は、ファイルの分析が行われるようなコンピューティングデバイス(クライアント)上のアンチウィルス会社(サーバ)によって提供される。
システムの更に別の変形態様では、悪質なファイルのリソースのデータベース160のデータベースに格納された各規則は、少なくとも1つのキーに対応しており(それにより規則を検索するように構成されたモジュール130は規則に対する検索を実行する)、そのキーとしては、上記規則を形成するために用いられるリソースの少なくとも1つ、及び上記規則を形成するために使用されたリソースのハッシュサムが使用されている。
システムの更に別の変形態様では、1つの同じ悪質なファイルのリソース間の機能的リンクを確立する規則が、第三者(ウイルス分析者又はアンチウィルス会社の自動アンチウィルスソフトウェアアプリケーション等)によって事前に定式化され、悪質なファイルのリソースのデータベース160へと入力され、そして、その後でのみ、悪質なファイルのリソースのデータベース160は、静的分析の要素を用いて悪質なファイルの検出のためのシステムに提供される上述の規則を含んでいる。
システムの更に別の変形態様では、悪質なファイルのリソースのデータベース160は、判断を行うように構成されたモジュール150を介して、規則を形成するように構成されたモジュール120によって定式化された規則を入力するように更に設計される。
人工ニューラルネットの要素のデータベース170は、(例えば、分析された悪質なファイルに基づいてウイルス分析者又はアンチウイルス会社の自動アンチウィルスソフトウェアアプリケーションによって)予め生成された、人工ニューラルネットのノードであるリソース分析モジュールの集合体を構成している前記人工ニューラルネット、及び前記人工ニューラルネットのノード間のリンクを特徴付ける重み係数と、のうち少なくとも1つを含むデータベースである。
システムの1つの変形態様では、人工ニューラルネットの要素のデータベース170は、ファイルの分析が行われるコンピューティングデバイス(クライアント)上のアンチウィルス会社(サーバ)によって提供される。
システムの更に別の変形態様では、人工ニューラルネットは、リソース{d_i}の分析アルゴリズム{A_i}と、{A_i}の間のリンクを特徴付ける重み係数{w_i}を記述するデータを構成する。即ち、
を得る。ここでnは、リソースを抽出するように構成されたモジュール110によって抽出されたリソースの数であり、mは、リソースの分析アルゴリズム{A_i}の数であり、r_iは、分析アルゴリズム{A_i}によって定式化されるような、全てのリソース{d_i}のセット間のi番目の機能的依存性であり、ここでは、個々のリソースd_jについて個々の重み付け係数w_ijが使用され、人工的なコンピュータネットワークが学習を行う間に修正され得る。
例えば、アプリケーション"Internet Explorer"のグラフィックインターフェイスを模倣するようなグラフィックインターフェイスを有するアプリケーションである、ファイル"movie.avi.exe"の有害性を決定する例において、悪質なファイルの検出システムが静的分析の要素を使用して動作している場合、システムは次のように動作する。
1つの態様では、リソースを抽出するように構成されたモジュール110は、分析されるファイル「movie.avi.exe」から以下のリソースを抽出する。即ち、
リソースセクションから:Windowsリソースの「.rsrc」、アプリケーション「main.ico」のメインアイコン(RC_ICON)、マニフェスト「manifest.txt」(RC_MANIFEST)、メインウィンドウダイアログ「DIALOG_Main」(RC_DIALOG)、メインウィンドウメニュー「MENU_Main」(RC_MENU)。
コードセクションから:ファイル「movie.avi.exe」の生成に使用された開発環境に関する「.text」データ、開発環境「Embarcadero Delphi 10.2」の名称とバージョン。
データセクションから:ファイル「movie.avi.exe」のパッキングソフトウェア上の「data」データ、パッキングソフトウェア「ASProtect 32(SKE)2.70」の名称とバージョン。
リソースを抽出するように構成されたモジュール110から得られたリソースを使用して、規則を形成するように構成されたモジュール120は、人工ニューラルネットの要素のデータベース170から選択された人工ニューラルネットに対し教師として機能する。この目的のために、クラスタ分析の手法を介して、規則を形成するように構成されたモジュール120は、類似の特性又は同様の関係を有するリソースを選択し、(例えば、特定のアイコンは他のアイコンに類似し、他のクラスタを形成する)を選択し、選択されたリソースを人工ニューラルネットのための入力パラメータとして使用してリンクを形成し、そこでは「教師あり教示」が使用され、ウイルス分析者によりファイル「movie.avi.exe」と振る舞いが類似しているファイル上に事前に形成されたリンクを基礎としている。生成された人工ニューラルネットが教示された後、即ち、人工ニューラルネットのノード間にリンクが形成された場合(ニューラルネットの要素間の重み係数が計算された場合)、規則を形成するように構成されたモジュール120は、リソースを抽出するように構成されたモジュール110によって抽出されたリソース間の機能的依存性を確立するような規則を(次のように)形成する:
r_1: main.ico → manifest.txt ("Internet Explorer")
r_2: "Embarcadero Delphi" → manifest.txt ("Internet Explorer")
r_3: "ASProtect 32 (SKE) 2.70" → main.ico
r_4: DIALOG_Main → MENU_Main
言い換えれば、アイコン「main.ico」は「Internet Explorer」という名前のアプリケーションに属し、「Delphi」という言語で書かれ、アプリケーション「ASProtect」のを介してパッキングされている。更に、メインウィンドウダイアログ「DIALOG_Main」はメインウィンドウメニュー「MENU_Main」にリンクされている。
リンクDIALOG_Main→MENU_Mainは自明であるので(アプリケーションを形成する規則によれば、ファイルが安全であるか悪質であるかに関係なく、或いは、アプリケーションに含まれるリソース等に関係なく、メインウィンドウダイアログは常にメインウィンドウメニューへとリンクされているため)、悪質なファイルのリソースのデータベース160内において上記のリソースを検索することはない。
この例では、規則を検索するように構成されたモジュール130は、リソース「DIALOG_Main」及び「MENU_Main」を除いて、リソースを抽出するように構成されたモジュール110によってファイル「movie.avi.exe」から抽出されたリソースmain.ico、manifest.txt、「Embarcadero Delphi」、「ASProtect 32(SKE)2.70」に対する知覚ハッシュサムを計算し、悪質なファイルのリソースのデータベース160内の規則に対し計算された知覚ハッシュサムに基づいて検索を実行する。
規則を検索する際、規則を検索するように構成されたモジュール130は、抽出されたファイル「movie.avi.exe」のリソースからの知覚ハッシュサムを使用するので、ファイル「movie.avi.exe」から抽出されたリソースと類似しているような(必ずしも同一ではない)、悪質なファイルのリソース間の機能的依存性を確立する規則が検出される。
検索の結果、規則を検索するように構成されたモジュール130は、悪質なファイルのリソースのデータベース160から規則m_1を選択し、機能的依存性を確立する。即ち、
App_main.ico→app_manifest.info("Internet Explorer")
"Embarcadero Delphi"→app_manifest.info( "Internet Explorer")
そして、これを規則を比較するように構成されたモジュール140へと送信する。
規則を比較するように構成されたモジュール140は、規則を形成するように構成されたモジュール120によって定式化された規則{r_i}と、規則を検索するように構成されたモジュール130から得られる規則m_1との間の類似度を計算する。即ち、
s_1(r_1→m_1)=0.021
s_2(r_2→m_1)=0.178
s_3(r_3→m_1)=0.105,
ここで、規則を形成するように構成されたモジュール120が機能的依存性(DIALOG_Main、MENU_Main)を決定するようなリソースが、リソースを検索するように構成されたモジュール130によって、悪質なファイルのデータベース160内において規則の検索を行うのに使用されなかったため、類似度r_4→m_1についての計算は行われない。次に、規則を比較するように構成されたモジュール140は、類似度の合計を、以前に計算された類似度の幾何平均として計算する。即ち、
そして、得られた類似度の値を、判断を行うように構成されたモジュール150へと送信する。
判断を行うように構成されたモジュール150は、得られた0.073という類似度の値を0.203という所定の閾値と比較する。取得された類似度が所定の閾値を超えていないので、判断を行うように構成されたモジュール150は、分析されたファイル「movie.avi.exe」の有害性に関する決定を発する。
従って、「movie.avi.exe」というファイルは悪質であると判定され、その後、静的分析の要素を用いて悪質なファイルを検出するシステムを含むアンチウイルスプログラムは、少なくとも悪質なファイルが存在することをユーザへと通告し、更に、ファイル「movie.avi.exe」の実行をブロックし、コンピュータシステムからファイル「movie.avi.exe」を孤立化(即ち隔離)又は削除する。
図2は、例示的な態様における静的分析の要素を使用して悪質なファイルを検出するための方法のフローチャートを示す。
図示されているように、図2のフローチャートは、静的分析の要素を用いて悪質なファイルの検索を行うための方法を示しており、分析されるファイルからリソースが抽出されるステップ210と、規則が形成されるステップ220と、規則の検索が実行されるステップ230と、規則間の類似度を計算するステップ240と、分析対象のファイルの有害性を判定するステップ250と、を含む。
例えば、ステップ210において、リソースを抽出するように構成されたモジュール110は、上述のように、分析されるファイルからリソースを抽出するために使用される。更に、ステップ220において、規則を形成するように構成されたモジュール120を使用して、抽出されたリソース間の機能的依存性を達成するような規則(以下、単に規則)が、例えば抽出されたリソースから人工ニューラルネットが生成されることにより、少なくとも1つ形成され、ここで、抽出されたリソースは人工ニューラルネットのノードであり、更に、前記ニューラルネットの生成中に生成されるこれらのノード間のリンクは、抽出されたリソース間の機能的依存性を示している。
更に、ステップ230において、規則を検索するように構成されたモジュール130を使用して、検索が実行され、その際、上述のように、ステップ210で抽出されたリソースに基づいて悪質なファイルのリソースのデータベース160内において少なくとも1つの規則が更に検出される。次に、ステップ240において、規則を比較するように構成されたモジュール140を使用して、上述のように、ステップ220で定式化されステップ230で検出された各規則の間の類似度が計算される。最後に、ステップ250において、判断を行うように構成されたモジュール150を使用して、計算された類似度が所定の閾値を超える場合に、分析されるファイルが悪質であると判断される。分析されるファイルが悪質であると判断された場合、システムは、既知の技術に従って、ファイルを削除そして隔離し、及び/又はユーザに警告する等の他の是正措置を実行するように構成されていてもよい。
図3は、実施形態に係り本発明のシステムと方法が実装できる汎用コンピュータ・システム(パーソナル・コンピュータやサーバ等)の例を示している。図示の通り、パソコン20は、CPU21と、システムメモリ22と、CPU21と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス23とを含み得る。システムバス23は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来から公知のあらゆるバス構造としても実現され得、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ(ROM)24及びランダムアクセスメモリ(RAM)25を含む。基本的な入出力システム(BIOS)26は、ROM24の使用によってオペレーティング・システムをロードする際等、パソコン20の要素間の情報の伝達を担う基本的な手順を含む。
パソコン20は、データの読み書きのためのハードディスク27、取り外し可能な磁気ディスク29の読み書きのための磁気ディスクドライブ28、及びCD−ROM、DVD−ROM、その他の光学メディア等の光学ディスク31の読み書きのための光学式ドライブ30を含む。ハードディスク27、磁気ディスクドライブ28、及び光学式ドライブ30は、ハードディスクインターフェース32、磁気ディスクインターフェース33、及び光学式ドライブインターフェース34それぞれを横切るシステムバス23と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びパソコン20の他のデータのストレージのための電源依存のモジュールである。
本発明は、ハードディスク27、取り外し可能な磁気ディスク29及び取り外し可能な光学ディスク31を用いるシステムの実装を提供するものだが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ(RAM)等の他のタイプのコンピュータ情報メディア56を使用してもよいことに留意されたし。また、これはコントローラ55を介してシステムバス23に接続される。
パソコン20は、ファイルシステム36を有し、記録されたオペレーティング・システム35を保持する。また追加のプログラムアプリケーション37、他のプログラムモジュール38、及びプログラムデータ39を有する。ユーザは、入力機器(キーボード40、マウス42)を用いてコマンドと情報をパソコン20に入力することができる。他の入力機器(不図示):マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力機器は、通常、システムバスに次々接続しているシリアルポート46を通じてパソコン20に差し込まれるが、それらは、他の方法例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス(USB)に接続される。ディスプレイ機器のモニタ47又は他のタイプは、また、ビデオアダプタ48等のインターフェースと交差するシステムバス23に接続している。モニタ47に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力機器(不図示)を接続できる。
パソコン20は、1つ又は複数のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ(又はコンピュータ)49は、図4に示すように、パソコン20の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク(LAN)50及びワイドエリアコンピュータ・ネットワーク(WAN)を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていインターネットにアクセスすることができる。LAN又はWANネットワークにおいて、パソコン20は、ネットワークアダプタ又はネットワークインターフェース51に交差するローカルエリアネットワーク50に接続されている。ネットワークが用いられる時には、パソコン20は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム54又は他のモジュールを使用することができる。内部又は外部の機器であるモデム54は、シリアルポート46によりシステムバス23と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法(Bluetooth等)もあることに留意されたい。
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及び方法を実施し得る。ソフトウェアにおいて実装される場合は、方法は不揮発性コンピュータ可読媒体の1つ又は複数の指示又はコードとして保存され得る。コンピュータ可読媒体は、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって指示又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたし。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
更に、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
本明細書で開示された様々な側面は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。更に、側面及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。

Claims (17)

  1. 電子ファイルが悪質であるかどうかをプロセッサが判定する方法であって、
    抽出ステップと、形成ステップと、特定ステップと、計算ステップと、判定ステップとを備え、
    前記抽出ステップでは、前記プロセッサがリソースを抽出するように構成されたモジュールを用いて、前記電子ファイルから複数のリソースを抽出し、
    前記形成ステップでは、前記プロセッサが規則を形成するように構成されたモジュールを用いて、1つ又は複数の第1の規則を形成し、
    前記第1の規則は、抽出されたリソースがノードである人工ニューラルネットを用いて、抽出された前記複数のリソース間の機能的依存性を確立し、
    前記特定ステップでは、悪質なファイルのリソースのデータベースにおいて、前記プロセッサが規則を検索するように構成されたモジュールを用いて、1つ又は複数の第2の規則を特定し、
    前記第2の規則は、抽出された前記複数のリソースのうちの1つ又は複数に関連付けられ、
    前記計算ステップでは、前記プロセッサが規則を比較するように構成されたモジュールを用いて、前記第1及び第2の規則を比較して、これらの類似度を計算し、
    前記判定ステップでは、算出された前記類似度が所定の閾値を超えた場合に、前記プロセッサが意思決定を実行するように構成されたモジュールを用いて、電子ファイルを悪質なファイルであると判定する、
    方法。
  2. 請求項1に記載の方法において、
    前記プロセッサが前記悪質なファイルの削除及び隔離のうちの少なくとも1つを更に実行する、
    方法。
  3. 請求項1に記載の方法において、
    前記抽出ステップでは、前記プロセッサが前記電子ファイルを生成するために使用される開発環境に関するリソース、前記電子ファイルをパックしたソフトウェアアプリケーションに関するリソース、及び前記電子ファイルの電子署名のうちの少なくとも1つを抽出する、
    方法。
  4. 請求項1に記載の方法において、前記プロセッサが、
    抽出された前記複数のリソースの少なくとも1つのハッシュサムを計算し、
    前記悪質なファイルリソースの前記データベースにおいて、計算された前記ハッシュサムに基づいて少なくとも1つの前記第2の規則を特定する、
    方法。
  5. 請求項1に記載の方法において、前記プロセッサが、
    前記機能的依存性に基づいて、前記データベースにおいて少なくとも1つの前記第2の規則を更に特定する、
    方法。
  6. 請求項に記載の方法において、前記プロセッサが、
    アイコンリソース、マニフェストリソース及びダイアログリソースを含む複数のリソースを抽出し、
    前記リソースの少なくとも2つの間に前記機能的依存性を形成し、
    前記少なくとも2つのリソース間の形成された機能的依存性に基づいて、少なくとも1つの前記第2の規則を前記データベース内で検索する、
    方法。
  7. 請求項1に記載の方法において、前記プロセッサが、
    判別分析によりパターン認識に基づいて類似度を更に計算し、
    前記類似度は、前記第1及び第2の規則における前記各リソースの機能的依存性の間におけるものである、
    方法。
  8. 電子ファイルが悪質であるかどうかを判定するシステムであって、少なくとも1つのデータベースと、少なくとも1つのプロセッサとを備え、
    前記データベースは、複数の悪質なファイルリソースに関連する複数の規則を格納し、
    前記プロセッサは、抽出ステップと、形成ステップと、特定ステップと、計算ステップと、判定ステップとを実行するように構成され、
    前記抽出ステップでは、前記電子ファイルから複数のリソースを抽出し、
    前記形成ステップでは、1つ又は複数の第1の規則を形成し、
    前記第1の規則は、抽出されたリソースがノードである人工ニューラルネットを用いて、抽出された前記複数のリソース間の機能的依存性を確立し、
    前記特定ステップでは、悪質なファイルのリソースのデータベースにおいて、1つ又は複数の第2の規則を特定し、
    前記第2の規則は、抽出された前記複数のリソースのうちの1つ又は複数に関連付けられ、
    前記計算ステップでは、前記第1及び第2の規則を比較して、これらの類似度を計算し、
    前記判定ステップでは、算出された前記類似度が所定の閾値を超えた場合に、電子ファイルを悪質なファイルであると判定する、
    システム。
  9. 請求項に記載のシステムにおいて、
    前記悪質なファイルの削除及び隔離のうちの少なくとも1つを更に実行する、
    システム。
  10. 請求項に記載のシステムにおいて、
    前記電子ファイルを生成するために使用される開発環境に関するリソース、前記電子ファイルをパックしたソフトウェアアプリケーションに関するリソース、及び前記電子ファイルの電子署名のうちの少なくとも1つを抽出する、
    システム。
  11. 請求項に記載のシステムにおいて、
    抽出された前記複数のリソースの少なくとも1つのハッシュサムを計算し、
    前記悪質なファイルリソースの前記データベースにおいて、計算された前記ハッシュサムに基づいて少なくとも1つの前記第2の規則を特定する、
    システム。
  12. 請求項に記載のシステムにおいて、
    前記機能的依存性に基づいて、前記データベースにおいて前記少なくとも1つの第2の規則を更に特定する、
    システム。
  13. 請求項1に記載のシステムにおいて、
    アイコンリソース、マニフェストリソース及びダイアログリソースを含む複数のリソースを抽出し、
    前記リソースの少なくとも2つの間に前記機能的依存性を形成し、
    前記少なくとも2つのリソース間の形成された機能的依存性に基づいて、少なくとも1つの前記第2のルールを前記データベース内で検索する、
    システム。
  14. 請求項に記載のシステムにおいて、
    判別分析によりパターン認識に基づいて類似度を更に計算し、
    前記類似度は、前記第1及び第2のルールにおける前記各リソースの機能的依存性の間におけるものである、
    システム。
  15. コンピュータで実行可能な命令を含む非一時的なコンピュータ可読媒体であって、
    前記命令は、
    電子ファイルが悪質であるかどうかを判定するもので、
    抽出ステップと、形成ステップと、特定ステップと、計算ステップと、判定ステップとを備え、
    前記抽出ステップでは、前記電子ファイルから複数のリソースを抽出し、
    前記形成ステップでは、1つ又は複数の第1の規則を形成し、
    前記第1の規則は、抽出された複数のリソースがノードである人工ニューラルネットを用いて、抽出された前記複数のリソース間の機能的依存性を確立し、
    前記特定ステップでは、悪質なファイルのリソースのデータベースにおいて、1つ又は複数の第2の規則を特定し、
    前記第2の規則は、抽出された前記複数のリソースのうちの1つ又は複数に関連付けられ、
    前記計算ステップでは、前記第1及び第2の規則を比較して、これらの類似度を計算し、
    前記判定ステップでは、算出された前記類似度が所定の閾値を超えた場合に、電子ファイルを悪質なファイルであると判定する、
    媒体。
  16. 請求項1に記載の媒体において、
    前記命令によって、前記悪質なファイルの削除及び隔離のうちの少なくとも1つを更に実行する、
    媒体。
  17. 請求項1に記載の媒体において、
    前記命令によって、前記電子ファイルを生成するために使用される開発環境に関するリソース、前記電子ファイルをパックしたソフトウェアアプリケーションに関するリソース、及び前記電子ファイルの電子署名のうちの少なくとも1つを抽出する、
    媒体。
JP2017177984A 2017-06-16 2017-09-15 静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法 Active JP6736532B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2017121123 2017-06-16
RU2017121123A RU2654146C1 (ru) 2017-06-16 2017-06-16 Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
US15/669,094 US10867038B2 (en) 2017-06-16 2017-08-04 System and method of detecting malicious files with the use of elements of static analysis
US15/669,094 2017-08-04

Publications (2)

Publication Number Publication Date
JP2019003596A JP2019003596A (ja) 2019-01-10
JP6736532B2 true JP6736532B2 (ja) 2020-08-05

Family

ID=62152802

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017177984A Active JP6736532B2 (ja) 2017-06-16 2017-09-15 静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法

Country Status (4)

Country Link
US (1) US10867038B2 (ja)
JP (1) JP6736532B2 (ja)
CN (1) CN109145600B (ja)
RU (1) RU2654146C1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6728113B2 (ja) * 2017-08-22 2020-07-22 株式会社東芝 情報処理装置、情報処理方法、および情報処理プログラム
US10771436B2 (en) * 2018-04-06 2020-09-08 Cisco Technology, Inc. Dynamic whitelist management
RU2713760C1 (ru) * 2018-11-15 2020-02-07 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Способ и система выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения
CN109711160B (zh) * 2018-11-30 2023-10-31 北京奇虎科技有限公司 应用程序检测方法、装置及神经网络系统
CN110837638B (zh) * 2019-11-08 2020-09-01 鹏城实验室 一种勒索软件的检测方法、装置、设备及存储介质
RU2728498C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его исходному коду
RU2728497C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его машинному коду
RU2722692C1 (ru) 2020-02-21 2020-06-03 Общество с ограниченной ответственностью «Группа АйБи ТДС» Способ и система выявления вредоносных файлов в неизолированной среде
US11880461B2 (en) 2020-06-22 2024-01-23 Bank Of America Corporation Application interface based system for isolated access and analysis of suspicious code in a computing environment
US11269991B2 (en) 2020-06-22 2022-03-08 Bank Of America Corporation System for identifying suspicious code in an isolated computing environment based on code characteristics
US11797669B2 (en) 2020-06-22 2023-10-24 Bank Of America Corporation System for isolated access and analysis of suspicious code in a computing environment
US11636203B2 (en) 2020-06-22 2023-04-25 Bank Of America Corporation System for isolated access and analysis of suspicious code in a disposable computing environment
US11574056B2 (en) 2020-06-26 2023-02-07 Bank Of America Corporation System for identifying suspicious code embedded in a file in an isolated computing environment
RU2743619C1 (ru) 2020-08-06 2021-02-20 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система генерации списка индикаторов компрометации
RU2759087C1 (ru) * 2020-12-07 2021-11-09 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система статического анализа исполняемых файлов на основе предиктивных моделей
US11947572B2 (en) 2021-03-29 2024-04-02 Group IB TDS, Ltd Method and system for clustering executable files
US20220342985A1 (en) * 2021-04-23 2022-10-27 AVAST Software s.r.o. Anomaly detection and characterization in app permissions

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312546B2 (en) * 2007-04-23 2012-11-13 Mcafee, Inc. Systems, apparatus, and methods for detecting malware
US9003314B2 (en) * 2008-08-06 2015-04-07 Mcafee, Inc. System, method, and computer program product for detecting unwanted data based on an analysis of an icon
US9088601B2 (en) * 2010-12-01 2015-07-21 Cisco Technology, Inc. Method and apparatus for detecting malicious software through contextual convictions, generic signatures and machine learning techniques
TWI461953B (zh) 2012-07-12 2014-11-21 Ind Tech Res Inst 運算環境安全方法和電子運算系統
US11126720B2 (en) * 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
GB2506605A (en) 2012-10-02 2014-04-09 F Secure Corp Identifying computer file based security threats by analysis of communication requests from files to recognise requests sent to untrustworthy domains
WO2014149080A1 (en) * 2013-03-18 2014-09-25 The Trustees Of Columbia University In The City Of New York Detection of anomalous program execution using hardware-based micro-architectural data
RU2531861C1 (ru) * 2013-04-26 2014-10-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
RU2541120C2 (ru) 2013-06-06 2015-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных исполняемых файлов на основании сходства ресурсов исполняемых файлов
US9465940B1 (en) * 2015-03-30 2016-10-11 Cylance Inc. Wavelet decomposition of software entropy to identify malware
US9495633B2 (en) * 2015-04-16 2016-11-15 Cylance, Inc. Recurrent neural networks for malware analysis
WO2017011702A1 (en) * 2015-07-15 2017-01-19 Cylance Inc. Malware detection
CN105335655A (zh) * 2015-09-22 2016-02-17 南京大学 一种基于敏感行为识别的安卓应用安全性分析方法

Also Published As

Publication number Publication date
US20180365420A1 (en) 2018-12-20
CN109145600A (zh) 2019-01-04
JP2019003596A (ja) 2019-01-10
RU2654146C1 (ru) 2018-05-16
CN109145600B (zh) 2022-02-11
US10867038B2 (en) 2020-12-15

Similar Documents

Publication Publication Date Title
JP6736532B2 (ja) 静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法
Arora et al. Permpair: Android malware detection using permission pairs
US11423146B2 (en) Provenance-based threat detection tools and stealthy malware detection
RU2679785C1 (ru) Система и способ классификации объектов
JP7405596B2 (ja) コンピュータシステムのオブジェクト分類のためのシステムおよび方法
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
RU2706896C1 (ru) Система и способ выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле
Firdaus et al. Root exploit detection and features optimization: mobile device and blockchain based medical data management
RU2659737C1 (ru) Система и способ управления вычислительными ресурсами для обнаружения вредоносных файлов
CN109684836B (zh) 使用经训练的机器学习模型检测恶意文件的系统和方法
RU2739865C2 (ru) Система и способ обнаружения вредоносного файла
JP6715292B2 (ja) 機械学習を用いる悪意のあるファイルを検出するシステムおよび方法
US8401982B1 (en) Using sequencing and timing information of behavior events in machine learning to detect malware
US9762593B1 (en) Automatic generation of generic file signatures
US20160154960A1 (en) Systems and methods for risk rating framework for mobile applications
US8190647B1 (en) Decision tree induction that is sensitive to attribute computational complexity
JP2019057268A (ja) マルウェア検出モデルの機械学習のシステムおよび方法
US11379581B2 (en) System and method for detection of malicious files
Alazab et al. Detecting malicious behaviour using supervised learning algorithms of the function calls
RU2673708C1 (ru) Система и способ машинного обучения модели обнаружения вредоносных файлов
EP3798885B1 (en) System and method for detection of malicious files
JP2020181567A (ja) アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムおよび方法
Hu et al. Robust app clone detection based on similarity of ui structure
Alazab et al. Malicious code detection using penalized splines on OPcode frequency
Sándor et al. Increasing the robustness of a machine learning-based IoT malware detection method with adversarial training

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200305

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200326

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: 20200714

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200715

R150 Certificate of patent or registration of utility model

Ref document number: 6736532

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250