JP2020009415A - 悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムおよび方法 - Google Patents

悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムおよび方法 Download PDF

Info

Publication number
JP2020009415A
JP2020009415A JP2019076577A JP2019076577A JP2020009415A JP 2020009415 A JP2020009415 A JP 2020009415A JP 2019076577 A JP2019076577 A JP 2019076577A JP 2019076577 A JP2019076577 A JP 2019076577A JP 2020009415 A JP2020009415 A JP 2020009415A
Authority
JP
Japan
Prior art keywords
file
malicious
learning model
files
neural network
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.)
Pending
Application number
JP2019076577A
Other languages
English (en)
Inventor
ヴィー.プロクージン セルゲイ
V Prokudin Sergey
ヴィー.プロクージン セルゲイ
エム.ロマネンコ アレクセイ
M Romanenko Alexey
エム.ロマネンコ アレクセイ
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 JP2020009415A publication Critical patent/JP2020009415A/ja
Pending legal-status Critical Current

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/563Static detection by source code analysis
    • 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
    • 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/567Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステム及び方法を提供する。【解決手段】方法は、悪意のあるファイルを選択するステップと、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択するステップと、ハードウェアプロセッサを使用して、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成するステップと、ハードウェアプロセッサを使用して、学習モデルから悪意のあるファイルの検出規則を生成するステップと、ハードウェアプロセッサを使用して、未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを学習モデルを使用して判断するステップと、検出規則を満たすと判断した場合、ハードウェアプロセッサを使用して、未知のファイルを悪意のあるものとして識別するステップと、を含む。【選択図】図3

Description

