JP6715292B2 - 機械学習を用いる悪意のあるファイルを検出するシステムおよび方法 - Google Patents

機械学習を用いる悪意のあるファイルを検出するシステムおよび方法 Download PDF

Info

Publication number
JP6715292B2
JP6715292B2 JP2018131523A JP2018131523A JP6715292B2 JP 6715292 B2 JP6715292 B2 JP 6715292B2 JP 2018131523 A JP2018131523 A JP 2018131523A JP 2018131523 A JP2018131523 A JP 2018131523A JP 6715292 B2 JP6715292 B2 JP 6715292B2
Authority
JP
Japan
Prior art keywords
malicious
data
data blocks
harm
files
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
JP2018131523A
Other languages
English (en)
Other versions
JP2019079493A (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
Priority claimed from RU2017136618A external-priority patent/RU2679785C1/ru
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2019079493A publication Critical patent/JP2019079493A/ja
Application granted granted Critical
Publication of JP6715292B2 publication Critical patent/JP6715292B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/564Static detection by virus signature recognition
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud

Landscapes

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

Description

本開示は、一般に、アンチウィルス技術に、より具体的には、機械学習を用いる悪意のあるファイルの検出のためのシステムおよび方法に、関する。
最近の十年間におけるコンピュータ技術の急速な発展は、様々な計算装置(パーソナル・コンピュータ、ノートパソコン、タブレット、スマートフォンなど)の広範な流通と相まって、様々な活動範囲において(インターネット・サーフィンから銀行振替および電子文書のやり取りまで)膨大な数の課題について、かかる装置の使用に対する強力な推進力となってきた。計算装置の数の増大およびこれらの装置において動作するソフトウェアの発展と並行して、悪意のあるプログラムの数もまた急速に増加してきた。
現在、膨大な数の種類の悪意のあるプログラムが存在する。それらのいくつかは、(ログイン情報およびパスワード、銀行取引情報、電子文書のような)個人のおよび機密のデータをこれらの装置のユーザから盗み取る。他のものは、サービス妨害(DDoS:分散型サービス妨害)のような攻撃のために、または、他のコンピュータまたはコンピュータネットワーク上での総当たりの方法によってパスワードをより分けるために、ユーザの装置からいわゆるボットネットを形成する。さらに他のものは、煩わしい広告を介したユーザへの有料コンテンツ、有料定期購読、電話番号へのSMSの送付などを提示する。
悪意のあるプログラムの検出、感染の予防、および悪意のあるプログラムに感染してしまった計算装置の作業能力の回復を含む、悪意のあるプログラムとの闘いにおいては、アンチウィルスとして知られた専門のプログラムが使用される。アンチウィルスプログラムは、あらゆる種類の悪意のあるプログラムを検出するために、
・静的分析−分析されるプログラムを構成するファイルに含まれたデータに基づいた、分析されるプログラムの作業の実行またはエミュレーションを含む、有害性についてのプログラムの分析であって、それによって統計的な分析の間に、
・シグネチャ分析−と、悪意のあるプログラムのシグネチャのデータベースから既知のコード(シグネチャ)に対する分析されるプログラムのコードの特定のセグメントの対応関係についての検索、
・ホワイトおよびブラックリスト−悪意のあるプログラムのチェックサムのデータベース(ブラックリスト)または安全なプログラムのチェックサムのデータベース(ホワイトリスト)における分析されるプログラム(またはその部分)の計算されたチェックサムについての検索、
を使用することが可能であるもの、
・動的分析−分析されるプログラムの作業の実行またはエミュレーションの過程において得られたデータに基づいた、有害性についてのプログラムの分析であって、それによって、動的分析の間に、
・ヒューリスティックな分析−分析されるプログラムの作業のエミュレーション、(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つ以上の例の態様を示すものであり、詳細な説明とともに、それらの原理および実施を説明するのに役立つものである。
図1は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出のためのシステムのブロック図である。 図2は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出のための方法のフローチャートである。 図3は、本開示の例示的な態様に係る行動パターンの数の関数としての有害性の程度の変化のダイナミクスの例を示す。 図4は、本開示の例示的な態様に係る行動パターンの要素間の関係の図の例を示す。 図5は、本開示の例示的な態様に係るオブジェクトの分類のシステムのブロック図である。 図6は、本開示の例示的な態様に係るオブジェクトの分類の方法についてのフローチャートである。 図7は、本開示の例示的な態様に係る汎用のコンピュータシステム、パーソナル・コンピュータ、またはサーバの一例を示す。
今、図面を参照して、様々な態様を説明する。同様の参照符号は、いたるところで同様の要素を参照するために使用される。以下の説明では、説明の目的で、一つ以上の態様の徹底した理解を促進するために、数多くの具体的な詳細を述べる。しかしながら、いくつかのまたはすべての例において、以下に説明する具体的な設計の詳細を採用することなく、以下の説明するどの態様も実施することができることは明からなことであることがある。他の例では、一つ以上の態様の説明を容易にするために良く知られた構造および装置がブロック図の形式で示される。
本開示、図面、および請求項を通じて以下の用語を使用することにする。
悪意のあるファイル−その実行がコンピュータ情報の不正な破壊、ブロッキング、変更、複製、またはコンピュータ情報の保護に使用されるモジュールの無効化に帰着することができることが知られているファイル。
実行可能なファイルの悪意のある行動−そのファイルの実行中に実行されることがあり、情報の不正な破壊、ブロッキング、変更、複製、またはコンピュータ情報の保護のためのモジュールの無効化に帰着することができることが知られているアクションの群。
実行可能なファイルの悪意のある活動−その悪意のある行動に従って、そのファイルによって実行されるアクションの群。
平均的なユーザの計算装置−それらのユーザの計算装置上におけるものと同じアプリケーションが実行されるユーザの事前に選択された群の計算装置の平均化された特性を有する仮説上の(理論上の)計算装置。
計算装置によって実行可能なコマンド−コマンドパラメータまたは上記のコマンドを記述するパラメータとして知られた、それらの命令の組のパラメータに基づいて、機械命令または計算装置によって実行可能なスクリプトの命令の組。
語彙分析(トークン化)−出力の際に識別列(以下、トークン)を形成するために、入力の文字列を、認識されたグループ(以下、語彙素)にする分析的な構文解析の処理。
トークン−語彙分析の処理において語彙素から形成された識別列。
図1は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出のためのシステムのブロック図を示す。機械学習のためのシステム100は、訓練の選択肢を準備するように構成される準備モジュール111、行動ログを形成するように構成されるログモジュール112、行動パターンを形成するように構成されるパターンモジュール121、畳み込み関数を形成するように構成された畳み込みモジュール122、検出モデルを作成するように構成された検出モデルモジュール131、検出モデルの機械学習を実行するように構成された機械学習(ML)モジュール132、有害性の程度を算出するように構成さされた有害性モジュール142、および資源を管理するように構成された資源モジュール143からなる。
一つの態様において、システム100は、準備モジュール111、ログモジュール112、パターンモジュール121、畳み込みモジュール122、検出モデルモジュール131、およびMLモジュール132がサーバ側で稼働し、パターンモジュール121、有害性モジュール142、および資源モジュール143がクライアント側で稼働する、クライアント−サーバ・アーキテクチャを有する。
たとえば、クライアントは、パーソナル・コンピュータ、ノートブック、スマートフォンなどのようなユーザの計算装置であることがある。サーバは、ファイルの予備的収集およびアンチウィルス分析、アンチウィルスレコードの生成などを実行するサーバの分散型システムのような、アンチウィルス会社の計算装置であることがある。この態様では、クライアント側で悪意のあるファイルを検出するためにシステム100が使用されることによって、クライアントのウィルスに対する保護の有効性を向上させることがある。
さらに別の例では、クライアントおよびサーバの両方が、アンチウィルス会社の計算装置のみであることがあり、ここで、システム100は、ファイルの自動アンチウィルス分析およびアンチウィルスレコードの生成に使用されることによって、アンチウィルス企業の作業の有効性を向上させることがある。
一つの態様によれば、準備モジュール111は、ファイルのデータベースから少なくとも一つのファイルを選択する。続いて、準備モジュール111は、選択されたファイルを、選択されたファイルに基づいて検出モデルを訓練するMLモジュール132へ送信する。一度検出モデルが訓練されるか、または、所定の程度まで訓練されると、ログモジュール112は、選択されたファイルによって実行されるコマンドの各々をカタログ化する行動ログを生成する。パターンモジュール121は、行動ログに基づいて行動パターンを構築する。一度行動パターンが知られると、畳み込みモジュール122は、行動パターンから、ある場合には行動パターンの特徴ベクトルを計算することによって形成される、畳み込み関数を形成する。検出モデルモジュール131は、準備モジュール111によって選択された少なくとも一つのファイルのパラメータに基づく検出モデルを生成する。検出モデルが生成された後、MLモジュール132は、畳み込みモジュール122からの畳み込み関数を用いる検出モデルのパラメータを計算することによって検出モデルを教育する(言い換えれば、訓練する)ように構成される。MLモジュール132は、準備モジュール111によって選択されたファイルについて検出モデルを訓練する。
最終的に、検出モデルは、訓練および行動パターンに基づいて分析中のファイルの有害性の程度を算出するために使用される。次に検出モジュールは、悪意に関する判断が正しいか否かについて判定するためにMLモジュール132によってチェックされる。検出モジュールが不適切に訓練されると判断される場合(すなわち、悪意のあるファイルが「悪意がある」ものとして検出されるものではない場合)、MLモジュール132は、再訓練がMLモジュール132によって実行されることがある。ファイルが悪意についての分析中である場合、有害性モジュール142は、行動ログおよび訓練された検出モデルに基づいてファイルの有害性の程度を計算する。それに応じて、資源モジュール143は、コンピュータシステムの安全性を確保するために、分析中のファイルが属するコンピュータシステムの計算資源を割り当ててもよい。
準備モジュール111は以下の動作を実行する
・ファイルの学習選択を形成する所定のルールに従って、ファイルのデータベースから少なくとも1つのファイルを選択し、その後、MLモジュール132が、選択されたファイルの分析に基づいて検出モデルの訓練を実行することになり、
・選択されたファイルをログモジュール112へ送る
ように設計される。
システムの一つの態様においては、少なくとも1つの安全なファイル、および、少なくとも1つの悪意のあるファイルがファイルのデータベースに保持される。
たとえば、ファイルのデータベースは、安全なファイルとしてのオペレーティングシステムWindows(登録商標)のファイル、および、悪意のあるファイルとしてのバックドアのファイル、すなわちデータへの不正なアクセスおよびオペレーティングシステムおよび全体としてのコンピュータの遠隔操作を実行するアプリケーションを保持することがある。上述したファイルで訓練すること、および、機械学習の方法を使用することによって、悪意のあるファイルの検出のためのモデルは、上述したバックドアの機能性に類似する機能性を有する悪意のあるファイルを精度良く検出することができることになる(精度が高いほど、多くのファイルが上述した検出モデルの訓練に使用される)。
システムのさらに別の態様においては、ファイルのデータベースは、少なくとも
・疑わしいファイル(リスクウェア)−悪意があるものではないが、悪意のあるアクションを実行することができるファイル。
・未知のファイル−その有害性が判断されておらず不明なままであるファイル(すなわち、安全なもの、悪意のあるもの、疑わしいもの等ではないファイル)
を追加的に保持する。
たとえば、ファイルのデータベースは、疑わしいファイルとして、(RAdmin(登録商標)のような)遠隔管理、アーカイビング、(WinZip(登録商標)のような)データの暗号化などのためのアプリケーションのファイルを有することがある。
システムのさらに別の態様においては、ファイルのデータベースは少なくとも
・アンチウィルス・ウェブ・クローラによって収集されたファイル、
・ユーザによって送られたファイル
を保持する。
上述したファイルは、次にかかるファイルの有害性についての判断を告げるために、自動的なファイル分析の助けを含む、アンチウィルスの専門家によって分析される。
たとえば、ファイルのデータベースは、ユーザが自身の計算装置からアンチウィルス会社へ送られたファイルを、それらの有害性のチェックのために、保持することがあるが、その場合には、送信されたファイルは安全なものでも悪意のあるものでもることがあり、上記の安全なおよび悪意のあるファイルの数の間の分布は、上記のユーザの計算装置にあるすべての安全なおよび悪意のあるファイルの数の間の分布に近いものである(すなわち、上記の悪意のあるファイルの数に対する上記の安全なファイルの数の比は、上記のユーザの計算装置にある全ての悪意のあるファイルの数に対するすべての安全なファイルの数の比と指定された閾値の値未満の量だけ異なる)。
Figure 0006715292
ユーザから送信されたファイル(すなわち、主観的に疑わしいファイル)とは異なり、疑わしいファイルおよび悪意のあるファイルを検索するように設計されるアンチウィルス・ウェブ・クローラによって収集されたファイルは、悪意があるものであることがより多く判明する。
システムのさらに別の態様においては、以下の条件の少なくとも1つが、ファイルのデータベースからファイルを選択するための基準として使用される。
・ファイルのデータベースから選択された安全なファイルおよび悪意のあるファイルの間の分布は、平均的なユーザの計算装置上にある安全なファイルおよび悪意のあるファイルの間の分布に対応する。
・ファイルのデータベースから選択された安全なファイルおよび悪意のあるファイルの間のる分布は、アンチウィルス・ウェブ・クローラの助けにより収集された安全なファイルおよび悪意のあるファイルの間の分布に対応する。
・ファイルのデータベースから選択されたファイルのパラメータは、平均的ユーザの計算装置上にあるファイルのパラメータに対応する。
・選択されたファイルの数は、所定の値に対応する一方で、ファイルそれら自体はランダムに選択される。
たとえば、ファイルのデータベースは、100000個のファイルを含み、そのうちの40%が安全なファイルであり、60%が悪意のあるファイルである。ファイルのデータベースから、15000個のファイル(ファイルのデータベースに保持されているファイルの総数の15%)が選択されることで、選択された安全なファイルおよび悪意のあるファイルの間の分布は、平均的なユーザの計算装置上にある安全なファイルおよび悪意のあるファイルの間の分布に対応し、95対5になる。この目的のために、14250個の安全なファイル(安全なファイルの総数の35.63%)および750個の悪意のあるファイル(悪意のあるファイルの総数の1.25%)がファイルのデータベースからランダムに選ばれる。
さらに別の例では、ファイルのデータベースは、1250000個のファイルを含み、そのうちの95%が安全なファイルであり、5%が悪意のあるファイルである。すなわち、ファイルのデータベースに保持されている安全なファイルおよび悪意のあるファイルの間の分布は、平均的なユーザの計算装置上にある安全なファイルおよび悪意のあるファイルの間の分布に対応する。これらのファイルのうち、5000個のファイルがランダムに選ばれ、約4750個が安全なファイルであり、約250個が悪意のあるファイルであることが高い確率で判明する。
システムのさらに別の態様においては、ファイルのパラメータは少なくとも
・ファイルが安全であるか、悪意のあるものであるか、潜在的に危険なものであるか、または、ファイルを実行したときの計算システムの行動が決定されないものか、等を特徴づける、ファイルの有害度、
・ファイルの実行中に計算装置によって実行されるコマンドの数、
・ファイルのサイズ、
・ファイルを利用するアプリケーション
である。
たとえば、アプリケーション「Adobe Flash(登録商標)」によって実行可能な、かつサイズが5kbを超えるものではない、「ActionScript」言語のスクリプトである、悪意のあるファイルが、ファイルのデータベースから選ばれる。
システムのさらに別の態様においては、準備モジュール111は、追加的に
・ファイルの試験的な選択を形成する所定のルールに従って、ファイルのデータベースから少なくとも1つの他のファイルを選択した後、MLモジュール132が、選択されたファイルの分析に基づいて、訓練された検出のモデルの検証を実行することになる、
・選択されたファイルをログモジュール112へ送る
ように設計される。
たとえば、ファイルのデータベースが75000個のファイルを含み、そのうちの20%が安全なファイルであり、80%が悪意のあるファイルである。まず第一に、ファイルのデータベースから12500個のファイルが選ばれ、そのうちの30%が安全なファイルであり、70%が悪意のあるファイルであり、その後、MLモジュール132は、選択されたファイルの分析に基づいて検出モデルの訓練を実行し、次に、残りの62500個のファイルから2500のファイルが選択され、そのうちの60%が安全なファイルであり、40%が悪意のあるファイルであり、この後、MLモジュール132は、選択されたファイルの分析に基づいて訓練された検出モデルのチェックを実行することになる。上述した手法によって構築されたデータは、データの相互検証セットと呼ばれる。
ログモジュール112は、少なくとも
*受信されたファイルの実行、
*受信されたファイルの実行のエミュレーション、ここで、ファイルの実行のエミュレーションは、上述したファイルを開くこと(たとえば、インタープリターによってスクリプトを開くこと)を含むもの、
の間に少なくとも1つの実行可能なコマンドをインターセプトするように、
・各々のインターセプトされたコマンドについて、上記のコマンドを記述する少なくとも1つのパラメータを決定するように、
・インターセプトされたコマンドおよびそのように決定されたパラメータに基づいて得られたファイルの行動ログを形成すること、ここで、行動ログは、ファイルからインターセプトされたコマンド(以後、コマンド)の全体を構成するが、ここで、各コマンドは、そのように決定されてかかるコマンドを記述する少なくとも1つのパラメータ(以後、パラメータ)に対応する
ように設計される。
たとえば、パスワードを収集してコンピュータネットワークを経由してそれらを送信する悪意のあるファイルの実行の間にインターセプトされたコマンド、および、上記のコマンドについて算出されたパラメータは
Figure 0006715292
のようなものであることがある。
システムの一つの態様において、ファイルからのコマンドのインターセプトは、少なくとも
・特殊なドライバ
・デバッカ
・ハイパーバイザ
の助けにより行われる。
たとえば、ファイルの実行中のコマンドのインターセプトおよびそれらのパラメータの決定は、WinAPI(登録商標)関数のエントリーポイントのつなぎによってインターセプトを利用するドライバの助けにより行われる。
さらに別の例において、ファイルの動作のエミュレーションの間におけるコマンドのインターセプトは、上記のエミュレーションを実行するエミュレータの手段によって直接行われるが、そのエミュレータの手段は、エミュレートされることを必要とするコマンドのパラメータを決定する。
さらに別の例において、仮想マシン上でのファイルの実行中におけるコマンドのインターセプトは、ハイパーバイザの手段によって行われるが、そのハイパーバイザ手段は、エミュレートされることを必要とするコマンドのパラメータを決定する。
システムのさらに他の態様においては、ファイルからのインターセプトされたコマンドは、少なくとも
・API関数
・アクションの所定の組を記述する機械命令の組(マクロコマンド)
である。
たとえば、悪意のあるプログラムは、頻繁に、所定のファイルについての検索を実行し、それらの属性を変更するが、そのために、それらは、
Figure 0006715292
のようなコマンドのシーケンスを用いるが、そのコマンドシーケンスは、今度は、単一のコマンド
Figure 0006715292
のみによって記述されることがある。
システムのさらに別の態様においては、各コマンドは、それの一意の識別子と一致させられる。
たとえば、すべてのWinAPI(登録商標)関数は、0x0000から0x8000までの範囲の数と一致させられることがあるが、ここで、各WinAPI(登録商標)関数は、一意の数に対応する(たとえば、ReadFile→0x00f0、ReadFileEx→0x00f1、connect→0x03A2)。
システムのさらに別の態様においては、同様のアクションを記述する数個のコマンドは、単一の識別子と一致させられる。
たとえば、ファイルからのデータの読み出しを記述する、ReadFile、ReadFileEx、ifstream、getline、getcharなどのような全てのコマンドは、識別子_read_data_file(0x70F0)と一致させられる。
パターンモジュール121は、
・行動ログから選択されたコマンドおよびパラメータに基づいて少なくとも1つの行動パターンを形成するが、ここで、行動ログは、ファイルからの実行可能なコマンド(以後、コマンド)の全体を構成し、ここで、各コマンドは、そのコマンドを記述する少なくとも1つのパラメータ(以後、パラメータ)に対応し、行動パターンは、少なくとも1つのコマンドおよびそのようなパラメータの組であり、そのパラメータは、その組のコマンドの全て(以後、行動パターンの要素)を記述するように、
・そのように形成された行動パターンを畳み込みモジュール122へ送る
ように設計される。
たとえば、行動ログから以下のコマンドcおよびパラメータp
Figure 0006715292
が選択される。
選択されたコマンドおよびパラメータに基づいて、各々1つのコマンドおよびそのコマンドを記述する1つのパラメータを含む行動パターン
Figure 0006715292
が形成される。
次に、そのように形成されたパターンに基づいて、各々1つのパラメータおよびそのパラメータによって記述されることができるすべてのコマンドを含む行動パターン
Figure 0006715292
がさらに形成される。
この後、そのように形成されたパターンに基づいて、各々数個のパラメータおよびそれらのパラメータによって同時に記述することができる全てのコマンドを含む行動パターン
Figure 0006715292
がさらに形成される。
システムの一つの態様においては、コマンドおよびパラメータは、ルールに基づいて行動ログから選ばれるが、それらルールによって、少なくとも
・連続したi番ごとのコマンドおよびそれを記述するパラメータであって、インクリメントiが前もって指定されるもの、
・前に選択されたコマンドから所定の期間の後に(たとえば、10秒ごとに)実行されたコマンドおよびそれらのパラメータを記述するもの、
・ファイルの実行の開始から所定の時間間隔に実行されるコマンドおよびそれらを記述するパラメータ、
・所定のリストからのコマンドおよびそれらを記述するパラメータ、
・所定のリストからのパラメータおよびそれらのパラメータによって記述されたコマンド、
・コマンドパラメータの数が所定の閾値よりも大きい場合における最初のまたはランダムなk個のパラメータ
が選択される。
たとえば、行動ログから、(CreateFile、ReadFile、WriteFile、DeleteFile、GetFileAttributeなどのような)ハードディスクとともに動作するためのすべてのコマンドを選択すると共に、選択されたコマンドを記述するすべてのパラメータを選択する。
さらに別の例において、行動ログから1000個ごとのコマンドを選択すると共に、選択されたコマンドを記述するすべてのパラメータを選択する。
システムの一つの態様によれば、行動ログは、少なくとも2つのファイル、それらファイルのうち一方は安全なファイルであり他方は悪意のあるファイルであるもの、から前もって形成される。
システムのさらに別の態様においては、行動ログの各要素は、行動パターンの要素の種類のような特徴と一致させられる。行動パターンの要素(コマンドまたはパラメータ)の種類は、少なくとも
・行動パターンの要素を数として表現することができる場合には、「数の範囲」
である。
たとえば、connectコマンドのパラメータ
Figure 0006715292
を構成する行動パターンの要素に対して、上記の行動パターンの要素の種類は、「0x0000から0xFFFFまでの数の範囲」、
・行動パターンの要素をストリングの形態で表現することができる場合には、「ストリング」であることがあり、たとえば、connectコマンドを構成する行動パターンの要素に対して、上記の行動パターンの要素の種類は、「サイズに関して32文字より少ないストリング」であることがあり、
・行動パターンの要素を所定のデータ構造によって記述されたデータの形態で表現することができる場合には、その行動パターンの要素の種類は、「データ構造」であることがある。
たとえば、find_recordコマンドのパラメータ
Figure 0006715292
を構成する行動パターンの要素に対して、この行動パターンの要素の種類は、「データ構造MD5」であることがある。
システムのさらに別の態様においては、行動パターンは、行動パターンの要素として、少なくとも
・語彙素の形成のための所定のルール
・あらかじめ訓練された再帰型ニューラルネットワーク
を用いて上記の行動パターンの要素の語彙分析に基づいて形成されたトークンをさらに含む。
たとえば、パラメータ「c:¥windows¥SYSTEM32¥DATA.pass」の語彙分析の助けによる。
語彙素の形成のためのルールに基づいて、
・ストリングがファイルへのパスを含む場合には、ファイルが位置させられるディスクを決定する、
・ストリングがファイルへのパスを含む場合には、ファイルが位置させられるフォルダを決定する、
・ストリングがファイルへのパスを含む場合には、ファイルの拡張子を決定する。
ここで、語彙素は
・ファイルへのパス、
・ファイルが位置させられるフォルダ、
・ファイルの名前、
・ファイルの拡張子
である。
トークン
Figure 0006715292
を形成することができる。
さらに別の例では、パラメータ「‘81. 19. 82. 8’,‘81. 19. 72. 38’,‘81. 19. 14. 32’」の語彙分析の助けによる。
語彙素の形成のためのルールに基づいて
・パラメータがIPアドレスを構成する場合には、上記のIPアドレスを記述するビットマスク(または、メタ文字によって表現されたその類似物)(すなわち、すべての上記のIPに対して等式
Figure 0006715292
が真であるようなビットマスクM)を決定する。
トークン「‘81.19.*.*’.」を構築することができる。
さらに別の例として、数を含むすべての利用可能なパラメータから、数のトークン「23, 16, 7224, 6125152186, 512, 2662162, 363627632, 737382, 52, 2625, 3732, 812, 3671, 80, 3200」が所定の範囲内で形成される。
数の範囲によってソートが行われる。
0から999まで →{16, 23, 52, 80, 512, 812}
1000から9999まで →{2625, 3200, 3671, 7224}
10000から →{737382, 2662162, 363627632, 6125152186}
システムのさらに別の態様においては、トークンは、ストリングからなる行動パターンの要素から形成される。
たとえば、行動パターンは、ディスク、ディレクトリ、ファイル、ファイル拡張子などの名前を含むファイルへのパスである。この場合には、トークンは、ディスクの名前およびファイル拡張子
Figure 0006715292
であることがある。
畳み込みモジュール122は
・得られた行動パターンについて実行されたその畳み込み関数の結果の逆畳み込み関数の結果が、指定された値よりも大きい得られた行動パターンとの類似性の程度を有することになるように、すなわち、
Figure 0006715292
であり、ここで、
は、行動パターンであり、
gは、畳み込み関数であり、
−1は、逆畳み込み関数であるように、
行動パターンから畳み込み関数を形成するように、
・そのように形成された畳み込み関数をMLモジュール132へ送る
ように設計される。
システムの一つの態様によれば、畳み込みモジュールは、
・得られた行動パターンに基づいて行動パターンの特徴ベクトルを算出するが、ここで、行動パターンの特徴ベクトルは、行動パターンの要素のハッシュ値の和として表現されることがあるように、
・行動パターンの特徴ベクトルから畳み込み関数を形成するが、ここで、畳み込み関数は、算出された特徴ベクトルと、算出された特徴ベクトルからのそのハッシュ関数の結果の逆ハッシュ関数の結果との間の類似性の程度が所定の値よりも大きいように、ハッシュ関数を構成する。
ようにさらに設計される。
システムのさらに別の態様においては、畳み込み関数は、計量学習方法によって形成される。この態様において、所定の類似性の閾値よりも大きい類似性の程度を有する行動パターンに対して上記の畳み込み関数の助けにより得られた畳み込みの間の距離が計算される。計算された距離は、所定の距離の閾値未満である。しかしながら、所定の類似性の閾値未満の類似性の程度を有する行動パターンに対しては、計算された距離は、所定の距離の閾値よりも大きい。
たとえば、行動パターンの特徴ベクトルは、以下のように算出されることがある。
・まず、100000個の要素からなる、空のビットベクトルが作成される(ここで、ベクトルの各要素について、1ビットの情報が取って置かれる)。
・行動パターンrからの1000個の要素が、コマンドcについてのデータの記憶用に確保され、残りの99000個の要素が、行動パターンrのパラメータcのために確保され、ここで、50000個の要素(要素1001から要素51000まで)が、ストリングパラメータ用に、25000個の要素(要素51001から要素76000まで)が、数のパラメータ用に確保される。
・行動パターンrの各コマンドcは、0から999までのうちの特定の数xと一致させられると共に、対応するビットが、
Figure 0006715292
のように生成されたベクトルに設定される。
・行動パターンrの各パラメータpに対して、ハッシュ値が、式
・ストリングに対して:
Figure 0006715292
・数に対して:
Figure 0006715292
・その他に対して:
Figure 0006715292
によって算出されると共に、対応するビットが、算出されたハッシュ値に依存して、生成されたベクトル
Figure 0006715292
に設定される。
そのように設定された要素を備えた記述されたビットベクトルは、行動パターンrの特徴ベクトルを構成する。
システムのさらに別の態様においては、行動パターンの特徴ベクトルは、以下の式
Figure 0006715292
によって計算されるが、ここで、
bは、計算の位取り法の底であり(たとえば、2進法のベクトルについてはb=2、ストリング、すなわち、文字の群を表すベクトルについてはb=8)、
は、行動パターンのi番目の要素であり、
hは、ハッシュ関数であり、ここで、
Figure 0006715292
である。
たとえば、行動パターンの特徴ベクトルは、以下のように計算されることがある。
・まず、1000個の要素からなる、(前の例とは異なる)さらに別の空のビットベクトルを生成する(ここで、1ビットの情報がベクトルの各要素のために取って置かれる)。
・式
Figure 0006715292
によって、行動パターンrの各パターン要素rに対してハッシュ値を算出すると共に、算出されたハッシュ値に依存して、生成されたベクトルに対応するビットを設定する。
Figure 0006715292
システムのさらに別の態様においては、行動パターンの特徴ベクトルは、ブルームフィルタを構成する。
たとえば、行動パターンの特徴ベクトルは、以下のように計算されることがある。
・まず、100000個の要素からなる、(前の例とは異なる)さらに別の空のベクトルを生成する。
・ハッシュ関数の組
Figure 0006715292
によって、式
Figure 0006715292
によって、行動パターンrの各パターン要素rについて少なくとも2個のハッシュ値を算出するが、ここで、
Figure 0006715292
であると共に、計算されたハッシュ値に依存して、生成されたベクトルに対応する要素を設定する。
Figure 0006715292
システムのさらに別の態様において、行動パターンの特徴ベクトルの構築された畳み込み関数の結果のサイズは、行動パターンの上記の特徴ベクトルのサイズ未満である。
たとえば、特徴ベクトルは、100000個の要素を含むと共にこのように12500バイトのサイズを有するビットベクトルを構成する一方で、上記の特徴ベクトルの畳み込み関数の結果は、8個のMD5のハッシュ値の組を構成すると共に、このように256バイトのサイズ、すなわち、特徴ベクトルの〜2%のサイズを有する。
システムのさらに別の態様においては、特徴ベクトルおよび算出された特徴ベクトルの上記のハッシュ関数の結果の逆ハッシュ関数の結果の類似性の程度は、0から1までの範囲の数値を構成すると共に、次
Figure 0006715292
によって算出されるが、ここで、
Figure 0006715292
は、giとh(r)の同時発生を意味し、
{h(r)}は、行動パターンの要素のハッシュ関数の結果の組であり、
{g}は、行動パターンの要素のハッシュ関数の結果の逆ハッシュ関数の結果の組であり、
は、行動パターンのi番目の要素であり、
hは、ハッシュ関数であり、
wは、類似性の程度である。
たとえば、算出された特徴ベクトルは、ビットベクトル「101011100110010010110111011111101000100011001001001001110101101101010001100110110100100010000001011101110011011011」を構成し、この特徴ベクトルの畳み込み関数の結果は「1010011110101110101」であり、そして、上で得られた結果の逆畳み込み関数の結果は、
Figure 0006715292
である(太字は、特徴ベクトルとは異なる要素を示す)。このように、特徴ベクトルおよび逆畳み込み関数の結果の類似性は、0.92である。
システムのさらに別の態様においては、パラメータとして行動パターンの要素を使用する上述したハッシュ関数は、行動パターンの要素の種類に依存する。
Figure 0006715292
たとえば、ファイルへのパスを含むストリングを構成する行動パターンからパラメータのハッシュ値を計算するために、ハッシュ関数CRC32が、他のいずれのストリングについても、ハフマンアルゴリズムが、データセットについては、ハッシュ関数MD5が、使用されることがある。
システムのさらに別の態様においては、行動パターンの特徴ベクトルの畳み込み関数の形成は、オートエンコーダによって行われるが、ここで、入力データは、行動パターンのその特徴ベクトルの要素であり、出力データは、所定の閾値よりも大きい入力データに対する類似性の係数を有するデータである。
検出モデルモジュール131は、
・少なくとも
・検出モデルの機械学習のための方法の選択
・訓練モデルのパラメータの初期化であって、検出モデルの機械学習の開始に先立って初期化された訓練モデルのパラメータが、ハイパーパラメータとして知られているもの
を含む、悪意のあるファイル用の検出モデルを生成する
ように設計される。
一つの態様において、検出モデルは、準備モジュール111によって選択されたファイルのパラメータに依存する。別の態様によれば、検出モデルは、固定されたものであり、訓練モデルのパラメータには依存しない。さらに別の態様において、検出モデルおよび訓練モデルなどを含む、上記したここに開示された各モデルは、準備モジュール111からの入力ファイル、検出モデルの機械学習のための方法のパラメータ、および照合のために受信されたモデルパラメータに依存することがある。
・そのように生成された訓練モデルをMLモジュール132へ送る。
一つの態様によれば、検出モデルは、ある方法にしたがって形成され、次にファイルのデータベースに基づいて行動ログを発生させるために準備モジュール111によって使用されることがある。実時間処理の条件下において、訓練モデルは、次に、機械学習モジュール132を使用することで、ファイルの決定された重症度に基づいて再訓練される。別の態様において、検出モデルは、準備モジュール111を使用することで、ファイルのデータベースからのファイルに基づいて、形成されると共に訓練されることがある。このアプローチでは、検出モデルを、展開された生産環境におけるファイル上で動作することで、ここに記載されたシステムの動作に先立って精密に調整することができる。さらに別の態様において、記載したシステムは、単一のファイルを訓練のサンプルファイルおよびアンチウィルススキャンを要求することがあるファイルとして使用することで動作する。この態様においては、行動ログの蓄積または補充が無いので、検出モデルは、ファイルの事前に分類された統計に基づいて作られるのではなく、検出モデルが各ファイルを別個に調整する。
たとえば、検出モデルの機械学習のための方法を選択するとき、まず、検出モデルとして人工のニューラルネットまたはランダムフォレストのいずれを使用するかの決定がなされ、次に、ランダムフォレストが選ばれる場合には、ランダムフォレストのノードに対して分離基準を選択するか、または、人工のニューラルネットが選ばれる場合には、人工のニューラルネットのパラメータの数値的な最適化の方法を選択する。機械学習のための特定の方法についての選択は、所定の種類(すなわち、データ構造、行動パターンの要素の数、悪意のあるファイルについての検索が行われる計算装置の性能、および計算装置の利用可能な資源など)の入力データ(行動パターン)を用いて悪意のあるファイルの検出におけるその方法の有効性(すなわち、悪意のあるファイルの検出に生じる第1のおよび第2の種類の誤りの数)に基づいてなされる。
さらに別の例において、検出モデルの機械学習のための方法は、少なくとも
・クロステスト、スライディングチェック、交差検証(CV)
・AICおよびBICなどの基準の数学的な検証
・A/Bテスト、スプリットテスト
・スタッキング
に基づいて選択される。
さらに別の例において、計算装置の性能が所定の閾値よりも下である場合には、ランダムフォレストが選ばれ、それ以外は、人工のニューラルネットが選ばれる。
システムの一つの態様においては、機械学習は、事前に作成された訓練されてない検出モデル(すなわち、モデルのパラメータが、入力データの分析に基づいて、所定の閾値よりも高い精度で出力データを生じさせることができない検出モデル)について実行される。
システムのさらに別の態様において、検出モデルの機械学習のための方法は、少なくとも
・決定木に基づいた勾配ブースティング
・決定木
・K近傍法
・サポートベクトルマシン(SVM)法
である。
システムのさらに別の態様においては、検出モデルモジュール131は、MLモジュール132からの要求に応じて検出モデルを生成するように設計されるが、ここで、ある一定のハイパーパラメータおよび機械学習の方法が、前の検出モデルのために選ばれたハイパーパラメータおよび機械学習方法とは異なるように選ばれる。
MLモジュール132は、検出モデルを訓練するように設計されるが、検出モデルのパラメータは、得られた行動パターンについての得られた畳み込み関数を用いて計算され、ここで検出モデルは、上記の検出モデルの計算されたパラメータを用いて少なくとも1つの行動パターンに基づいてファイルの有害性の程度を計算するためのルールの組を構成する。
たとえば、検出モデルは、準備モジュール111によって選択された既知のファイルの組で訓練されるが、ここで、上記のファイルの組は、60%の安全なファイルおよび40%の悪意のあるファイルを含む。
システムの一つの態様において、ファイルの有害性の程度は、0から1までの数値を構成するが、ここで、0は、上記のファイルが安全であることを、1は、それが悪意があるものであることを意味する。
システムのさらに別の態様においては、行動ログの分析に基づいて形成された行動パターンの数の変化に依存するファイルの有害性の程度における単調な変化保証する検出モデルの訓練の方法が選ばれる。
たとえば、ファイルの有害性の程度の単調な変化は、各々の後続の行動パターンを分析する際に、算出された有害性の程度が、前に算出された有害性の程度未満ではないことになることを意味する(たとえば、10番目の行動パターンの分析の後では、算出された有害性の程度は、0.2に等しいものであり、50番目の行動パターンの分析の後では、それは、0.4であり、100番目の行動パターンの分析の後では、それは、0.7である)。
システムのさらに別の態様においては、MLモジュール132は、
・テスト選択のファイルからファイルの有害性の正確な決定を決定するためにテスト選択のファイルからファイルの分析に基づいて形成された得られた行動ログに対して訓練された検出モデルのチェックを実行するように、
・チェックの否定的な結果の場合には、少なくとも
・検出モデルの訓練に使用された現在のものとは異なるファイルの選択を準備するために準備モジュール111へ、
・現在のものとは異なる、新しい検出モデルを生成するために検出モデルモジュール131へ、
リクエストを送る
ようにさらに設計される。
訓練された検出モデルのチェックは、以下のものを伴う。上記の検出モデルは、準備モジュール111によって選択されたファイルの組に基づいて教育されてあるが、それらは安全なまたは悪意のあるもののいずれかであることが知られたものである。悪意のあるファイルの検出のためのモデルが正しく訓練されてあること、すなわち、検出モデルが悪意のあるファイルを検出すると共に安全なファイルを見送ることができることを検証するために、このモデルのチェックが実行される。このため、上記の検出モデルは、準備モジュール111によって選択された別のファイルの組からのファイルが悪意のあるものであるかどうかを決定するために使用されるが、それらのファイルが悪意のあるものであるかどうか前もって知られている。このように、いくつの悪意のあるファイルが見逃されたか、および、いくつの安全なファイルが検出されたかを決定する。見逃された悪意のあるファイルおよび検出された安全なファイルの数が所定の閾値よりも大きい場合には、その検出モデルは、不適切に訓練されたものであると認められると共にそれについては反復の機械学習が(たとえば、別の訓練選択のファイルについて、および、以前のものとは異なる検出モデルのパラメータの値を使用することなどで)なされることを必要とする。
たとえば、訓練されたモデルのチェックを実行するとき、テスト選択のファイルからの悪意のあるファイルの検出において、第1のおよび第2の種類の誤りの数をチェックする。そのような誤りが所定の閾値よりも大きい場合には、新たな訓練およびテスト選択のファイルが選択され、新たな検出モデルが生成される。
さらに別の例において、訓練選択のファイルが10000個のファイルを含み、それらのうち8500個が悪意のあるものであり、1500個が安全なものであった。検出モデルが教育された後、それが1200個のファイルを含むテスト選択のファイルがチェックされたが、それらのうち350個が悪意のあるものであり850個が安全なものであった。実行されたチェックの結果に従って、350個の悪意のあるファイルのうち15個(4%)が検出に失敗した一方で、850個の安全なファイルのうち102個(12%)が誤って悪意のあるものであると認められた。未検出の悪意のあるファイルの数が5%を超えるか、あるいは、偶然に検出された安全なファイルが0.1%を超える場合、訓練された検出モデルは、不適切に訓練されたものであると認められる。
システムの一つの態様においては、システムの行動ログは、システムの前に形成された行動ログおよび上記のシステムの行動ログの形成後にインターセプトされたコマンドに基づいて、さらに形成される。
たとえば、ファイルの実行の開始後に、そのファイルの有害性または安全性についての判定を告げることが必要であるが、インターセプトされた実行可能なコマンドおよびそれらを記述するパラメータは、行動ログに記録される。これらのコマンドおよびパラメータの分析に基づいて、そのファイルの有害性の程度が算出される。分析の結果に基づいてファイルが悪意のあるものかまたは安全なものであることについての判定告げられなかった場合、コマンドのインターセプトが継続されることがある。インターセプトされたコマンドおよびそれらを記述するパラメータは、古い行動ログにまたは新しい行動ログに記録される。第一の場合では、行動ログに記録されたすべてのコマンドおよびパラメータの分析に、すなわち、有害性の程度を算出するために前に使用されたものにでさえも、基づいて有害性の程度が算出される。
有害性モジュール142は、
・ログモジュール112から得られた行動ログおよびMLモジュール132から得られた検出モデルに基づいて有害性の程度を算出するが、ファイルの有害性の程度が、実行可能なファイルの悪意のある行動を記述する、定量的な特徴(たとえば、0−ファイルが安全な行動のみを有する−から1−上記のファイルが所定の悪意のある行動を有する−までの範囲内にある)であるように、
・算出された有害性の程度を資源モジュール143へ送る
ように設計される。
資源モジュール143は、コンピュータシステムのセキュリティを確保する際に使用する得られた有害性の程度の分析に基づいて、コンピュータシステムの計算資源を割り当てるように設計される。
システムの一つの態様においては、コンピュータシステムの計算資源は、少なくとも
・空いているRAMの容量
・ハードディスクの空き領域の容量
・(たとえば、より深いエミュレーションと共に)ウィルススキャンに費やすことができる、空いているプロセッサの時間(プロセッサの時間の分量)
を含む。
システムのさらに別の態様においては、有害性の程度の分析は、有害性の程度の先行する計算の各々の後における有害性の程度の値の変化の動態を決定すること、および、少なくとも
・有害性の程度の値の増加の場合にコンピュータシステムの追加の資源を割り当てること、
・有害性の程度の値の減少の場合にコンピュータシステムの前に割り当てられた資源を解放すること
に存する。
図2は、本開示の例示的な態様に係る機械学習を使用する悪意のあるファイルの検出用の方法のフローチャートである。方法200は、システム100に実装されることがある。手短に、方法200は、ステップ211で訓練の選択のファイルが準備されること、ステップ212で行動ログが形成されること、ステップ221で行動パターンが形成されること、ステップ222で畳み込み関数が形成されること、ステップ231で検出モデルが作成されること、ステップ232で検出モデルが訓練されること、ステップ241でコンピュータシステムの行動が追跡されること、ステップ242で有害性の程度が算出されること、およびステップ243でコンピュータシステムの資源が管理されることを含む。
より具体的には、ステップ211において、準備モジュール111は、所定の基準にしたがってファイルのデータベースから少なくとも1つのファイルを選択するために使用されるが、ここで、選択されたファイルに基づいて検出モデルの訓練がステップ232で行われることになる。
ステップ212においてログモジュール112は、
・少なくとも1つのコマンドを少なくとも
・ステップ211において選択されたファイルの実行、
・ステップ211において選択されたファイルの作動のエミュレーション
の間にインターセプトするために、
・各々のインターセプトされたコマンドについて、そのコマンドを記述する少なくとも1つのパラメータを決定するために、
・インターセプトされたコマンドおよび決定されたパラメータに基づいて、得られたファイルの行動ログを形成するが、ここで、行動ログは、ファイルからのインターセプトされたコマンド(以後、コマンド)の組を表し、各コマンドは、そのコマンドを記述する少なく一つの定義されたパラメータ(以後、パラメータ)に対応するために、
使用される。
ステップ221において、パターンモジュール121は、ステップ212で形成された行動ログから選択されたコマンドおよびパラメータに基づいて、少なくとも1つの行動パターンを形成するために使用されるが、ここで、行動ログは、ファイルからの実行可能なコマンド(以後、コマンド)のグループを表し、各コマンドは、そのコマンドを記述する少なくとも1つのパラメータ(以後、パラメータ)に対応し、行動パターンは、少なくとも1つのコマンドおよびそのようなパラメータの組であり、そのパラメータはその組からのすべてのコマンドを記述する。
ステップ222において、畳み込みモジュール122は、ステップ221で形成された行動パターンの畳み込み関数を形成するために使用されることで、上述した行動パターンについて実行されたこの畳み込み関数の結果の逆畳み込み関数の結果は、指定された値よりも大きい上述した行動パターンに対する類似性の程度を有することになる。
ステップ231において、検出モデルモジュール131は、検出モデルを作成するために使用されるが、その検出モデルについては、少なくとも
・検出モデルの機械学習のための方法が選択され、
・訓練モデルのパラメータが初期化されるが、ここで検出モデルへの機械学習の開始に先立って初期化された訓練モデルのパラメータは、ステップ211で選択されたファイルのパラメータに依存する、ハイパーパラメータとして知られたものである。
ステップ232において、MLモジュール132は、ステップ231において作成された検出モデルを訓練するために使用されるが、そのモジュールにおいて、その検出モデルのパラメータは、ステップ221において形成された行動パターンについて、ステップ222において形成された畳み込み関数を用いて算出され、ここで、検出モデルは、その検出モデルの算出されたパラメータを用いて少なくとも1つの行動パターンに基づいて、ファイルの有害性の程度を算出するためのルールのグループを構成する。
ステップ241において、行動追跡モジュール141は、
・コンピュータシステムにおいて実行するファイルによって実行されている少なくとも1つのコマンドをインターセプトするために、
・インターセプトされたコマンドに基づいてシステムの行動ログを形成するために
使用される。
ステップ242において、有害性モジュール142は、ステップ241で形成されたシステムの行動ログおよびステップ232で訓練されてある検出モデルに基づいて、有害性の程度を算出するために使用される。
ステップ243において、資源モジュール143は、コンピュータシステムのセキュリティを確保する際に使用されるステップ242で算出されたような有害性の程度の分析に基づいて、計算資源を割り当てるために使用される。
図3は、本開示の例示的な態様に係る行動パターンの数の関数としての有害性の程度の変化の動態の例を示す。
行動パターンの数の関数としての有害性の程度における変化の動態の例は、悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態をプロットするグラフ311を含む。図3は、また悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態のグラフ312を示す。グラフ321は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態をプロットする。最後に、グラフ322は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態をプロットする。
システムの一つの態様においては、実行可能なファイルの有害性の程度は、0(上記のファイルは絶対的に安全な行動を有する)から1(上記のファイルは所定の悪意のある行動を有する)までの範囲内の値を取る。
グラフ311は、悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態を示す。
初めに、上記のファイルを実行する際に、形成された行動パターンの数が大きいものではなく、さらに、実行可能なファイルの悪意のある行動は、ないか、または、最小であるのかもしれない(たとえば、たとえば、データの初期化が起こるが、それは安全なものを含む、多くのファイルに対して普通のことである)。このように初期に、算出された有害性の程度は、0からわずかに異なるが、所定の閾値(以後、安全性の基準)を超えるものではない。有害性の程度が閾値を超えた後、実行可能なファイルの行動は、安全であると認められることを停止する(グラフにおいて、この閾値は、点線によって示される)。
しかしながら、やがて実行可能なファイルの悪意のある活動が増大すると共に有害性の程度が安全性の基準を上回る1に接近し始めることがある一方で、有害性の程度が所定の閾値(以後、有害性の基準)に到達しないかもしれないが、その閾値の通過後に、実行可能なファイルの行動は、悪意のあるものであると認められることになる(グラフにおいて、この閾値は破線によって示される)。
増大の期間の後に、悪意のある活動が停止することがあり、有害性の程度は、再び0へ向かうことになる(時刻A)。ある時刻において、有害性の程度が有害性の基準よりも大きくなることになり(時刻B)、実行可能なファイルの行動は、悪意のあるものと認識されることになり、その結果として分析されるファイルは、悪意のあるものと認識されることになる。
記載されたアプローチが、実行可能なファイルの長期間の明瞭に示された悪意のある活動の間に最も良く生じる有害性の程度の急激な増大に良く反応するので、ファイルを悪意のあるものと認識する時刻は、悪意のある活動の増大の開始よりも顕著に遅く生じるかもしれない。
悪意のある行動が一時的に生じる場合(グラフ311の左側)には、算出された有害性の程度は、実行可能なファイルの行動の有害性、およびその結果として実行可能なファイルそれ自体の有害性についての判定が告げられる値に到達しないかもしれない。
形成された各行動パターンに基づいて有害性の程度が算出されない場合(たとえば、計算装置の性能が高くないので)、時刻A(悪意のある行動が開始する時)および時刻C(悪意のある行動が終了させられる時)では有害性の程度が算出されることになるが、時刻B(悪意のある行動が生じている時)では算出されないことになる状況があり得る。そのため、算出された有害性の程度が有害性の基準を超えないことになり、実行可能なファイルの行動が悪意のあるものと認識されないことになり、その結果として悪意のあるファイルが検出されないことになる。
グラフ312は、悪意のあるファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態を示す。
初めに、上記のファイルを実行する際には、形成された行動パターンの数が大きいものではなく、実行可能なファイルの悪意のある行動がないか、または、最小であるかもしれない(例えば、データの初期化が生じるが、それは、安全なものを含む、多くのファイルについて普通のことである)。その結果として、算出された有害性の程度は、0からわずかに異なると共に、所定の閾値(以後、安全性の基準)を超えるものではない。上述してきたように、安全性の基準は、超過したとすれば、実行可能なファイルの行動が安全なものと認められることを停止することを示す値である(グラフにおいて、この閾値は点線で示される)。
しかしながら、やがて実行可能なファイルの悪意のある行動が増大すると共に有害性の程度が安全性の基準を上回る1に接近しはじめる一方で、有害性の程度が所定の閾値(以後、有害性の基準)に到達しないかもしれないが、その閾値の通過の後に、実行可能なファイルの行動は悪意のあるものと認められることになる(グラフにおいて、この閾値は破線で示される)。
増大の期間(時刻A〜B)の後に、悪意のある活動は停止することがあるが(時刻B〜A)、まだ有害性の程度は減少しないことになり、実行可能なファイルのどの悪意のある活動の期間中においても増大することを続けるだけである。ある時刻において、有害性の程度が有害性の基準よりも大きくなることになり(時刻D)、実行可能なファイルの行動は、悪意のあるものとして認識されることになる。その結果としてファイルそれ自体は悪意のあるものとして認識されることになる。
記載されたアプローチが、実行可能なファイルの長期の明瞭に示された悪意のある活動の間および頻繁に一時的にあまり目立たない悪意のある活動の間の両方で生じる、有害性の程度における滑らかな増大によく反応するので、ファイルを悪意のあるものと認識する時刻は、悪意のある活動の発現の直後に生じるかもしれない。
悪意のある活動が一時的に生じる場合(グラフ312の左側)には、時間にわたって算出された有害性の程度は、実行可能なファイルの行動の有害性の程度および実行可能なファイルそれ自体の有害性についての判定が告げられる値へ到達するかもしれない。
生成された各行動パターンに基づいて有害性の程度が算出されない場合(たとえば、計算装置の性能が高くないため)には、時刻A(悪意のある行動が開始する時)および時刻C(悪意のある行動が終了させられる時)には有害性の程度が算出されることになるが、時刻B(悪意のある行動が生じている時)には算出されないことになる状況があり得る。にもかかわらず、有害性の程度が単調に変化するので、算出された有害性の程度は、それらの値を増加させることになるだけであり、時刻Cにおいて有害性の程度は、有害性の基準を超えることになり、実行可能なファイルの活動は、悪意のあるものとして認識されることになり、その結果として悪意のあるファイルが検出されることになる。
グラフ321は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における任意の変化の動態を示す。
初めて、上記のファイルを実行する際には、悪意のあるファイルの実行中にもまた実行されることがある(たとえば、ファイルの削除、コンピュータネットワークにおけるのデータの転送など)「疑わしい」のコマンドが実行されることがあるとはいえ、形成された行動パターンの数が大きいものではなく、その上、実行可能なファイルについてのもののような悪意のある活動がない(。したがって、算出された有害性の程度は、0とは異なると共に、所定の閾値(以後、安全性の基準)を超えるものではないが、その閾値を通過した後には、実行可能なファイルの行動が安全なものと認められることを停止する(グラフにおいて、この閾値は点線で示される)。
しかしながら、多数の「疑わしい」のコマンドの実行のために、実行可能なファイルの悪意のある活動が増大すると共に有害性の程度が「1」に接近しはじめる一方で、有害性の程度は、所定の閾値(以後、有害性の基準)に到達しないかもしれないが、その閾値の通過後には、実行可能なファイルの行動は、悪意のあるものであると認められることになり(グラフにおいて、この閾値は、破線で示される)、それは安全性の基準を超えることがあるので、ファイルは、安全なものと認められることを停止すると共に「疑わしい」ものになることがある。
増大の期間の後に、悪意のある活動が停止することがあり、有害性の程度は、再び0に向かうことになる(時刻C)。
形成された各行動パターンに基づいて有害性の程度が算出されない場合(たとえば、計算装置の性能が高くないため)には、時刻B(活動が悪意のあるものに最も類似する、すなわち「疑わしい」ものになる時)では有害性の程度が算出されることになるが、時刻A(「疑わしい」活動が増加する時)ではまたは時刻C(「疑わしい」活動が減少している時)では算出されないことになる状況があり得るので、算出された有害性の程度が安全性の基準を超えることになり、実行可能なファイルの活動が「疑わしい」ものとして認識されることになり(それが安全なものと認められないことになり)、その結果として安全なファイルが安全なものと認識されないことになる。
グラフ322は、安全なファイルの実行中に形成された行動パターンの数の関数としての有害性の程度における単調な変化の動態を示す。
初めて、上記のファイルを実行する際には、悪意のあるファイルの実行中にもまた実行されることがある、(たとえば、ファイルの削除、コンピュータネットワークにおけるデータの転送など)「疑わしい」のコマンドが実行されるかもしれないとはいえ、形成された行動パターンの数が大きいものではなく、その上、実行可能なファイルについてのもののような悪意のある行動がなく、したがって、算出された有害性の程度は、0とは異なると共に、所定の閾値(以後、安全性の基準)超えるものではないがその閾値を通過した後には、実行可能なファイルの行動が安全なものと認められることを停止する(グラフにおいて、この閾値は点線で示される)。
しかしながら、多数の「疑わしい」コマンドの実行のために、やがて実行可能なファイルの悪意のある行動が増大すると共に有害性の程度が1に接近しはじめる一方で、有害性の程度が所定の閾値(以後、有害性の基準)に到達しないかもしれないが、その閾値の通過後には実行可能なファイルの行動が悪意のあるものであると認められることになり(グラフにおいて、この閾値は破線で示される)、またそれは安全性の基準を超過しないかもしれないので、ファイルは安全なものと認められることを続けることになる。
増大の期間(時刻A〜B)の後に、悪意のある行動は、停止することがあるが(時刻B〜A)、まだ有害性の程度は減少しないことになるが、実行可能なファイルのどの悪意のある活動中においても増大することを続けるだけであり、安全性の係数を超えるものではないので、実行可能なファイルの活動は、安全なものと認識されることになり、その結果としてファイルは、安全なものと認識されることになる。
形成された各行動パターンに基づいて有害性の程度が算出されない場合(たとえば、計算装置の性能が高くないため)には、時刻B(活動が悪意のあるものに最も類似する、すなわち、「疑わしい」ものになる時)では有害性の程度が算出されることになるが、時刻A(「疑わしい」活動が増加する時)では、または時刻C(「疑わしい」活動が減少している時)では算出されないことになる状況があり得る。にもかかわらず、有害性の程度は、単調に変化するので、算出された有害性の程度は、それらの値を増加させることになるだけであり、時刻A、B、Cでは有害性の程度は、安全性の基準を超えるものではないことになり、実行可能なファイルの活動は、安全なものとして認識されることになり、その結果として安全なファイルは、安全なものとして認識されることになる。
記載されたアプローチが、有害性の程度の増大における鋭いピークを回避することを可能にする、有害性の程度における滑らかな増加を提供するため、ファイルを「疑わしい」ものとして認識する時刻は、「疑わしい」活動の発現の後には生じないかもしれない。
図4は、行動パターンの要素の間における関係の図の一例を示す。
行動パターンの要素の間における関係の図の例は、コマンド411(白抜きの丸)、パラメータ412(網掛けの丸)、1つのパラメータを備えた行動パターンの例412、および1つのコマンドを備えた行動パターンの例411を含む。
ファイルの実行中に、コマンド411がインターセプトされ、それらを記述するパラメータ412が決定された。
Figure 0006715292
行動パターン412、422は、上述したコマンド411およびパラメータ412に基づいて形成され、行動パターンの要素の間における関係が決定される。
第1のステップにおいて、1つのコマンド411およびそのコマンドを記述する一つのパラメータ412を含むパターンが形成される。
Figure 0006715292
示された例では、8個のインターセプトされたコマンド(それらを記述するパラメータ備えたもの)に基づいて19個の行動パターンが形成されてある。
第2のステップにおいて、1つのパラメータ412、および、そのパラメータ412によって記述することができる全てのコマンド411を含むパターンが形成される。
Figure 0006715292
示された例では、8個のインターセプトされたコマンド(それらを記述するパラメータを備えたもの)に基づいて7個の行動パターンが加えて形成されてある。
第3のステップにおいて、数個のパラメータ412、および、それらのパラメータ421によって記述することができる全てのコマンド411を含むパターンが形成される。
Figure 0006715292
与えられた例では、8個のインターセプトされたコマンド(それらを記述するパラメータを備えたもの)に基づいて3個の行動パターンが加えて形成されている。
図5は、オブジェクトの分類のシステムの構造図を示す。
オブジェクトの分類のシステムの構成図は、分析されるオブジェクト501、データブロックを選択するように構成されたデータブロック選択モジュール510、分析モデル511、オブジェクトの静的分析を実行するように構成された静的分析モジュール520、有害性の程度を算出するように構成された有害性モジュール530、悪意のあるオブジェクトの検出用のモデル531、分類モジュール540、および分析モデル511を再訓練するように構成された再訓練モジュール550からなる。
分析されるオブジェクト501は、
・実行可能なファイル、
・スクリプト、および、またそのスクリプトを含むファイル、
・ネットワークのパケットなど
の一つであることになる。
たとえば、分析されるオブジェクト501は、Microsoft Office(登録商標)のソフトウェアの構成要素である実行可能なファイル「word.exe」であることがある。
さらに別の例において、分析されるオブジェクト501は、電子的文書PDFであるファイル「manual.pdf」であることがある。
さらに別の例において、分析されるオブジェクト501は、JavaScript(登録商標)言語で記述され、サイト「google.com」からブラウザによってダウンロードされたページ「index.html」に含まれたスクリプトであることがある。
さらに別の例において、分析されるオブジェクト501は、インターネットによって転送されるデータである(たとえば、銀行の側におけるサービス動作であるサーバ・アプリケーション「Online Banking Server」から、クライアントのリクエストを処理することで、ユーザの計算装置上で動作するクライアントのアプリケーション「Online Banking App」へ)と共に、ネットワークのパケットの形態で構造化されることがある。
データブロック選択モジュール510は、
・分析モデル511の助けにより、分析されるオブジェクト501に含まれた少なくとも1つのデータブロックを選択するように、
・選択されたデータブロックを静的分析モジュール520へ送る
ように設計される。
システムの一つの態様において、分析されるオブジェクト501中の(データ選択の要素の1つとしての)データブロックについての検索は、
・分析されるオブジェクト501のパラメータ、
・事前に発見されたデータブロックの特徴
に基づいて実行される。
たとえば、分析されるオブジェクト501の上述したパラメータまたは事前に発見されたデータブロックの特徴は、少なくとも
・新たなデータブロックについての検索における鍵、
・畳み込みの算出のための一次データであって、新たなデータブロックについて検索がなされるもの、
・新たなデータブロックについての検索のルールの形成
として使用されることがある。
たとえば、分析モデル511は、上述したデータに基づいてデータブロックの検索および選択のためのルールのグループである。
システムのさらに別の態様において、データブロックの選択は、少なくとも
・データブロックのパラメータの算出および静的分析モジュール520への送りであって、ここで選択されたデータブロックのパラメータは、少なくとも
・選択されたデータブロックのサイズ。
・分析されるオブジェクト501内の選択されたデータブロックの位置
であることになるもの、
選択されるブロックの算出されたパラメータに基づいて分析されるオブジェクト501に含まれたデータのコピーおよび静的分析モジュール520への直接の送り(すなわち、寸法および場所のような選択されるブロックのパラメータに基づいて、分析されるオブジェクト501から選択されたデータをどのようにコピーすることができるか、および、たとえば、暗号化されたデータ、メディア・データなどをコピーするときなどに、どのようにそれを変換するべきであるか、が決定されることになる)。
を伴う。
たとえば、実行可能なファイル「explorer.exe」から、そのファイルのヘッダを記述するデータブロックが選択される。このために、ファイル「explorer.exe」の種類(種類=Windows PE(登録商標))が、まず決定され、ファイルの決定された種類に基づいてヘッダのサイズが算出され(サイズ=4096バイト)、上述したファイルにおけるヘッダの位置が決定される(pos=0x120)。この後に、分析されるファイル「explorer.exe」の0x120の位置から静的分析モジュール520によって提供されたアドレスへ4096バイトがコピーされる。一般的に言えば、異なる種類の複数のファイルの構造についての情報は、事前に知られており、別個のDBに保持されると共に必要に応じて使用されることができるので、実行可能なファイル(PEファイル)は、実行可能なファイルのヘッダの構造についての情報に基づいた1つのアルゴリズムの助けにより処理されることになる一方で、PDFファイルは、PDFファイルのヘッダの構造についての情報などに基づいて、別のアルゴリズムの助けにより処理されることになる。
さらに別の例において、上の例におけるものと同じデータのコピーは、データブロック選択モジュール510によって算出されたかつ送られたパラメータに基づいて、静的分析モジュール520によってなされる。
システムのさらに別の態様によれば、分析されるオブジェクト501のパラメータは、少なくとも
・(実行可能なファイル、スクリプト、ネットワークのパケットのような)分析されるオブジェクトの種類、
・分析されるオブジェクト501に書き込まれたデータ、および、そのオブジェクト501の構造を形成すること、すなわち、相互に関係のあるデータの組であることになる。
たとえば、実行可能なファイル「explorer.exe」である、分析されるオブジェクト501からのデータブロックは、実行可能なファイルの構造、すなわち、ヘッダ、コード・セクション、およびデータ・セクションなど、に従って連続して選択される。
さらに別の例において、Microsoft Word(登録商標)の電子文書のパラメータは、文書に書き込まれた、かつ、文書中で使用されたフォント(ファミリー、文字サイズ、文字など)を特徴付ける、データである。
システムのさらに別の態様において、事前に発見されたデータブロックの特徴は、少なくとも
・分析されるオブジェクト501からそのデータブロックの選択に使用されたデータブロックのパラメータ、
・データブロックに含まれたデータの種類(たとえば、テキスト、数値、メディア・データ、語彙素、スクリプト、実行可能なコードなど)、
・そのデータブロックおよび事前に選択されたデータブロックの間の論理的または機能的な関係(たとえば、二項関係の形態のもの)であって、ここで2個のデータブロック(または、画像および音声のような2種類のデータブロック)が、一緒に使用されるときに、論理的な関係が生じることがある一方でそれらは、(画像およびテキストのような)相互に関係付けられないことがあり、1つのブロックからのデータが、第2のブロックからのデータの分析に使用されるときに、機能的な関係が生じることがある(たとえば、実行可能なファイルのPEヘッダからのデータ、および、資源セクションからのデータであって、それらについての情報はPEヘッダに含まれるもの)、
・上述したデータブロックに基づいて算出された、分析されるオブジェクト501の有害性の係数(データブロックからのデータは、有害性の係数を算出するための式のパラメータとして使用されるが、たとえば、実行可能なファイルのコード・セクションからの各コマンドの量は、それ自身の重みを有する、すなわち、重みはパラメータとして現れ、コード・セクションからのすべてのコマンドの合計の重みが、有害性の係数を形成する)、
であることになる。
分析モデル511は、データブロックを検索するためのルールの組である。検索は、発見された各データブロックが、分析されるオブジェクト501を悪意のあるものと分類する確率を増加させるように、実行される。
システムの一つの態様において、データブロックを検索するルールは、探し求められたデータブロックのパラメータを算出するためのルールであることがある。
たとえば、データブロックを検索するためのルールの助けにより、分析されるオブジェクト501におけるデータブロックの位置およびサイズを算出することで、上述したデータブロックは、分析されるファイル501におけるある位置で始まるが、その位置より前で事前に選択されたデータブロックが終了すると共に、上述したデータブロックのサイズは、事前に選択されたデータブロックのサイズ未満ではない。
システムのさらに別の態様において、データブロックを検索するためのルールは、少なくとも事前に発見されたデータブロックの特徴に依存するが、ここでこの依存性は、少なくとも
・データブロックを検索するためのアルゴリズム(ルール)を選択すること、
・データブロックを検出するためのルールに使用されることになる、事前に発見されたデータブロックを用いてパラメータを算出すること、
・事前に発見されたデータブロックに基づいて、新たなデータブロックの内容を予測し、予測されたデータブロックを検索し、発見されたデータブロックの予測されたものに対する類似性の程度を決定すること
を伴うことがある。
たとえば、実行可能なファイル「explorer.exe」501において、各々の選択されたデータブロックは、事前に選択されたデータブロックと同じ種類のデータを(すなわち、メディア・データ→メディア・データ、テキスト→テキスト、および実行可能なコード→実行可能なコードなど)、そのようなブロックがない場合には、そのとき事前に選択されたデータブロックに関係付けられたデータを含む(すなわち、メディア・データ→テキスト、テキスト→スクリプト、スクリプト→実行可能なコードなど、しかし、テキストでないもの→実行可能なコード)べきである。いくつかの態様において、種類#1のデータ#1が常に種類#2のデータ#2に関係付けられる場合には、関係付けられたデータの種類が使用されるが、たとえば、映像ファイルにおいて、画像に関与するデータ(種類:映像データ)は、音声に関与するデータ(種類:音声データ)に常に関係付けられる。
システムのさらに別の態様において、分析モデル511は、少なくとも1つの悪意のあるオブジェクトについての機械学習のための方法によって事前に訓練されてある。
たとえば、訓練は、訓練選択において、訓練された分析モデル511が(悪意のあるコードのような)悪意のあるデータを含むデータブロックのみを発見するようになされる。
システムのさらに別の態様において、分析モデル511の機械学習のための方法は、少なくとも
・決定木に基づく基づいた勾配ブースティング
・決定木
・K近傍法
・サポートベクトルマシン(SVM)法
を使用することがある。
静的分析モジュール520は、オブジェクトに静的分析を実行し、
・各々の受信されたデータブロックを記述する特徴の組を形成するように、
・形成された特徴の組の畳み込みを算出するように、
・算出した畳み込みを有害性モジュール530へ送る
ように設計される。
システムの一つの態様においては、データブロックに対して形成された特徴は、少なくとも
・上述したデータブロックに存在する所定の文字の頻度特性、
・分析されるオブジェクト501に存在する所定のハッシュ関数を用いて上述したデータブロックからの文字について算出されたハッシュ値の頻度特性、
・外部ライブラリへのアクセスの回数、
・上述したデータブロックにおける合計のデータ容量。
を含む。
システムのさらに別の態様においては、構築された特徴の組の畳み込みの計算は、所定の畳み込み関数に基づいて実行されるので、全ての構築された特徴の組について実行されたその畳み込み関数の結果の逆畳み込み関数の結果が、与えられた値よりも大きいその特徴の組に対する類似性の程度を有する。
たとえば、データブロックの分析に基づいて特徴{p1, p7, p9, p11, p12, p15, p27}が構築され、それに基づいて畳み込み{h128, h763, h909}が計算された。計算された畳み込みに逆関数が適用されたとき、特徴{p1, p7, p10. p11, p12, p15, p27}が得られたが、特徴p10は、元の特徴p9の代わりに存在した一方で、全ての他の特徴はその畳み込みを計算するために使用した特徴と同じであった。
有害性モジュール530は、悪意のあるオブジェクト531の検出用のモデルの助けにより、得られた畳み込みの分析に基づいて分析されるオブジェクト501の有害性の程度を算出すると共に、
算出された有害性の程度を、分類モジュール540へ送るように設計される。
システムの一つの態様において、有害性の程度は、分析されるオブジェクト501が悪意のあるものである確率を特徴付ける数値である。
たとえば、ユーザのデータ「Trojan-Ransom.Win32.Agent」の秘密の暗号化のためのアプリケーションである、実行可能なファイル「video.avi.exe」の有害性の程度は、(所定の閾値を超える)0.97に等しいものであり、順にこのアプリケーションが悪意のあるものであることを意味する一方で、ブラウザ内でのユーザの行為についてのデータを収集するためのJavaScript(登録商標)のアプリケーションである、「Google Analytics(登録商標)」のスクリプトの有害性の程度は、0.09に等しいものであり、順にこのスクリプトが安全であることを意味する。
悪意のあるオブジェクト531の検出用のモデルは、分析されるオブジェクト501から選択されたデータブロックの分析に基づいて、分析されるオブジェクト501の有害性の係数を算出するためのルールの組である。
システムの一つの態様において、悪意のあるオブジェクト531の検出用のモデルは、少なくとも1つの安全なオブジェクトおよび悪意のあるオブジェクトについての機械学習のための方法によって事前に訓練されてある。
システムのさらに別の一態様において、悪意のあるオブジェクト531の検出用のモデルの機械学習のための方法は、少なくとも決定木に基づいた勾配ブースティング、決定木、K近傍法、およびサポートベクトルマシン(SVM)法である。
システムのさらに別の態様において、悪意のあるオブジェクト531の検出用のモデルを訓練する方法は、データブロックの分析に基づいて、構築された特徴の組の数における変化に依存するオブジェクトの有害性の程度における単調な変化を保証する。
たとえば、10個のデータブロックが悪意のあるファイル「video.avi.exe」から選択された。選択されたデータブロックの各々の悪意のあるオブジェクト531の検出用のモデルを使用する連続的な分析の後に、上記の有害性の係数「0.01, 0.02, 0.09, 0.17, 0.19, 0.21, 0.38, 0.53, 0.87, 0.88」が算出された。
すなわち、有害性の係数は、係数がその後に算出される度に増加しただけである。
さらに別の例において、15個のデータブロックが安全なファイル「explorer.exe」から選択された。選択されたデータブロックの各々の悪意のあるファイル532の検出用のモデルを使用する連続的な分析の後に、有害性の係数「0.01, 0.02, 0.02, 0.02, 0.03, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.09, 0.10. 0.10. 0.10.」が算出された。
すなわち、有害性の係数は、各々のその後の算出と共に減少しなかった。かわりに、選択されたデータブロックが、潜在的な悪意のある活動に関係付けられたデータを含まなかった場合には、有害性の係数は、おおよそ以前の算出におけるものと同じレベルのままであった。選択されたデータブロックが、潜在的な悪意のある活動に関係付けられたデータを含むものであった場合には、有害性の係数が増加した。
分類モジュール540は、
・得られた有害性の程度が所定の閾値を超えない場合に、分析されるオブジェクト501を安全なものとして認識するが、ここで上記の有害性の程度は、分析されるオブジェクト501に含まれたすべてのデータブロックに基づいて算出されたものであるように、
・得られた有害性の程度が所定の閾値を超える場合に、分析されるオブジェクト501を悪意のあるものとして認識する
ように設計される。
選択されたデータブロックの分析に基づいて得られた有害性の程度が所定の閾値を上回るとすぐに分析されているオブジェクト501が悪意のあるものであると認識されることになるので、分析されるオブジェクト501を悪意のあるものとして認識するためには、限定された数のデータブロックを分析することで十分である。一方、それが悪意のあるものであると認識されなかった場合には、オブジェクトは安全なものであると考えられる。すべてのデータブロックの分析に基づいて得られた有害性の程度が所定の閾値を上回るものではない場合にのみ、分析されるオブジェクト501を安全なものとして認識することが可能であるため、安全なものとしての分析されるオブジェクト501の保証された認識のためには、分析されるオブジェクト501に含まれたすべてのデータブロックを分析することが要求される。さもなければ、限定された数の選択されたデータブロックのみが分析される場合に、次に選択されたデータブロックの分析が、得られた有害性の程度が所定の閾値を上回ることに帰着しないことになるという保証はない。
たとえば、実行可能なファイル「explorer.exe」の分析の際には、データブロック選択モジュール510は、「explorer.exe」に含まれたデータブロックを連続して選択し、データブロックの各選択の後に、有害性モジュール530は、現在の有害性の程度の算出を実行し、毎回算出された有害性の程度は0.76(所定の閾値)を上回るものではない。全てのデータブロックが選択されてしまった(1542回の繰り返し)後に、有害性の程度がまだ0.76を上回るものではなかったことで、分類モジュール540は、実行可能なファイル「explorer.exe」を安全なものであると認識することになる。
さらに別の例において、提案したシステムが実行可能なファイル「video.avi.exe」を分析する際に、データブロック選択モジュール510は、「explorer.exe」に含まれたデータブロックを連続して選択し、データブロック各選択の後に有害性モジュール530は、現在の有害性の程度の算出を実行し、この計算の間に有害性の程度は、(各選択されたデータブロックについて)一定に増加する:0.01,… 0.17,… 0.34,… 0.69,… 0.81が、35回目の繰り返しにおいて、それは、0.76(所定の閾値)を上回り始める。算出された有害性の程度が所定の閾値を上回るとすぐに、分類モジュール540は、実行可能なファイル「video.avi.exe」を悪意のあるものであると認識することになる。
システムの一つの態様において、分類モジュール540は、算出された有害性の程度(以後、w)が存在する数値範囲に依存して、分析されるオブジェクトを、少なくとも
Figure 0006715292
であると認識することになる。
すなわち、分析されるオブジェクト501は、ユーザの計算装置に対して害を引き起すものではないことが確実にされる。
Figure 0006715292
すなわち、大きな確率の測度を備えた分析されるオブジェクト501は、ユーザの計算装置に対して害を引き起こさないことになる。
Figure 0006715292
すなわち、大きな確率の測度を備えた分析されるオブジェクト501は、ユーザの計算装置に対して害を引き起こすことになる。
Figure 0006715292
すなわち、分析されるオブジェクト501は、ユーザの計算装置に対して害を引き起こすことが確実にされるが、
ここで、
wは、算出された有害性の程度であり、
limitcleanは、それより上では分析されるオブジェクトが安全なものとして分類されることができない所定の閾値であり、
limitunknownは、それより上では分析されるオブジェクトが未知のものとして分類されることができない所定の閾値であり、
limitsuspiciousは、それより上では分析されるオブジェクトが疑わしいものとして分類されることができない所定の閾値である。
システムの上述した態様において、有害性の係数の1つの所定の閾値によって区別することができるオブジェクトの2つのクラスター(安全もの、および、悪意のあるもの)に替えて、今3つの所定の閾値によって区別することができる4個のクラスター(安全なもの、未知のもの、疑わしいもの、および、悪意のあるもの)が記述される。所定の閾値limitsuspiciousは、上述した2つのクラスターのシステムの所定の閾値に相当し、その閾値を超えると、分析されるオブジェクトは、悪意のあるものとして認識されることになる。
たとえば、計算装置の遠隔制御のために設計されたかつ0.56の有害性の係数を有するソフトウェア「Remote Administrator」の成分である実行可能なファイル「radmin.exe」は、それが、それらの計算装置のユーザから隠された計算装置の制御を可能にすることで、悪意のある活動を実行するためにしばしば使用されるものであるので、疑わしいものであると考えられることになる(
Figure 0006715292
)。有害性の係数は、分析されるオブジェクト501から選択されたデータに基づいて決定されるが、そのように選択されたデータは、分析されるオブジェクト501の機能性を実行することで、そのように算出された有害性の係数は、選択されたデータによって提供されたような分析されるオブジェクト501の機能性に関係付けられる。
システムのさらに別の態様においては、少なくとも1つのデータブロックの検索および抽出、および、有害性の程度の算出は、少なくとも
・分析されるオブジェクト501が悪意のあるものであると認識されるような、
・すべてのデータブロックが発見されると共に抽出される
ような時間まで次々に連続してなされる。
たとえば、データブロック選択モジュール510は、分析されるオブジェクト501から、数個のデータブロックを選択するが、それに基づいて、有害性モジュール530は、有害性の程度を算出し、分類モジュール540は、分析されるオブジェクト501を安全なものまたは悪意のあるものとして認識することになる。
さらに別の例において、データブロック選択モジュール510は、分析されるオブジェクト501から、一つのデータブロックのみを選択するが、それに基づいて、有害性モジュール530は、有害性の程度を算出する一方で、分析されるオブジェクト501を悪意のあるものとして認識することが可能なものではない(算出された有害性の程度が所定の閾値を上回るものではない)場合には、分類モジュール540は、分析されるオブジェクト501を悪意のあるものとして認識することになる。上述したサイクルは、もう一度行われるが、分析されるオブジェクト501が悪意のあるものとして認識されるまでか、または、すべてのデータブロックが選択されてしまい、その後に、分析されるオブジェクト501が、安全なものであると認識されることになるまで、さらに別のデータブロックが選択されるなどである。
再訓練モジュール550は、分析されるオブジェクト501が悪意のあるものであると認識された後に、分析モデル511を再訓練するように設計されることで、その分析モデル511の再訓練に先立って必要とされたものよりも少数の分析されるオブジェクト501から抽出されたデータブロックに基づいて、悪意のあるものとしての分析されるオブジェクト501の認識が成し遂げられる。
たとえば、分類の間に、悪意のあるファイルの暗号化プログラムである実行可能なファイル「video.avi.exe」は、分類モジュール540によって、そのファイルからのデータブロックの選択の繰り返しを512回実行した後に悪意のあるものであると認識され、最終的な算出された有害性の係数は0.87に等しいものであった(0.78の所定の閾値は「」で、その後では分析されるオブジェクトが悪意のあるものとして認識されることになる)。第2の分類の間における分析モデル511の再訓練の後、ファイル「video.avi.exe」は、そのファイルからのデータブロックの選択の繰り返しを260回実行した後に悪意のあるものであると認識されたが、最終的な算出された有害性の係数は0.79に等しいものである。この結果は、再訓練された分析モデル511は、それらのデータブロックをより頻繁に選択したが、それに基づいて、算出された有害性の係数は、より高いものであったという事実のおかげで成し遂げられた。
ある一定の例において、N回目の繰り返しを実行した後における算出された有害性の係数が、(たとえば、0.75と比較した0.60のような)所定の閾値よりも顕著に小さいものであるかもしれない一方で、N+1回目の繰り返しを実行した後にそれが、顕著により大きいものである(たとえば、0.75と比較した0.85)という事実は、有害性の係数の成長関数は滑らかなものではなく、有限の数の繰り返しのために、むしろ離散的であり、したがって大きなステップで変化することがあり、そのステップ大きさが、分析モデル511が良好に訓練されるほどより大きいものであることになるということで説明される。
システムのさらに別の態様では、分類モジュール540による分析されるオブジェクト501の分類の結果の後に、分析モデル511の再訓練がなされる。再訓練は、オブジェクト501の分類の結果に関わらず、分析されるオブジェクト501からのデータブロックの選択の各繰り返しの間に、再訓練された分析モデル511を使用するそのオブジェクト501の繰り返された分析において、そのデータブロックに基づく算出された有害性の係数が、訓練されていない分析モデル511を使用するときよりも低いものではないように実行されることがある。
たとえば、分類の間に、悪意のあるファイルの暗号化プログラムである実行可能なファイル「explorer.exe」は、分類モジュール540によってそのファイルからのデータブロック(すなわち、分析されるファイルからの全てのデータブロックのすべて)の選択の10240回の繰り返しを実行した後に安全なものであると認識され、最終的な算出された有害性の係数は、「0.09」に等しいものであった。繰り返しの分類における分析モデル511の再訓練の後、ファイル「explorer.exe」は安全なものであると認識された一方で、2050回のみの繰り返しの後で0.09の有害性の係数が算出されたが、その後はもはや変化しなかった。この結果は、再訓練された分析モデル511は、それらのデータブロックをより頻繁に選択したが、それに基づいて算出された有害性の係数はより高いものであったという事実のおかげで成し遂げられた。
分析モデル511が、分析されるオブジェクト501の分析の結果に基づいて絶えず再訓練されるので、悪意のあるオブジェクト501の各々のその後の分析の間に平均して、事前に検査された悪意のあるオブジェクト501に対するものよりも少ない数のデータブロックが選択および分析されることになる(より少ない繰り返しが実行されることになる)。なぜならば、悪意のあるオブジェクトに対して算出された有害性の係数は、所定の閾値を上回ることになり、分析されるオブジェクト501は、さらにいっそう早く悪意のあるものであると認識されることになるからである。しかしながら、分析されるオブジェクト501が悪意のあるものではない場合、すべての利用可能なデータブロックが選択されることになる。しかしながら、この場合においてさえも、すべての選択されたデータブロックの分析の後に、分析モデル511は、安全なオブジェクト501の分析の間においてさえも、算出された有害性の係数が、最小になる傾向があるその有害性の係数の増大率で、(それがその係数を上回ることがないことになるとはいえ)できるだけ速く所定の閾値を上回ろうとすることになるように、再訓練されることになるが、これは、既に悪意のあるオブジェクト501を分析するとき、選択されたデータブロックの個数が、最小になる傾向があることになるということを意味する。
安全なファイルについての分析モデル511の再訓練は、このように、悪意のあるファイルの分析においてもまたその有効性を上昇させることを可能とする。
分析されるオブジェクト501の分類を実行した後、オブジェクト501が悪意のあるものであると認識される場合には、上記のオブジェクトが検出されたコ計算装置を修正するための手順が、外部の手段によって実行されることがある。
図6は、本開示の一つの態様に係るオブジェクトの分類の方法600のフローチャートである。簡便に、方法600は、ステップ610において、データブロックが選択されること、ステップ620において、特徴の組が形成されること、ステップ630において、畳み込みが算出されること、ステップ640において、有害性の程度が算出されること、ステップ650(A)において、オブジェクトが安全なものであると認識されること、ステップ650(B)において、オブジェクトが悪意のあるものであると認識されること、および、ステップ660において、分析モデルが再訓練されること、を含む。
より具体的には、ステップ610において、分析されるオブジェクト501に含まれる少なくとも1つのデータブロックが分析モデル511の助けにより選択されるが、分析モデル511は、データブロックを検索するためのルールの組であり、ルールは、発見された各々のデータブロックが、分析されるオブジェクト501を悪意のあるものと分類する可能性を増加させるように構築される。
ステップ620において、ステップ610で選択された各々のデータブロックについて、そのデータブロックを記述する特徴の組が形成される。
ステップ630において、ステップ620で構築されたすべての特徴の組の畳み込みが計算される。
ステップ640において、分析されるオブジェクト501の有害性の程度は、悪意のあるオブジェクト531の検出用のモデルの助けにより、ステップ630で計算された畳み込み量の分析に基づいて算出される。
ステップ650(A)において、ステップ640で算出されたような有害性の程度が所定の閾値を上回らず、かつその有害性の程度が分析されるオブジェクト501に含まれたすべてのデータブロックに基づいて算出された場合には、分析されるオブジェクト501は安全なものであると認識される。
ステップ650(B)において、ステップ640で算出されたような有害性の程度が所定の閾値を上回る場合には、分析されるオブジェクト501は悪意のあるものであると認識される。
ステップ660において、分析されるオブジェクト501が悪意のあるものであると認識された後に、分析モデル511は、分析モデル511の再訓練に先立って必要とされたものよりも少数の、分析されるオブジェクト501から抽出されたデータブロックに基づいて、悪意のあるものとの分析されるオブジェクト501の認識が成し遂げられるように、再訓練される。
図7は、開示されたシステムおよび方法を例の態様に従って実施することができる(サーバであることができる)汎用のコンピュータシステムの一例のブロック図を示す。特に、図7は、システム100および/またはシステム100の構成要素の例示的な態様を示すことができる。示されたように、汎用の計算装置は、処理装置21、システム・メモリ22、および、処理装置21にシステム・メモリを含む様々なシステムの構成要素を結合させるシステム・バス23を含む、コンピュータ20などの形態で提供される。例えば、処理装置21が、CPU114および/またはCPU114に相当し得ると共に、システム・メモリ22および/またはファイル・システム36が、データ・ファイルを記憶するための電子メモリまたはメモリ148に相当し得ることは認識されるべきことである。
さらに、システム・バス23は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいずれかを使用する局所的なバスを含む、数種類のバス構造のいずれであってよい。システム・メモリは、リード・オンリー・メモリ(ROM)24およびランダム・アクセス・メモリ(RAM)25を含む。スタート・アップの間におけるもののような、コンピュータ104内の要素間の情報の転送を助ける基本的なルーチンを含む、ベーシック・インプット/アウトプット・システム(BIOS)26は、ROM24に記憶される。
コンピュータ20は、不図示のハードディスクからの読み込みおよび当該ハードディスクへの書き込みをするためのハード・ディスク・ドライブ27、取り外し可能な磁気ディスク29からの読み込みおよび当該磁気ディスク29への書き込みをするための磁気ディスク・ドライブ28、および、CD−ROM、DVD−ROMまたは他の光媒体のような取り外し可能な光学ディスク31からの読み込みおよび当該光学ディスク31への書き込みをするための光学ディスク・ドライブ30をさらに含むことがある。ハード・ディスク・ドライブ27、磁気ディスク・ドライブ28、および光学ディスク・ドライブ30は、それぞれハード・ディスク・ドライブ・インターフェース32、磁気ディスク・ドライブ・インターフェース33、および光学ディスク・ドライブ・インターフェース34によってシステム・バス23に接続される。それらドライブおよびそれらの関連付けられたコンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な命令、データ構造、プログラム・モジュール、および、コンピュータ20のための他のデータの不揮発的な記憶を提供する。
ここに記載された例示的な環境が、ハードディスク、取り外し可能な磁気ディスク29、および取り外し可能な光学ディスク31を用いるとはいえ、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)などのような、コンピュータによってアクセス可能であるデータを記憶することができる、他の種類のコンピュータ読み取り可能な媒体が、また例示的な動作環境で使用されることがあることは、当業者によって認識されるべきことである。
オペレーティングシステム35を含む、多数のプログラム・モジュールは、ハードディスク、磁気ディスク29、光学ディスク31、ROM24、またはRAM25に記憶されることがある。コンピュータ20は、オペレーティングシステム35と関連付けられたまたはその中に含まれたファイル・システム36、1個以上のアプリケーション・プログラム37、他のプログラム・モジュール38、およびプログラム・データ39を含む。ユーザは、キーボード40およびポインティング・デバイス42のような入力装置を介してコンピュータ20へコマンドおよび情報を入力する。他の入力装置(不図示)は、マイクロフォン、ジョイスティック、ゲームパッド、パラボラ・アンテナ、スキャナなどを含むことがある。
これらのおよび他の入力装置は、しばしば、システム・バスに結合させられるシリアル・ポート・インターフェース46を介して処理装置21に接続されるが、パラレル・ポート、ゲーム・ポート、ユニバーサル・シリアル・バス(USB)のような他のインターフェースによって接続されることがある。モニタ47または他の種類の表示装置は、また、ビデオ・アダプタ48のようなインターフェースを介してシステム・バス23に接続される。モニタ47に加えて、パーソナル・コンピュータは、典型的には、スピーカおよびプリンタのような他の周辺出力装置(不図示)を含む。
コンピュータ20は、1個以上のリモート・コンピュータ49への論理的な結合を使用することで、ネットワークで接続された環境で動作することがある。リモート・コンピュータ(またはコンピュータ)49は、別のコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワーク・ノードであることがあり、典型的には、コンピュータ20に関連して上述した要素の多くまたはすべてを含む。論理的な接続は、ネットワーク・インターフェース53を含み、たとえば、ローカル・エリア・ネットワーク(すなわち、LAN)51、および/または、ワイド・エリア・ネットワーク(不図示)に接続される。このようなネットワークの環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてありふれたものである。リモート・コンピュータ49が、上述したように、ストレージノード102〜107のような1個以上のストレージノードに対応することができることは、認識されるべきことである。
LANネットワークの環境において使用されたとき、コンピュータ20は、ネットワーク・インターフェースまたはアダプタ53を介してローカルネットワーク51に接続される。WANネットワークの環境において使用されたとき、コンピュータ20は、典型的には、モデム54またはインターネットのような広域ネットワーク上の通信を確立するための他の機構を含む。
内部のものまたは外部のものであることがある、モデム54は、シリアル・ポート・インターフェース46を介してシステム・バス23に接続される。ネットワーク環境において、コンピュータ20またはその一部に関連して描かれたプログラム・モジュールは、リモートメモリ記憶装置に記憶されることがある。示されたネットワーク接続が例示的なものであり、コンピュータ間の通信リンクを確立する他の機構が使用されることがあることは、認識されることになる。
様々な態様において、ここに記載したシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらのいずれの組み合わせによっても実施されることがある。ソフトウェアとして実施される場合には、方法は、1個以上の命令またはコードとして非一時的なコンピュータ読み取り可能な媒体に記憶されることがある。コンピュータ読み取り可能な媒体は、データストレージを含む。例として、また、限定ではないが、このようなコンピュータ読み取り可能な媒体は、RAM、ROM,EEPROM、CD−ROM、フラッシュ・メモリ、または他の種類の電気的、磁気的、または光学的な記憶媒体、または命令またはデータ構造の形態で所望のプログラム・コードを保持するまたは記憶するために使用されることができる、および、汎用のコンピュータのプロセッサによってアクセスすることができる、いずれの他の媒体をも含むことができる。
明確性の利益のために、態様のありふれた特徴のすべてが開示されているわけではない。本開示のいずれの現実の実施の開発においても、開発者の具体的な目標を達成するために多数の実施に特有の決定がなされなければならいこと、および、これらの具体的な目標が、異なる実施および異なる開発者について変動することになることは、認識されることになる。そのような開発の取り組みが複雑なかつ時間がかかるものであるかもしれないが、にもかかわらずこの開示の利益を有する当業者にとっては日常的な技術の仕事であると思われることは、認識されることになる。
さらに、ここで使用された言葉遣いまたは専門用語が、説明の目的のためのものであり限定のためのものではないので、本明細書の言葉遣いまたは専門用語が、関連技術者の知識との組み合わせにおいて、ここに提示した教示およびガイダンスに照らして当業者によって解釈されるべきものであることは、理解されることである。その上、明細書または請求項における何れの用語も、そのようなものとして明示的に述べたものではない限り、一般的でないまたは特殊な意味に帰せられることが意図されたものではない。
ここに開示した様々な態様は、例示によってここに言及された既に知られたモジュールに対する現在のおよび将来に知られる均等物を包含する。その上、態様および応用を示して説明してきたが、上述したものよりもはるかに多くの変更がここに開示された発明の概念を逸脱することなく可能性のあるものであることは、この開示の利益を有する当業者には、明らかなことであると思われる。

Claims (21)

  1. プロセッサによって、マルウェア分析のためのオブジェクトにおける1個以上のデータブロックを選択することと、
    前記プロセッサによって、前記データブロックの特徴の組を決定するために、選択された前記1個以上のデータブロックに静的分析を実行することと、
    前記プロセッサによって、前記特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいて前記オブジェクトの有害性の程度を判定することであって、前記モデルが、少なくとも1つの安全なオブジェクトおよび1つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されてある、前記判定することと、
    前記プロセッサによって、前記有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識することであって、前記静的分析が、前記オブジェクトにおける選択された前記1個以上のデータブロックについて実行される、前記認識することと、
    前記プロセッサによって、前記1個以上のデータブロックの前記有害性の程度が前記有害性の所定の閾値を超える場合、前記オブジェクトが悪意のあるものであると認識すること
    前記オブジェクトが悪意のあるものとして認識される場合、安全なおよび悪意のあるオブジェクトの検出のためのモデルを再訓練することと、
    を含む
    安全なおよび悪意のあるデータオブジェクトを検出するための方法。
  2. 分析される前記オブジェクトのパラメータおよび事前に発見されたデータブロックの特徴を含む基準に基づいて、前記オブジェクトから選択される前記1個以上のデータブロックを検索すること
    をさらに含む、
    請求項1の方法。
  3. 前記1個以上のデータブロックを選択することは、
    前記1個以上のデータブロックの前記パラメータを算出することを含み、
    前記パラメータは、
    データブロックのサイズ、前記オブジェクトにおける前記データブロックの位置、前記オブジェクトの種類、および前記オブジェクト内の相互に関係のあるデータの一つ以上を含む、
    請求項の方法。
  4. 前記1個以上のデータブロックを選択することは、分析モデルに基づいて実行され、
    前記分析モデルは、
    前記オブジェクトを悪意のあるものとして分類する確率を増加させるための検索についてのルールの組である、
    請求項の方法。
  5. 前記ルールの組は、
    事前に発見されたデータブロックに対して決定された特徴に依存する、
    請求項の方法。
  6. 前記特徴の組は、
    選択に使用されたデータブロックのパラメータ、データブロックに含まれたデータの種類、データブロックと事前に選択されたデータブロックとの間の論理的または機能的関係性、および有害性の係数の一つ以上を含む
    請求項1の方法。
  7. 前記有害性の係数は、
    前記オブジェクトによって実行された各々のコマンドに関連した重みの総和として算出される
    請求項の方法。
  8. ルールに基づいて分析されるオブジェクトにおける1個以上のデータブロックを選択し、
    前記1個以上のデータブロックの特徴の組を決定するために前記1個以上のデータブロックに静的分析を実行し、
    前記特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいて前記オブジェクトの有害性の程度を判定し、前記モデルは、少なくとも1つの安全なオブジェクトおよび1つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されており、
    前記有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識し、前記静的分析は、前記オブジェクトのすべてのデータブロックについて実行され、
    前記1個以上のデータブロックの前記有害性の程度が前記有害性の所定の閾値を超える場合、前記オブジェクトが悪意のあるものであると認識し、
    前記オブジェクトが悪意のあるものとして認識される場合、前記悪意のあるオブジェクトの検出のためのモデルを再訓練する
    ように構成されたハードウェアプロセッサを備える、
    悪意のあるファイルを検出するためのシステム。
  9. 前記ハードウェアプロセッサは、
    分析される前記オブジェクトのパラメータおよび事前に発見されたデータブロックの特徴を含む基準に基づいて、前記オブジェクトから選択される前記1個以上のデータブロックを検索するようにさらに構成される、
    請求項のシステム。
  10. 前記ハードウェアプロセッサは、
    前記1個以上のデータブロックの前記パラメータを算出することによって、前記1個以上のデータブロックを選択するようにさらに構成され、
    前記パラメータは、
    データブロックのサイズ、前記オブジェクトにおける前記データブロックの位置、前記オブジェクトの種類、および前記オブジェクトにおける相互に関係のあるデータの一つ以上を含む、
    請求項のシステム。
  11. 前記1個以上のデータブロックを選択することは、
    分析モデルに基づいて実行され、
    前記分析モデルは、前記オブジェクトを悪意のあるものとして分類する確率を増加させるための検索についてのルールの組である、
    請求項のシステム。
  12. 前記ルールの組は、
    事前に発見されたデータブロックに対して決定された特徴に依存する、
    請求項11のシステム。
  13. 前記特徴の組は、
    選択に使用されたデータブロックのパラメータ、データブロックに含まれたデータの種類、データブロックと事前に選択されたデータブロックとの間の論理的または機能的関係性、および有害性の係数の一つ以上を含む、
    請求項のシステム。
  14. 前記有害性の係数は、
    前記オブジェクトによって実行された各々のコマンドに関連した重みの総和として算出される
    請求項13のシステム。
  15. ルールに基づいて分析されるオブジェクトにおける1個以上のデータブロックを選択することと、
    前記1個以上のデータブロックの特徴の組を決定するために前記1個以上のデータブロックに静的分析を実行することと、
    前記特徴の組および悪意のあるオブジェクトの検出のためのモデルに基づいて前記オブジェクトの有害性の程度を判定することであって、前記モデルが、少なくとも1つの安全なオブジェクトおよび1つの悪意のあるオブジェクトについての機械学習のための方法によって訓練されてある、前記判定することと、
    前記有害性の程度が有害性の所定の閾値を超えない場合、前記オブジェクトが安全なものであると認識することであって、前記静的分析が、前記オブジェクトのすべてのデータブロックについて実行される、前記認識することと、
    前記1個以上のデータブロックの前記有害性の程度が前記有害性の所定の閾値を超える場合、前記オブジェクトが悪意のあるものであると認識することと、
    前記オブジェクトが悪意のあるものとして認識される場合、悪意のあるオブジェクトの検出のためのモデルを再訓練すること
    を含む、
    悪意のあるファイルを検出するための方法を、実行されたときに、実行する命令を記憶する非一時的なコンピュータで読み取り可能な媒体。
  16. 分析されている前記オブジェクトのパラメータおよび事前に発見されたデータブロックの特徴を含む基準に基づいて、前記オブジェクトから選択される前記1個以上のデータブロックを検索することをさらに含む
    請求項15の媒体。
  17. 前記1個以上のデータブロックを選択することは、
    前記1個以上のデータブロックの前記パラメータを算出することを含み、
    前記パラメータは、
    データブロックのサイズ、前記オブジェクトにおけるデータブロックの位置、前記オブジェクトの種類、および前記オブジェクトにおける相互に関係のあるデータの一つ以上を含む
    請求項16の媒体。
  18. 前記1個以上のデータブロックを選択することは、
    分析モデルに基づいて実行され、
    前記分析モデルは、
    前記オブジェクトを悪意のあるものとして分類する確率を増加させるための検索についてのルールの組である、
    請求項16の媒体。
  19. 前記ルールの組は、
    事前に発見されたデータブロックに対して決定された特徴に依存する
    請求項18の媒体。
  20. 前記特徴の組は、
    選択に使用されたデータブロックのパラメータ、データブロックに含まれたデータの種類、データブロックと事前に選択されたデータブロックとの間の論理的または機能的関係性、および有害性の係数の一つ以上を含む
    請求項15の媒体。
  21. 前記有害性の係数は、
    前記オブジェクトによって実行された各々のコマンドに関連した重みの総和として算出される、
    請求項20の媒体。
JP2018131523A 2017-10-18 2018-07-11 機械学習を用いる悪意のあるファイルを検出するシステムおよび方法 Active JP6715292B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
RU2017136618 2017-10-18
RU2017136618A RU2679785C1 (ru) 2017-10-18 2017-10-18 Система и способ классификации объектов
US201762574254P 2017-10-19 2017-10-19
US62/574,254 2017-10-19
US16/008,365 US10929534B2 (en) 2017-10-18 2018-06-14 System and method detecting malicious files using machine learning
US16/008,365 2018-06-14

Publications (2)

Publication Number Publication Date
JP2019079493A JP2019079493A (ja) 2019-05-23
JP6715292B2 true JP6715292B2 (ja) 2020-07-01

Family

ID=63108410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018131523A Active JP6715292B2 (ja) 2017-10-18 2018-07-11 機械学習を用いる悪意のあるファイルを検出するシステムおよび方法

Country Status (4)

Country Link
US (1) US10929534B2 (ja)
EP (1) EP3474173B1 (ja)
JP (1) JP6715292B2 (ja)
CN (1) CN109684835B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423143B1 (en) 2017-12-21 2022-08-23 Exabeam, Inc. Anomaly detection based on processes executed within a network
US11431741B1 (en) * 2018-05-16 2022-08-30 Exabeam, Inc. Detecting unmanaged and unauthorized assets in an information technology network with a recurrent neural network that identifies anomalously-named assets
KR102046748B1 (ko) * 2019-04-25 2019-11-19 숭실대학교산학협력단 트리 부스팅 기반 애플리케이션의 위험도 평가 방법, 이를 수행하기 위한 기록 매체 및 장치
US11625366B1 (en) 2019-06-04 2023-04-11 Exabeam, Inc. System, method, and computer program for automatic parser creation
RU2747464C2 (ru) 2019-07-17 2021-05-05 Акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных файлов на основании фрагментов файлов
EP3767510A1 (en) * 2019-07-17 2021-01-20 AO Kaspersky Lab System and method of detecting malicious files based on file fragments
CN110460611B (zh) * 2019-08-16 2022-01-11 国家计算机网络与信息安全管理中心 基于机器学习的全流量攻击检测技术
CN112532562B (zh) * 2019-09-17 2022-10-11 武汉思普崚技术有限公司 一种对抗性网络的恶意数据流检测方法及系统
CN110659492B (zh) * 2019-09-24 2021-10-15 北京信息科技大学 一种基于多智能体强化学习的恶意软件检测方法及装置
US11956253B1 (en) 2020-06-15 2024-04-09 Exabeam, Inc. Ranking cybersecurity alerts from multiple sources using machine learning
CN111723371B (zh) * 2020-06-22 2024-02-20 上海斗象信息科技有限公司 构建恶意文件的检测模型以及检测恶意文件的方法
US12063226B1 (en) 2020-09-29 2024-08-13 Exabeam, Inc. Graph-based multi-staged attack detection in the context of an attack framework
US12033048B1 (en) * 2020-11-30 2024-07-09 Amazon Technologies, Inc. Anomaly detection using feedback
CN112257816B (zh) * 2020-12-07 2021-09-21 北京瑞莱智慧科技有限公司 模型的后门检测方法、装置、介质和计算设备
TW202319944A (zh) * 2021-11-02 2023-05-16 財團法人資訊工業策進會 用於資通安全防護機制的驗證方法及驗證系統
CN114117413B (zh) * 2021-12-06 2024-09-27 安天科技集团股份有限公司 恶意样本的检测方法、装置、电子设备及存储介质
US11941121B2 (en) * 2021-12-28 2024-03-26 Uab 360 It Systems and methods for detecting malware using static and dynamic malware models
US20240314161A1 (en) * 2023-03-15 2024-09-19 Bank Of America Corporation Detecting Malicious Email Campaigns with Unique but Similarly-Spelled Attachments

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8201244B2 (en) 2006-09-19 2012-06-12 Microsoft Corporation Automated malware signature generation
US8181251B2 (en) * 2008-12-18 2012-05-15 Symantec Corporation Methods and systems for detecting malware
RU2427890C2 (ru) 2009-10-01 2011-08-27 ЗАО "Лаборатория Касперского" Система и способ сравнения файлов на основе шаблонов функциональности
US9349006B2 (en) * 2010-11-29 2016-05-24 Beijing Qihoo Technology Company Limited Method and device for program identification based on machine learning
RU2454714C1 (ru) 2010-12-30 2012-06-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов
US20120260304A1 (en) 2011-02-15 2012-10-11 Webroot Inc. Methods and apparatus for agent-based malware management
US9628507B2 (en) * 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9652362B2 (en) 2013-12-06 2017-05-16 Qualcomm Incorporated Methods and systems of using application-specific and application-type-specific models for the efficient classification of mobile device behaviors
US9262635B2 (en) * 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
EP3139297B1 (en) * 2014-06-11 2019-04-03 Nippon Telegraph and Telephone Corporation Malware determination device, malware determination system, malware determination method, and program
US9367685B2 (en) * 2014-09-30 2016-06-14 Juniper Networks, Inc. Dynamically optimizing performance of a security appliance
US9436791B1 (en) 2015-03-24 2016-09-06 International Business Machines Corporation Optimizing placement of circuit resources using a globally accessible placement memory
JP2016206950A (ja) 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム
US10320813B1 (en) * 2015-04-30 2019-06-11 Amazon Technologies, Inc. Threat detection and mitigation in a virtualized computing environment
US20170024660A1 (en) 2015-07-23 2017-01-26 Qualcomm Incorporated Methods and Systems for Using an Expectation-Maximization (EM) Machine Learning Framework for Behavior-Based Analysis of Device Behaviors
US9889859B2 (en) 2015-12-21 2018-02-13 Intel Corporation Dynamic sensor range in advanced driver assistance systems
US10482248B2 (en) * 2016-11-09 2019-11-19 Cylance Inc. Shellcode detection
US10581888B1 (en) 2017-07-31 2020-03-03 EMC IP Holding Company LLC Classifying software scripts utilizing deep learning networks

Also Published As

Publication number Publication date
EP3474173A1 (en) 2019-04-24
US20190114419A1 (en) 2019-04-18
JP2019079493A (ja) 2019-05-23
EP3474173B1 (en) 2021-03-17
CN109684835A (zh) 2019-04-26
US10929534B2 (en) 2021-02-23
CN109684835B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
JP6715292B2 (ja) 機械学習を用いる悪意のあるファイルを検出するシステムおよび方法
US10922410B2 (en) System and method for generating a convolution function for training a malware detection model
JP6636096B2 (ja) マルウェア検出モデルの機械学習のシステムおよび方法
JP7405596B2 (ja) コンピュータシステムのオブジェクト分類のためのシステムおよび方法
US11403396B2 (en) System and method of allocating computer resources for detection of malicious files
JP6731988B2 (ja) 訓練された機械学習モデルを使用することで悪意のあるファイルを検出するシステムおよび方法
RU2739865C2 (ru) Система и способ обнаружения вредоносного файла
JP6731981B2 (ja) 機械学習モデルに基づいた悪意のあるファイルの検出のための計算資源を管理するシステムおよび方法
RU2654151C1 (ru) Система и способ обнаружения вредоносных файлов с использованием обученной модели обнаружения вредоносных файлов
RU2673708C1 (ru) Система и способ машинного обучения модели обнаружения вредоносных файлов

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200608

R150 Certificate of patent or registration of utility model

Ref document number: 6715292

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