本開示は、悪意のあるファイルを識別するための解決策に関し、より詳細には、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを検出するシステムおよび方法に関する。
目下、悪意のあるソフトウェアに感染した電子デバイスのユーザのデータや実際のユーザに危害を加えるように設計された、悪意のあるソフトウェアの量が増加している(コンピュータウイルス、トロイの木馬、インターネットワームなど)。危害は、ユーザファイルの破損または削除、ユーザのコンピューティングデバイスのリソースを利用した暗号通貨の「マイニング」、機密ユーザデータ(通信、画像、ログイン、パスワード、銀行カードデータ)の盗取、および、その他の行為によって発生し得る。さらに、悪意のあるソフトウェアは、作成者がセキュリティアプリケーションに対して新しい攻撃方法や防御方法を使うため、絶えず変化している。使用される様々な手法として、例えば、悪意のあるコードの難読化(すなわち、プログラムの元のテキストまたは実行可能コードの機能は維持されるものの、たとえば、解析、動作アルゴリズムの理解、および、逆コンパイル時の改変などが損なわれること)や、エミュレーション対抗手段の使用(例えば、悪意のあるソフトウェアはエミュレータで実行されていることを認識する機能を備えており、悪意のあるアクティビティを顕在化させない)がある。
さらに、悪意のあるソフトウェアは多くの場合、悪意のあるアクティビティをすぐに、または、一度に全部顕在化させるのではなく、多数の(数百万オーダーの)API呼び出しおよび膨大な(数十億オーダーの反復の)サイクルを行い、起動直後の一定時間にわたって(例えば、“Sleep()”関数を使用して1時間にわたって)その動作を停止する。現在のユーザのコンピューティングデバイスは性能が高く、マルチコアプロセッサを(またはマルチプロセッサシステムも)活用できるため、ユーザはコアのうちの1つの作業負荷に気付かないかまたは注意を払わない可能性がある。さらに、ユーザは一般に、ユーザがデバイスを電源投入し、起動し、または始動させたときから1時間を超えてデバイスを使用する。したがって、悪意のあるソフトウェアは、起動されても、そのアクティビティをすぐに顕在化させる必要がない。
「標的型」攻撃(Advanced Persistent Threat、APT)と呼ばれる攻撃もある。これらの攻撃は、組織および企業全体に対して実行され、そのインフラストラクチャに対してソフトウェアの脆弱性および「ソーシャルエンジニアリング」の方法を悪用することによって実現される。このような攻撃は、個別にはいかなる悪意のあるアクティビティも顕在化させないが、攻撃対象の企業のインフラストラクチャに侵入すると、単純なアプリケーションが連動して実行され、相互に合わさって悪意のある機能を形成し、攻撃対象の企業に危害を加えるいくつかの単純なアプリケーションを使用して行われる例が知られている。
上記の技法に対抗するために、セキュリティアプリケーション(ウイルス対策アプリケーションなど)の作成者は、ファイルを安全に実行するための隔離された環境としての仮想マシンを使用する技法を採用する。このような仮想マシンは「サンドボックス」と呼ばれることが多い。ハイパーバイザは、仮想マシンの実行を制御し、多くの場合、仮想マシンで実行されているアプリケーションによって呼び出される関数をインターセプトする機構を含む。
セキュリティアプリケーションは、悪意のあるソフトウェアを識別するための様々な方法、例えば、シグネチャおよび/または発見的解析などの技術を用いることに留意されたい。解析の過程でファイルの有害性が特定されていない場合、ファイルは、その挙動を解析するためにセキュリティアプリケーションによって上記の仮想マシンに送られ得る(例えば、信頼できるソフトウェア製造者のデジタルシグネチャがない場合)。送られたファイルは次いで仮想マシンで実行され、そこでアプリケーションの動作およびアプリケーション内の様々な関数呼び出しの結果として発生するイベントがインターセプトされ、インターセプトされたイベントおよび動作に関する情報がログに格納され、後でセキュリティアプリケーションまたはコンピュータセキュリティの専門家が、悪意のあるソフトウェアを識別するためにこれを解析する。
さらに、悪意のあるソフトウェアを識別するためにニューラルネットを用いる方法が知られている。しかし、悪意のあるソフトウェアを識別する公知の方法では、悪意のあるものとして識別されたファイルが、1つ(単一のファイルサンプル)だけしか知られておらず、犯罪者らによって変更されることが稀な場合、識別の問題を効果的に解決することができない。こうしたファイルは、多くの場合(例えばAPT攻撃の場合)、信頼できる証明書によって署名されており、一義的に悪意のあるものであるとみなすことができない動作を行う可能性がある。例えば、.DOCファイルを開いて、変更を加えずに閉じ、データパケットまたは電子メールを送信するなどの動作である。こうした動作はセキュリティアプリケーションの観点からは完全に安全である(テキストファイルを開き、メッセージおよび/または電子メールを送信することができるプログラムは多い)が、その実行結果として、上記の開かれたファイルからの機密データの窃盗が可能になる。このような単一のファイルに基づいて、上記の単一のファイルと機能的に類似した他の悪意のあるファイルを識別することが望ましい。さらに、上記のAPT攻撃の場合のファイルの間接的な属性から、攻撃に使用されている他のファイルを識別することが必要である。
本開示は、1つの悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するという問題を解決することを可能にする。
本開示の態様は、悪意のあるファイルを識別する分野に関し、より具体的には、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムおよび方法に関する。
一態様では、一例示的方法は、ハードウェアプロセッサを使用して、有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択するステップと、ハードウェアプロセッサを使用して、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択するステップと、ハードウェアプロセッサを使用して、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成するステップと、ハードウェアプロセッサを使用して、学習モデルから悪意のあるファイルの検出規則を生成するステップと、ハードウェアプロセッサを使用して、未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを学習モデルを使用して判断するステップと、検出規則を満たすと判断した場合、ハードウェアプロセッサを使用して、未知のファイルを悪意のあるものとして識別するステップと、を含む。
別の態様では、本方法は、ニューラルネットワークを訓練する前にニューラルネットワークのパラメータを選択し、修正するステップをさらに含む。
本方法の別の態様では、パラメータは、層の数、層内のニューロンの数、損失関数、ニューロン間の結合係数、および損失関数の係数を含む。
別の態様では、本方法は、損失関数誤差勾配法に基づいて損失関数を選択するステップをさらに含む。
本方法の別の態様では、学習モデルを訓練することは、悪意のあるファイルの第1の複数の属性を含む第1のベクトルを形成することと、悪意のあるファイルを識別した結果に影響を及ぼす第1の複数の属性から複数の重要な属性を決定することと、複数の安全なファイルの第2の複数の属性を含む第2のベクトルを形成することと、悪意のあるファイルの検出に重要ではない属性を選択するために第2のベクトルに基づいてニューラルネットワークの第1の層を訓練することと、を含む。
別の態様では、本方法は、複数の安全なファイルに学習モデルを適用することによって複数の安全なファイルのうちの1つが有害であるかどうかを判断するステップと、複数の安全なファイルのうちの1つが有害であると判断した場合、学習モデルを修正し、ニューラルネットワークを使用して学習モデルを再訓練するステップと、をさらに含む。
別の態様では、本方法は、ニューラルネットワークから生じる結果属性ベクトルに基づいて悪意のあるファイルの検出規則を生成するステップをさらに含む。
本方法の別の態様では、検出規則は少なくとも1つの識別条件を含む。
別の態様では、本方法は、第1のベクトルをニューラルネットワークの外層の行列に変換するステップと、ニューラルネットワークの行列を、ファイルの有害性係数を識別する結果属性ベクトルにマップするステップと、をさらに含む。
本方法の別の態様では、悪意のあるファイルの検出に重要ではない属性は、有害性係数の識別を改善することなく計算リソースを求める属性である。
別の態様では、本方法は、悪性を判断する他の方法に基づいて未知のファイルが悪意のあるものであるかどうかを判断するステップと、学習モデルを使用して未知のファイルが悪意のあるものであると判断し、悪性を判断する他の方法を使用して未知のファイルが安全であると判断した場合、学習モデルおよび検出規則における誤警報を識別するステップと、未知のファイルを複数の安全なファイルに追加するステップと、新しく選択された損失関数および複数の安全なファイルに基づいて学習モデルのニューラルネットワークを再訓練するステップと、をさらに含む。
別の態様では、本方法は、ニューラルネットワークを使用して、ファイルが有害であるとされる確率に関する有害性係数を識別する結果属性ベクトルを決定するステップ、をさらに含む。
本開示の一態様によれば、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムが提供され、本システムは、有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択し、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、学習モデルから悪意のあるファイルの検出規則を生成し、学習モデルを使用して未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを判断し、検出規則を満たすと判断した場合、未知のファイルを悪意のあるものとして識別する、ように構成されたハードウェアプロセッサを含む。
一例示的態様では、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するための命令が格納されている非一時的コンピュータ可読媒体が提供され、当該命令は、有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択し、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、悪意のあるファイルおよび複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、学習モデルから悪意のあるファイルの検出規則を生成し、学習モデルを使用して未知のファイルの属性が悪意のあるファイルの検出規則を満たすかどうかを判断し、検出規則を満たすと判断した場合、ハードウェアプロセッサを使用して、未知のファイルを悪意のあるものとして識別する、各手順を含む。
例示的態様の上記の簡略化された概要は、本開示の基本的な理解を提供するものである。この概要は、企図されるすべての態様の広範な概説ではなく、すべての態様の重要なまたは不可欠の要素を特定するためのものでも、本開示のいずれかまたはすべての態様の範囲を画するためのものでもない。この概要の唯一の目的は、以下の本開示のより詳細な説明の前置きとして、1つまたは複数の態様を簡略化された形で提示することである。このため、本開示の1つまたは複数の態様は、特許請求の範囲に記載され、例示的に示される特徴を含む。
添付の図面は、本明細書に組み入れられて本明細書の一部を構成し、本開示の1つまたは複数の例示的態様を示し、詳細な説明と共に、本開示の原理および実施態様を説明するために使用される。
図1は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムを示すブロック図である。 図2は、関数呼び出しのインターセプトを使用して脆弱性を識別する方法を示すフロー図である。 図3は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別する方法の構造を示すフロー図である。 図4は、本開示の態様を実施することができる汎用コンピュータシステムの一例を示す図である。
例示的態様は、本明細書では、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステム、方法、およびコンピュータプログラム製品の文脈で説明されている。当業者は、以下の説明が例示にすぎず、いかなる点でも限定を意図するものではないことを理解するであろう。他の態様は、本開示の恩恵を受ける当業者には容易に想起されるであろう。次に、添付の図面に示す例示的態様の実施態様を詳しく参照する。図面および以下の説明では、同じ又は同様の要素については可能な範囲で同じ参照符号を使用する。
本開示では、システムの要素は、集積超小型回路(application−specific integrated circuit(特定用途向け集積回路)、ASIC)やプログラマブル・ゲート・アレイ(field−programmable gate array(フィールド・プログラマブル・ゲート・アレイ)、FPGA)などのハードウェアを使用して、または例えば、マイクロプロセッサシステムとソフトウェア命令セットなどのソフトウェアとハードウェアの組み合わせ、ならびにニューロモーフィックチップ(ニューロシナプティックチップ)の形で実現された実際のデバイス、システム、構成要素、構成要素のグループであると理解される。システムのこれらの要素の機能は、ハードウェアのみによって実現することもでき、また、システムの要素の機能の一部がソフトウェアによって実現され、一部がハードウェアによって実現される組み合わせの形でも実現することもできる。いくつかの例示的態様では、要素の一部または全部が(図4に示すような)汎用コンピュータのプロセッサ上で実装され得る。システムの構成要素(各要素)は、単一のコンピューティングデバイス内で実現されてもよく、またはいくつかの相互接続されたコンピューティングデバイス間に分散されてもよい。
図1は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムを示すブロック図である。
1つのファイルに基づいて悪意のあるファイルを識別するためのシステム100は、選択モジュール110と、学習モジュール120と、解析モジュール130とからなる。
一般的な場合には、選択モジュール110はリモートサーバ上でまたはクラウドサービスの形で実行される。選択モジュール110は、悪意のあるファイル群の中から1つの悪意のあるファイル160を選択する。一般的な場合における選択されたファイルは、本システムの作用効果として、他のファイルを悪意のあるものとして認識するために用いられるサンプルである。悪意のあるファイル群は、悪意のあるものとして以前認識されたファイルのグループである。一例示的態様では、上記のファイルは解析モジュール130によって悪意のあるものとして認識される。別の例示的態様では、上記のファイルはコンピュータセキュリティの専門家によって悪意のあるものとして認識される。一般的な場合、その有害性は、先行技術で知られている方法(ヒューリスティック解析やシグネチャ解析など)によって識別することができる。一例示的態様では、選択モジュール110は、悪意のあるファイルを全体として選択するのではなく、その個々の部分を1つまたは複数選択する。例えば、(スクリプトファイルの場合には)実行可能コードまたはテキストコードのみを含むファイルの部分や、リソース(画像、文字列)を含まない部分や、犯罪者によって追加された難読化コードを含まない部分が選択される。
さらに、選択モジュール110は、安全なファイル群の中から少なくとも2つのファイルを選択する。安全なファイルは、(コンピュータセキュリティの専門家によって、または、解析モジュール130によって)悪意のあるものとして認識されていないファイルである。一例示的態様では、ファイル群全体が選択され得る。別の例示的態様では、ファイルは、選択された悪意のあるファイルと安全なファイルの両方に対する様々な異なる基準および基準の組み合わせによって選択され得る。例えば、ユーザのコンピュータ上で10000を超えるコピーが普及しているが、ファイルのサイズが4キロバイト未満である、(選択された悪意のあるファイルと同じ種類の)安全なテキスト・スクリプト・ファイルが選択される。一例示的態様では、選択モジュール110は、上述したのと同様に、安全なファイルを全体として選択するのではなく、その部分を選択する。
一般的な場合には、悪意のあるファイル群と安全なファイル群はデータベース190に格納される。
一例示的態様では、ファイル(悪意のあるファイルおよび安全なファイル)を選択した結果は、ファイル群内における当該ファイルの識別子であり得る。
一般的な場合には、選択されたファイル、またはそれらの部分、またはそれらの識別子は、選択モジュール110によって学習モジュール120に送られる。
学習モジュール120は、機械学習法に基づいて、ニューラルネット(以後、訓練済みニューラルネット)を利用する学習モデルを生成(作成)する。一般的な場合には、勾配に基づく決定木ベースの勾配ブースティング(決定木ベースの勾配ブースティング)、決定木(英語 decision trees)、最近隣法kNN(英語 K−nearest neighbor method)、メソッド・サポート・ベクター(英語 support vector machine、SVM)を含む様々な機械学習法が使用される。学習モジュール120は、ニューラルネットの少なくとも以下のパラメータを選択する:層の数、層内のニューロンの数、および損失関数(例えば、分類と関連付けられた損失関数)。特定の例示的態様では、学習モジュール120は、ニューロン間の結合係数(重み)と損失関数の係数とをさらに選択する。
特定の態様では、誤差逆伝搬の方法が使用される。この機械学習の方法は、多層ニューラルネットの機能の誤差を最小限に抑えることを特徴とする反復勾配法である。
一般的な学習モジュール120の動作が図2に提示されている。
学習モジュール120は、悪意のあるファイル160またはその部分から選び出されたN属性を含むベクトルpin[N]220を形成する。一例示的態様における悪意のあるファイル160の属性は、悪意のあるファイル160のメタデータ(例えば、サイズ、作成および/または修正の時刻、属性、アクセス権)の中から選び出される。別の例示的態様では、悪意のあるファイル160のデータに基づいて属性を選び出し、悪意のあるファイル160のコンテンツの解析を行う。例えば、証明書の存在、バイトシーケンス、コード内の特定の関数の呼び出しなどについて解析を行う。
一般的な場合における訓練済みニューラルネット140の動作の結果として、Q個の結果属性を含む、結果属性ベクトルpout[Q]240が生成される。一態様では、Q個の結果属性は、ニューラルネットワーク140によって分類されるデータを特徴付ける最も重要なデータである。ニューラルネットワークの動作の結果として、一般に、(例えば、ファイルのマルウェアを導入する)最も重要な属性が様々な属性(例えば、ファイル)から選択される。
特定の態様では、悪意のあるファイルを識別する問題を解決するために、結果属性ベクトルpout[1]240は1の次元を有し、数値、すなわち有害性係数を含む。有害性係数は、ファイルが有害であるとされる確率(例えば0から1)を表し、有害性係数が高いほど、この確率は高くなる。
訓練済みニューラルネット140を使用してファイルの有害性係数を決定する問題は、K個の未知数を有する連立方程式を解くことに帰着し、これは数学的に行列乗算MK×Kとして表すことができる。ニューラルネット230は少なくとも3つの層(2つの外層と1つの隠れ層)を含む。最初の(入力)外層で、悪意のあるファイルの属性ベクトルpin220がニューラルネット層の行列Minに変換(展開)される。最後の(出力)外層で、ニューラルネット行列Moutが、結果属性ベクトルpout240にマップされ、これは以下のように定義される。
Figure 2020009415
式中、
×Minは、ベクトルの最初の外層へのマッピングであり、
Figure 2020009415
は、最初の層から外側の内層へ、内層から最後の層へのマッピングであり、
×Moutは、最後の外層のベクトルへのマッピングであり、
Figure 2020009415
は、内層の最初から最後へのマッピングであり、抽象化が当てはまる場合、
Figure 2020009415
である。
すなわち、訓練済みモデルを使用するときには内層は1つであるが、そのモデルを訓練するときには内層は1組の層を構成し、各層はそれ自体の行列Mによって特徴付けられ、その要素(係数)は補正され得る。
一般的な場合におけるニューラルネット230を訓練する問題は、結果属性ベクトルpout240の形成への悪意のあるファイル160の各属性の定量的な寄与度を決定することに帰着し、特定の態様ではその結果からさらに以下が決定される。
・結果属性ベクトルpoutへの悪意のあるファイルpinの属性のセット{ζ}からの各属性ζの寄与度の閾値であって、当該値を下回る場合、悪意のあるファイルのi番目の属性ζは、結果属性ベクトルpoutに及ぼす影響が最小とみなされ、ファイルのさらなる解析時にニューラルネットによって使用される悪意のあるファイルの属性ベクトルpinから除外され得る。
・結果属性の値の範囲であって、この範囲内で検出された場合、ファイルが悪意のあるものであることを意味する。
min(pout)>pout>max(pout
Figure 2020009415
式中、{ζ}は、ベクトルを形成するためのファイル属性のセットである。
より具体的には、以下の通りである。
訓練の過程で、悪意のあるファイル160の選び出された属性Nから悪意のあるファイルの属性Mが決定される。これら属性Nは、悪意のあるファイル160の識別の結果に重大な影響を及ぼす(悪意のあるファイル160の重要な属性)。
悪意のあるファイル160のその他の属性O=M−Nは、悪意のあるファイル160の識別に及ぼす影響が最小限の重要ではない属性であるとみなされる。O属性の使用は、かなりの程度まで、結果を有意に改善することなく計算リソースを消費するだけであり、よってO属性はさらなる解析から除外される。結果に有意な改善があるかどうかを判断することは、統計的判断を含み、例えば、ある係数が計算される場合(普通は数学的意味で、すなわち、ある効率化係数/近似係数などによって推定することができる、別の関数の近似の係数やいくつかの関数のデータの近似の係数など(決定係数を参照されたい))、プロセスの効率を0(非効率)から1(効率的)で表す係数で、1つまたは複数のパラメータが変化すると、効率を表す係数の変化はわずか(例えば1%だけ)であるため、そのパラメータは有理ではないので、使用されなくなる。例えば、関数y=x^a+bについて、線形パラメータbがyに及ぼす影響は実質的にわずかであるが、べき乗パラメータaの影響は非常に大きく、xの変化に応じてyの値に及ぼす影響が所定の閾値を超えるので、重要とみなされる。
最初に、M=Nであり、すべての属性はニューラルネット230の入力層に到達すると仮定する。入力層は、属性ベクトルpinを行列MN×Nに変換する。
損失関数に依存する隠れ層(特定の態様では、単一の内層で十分であるが、一般的な場合には隠れ層の数は無制限である)は、悪意のあるファイルを検出するためのニューロンの規則性および関係を明らかにする。
出力層は、ニューラルネット230の動作の結果を生成し、その結果は、結果属性ベクトルpoutを構成する。特定の態様では、出力層は前述した有害性係数を生成する。
一例示的態様では、学習モジュール120は、例えば損失関数誤差勾配法に基づいて損失関数を選択する。ニューラルネット230の訓練は、損失関数を選択した後に行われる。
学習モジュール120はまた、選択された各安全なファイル180またはその部分から、N個の属性のベクトル220を選び出し、それらを訓練されているニューラルネットの最初の入力層に送る。
訓練の結果として、悪意のあるファイル160の識別に重要ではない属性Oが選び出される。重要な属性の数MはNより少なくなり(M<N)、これにより行列[M,M]のサイズが縮小し、ニューラルネット230における計算の時間が短縮される。
このプロセスでは、安全なファイル180は悪意のあるものとして識別されるべきではない(例えば、安全なファイルの有害性係数は閾値を超えるべきではない)。しかしながら、安全なファイル180が悪意のあるものとして識別された場合、言い換えれば、誤警報が発生した場合、学習モジュール120は別の損失関数を選択し、ニューラルネット230に対して再訓練が行われる。
上記の動作の結果として、学習モジュール120は、訓練された(一例示的態様では再訓練された)ニューラルネット140を生成する。一般的な場合には、訓練済みニューラルネット140は、訓練されていないニューラルネットと比較してコンパクトな記述を有し(行列[M,M]は行列[N,N]より小さい)、悪意のあるソフトウェア(例えば、選択モジュール110によって選択された悪意のあるファイル160)を検出するためのニューロンの規則性および関係式のみを含む。
一例示的態様では、学習モジュール120は、結果属性ベクトル240に基づいて悪意のあるファイル160の検出規則250を生成する。一態様では、検出規則250は少なくとも1つの検出条件を含む。前述したように、結果属性ベクトル240は、[1]の次元を有し得る。一般的な場合には、検出規則250は(一次元の結果属性ベクトル240についても)いくつかの検出条件を含み得る。例えば、有害性係数が0.9より大きい場合、ファイルは悪意のあるものとみなされるべきである。しかし、有害性係数が0.6より大きいが0.9より小さい場合は、さらに検証が行われるべきである。さらに別の例示的態様では、検出規則250は、属性ベクトル220に含まれる属性のうちの少なくとも1つをさらに使用する。例えば、ファイルの種類が「実行可能」であり、有害性係数が0.8より大きい場合、そのファイルは悪意のあるものとみなされるべきである。有害性係数が0.5未満であり、ファイルの種類が「テキスト」(スクリプトファイルなど)である場合、そのファイルは安全とみなされるべきである。よって、ニューラルネット230の訓練の結果として、学習モジュール120は、訓練済みニューラルネット140および検出規則250を生成する。
特定の例示的態様では、訓練済みニューラルネット140および検出規則250は、学習モジュール120によってデータベース190に保存され得る。
一般的な場合には、学習モジュール120は訓練済みニューラルネット140および検出規則250を解析モジュール130に送る。
一般的な場合における解析モジュール130は、ユーザのコンピューティングデバイス150上で実行される。特定の例示的態様では、解析モジュール130はサーバ上で実行される。解析モジュール130は、訓練済みニューラルネット140および検出規則250を使用して、有害性がないか未知のファイル170をスキャンする。一般的な場合には、解析モジュール130が未知のファイル170の結果属性ベクトル240を生成した結果として、検出規則250に含まれる悪意のあるファイルの検出条件を満たす場合、未知のファイル170は悪意のあるものとして認識される。一例示的態様では、解析モジュール130は、先行技術によって知られている方法を使用して、有害性がないか未知のファイル170をさらにスキャンする。
訓練済みニューラルネット140および検出規則250を使用して未知のファイル170が悪意のあるものとして認識されたものの、先行技術によって知られている方法を使用すると未知のファイル170は安全である(例えば、信頼できる認証センターによって発行されたデジタル証明書を有するか、またはホワイトリストに記載されているか、またはコンピュータセキュリティの専門家の関与により安全と認められている)場合、訓練済みニューラルネット140および検出規則250の誤警報が識別される。この場合、誤警報175が識別されたファイルは解析モジュール130によって、選択モジュール110が選択した安全なファイル180の選択に追加される。この後、解析モジュール130は、誤警報175が識別された安全なファイルの選択に追加されたファイルを考慮に入れ、損失関数を選択してニューラルネット230を再訓練する学習モジュール120によるプロセスを開始する。
一例示的態様では、解析モジュール130は他の悪意のあるファイル180のスキャンをさらに行う。訓練済みニューラルネット140および検出規則を使用して、解析モジュール130が別の悪意のあるファイルを悪意のあるものとして識別した場合には、その別の悪意のあるファイルを検出するために訓練されたニューラルネットは、悪意のあるファイルを識別するための訓練済みニューラルネット140のセットから除外され得る。
図3は、悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別する方法の構造を示すフロー図である。
一態様によれば、ステップ310において、選択モジュール110は、悪意のあるファイル群の中から1つの悪意のあるファイル(サンプル)を選択するように構成され得る。この態様では、悪意のあるファイル群は、その有害性が以前に識別されたファイルのセットである。別の例示的態様では、ファイルの有害性はコンピュータセキュリティの専門家によって識別される。一般的な場合における有害性は、先行技術によって知られている方法(ヒューリスティック解析やシグネチャ解析など)によって識別され得る。一例示的態様では、選択モジュール110は、悪意のあるファイルの全体ではなく1つまたは複数の個々の部分を選択する。
一態様では、ステップ315において、選択モジュール110は、安全なファイル群の中から少なくとも2つのファイルを選択するように構成され得る。安全なファイルとは、有害性がないかスキャンした結果として悪意のあるものとして識別されなかったファイルである。一例示的態様では、安全なファイル群全体が選択され得る。別の例示的態様では、安全なファイルは様々な異なる基準および基準の組み合わせによって選択され得る。一例示的態様では、ファイル(悪意のあるファイルおよび安全なファイル)を選択した結果は、ファイル群内における当該ファイルの識別子であり得る。一例示的態様では、選択モジュール110は、安全なファイルの1つまたは複数の部分を選択し、他の態様では、安全なファイル全体が選択される。
一態様では、ステップ320において、学習モジュール120は、ニューラルネットを利用して学習モデルを生成(作成)するように構成され得る。一般的には、ニューラルネットの少なくとも以下のパラメータが選択または修正される:層の数、層内のニューロンの数、損失関数。特定の例示的態様では、ニューロン間の結合係数(重み)および損失関数の係数がさらに選択される。
一般的な場合、機械学習の他の方法が使用される。特定の態様では、誤差逆伝搬法が使用される。損失関数に依存する隠れ層は、悪意のあるファイルを検出するためのニューロンの規則性および関係を明らかにする。特定の態様では、損失関数は損失関数誤差勾配方法に基づいて選択される。
一態様では、ステップ330において、学習モジュール120は、選択されたファイルまたはそれらの部分を使用してモデルを訓練するように構成され得る(訓練プロセスの詳細は図2に示す)。学習モジュール120は、悪意のあるファイル160または悪意のあるファイル160の部分から選択されたN属性を含むベクトル220を形成する。訓練プロセスは、悪意のあるファイル160の選択されたN属性から、悪意のあるファイル160の識別の結果に重大な影響を及ぼす悪意のあるファイルの属性M(悪意のあるファイル160の重要な属性)を決定する。訓練プロセスでは、選択された各安全なファイル180またはその部分について、学習モジュール120はまた、N属性ベクトル220を選択し、それらを訓練されているニューラルネットの最初の入力層に送る。訓練の結果として、悪意のあるファイル160の検出に重要ではない属性Oが選択される。その場合、重要な属性Mの数はNより小さい。
一態様では、ステップ335において、学習モジュール120は、選択モジュール110によって有害性がないか選択された安全なファイルをスキャンするように構成され得る。安全なファイル180が悪意のあるものとして識別された(誤警報が発生した)場合、学習モジュール120は、例えば、別の損失関数を選択し、ステップ320に戻って、ニューラルネットを使用して学習モデルを生成(修正)することができ、ニューラルネット230の再訓練を実行する。
一態様では、ニューラルネットを訓練した後ステップ340において、学習モジュール120は、結果属性ベクトル240に基づいて、悪意があるとして識別する(あるいは悪意があるとして検出する)ための少なくとも1つの条件を含む、悪意のあるファイル160の検出規則250を生成するように構成され得る。例えば、ファイルAとファイルBとは悪意のあるものであり得る(すなわち、同じ種類/ファミリなどに属する)が、損傷の程度が異なり(例えば、0.99と0.65)、第1の場合には、悪意のあるアプリケーションはコンピュータシステムを急速に動作不能にし(例えばファイルを暗号化し)、第2の場合には、パスワードなどを盗むが、システムを動作不能にはしない。前述したように、結果属性ベクトル240は、[1]の次元を有し得る。一般的な場合、検出規則250は(一次元の結果属性ベクトル240についても)悪意があるとするいくつかの検出条件を含み得る。さらに別の例示的態様では、検出規則250は、属性ベクトル220に含まれる属性のうちの少なくとも1つをさらに使用する。
一態様では、ステップ350において、解析モジュール130は、訓練済みニューラルネット140および検出規則250を使用して、有害性がないか未知のファイル170をスキャンするように構成され得る。
一態様では、ステップ355において、未知のファイル170の結果属性240に基づいて悪意のあるファイルの検出条件が満たされた場合、ステップ360で未知のファイル170は悪意のあるものとして認識される。この態様では、検出条件は検出規則250に含まれる。
一例示的態様では、ステップ365において、解析モジュール130は、特定の方法を使用して、有害性がないか未知のファイル170をさらにスキャン(解析)するように構成され得る。訓練済みニューラルネット140および検出規則250を使用して未知のファイル170が悪意のあるものとして認識されたものの、特定の方法を使用して未知のファイル170が安全であると判断された場合、ステップ370において、訓練済みニューラルネット140および検出規則250の誤警報が識別される。この場合、ステップ375で、誤警報175が識別されたファイルは解析モジュール130によって、選択モジュール110が選択した安全なファイル180の選択に追加される。この後、解析モジュール130により、方法はステップ320に進み、ニューラルネットを使用して訓練モデルが生成され、次いでステップ330に進み、ニューラルネット230は学習モジュール120によって再訓練される。いずれのステップでも、誤警報175が識別された安全なファイルの選択に追加されたファイルを考慮に入れる。
図4は、本開示の態様が例示的態様に従って実施され得る汎用コンピュータシステム20を示すブロック図である。コンピュータシステム20は、システム100、および/またはその個々の構成要素に対応し得ることに留意されたい。
図示されるように、コンピュータシステム20(パーソナルコンピュータまたはサーバであり得る)は、中央処理装置21と、システムメモリ22と、中央処理装置21と関連付けられたメモリを含む様々なシステム構成要素を接続するシステムバス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のコンピュータ命令、データ構造、プログラムモジュールおよび他のデータを格納するための独立電源モジュールである。
一例示的態様は、コントローラ55を介してシステムバス23に接続されたハードディスク27、リムーバブル磁気ディスク29およびリムーバブル光ディスク31を使用するシステムを含む。コンピュータによって読み取り可能な形式でデータを格納することができる任意の種類の媒体56(ソリッド・ステート・ドライブ、フラッシュ・メモリ・カード、デジタルディスク、ランダムアクセスメモリ(RAM)など)も利用され得ることが当業者には理解されるであろう。
コンピュータシステム20は、オペレーティングシステム35が格納され得るファイルシステム36、ならびに追加のプログラムアプリケーション37、他のプログラムモジュール38、およびプログラムデータ39を有する。コンピュータシステム20のユーザは、キーボード40、マウス42、または、これに限定されないが、マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナーなどの当業者に公知の他の任意の入力装置を使用してコマンドおよび情報を入力することができる。これらの入力装置は通常、システムバスに接続されているシリアルポート46を介してコンピュータシステム20に接続する。ただし、入力装置は、これらに限定されないが、パラレルポート、ゲームポート、またはユニバーサル・シリアル・バス(USB)などを介した他の方法でも接続され得ることを当業者は理解するであろう。モニタ47または他の種類の表示装置も、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続され得る。パーソナルコンピュータは、モニタ47に加えて、ラウドスピーカ、プリンタなどといった他の周辺出力装置(図示せず)を備えていてもよい。
コンピュータシステム20は、1台または複数のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境で動作し得る。(1台または複数の)リモートコンピュータ49は、コンピュータシステム20の特性の説明における前述の要素の大部分または全部を含むローカル・コンピュータ・ワークステーションまたはサーバであってよい。コンピュータネットワークには、これらに限定されないが、ルータ、ネットワークステーション、ピアデバイスまたは他のネットワークノードなどの他のデバイスも存在していてよい。
ネットワーク接続は、ローカルエリア・コンピュータ・ネットワーク(LAN)50および広域コンピュータネットワーク(WAN)を形成することができる。これらのネットワークは、企業のコンピュータネットワークおよび社内のネットワークで使用されており、ネットワークは一般にはインターネットにアクセスできる。LANネットワークまたはWANネットワークでは、パーソナルコンピュータ20は、ネットワークアダプタまたはネットワークインターフェース51を介してローカルエリアネットワーク50に接続される。ネットワークが使用される場合、コンピュータシステム20は、インターネットなどの広域コンピュータネットワークとの通信を可能にするモデム54または当業者に周知の他のモジュールを用いることができる。モデム54は、内蔵デバイスでも外付けデバイスでもよく、シリアルポート46によってシステムバス23に接続され得る。ネットワーク接続は、通信モジュールを使用して一つのコンピュータを別のコンピュータに接続させる多くの周知の方法の非限定的な例であることが当業者には理解されるであろう。
様々な態様では、本明細書に記載されているシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせとして実装され得る。ソフトウェアとして実装される場合、方法は、1つまたは複数の命令またはコードとして非一時的コンピュータ可読媒体に格納され得る。コンピュータ可読媒体はデータ記憶装置を含む。限定ではなく一例として、このコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、またはその他の種類の電気的、磁気的、もしくは光学的記憶媒体、または命令やデータ構造の形式で所望のプログラムコードを搬送もしくは格納するために使用することができ、汎用コンピュータのプロセッサがアクセスすることのできる任意の他の媒体を含むことができる。
様々な態様では、本開示に記載されているシステムおよび方法を、モジュールとして扱うことができる。本明細書で使用される「モジュール」という用語は、例えば、特定用途向け集積回路(ASIC)やフィールド・プログラマブル・ゲート・アレイ(FPGA)などハードウェアを使用して、または、マイクロプロセッサシステムと、(実行中に)マイクロプロセッサシステムを専用デバイスに変換する、モジュールの機能を実施するための命令セットなどハードウェアとソフトウェアの組み合わせとして実装される、実世界のデバイス、コンポーネント、またはコンポーネントの構成を指す。モジュールはまた、ある機能はハードウェアのみによって促進され、他の機能はハードウェアとソフトウェアの組み合わせによって促進される、という2つの組み合わせとして実装され得る。特定の実施態様では、モジュールの少なくとも一部、場合によっては全部が(上記の図4でより詳細に説明されているような)汎用コンピュータのプロセッサ上で実行され得る。したがって、各モジュールは様々な適切な構成で実現されてよく、本明細書に例示した特定の実施態様に限定されるべきではない。
明確にするために、本明細書には各態様のすべての通常の特徴が開示されているわけではない。本開示の実際の実施態様の開発においては、開発者の特定の目標を達成するために多数の実施態様固有の決定がなされなければならず、これらの特定の目標は実施態様および開発者によって異なることが理解されよう。そのような開発努力は複雑で時間を要し得るとはいえ、本開示の恩恵を受ける当業者にとっては日常的なエンジニアリングの業務であろうことが理解される。
さらに、本明細書で使用される表現や用語は限定ではなく説明を目的としたものであり、本明細書の用語や表現は、当業者の知識と組み合わせて、本明細書で提示された教示および指針に照らして当業者によって解釈されるべきであることを理解されたい。さらに、本明細書または特許請求の範囲におけるいずれの用語も、特に明示されない限り、一般的でないかまたは特殊な意味に帰されることを意図していない。
本明細書で開示された様々な態様は、例示として本明細書で言及された公知のモジュールに対する現在および将来の公知の均等物を包含する。さらに、態様および応用例を示して説明したが、本明細書に開示された発明の概念から逸脱することなく、上述したものよりもはるかに多くの改変が可能であることが、本開示の恩恵を受ける当業者には明らかであろう。

Claims (24)

  1. 悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別する方法であって、
    ハードウェアプロセッサを使用して、有害であることが知られている複数の悪意のあるファイルの中から前記悪意のあるファイルを選択するステップと、
    前記ハードウェアプロセッサを使用して、安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択するステップと、
    前記ハードウェアプロセッサを使用して、前記悪意のあるファイルおよび前記複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成するステップと、
    前記ハードウェアプロセッサを使用して、前記学習モデルから悪意のあるファイルの検出規則を生成するステップと、
    前記ハードウェアプロセッサを使用して、未知のファイルの属性が悪意のあるファイルの前記検出規則を満たすかどうかを前記学習モデルを使用して判断するステップと、
    前記検出規則を満たすと判断した場合、前記ハードウェアプロセッサを使用して、前記未知のファイルを悪意のあるものとして識別するステップと
    を含む、方法。
  2. 前記ニューラルネットワークを訓練する前に前記ニューラルネットワークのパラメータを選択し、修正するステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記パラメータは、層の数、前記層内のニューロンの数、損失関数、ニューロン間の結合係数、および前記損失関数の係数を含む、請求項2に記載の方法。
  4. 前記損失関数誤差勾配法に基づいて前記損失関数を選択するステップ
    をさらに含む、請求項3に記載の方法。
  5. 前記学習モデルを訓練することは、
    前記悪意のあるファイルの第1の複数の属性を含む第1のベクトルを形成することと、
    前記悪意のあるファイルを識別した結果に影響を及ぼす前記第1の複数の属性から複数の重要な属性を決定することと、
    前記複数の安全なファイルの第2の複数の属性を含む第2のベクトルを形成することと、
    悪意のあるファイルの検出に重要ではない属性を選択するために前記第2のベクトルに基づいて前記ニューラルネットワークの第1の層を訓練することと
    を含む、請求項1に記載の方法。
  6. 前記複数の安全なファイルに前記学習モデルを適用することによって前記複数の安全なファイルのうちの1つが有害であるかどうかを判断するステップと、
    前記複数の安全なファイルのうちの1つが有害であると判断した場合、前記学習モデルを修正し、前記ニューラルネットワークを使用して前記学習モデルを再訓練するステップと
    をさらに含む、請求項5に記載の方法。
  7. 前記ニューラルネットワークから生じる結果属性ベクトルに基づいて前記悪意のあるファイルの前記検出規則を生成するステップ
    をさらに含む、請求項6に記載の方法。
  8. 前記検出規則は少なくとも1つの識別条件を含む、請求項7に記載の方法。
  9. 前記第1のベクトルを前記ニューラルネットワークの外層の行列に変換するステップと、
    前記ニューラルネットワークの行列を、ファイルの有害性係数を識別する結果属性ベクトルにマップするステップと
    をさらに含む、請求項5に記載の方法。
  10. 悪意のあるファイルの前記検出に重要ではない前記属性は、前記有害性係数の前記識別を改善することなく計算リソースを求める属性である、請求項9に記載の方法。
  11. 悪性を判断する他の方法に基づいて前記未知のファイルが悪意のあるものであるかどうかを判断するステップと、
    前記学習モデルを使用して前記未知のファイルが悪意のあるものであると判断し、悪性を判断する前記他の方法を使用して前記未知のファイルが安全であると判断した場合、前記学習モデルおよび前記検出規則における誤警報を識別するステップと、
    前記未知のファイルを前記複数の安全なファイルに追加するステップと、
    新しく選択された損失関数および前記複数の安全なファイルに基づいて前記学習モデルの前記ニューラルネットワークを再訓練するステップと
    をさらに含む、請求項1に記載の方法。
  12. 前記ニューラルネットワークを使用して、ファイルが有害であるとされる確率に関する有害性係数を識別する結果属性ベクトルを決定するステップ
    をさらに含む、請求項1に記載の方法。
  13. 悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムであって、
    有害であることが知られている複数の悪意のあるファイルの中から悪意のあるファイルを選択し、
    安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、
    前記悪意のあるファイルおよび前記複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、
    前記学習モデルから悪意のあるファイルの検出規則を生成し、
    前記学習モデルを使用して未知のファイルの属性が悪意のあるファイルの前記検出規則を満たすかどうかを判断し、
    前記検出規則を満たすと判断した場合、前記未知のファイルを悪意のあるものとして識別する
    ように構成されたハードウェアプロセッサ
    を含む、システム。
  14. 前記ハードウェアプロセッサは、
    前記ニューラルネットワークを訓練する前に前記ニューラルネットワークのパラメータを選択し、修正する
    ようにさらに構成される、請求項13に記載のシステム。
  15. 前記パラメータは、層の数、前記層内のニューロンの数、損失関数、ニューロン間の結合係数、および前記損失関数の係数を含む、請求項14に記載のシステム。
  16. 前記学習モデルを訓練することは、
    前記悪意のあるファイルの第1の複数の属性を含む第1のベクトルを形成することと、
    前記悪意のあるファイルを識別した結果に影響を及ぼす前記第1の複数の属性から複数の重要な属性を決定することと、
    前記複数の安全なファイルの第2の複数の属性を含む第2のベクトルを形成することと、
    悪意のあるファイルの検出に重要ではない属性を選択するために前記第2のベクトルに基づいて前記ニューラルネットワークの第1の層を訓練することと
    を含む、請求項13に記載のシステム。
  17. 前記ハードウェアプロセッサは、
    前記複数の安全なファイルに前記学習モデルを適用することによって前記複数の安全なファイルのうちの1つが有害であるかどうかを判断し、
    前記複数の安全なファイルのうちの1つが有害であると判断した場合、前記学習モデルを修正し、前記ニューラルネットワークを使用して前記学習モデルを再訓練する
    ようにさらに構成される、請求項16に記載のシステム。
  18. 前記ハードウェアプロセッサは、
    前記ニューラルネットワークから生じる結果属性ベクトルに基づいて前記悪意のあるファイルの前記検出規則を生成する
    ようにさらに構成される、請求項16に記載のシステム。
  19. 前記ハードウェアプロセッサは、
    前記第1のベクトルを前記ニューラルネットワークの外層の行列に変換し、
    前記ニューラルネットワークの行列を、ファイルの有害性係数を識別する結果属性ベクトルにマップする
    ようにさらに構成される、請求項16に記載のシステム。
  20. 前記ハードウェアプロセッサは、
    悪性を判断する他の方法に基づいて前記未知のファイルが悪意のあるものであるかどうかを判断し、
    前記学習モデルを使用して前記未知のファイルが悪意のあるものであると判断し、悪性を判断する前記他の方法を使用して前記未知のファイルが安全であると判断した場合、前記学習モデルおよび前記検出規則における誤警報を識別し、
    前記未知のファイルを前記複数の安全なファイルに追加し、
    新しく選択された損失関数および前記複数の安全なファイルに基づいて前記学習モデルの前記ニューラルネットワークを再訓練する
    ようにさらに構成される、請求項13に記載のシステム。
  21. 前記ハードウェアプロセッサは、
    前記ニューラルネットワークを使用して、ファイルが有害であるとされる確率に関する有害性係数を識別する結果属性ベクトルを決定する
    ようにさらに構成される、請求項13に記載のシステム。
  22. 悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するための命令が格納されている非一時的コンピュータ可読媒体であって、前記命令は、
    有害であることが知られている複数の悪意のあるファイルの中から前記悪意のあるファイルを選択し、
    安全であることが知られている安全なファイルのセットの中から複数の安全なファイルを選択し、
    前記悪意のあるファイルおよび前記複数の安全なファイルでニューラルネットワークを訓練することによって学習モデルを生成し、
    前記学習モデルから悪意のあるファイルの検出規則を生成し、
    前記学習モデルを使用して未知のファイルの属性が悪意のあるファイルの前記検出規則を満たすかどうかを判断し、
    前記検出規則を満たすと判断した場合、前記ハードウェアプロセッサを使用して、前記未知のファイルを悪意のあるものとして識別する、
    各手順を含む、非一時的コンピュータ可読媒体。
  23. 前記学習モデルを訓練することは、
    前記悪意のあるファイルの第1の複数の属性を含む第1のベクトルを形成することと、
    前記悪意のあるファイルを識別した結果に影響を及ぼす前記第1の複数の属性から複数の重要な属性を決定することと、
    前記複数の安全なファイルの第2の複数の属性を含む第2のベクトルを形成することと、
    悪意のあるファイルの検出に重要ではない属性を選択するために前記第2のベクトルに基づいて前記ニューラルネットワークの第1の層を訓練することと
    を含む、請求項22に記載の媒体。
  24. 前記命令は、
    悪性を判断する他の方法に基づいて前記未知のファイルが悪意のあるものであるかどうかを判断し、
    前記学習モデルを使用して前記未知のファイルが悪意のあるものであると判断し、悪性を判断する前記他の方法を使用して前記未知のファイルが安全であると判断した場合、前記学習モデルおよび前記検出規則における誤警報を識別し、
    前記未知のファイルを前記複数の安全なファイルに追加し、
    新しく選択された損失関数および前記複数の安全なファイルに基づいて前記学習モデルの前記ニューラルネットワークを再訓練する、
    各手順をさらに含む、請求項22に記載の媒体。
JP2019076577A 2018-06-29 2019-04-12 悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムおよび方法 Pending JP2020009415A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2018123695 2018-06-29
RU2018123695A RU2706896C1 (ru) 2018-06-29 2018-06-29 Система и способ выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле
US16/185,270 2018-11-09
US16/185,270 US10929533B2 (en) 2018-06-29 2018-11-09 System and method of identifying malicious files using a learning model trained on a malicious file

Publications (1)

Publication Number Publication Date
JP2020009415A true JP2020009415A (ja) 2020-01-16

Family

ID=68652909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019076577A Pending JP2020009415A (ja) 2018-06-29 2019-04-12 悪意のあるファイルで訓練された学習モデルを使用して悪意のあるファイルを識別するシステムおよび方法

Country Status (4)

Country Link
US (2) US10929533B2 (ja)
JP (1) JP2020009415A (ja)
CN (1) CN110659483B (ja)
RU (1) RU2706896C1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2680736C1 (ru) 2018-01-17 2019-02-26 Общество с ограниченной ответственностью "Группа АйБи ТДС" Сервер и способ для определения вредоносных файлов в сетевом трафике
RU2706896C1 (ru) * 2018-06-29 2019-11-21 Акционерное общество "Лаборатория Касперского" Система и способ выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле
US11070632B2 (en) * 2018-10-17 2021-07-20 Servicenow, Inc. Identifying computing devices in a managed network that are involved in blockchain-based mining
US11023576B2 (en) * 2018-11-28 2021-06-01 International Business Machines Corporation Detecting malicious activity on a computer system
US11550901B2 (en) 2019-01-31 2023-01-10 Rubrik, Inc. Real-time detection of misuse of system credentials
US11709932B2 (en) * 2019-01-31 2023-07-25 Rubrik, Inc. Realtime detection of ransomware
US11599629B2 (en) 2019-01-31 2023-03-07 Rubrik, Inc. Real-time detection of system threats
KR102046748B1 (ko) * 2019-04-25 2019-11-19 숭실대학교산학협력단 트리 부스팅 기반 애플리케이션의 위험도 평가 방법, 이를 수행하기 위한 기록 매체 및 장치
RU2728497C1 (ru) * 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его машинному коду
RU2728498C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его исходному коду
RU2743620C1 (ru) * 2020-06-26 2021-02-20 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения вредоносной активности по анализу поведения объектов в неизолированной среде
RU2743619C1 (ru) 2020-08-06 2021-02-20 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система генерации списка индикаторов компрометации
US11743272B2 (en) * 2020-08-10 2023-08-29 International Business Machines Corporation Low-latency identification of network-device properties
US20220164449A1 (en) * 2020-11-20 2022-05-26 Sophos Limited Classifer generator
US11947572B2 (en) 2021-03-29 2024-04-02 Group IB TDS, Ltd Method and system for clustering executable files
CN113221109B (zh) * 2021-03-30 2022-06-28 浙江工业大学 一种基于生成对抗网络的恶意文件智能分析方法
US11836252B2 (en) * 2021-06-23 2023-12-05 Acronis International Gmbh Machine learning through iterative memory analysis for malware detection
CN114091029B (zh) * 2022-01-24 2022-06-21 深信服科技股份有限公司 恶意文件检测模型的训练系统、方法、设备、介质及平台

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675711A (en) * 1994-05-13 1997-10-07 International Business Machines Corporation Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
US20120227105A1 (en) * 2010-12-01 2012-09-06 Immunet Corporation Method and apparatus for detecting malicious software using machine learning techniques
JP2016206950A (ja) * 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム
JP2017037555A (ja) * 2015-08-12 2017-02-16 日本電信電話株式会社 調整装置、調整方法および調整プログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037535B2 (en) * 2004-08-13 2011-10-11 Georgetown University System and method for detecting malicious executable code
US8838992B1 (en) * 2011-04-28 2014-09-16 Trend Micro Incorporated Identification of normal scripts in computer systems
CN102346829B (zh) * 2011-09-22 2013-09-18 重庆大学 基于集成分类的病毒检测方法
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US9465939B2 (en) * 2014-06-27 2016-10-11 Mcafee, Inc. Mitigation of malware
US9762593B1 (en) * 2014-09-09 2017-09-12 Symantec Corporation Automatic generation of generic file signatures
US9332385B1 (en) * 2015-02-13 2016-05-03 International Business Machines Corporation Selectively providing content to users located within a virtual perimeter
US10599844B2 (en) * 2015-05-12 2020-03-24 Webroot, Inc. Automatic threat detection of executable files based on static data analysis
US10681080B1 (en) * 2015-06-30 2020-06-09 Ntt Research, Inc. System and method for assessing android applications malware risk
US10157279B2 (en) * 2015-07-15 2018-12-18 Cylance Inc. Malware detection
US20170068816A1 (en) 2015-09-04 2017-03-09 University Of Delaware Malware analysis and detection using graph-based characterization and machine learning
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测系统及其方法
CN106910761B (zh) 2015-12-22 2019-12-13 昆山工研院新型平板显示技术中心有限公司 一种具有较长发光寿命的显示装置
US9959407B1 (en) 2016-03-15 2018-05-01 Symantec Corporation Systems and methods for identifying potentially malicious singleton files
US9721097B1 (en) * 2016-07-21 2017-08-01 Cylance Inc. Neural attention mechanisms for malware analysis
US10795996B2 (en) * 2017-07-17 2020-10-06 AO Kaspersky Lab System and method of machine learning of malware detection model
RU2654151C1 (ru) * 2017-08-10 2018-05-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов с использованием обученной модели обнаружения вредоносных файлов
US11308418B2 (en) * 2017-09-15 2022-04-19 Sap Se Automatic selection of variables for a machine-learning model
RU2679785C1 (ru) * 2017-10-18 2019-02-12 Акционерное общество "Лаборатория Касперского" Система и способ классификации объектов
US11108809B2 (en) * 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
CN108009424A (zh) * 2017-11-22 2018-05-08 北京奇虎科技有限公司 病毒行为检测方法、装置及系统
CN107798243A (zh) * 2017-11-25 2018-03-13 国网河南省电力公司电力科学研究院 终端应用的检测方法和装置
WO2019145912A1 (en) * 2018-01-26 2019-08-01 Sophos Limited Methods and apparatus for detection of malicious documents using machine learning
US11941491B2 (en) * 2018-01-31 2024-03-26 Sophos Limited Methods and apparatus for identifying an impact of a portion of a file on machine learning classification of malicious content
US10225277B1 (en) * 2018-05-24 2019-03-05 Symantec Corporation Verifying that the influence of a user data point has been removed from a machine learning classifier
RU2706896C1 (ru) * 2018-06-29 2019-11-21 Акционерное общество "Лаборатория Касперского" Система и способ выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675711A (en) * 1994-05-13 1997-10-07 International Business Machines Corporation Adaptive statistical regression and classification of data strings, with application to the generic detection of computer viruses
US20120227105A1 (en) * 2010-12-01 2012-09-06 Immunet Corporation Method and apparatus for detecting malicious software using machine learning techniques
JP2016206950A (ja) * 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム
JP2017037555A (ja) * 2015-08-12 2017-02-16 日本電信電話株式会社 調整装置、調整方法および調整プログラム

Also Published As

Publication number Publication date
CN110659483B (zh) 2023-04-28
US10929533B2 (en) 2021-02-23
CN110659483A (zh) 2020-01-07
US11514160B2 (en) 2022-11-29
US20200004961A1 (en) 2020-01-02
US20210150030A1 (en) 2021-05-20
RU2706896C1 (ru) 2019-11-21

Similar Documents

Publication Publication Date Title
US11514160B2 (en) System and method for determining a coefficient of harmfullness of a file using a trained learning model
JP6736532B2 (ja) 静的分析の要素を用いた悪質なファイルを検出するためのシステム及び方法
Demme et al. On the feasibility of online malware detection with performance counters
US10642973B2 (en) System and method of analysis of files for maliciousness and determining an action
US11882134B2 (en) Stateful rule generation for behavior based threat detection
John et al. Graph convolutional networks for android malware detection with system call graphs
US9185119B1 (en) Systems and methods for detecting malware using file clustering
RU2624552C2 (ru) Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
US11379581B2 (en) System and method for detection of malicious files
US9444829B1 (en) Systems and methods for protecting computing resources based on logical data models
US11048795B2 (en) System and method for analyzing a log in a virtual machine based on a template
US9489513B1 (en) Systems and methods for securing computing devices against imposter processes
EP3798885B1 (en) System and method for detection of malicious files
CN112149126A (zh) 确定文件的信任级别的系统和方法
EP3588351B1 (en) System and method of identifying malicious files using a learning model trained on a malicious file
CN110659478A (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
US10546125B1 (en) Systems and methods for detecting malware using static analysis
US20220058261A1 (en) System and method for identifying a cryptor that encodes files of a computer system
Gupta et al. Developing a blockchain-based and distributed database-oriented multi-malware detection engine
Samantray et al. A theoretical feature-wise study of malware detection techniques
EP3361406A1 (en) System and method of analysis of files for maliciousness in a virtual machine
EP3961449B1 (en) System and method for identifying a cryptor that encodes files of a computer system
RU2739832C1 (ru) Система и способ выявления измененных системных файлов для проверки на вредоносность в облачном сервисе
US10482244B1 (en) Systems and methods for efficiently matching files
Munjal et al. Analysis of Malicious Executables and Detection Techniques

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190919

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210706