JP6639588B2 - 悪意あるファイルを検出するシステムおよび方法 - Google Patents

悪意あるファイルを検出するシステムおよび方法 Download PDF

Info

Publication number
JP6639588B2
JP6639588B2 JP2018157019A JP2018157019A JP6639588B2 JP 6639588 B2 JP6639588 B2 JP 6639588B2 JP 2018157019 A JP2018157019 A JP 2018157019A JP 2018157019 A JP2018157019 A JP 2018157019A JP 6639588 B2 JP6639588 B2 JP 6639588B2
Authority
JP
Japan
Prior art keywords
file
computer
call log
computers
remote server
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
JP2018157019A
Other languages
English (en)
Other versions
JP2019079500A (ja
Inventor
ヴィー. ゴルジェーチク セルゲイ
ヴィー. ゴルジェーチク セルゲイ
ヴィー. ソルダトフ セルゲイ
ヴィー. ソルダトフ セルゲイ
ヴィー. サプロノフ コンスタンティン
ヴィー. サプロノフ コンスタンティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2019079500A publication Critical patent/JP2019079500A/ja
Application granted granted Critical
Publication of JP6639588B2 publication Critical patent/JP6639588B2/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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)

Description

本開示は、一般にコンピュータセキュリティ分野に関し、より具体的には、悪意あるファイルを検出するシステムおよび方法に関する。
従来のシグネチャ解析では、特に、ポリモーフィック型ウィルス、難読化されたファイル、シェルコード等の、悪意あるファイルや悪意あるファイルに含まれている悪意あるコードを必ずしも検出できない。そこで、最新のウィルス対策アプリケーションは「サンドボックス」を採用した検証を追加的に用いる。サンドボックスとは、システムの他の部分から隔離された特別な環境のことであり、その中で実行されるプロセスに対して、リソースへのアクセスと使用を制限する。サンドボックスは、例えば、ファイルシステムとレジスタの部分的仮想化に基づくか、ファイルシステムとレジスタへのアクセス規定に基づくか、あるいは、ハイブリッドアプローチに基づいて、バーチャルマシンの形で実現されてもよい。検証されるファイルはサンドボックス内で実行される。ファイル実行の過程で、アプリケーションプログラミングインターフェース(API)関数の呼び出しとシステムイベントに関する情報が呼び出しログに記録される。その後、ウィルス対策アプリケーションは、その結果得られた呼び出しログを解析する。
呼び出しログは、通常、上記ファイルが実行中に行ったAPI関数の呼び出しに関する情報、および、呼び出されたAPI関数からのリターン(リターンアドレスへの制御の移管)に関する情報を保存する。通常、サンドボックス内でのファイルの実行は、限られた時間幅(数十秒以内)の間に行われる。その際、シェルコードを含むファイルがサンドボックス内で実行されるとき、API関数の呼び出しログを解析することによってファイルの実行を検出することが、困難になることがある。これは、シェルコードはプロセスのメモリ内にロードされたかもしれないが、シェルコードを含むメモリ位置に制御が渡されているべき時点より前にサンドボックス内のプロセスの実行が終了されたためである。
ファイル内の悪意あるコードを検出するためのさらに別の技術はエミュレーションであり、その本質はエミュレータ内でのコードの実行中にホストシステムを模擬するところにある。
最新のウィルス対策ソフトウェアは上記の各技術を合わせて採用している。通常、最初にシグネチャ解析が実行され、悪意ある挙動が検出されなかった場合、次にエミュレータまたはサンドボックス内でファイルが実行される。悪意ある挙動が検出されなかった場合、ファイルは(サンドボックスの場合のような隔離された環境内ではなく)、直接、ユーザのコンピュータ上で実行される。この段階で、さらにもう1つの重要なウィルス対策モジュールの作用である、挙動アナライザが開始され、ユーザのコンピュータ上でファイルが実行される過程でなされたAPI関数呼び出しのログを収集して解析する。挙動アナライザは、インストールされたインターセプタドライバを使用して、悪意あるコードの実行中に発生したAPI関数の呼び出しと、呼び出されたAPI関数からのリターンをインターセプトし、それらを呼び出しログに保存する。次に、挙動アナライザは、呼び出しログから悪意ある挙動の既知のパターンを探し出して(ウィルス、ワーム、トロイの木馬、あるいは、条件によっては望ましくないソフトウェア等の)判定を下す。挙動アナライザによる呼び出しログの解析の原理は、サンドボックスやエミュレータの作用と類似している。しかしファイルは、隔離された環境下やエミュレータ内ではなくユーザのコンピュータ上で実行されるので、挙動アナライザには、前述のモジュールが本質的に持っている短所はない。すなわち、ファイルの実行時間には制限がなく、エミュレータやサンドボックスを検出して迂回する技術を無効化する。
しかしながら、ファイルの挙動は実行環境によって、あるいは、同じコンピュータ上で起動された場合、入力パラメータの違いによって異なることがある。このように、それぞれの起動時における悪意あるファイルの挙動は、悪意ある挙動の既知のパターンに当てはまらないかもしれない。その挙動が悪意ある挙動の既知のパターンに当てはまらない悪意あるファイルに対して、判定の質が劣ることが技術的問題である。
実世界の実行環境における悪意あるソフトウェアを検出するその他の公知の方法においては、ソフトウェアが実行する動作をログに記録し、そのログから、悪意ある挙動の既知のパターンを探し出す。そかし、この方法では、その挙動が悪意ある挙動の既知のパターンに当てはまらない悪意あるファイルに対して判定の質が劣るという、指摘された技術的問題を解決することはできない。
悪意あるファイルを検出するためのシステムおよび方法を以下に開示する。例えば、悪意あるファイルを検出するための方法は、1台以上のコンピュータから、各コンピュータ上で実行中のファイルから実行された関数呼び出しを含む1つ以上の呼び出しログを受信することと、1つ以上の呼び出しログを結合して結合呼び出しログとすることと、結合呼び出しログを検索して、脅威データベースに記憶されている1つ以上の挙動ルールに対する適合性を発見することと、1つ以上の挙動ルールが呼び出しログの中に発見された場合、調査されているファイルに関する判定を下すことと、判定に関する情報を1台以上のコンピュータに送信することを含んでもよい。
他の態様においては、方法は、1つ以上の挙動ルールを検索済みの1つ以上の呼び出しログを受信することをさらに含み、1つ以上の挙動ルールは、各コンピュータ上で実行中のファイルが、悪意あるソフトウェア、および、条件によっては望ましくないソフトウェアのうちの少なくとも一方であることを示す。
他の態様においては、方法は、結合呼び出しログが、1つ以上の呼び出しログには存在しないレコードを少なくとも1つ持つことになる場合に限って、1つ以上の呼び出しログを結合することをさらに含む。
他の態様においては、結合呼び出しログは、調査中のファイルに対する制御フローグラフを含む。
他の態様においては、判定はウィルス、ワーム、トロイの木馬、および、条件によっては望ましくないソフトウェアのうちの少なくとも1つである。
他の態様においては、1つ以上の挙動ルールは、疑わしい関数のリストにあるAPI関数の呼び出し、特定の関数の指定回数呼び出し、関数呼び出しの順序、コンピュータ上のドメインネームシステム(DNS)サーバ情報の交換、オペレーティングシステム更新の無効化、および、ネットワークファイアウォールの無効化のうちの少なくとも1つを含む。
他の態様においては、方法は、ファイルに対するウィルスシグネチャを作成することと、ウィルスシグネチャを1台以上のコンピュータに送信することとをさらに含む。
他の態様においては、方法は、実行中のファイルに関する情報を1つ以上の呼び出しログに記録することをさらに含む。
他の態様においては、情報は、侵入の痕跡、セキュリティ判定、実行中のファイルのチェックサム、または実行中のファイルの一部のチェックサム、各コンピュータに対する実行中のファイルのアップロードの送信元、実行中のファイルによる送信データと受信データのうち少なくとも一方、および、DNSが各コンピュータ上で交換されたかどうかのうちの少なくとも1つを含む。
悪意あるファイルを検出するためのシステムの例は、複数のコンピュータを含む情報システムを備えてもよく、複数のコンピュータのそれぞれは、各コンピュータ上のファイルの実行中にアプリケーションプログラミングインターフェース(API)呼び出しを記録し、ローカル呼び出しログの中から、ローカル脅威データベースから得られた1つ以上の挙動ルールを検索し、1つ以上の挙動ルールがローカル呼び出しログの中から発見された場合、ファイルが悪意あるものであると判定し、かつ、各コンピュータ上のファイルの実行を停止し、そうでない場合はローカル呼び出しログを検出モジュールに送信するコンピュータ保護モジュールを備えてもよく、情報システムと接続された検出モジュールは、複数のコンピュータのそれぞれのコンピュータ保護モジュールからのローカル呼び出しログを結合して、結合呼び出しログとし、結合呼び出しログの中から、第2の脅威データベースから得た1つ以上の挙動ルールを検索し、1つ以上の挙動ルールが結合呼び出しログの中に発見された場合、ファイルが悪意あるものであることを示す判定を下し、ファイルに対するウィルスシグネチャを作成し、ウィルスシグネチャを各コンピュータのコンピュータ保護モジュールに送信してもよい。
他の態様においては、プロセッサによって実行されたときに悪意あるファイルを検出するための方法を実行する命令を記憶したコンピュータ読み取り可能な媒体が提供され、方法は、1台以上のコンピュータから、各コンピュータ上で実行中のファイルから実行された関数呼び出しを含む1つ以上の呼び出しログを受信することと、1つ以上の呼び出しログを結合して結合呼び出しログとすることと、結合呼び出しログを検索して、脅威データベースに記憶されている1つ以上の挙動ルールに対する適合性を発見することと、挙動ルールが呼び出しログの中に発見された場合、調査されているファイルに関する判定を下すことと、判定に関する情報を1台以上のコンピュータに送信することとを含む。
上記の、態様例の簡単な概要は、本開示の基本的な理解を提供するものである。この概要は、すべての熟考された態様の広範な概説ではなく、すべての態様の鍵となる要素や重要な要素を特定したり、本開示の任意またはすべての態様の範囲を規定したりすることを意図するものではない。その唯一の目的は、1つ以上の態様を、後述する本開示のより詳細な説明への前置きとして、簡易な形で提示することである。上述のことを達成するために、本開示の1つ以上の態様は、特許請求の範囲で説明され、かつ例示的に示される特徴を含んでいる。
本明細書に組み込まれ、その一部を構成する添付図面は、本開示の1つ以上の態様例を図示し、それらの原理および実施例を説明するために、詳細説明とともに供される。
図1は、本開示の態様の一例に係る、悪意あるファイルを検出するためのシステムのブロック図である。
図2は、本開示の態様の一例に係るコンピュータ保護モジュールのブロック図である。
図3は、本開示の態様の一例に係る標的型攻撃保護モジュールのブロック図である。
図4は、本開示の態様の一例に係る、悪意あるファイルを検出する方法に関するフローチャートである。
図5は、本開示の態様の一例に係る汎用コンピュータシステムの一例のブロック図である。
悪意あるファイルを検出するためのシステム、方法、および、システムおよび方法のためのコンピュータプログラム製品に関する態様の例について以下に説明する。以下の説明は、単に例示の目的のためであって、いかなる制限を加えることも意図されていないことは、当業者には理解されるであろう。その他の態様は、本開示から利益を得る当業者には、容易に想起できるであろう。添付図面に示すように、態様例の実施態様が詳細に参照される。同一あるいは類似する項目には、図面および以下の説明を通して、可能な範囲で、同一の参照符号を用いる。
以下の用語は、本開示、図面、および請求の範囲を通して用いられる。
侵入の痕跡(IOC)とは、コンピュータ上またはネットワーク上で観察される、情報システムへの侵入によってもたらされたアーチファクト、あるいは残留症状である。IOCは「感染の兆候」と呼ばれることもある。代表的な侵入の痕跡はウィルスシグネチャ、IPアドレス、ファイルのチェックサム、URLアドレス、ボットネットのコマンドセンターのドメイン名、等である。侵入の痕跡に関しては、特に下記のような、いくつかの基準が存在する。
・OpenIOC (https://community.rsa.com/docs/DOC-62341, https://web.archive.org/web/20160401023434/, http://blogs.rsa.com/understanding-indicators-of-compromise-ioc-part-i/, http://openioc.org/)、
・STIX (https://stix.mitre.org/)、
・CybOX (https://cybox.mitre.org)、等。
コンピュータ攻撃(サイバー攻撃とも呼ばれる)とは、ソフトウェアおよびハードウェアによる情報システムや情報通信ネットワークの情報セキュリティを混乱させるために行われる、それらのシステムやネットワークに対する指向性行為である。
標的型攻撃(TA)とは、特定の組織や特定の個人に向けられたコンピュータ攻撃の特定のケースである。
高度な持続的脅威(APT)とは、複雑な、長期にわたる、周到に計画された、複数手法を駆使したコンピュータ攻撃であり、複雑な悪意あるソフトウェア、社会工学の方法、および攻撃対象の情報システムに関するデータを利用する。
ファジーハッシュ(フレキシブルフィンガープリントハッシュ、または、局所性鋭敏型ハッシュとも呼ばれる)とは、ファイルの作成時からの変化に耐性のあるフィンガープリントである。すなわち、悪意あるファイルをそのフィンガープリント値によって検出すると、多くの類似した(未知である可能性のある)悪意あるファイルも検出されることになる。そのようなフィンガープリントの主な特徴は、ファイルのわずかな変化に対して不変であるということである。
ファジー判定とは、ファイルの実行中に悪意あるファイルに特有の疑わしい動作を検出したときの、保護モジュール(例えば、ウィルス対策アプリケーション)の応答である。ファジー判定は、例えば、フレキシブルフィンガープリントによるファイル検出をきっかけとして、実行される。ファジー判定は、発見されたファイルが悪意あるものであることをある程度の確率で証明する。
図1は、挙動ルールを用いて悪意あるファイルを検出するシステム120を示す。システム120は、検出モジュール110、脅威データベース111、および呼び出しログ116とともに、情報システム100を備えている。
情報システム100(企業基盤とも呼ばれる)は、コンピュータネットワーク105によって相互接続された一群のコンピューティングデバイス101(短縮して、コンピュータとも呼ばれる)を含んでいる。コンピューティングデバイス101とは、一般に、任意のコンピューティングデバイスおよびセンサを意味し、特に、パーソナルコンピュータ、ノート型パーソナルコンピュータ、スマートフォン、および、ルータ、スイッチ、ハブ等の通信装置を意味する。コンピューティングデバイス101は物理的装置またはバーチャルマシンのいずれであってもよいことに注目すべきである。情報システム100は、例えば、以下のタイプのうちいずれかの一部を用いる等、従来技術で公知の任意のネットワークトポロジー105を用いて構成してもよい:フルコネクト型、バス型、星型、リング型、セル型、およびハイブリッド型。コンピュータ保護モジュール(または、単に、保護モジュール)102はコンピューティングデバイス101のそれぞれに設置されている。一部のコンピューティングデバイス101には、保護モジュール102が設置されていない可能性があることに注目すべきである。情報システム100は標的型攻撃保護モジュール103を含んでもよく、それは、例えば、別個のサーバ上に位置して、コンピュータネットワーク105によって少なくとも1台のコンピューティングデバイス101と接続されていてもよい。コンピューティングデバイス101を、ネットワーク105を介してインターネットおよび検出モジュール110に接続するために、プロキシサーバ(図示せず)を使用してもよい。
1つの特定の態様においては、標的型攻撃保護モジュール103は、さらに、コンピューティングデバイス101上で実行されコンピュータネットワーク105を通るファイルと関連する、ローカル呼び出しログ109中の情報を記録するように構成されてもよい。いくつかの態様においては、その情報は下記を含んでもよい。
・侵入の痕跡、
・セキュリティ判定(例えば、サンドボックス、侵入検知システム(IDS)の判定)、
・ファイルのチェックサム、または、ファイルの一部のチェックサム、
・コンピューティングデバイス101へのファイルアップロードの送信元(例えば、ソースIPアドレス、コンピュータに対するファイルのダウンロード元のフラッシュドライブ、等)、
・ファイルがネットワークを介して送信しているデータ(例えば、どのIPアドレスがアクセスされているか、どのパケットが送信されているか、等)、
・ファイルがネットワークを介して受信しているデータ(例えば、どのIPアドレスから送信されているか、どのパケットが送信されているか、等)、
・コンピュータ上でのドメインネームシステム(DNS)サーバの交換。
また、標的型攻撃保護モジュール103はローカル呼び出しログ109を検出モジュール110に送信するように構成されてもよい。
システムは少なくとも2台のコンピューティングデバイス101を含み、それぞれのコンピューティングデバイス101上でコンピュータ保護モジュール102が作動する。本開示の一態様によれば、コンピュータ保護モジュール102は、調査対象ファイルの実行中のAPI関数呼び出し(例えば、関数の名前、渡されたパラメータ、関数呼び出しの時刻)を、各コンピューティングデバイス101のローカル呼び出しログ107に記録する。
本開示の1つの特定の態様においては、ローカル呼び出しログ107の各レコードは、API関数呼び出しに関する少なくとも以下の情報を含む。
・呼ばれた関数の名前、
・上記ファイルから起動されたプロセスの一意的なプロセス識別子(PID)、
・プロセスのアドレス空間の命令を実行しているスレッドの一意的なスレッド識別子(TID)、
・上記関数の一組の引数、
・関数呼び出しの時刻。
問題のファイルの実行中に、コンピュータ保護モジュール102は、ローカル呼び出しログ107の中から、ローカル脅威データベース108から得られた挙動ルールを検索する。本開示の1つの特定の態様においては、ローカル呼び出しログ107とローカル脅威データベース108はコンピューティングデバイス101上に位置している。
挙動ルールは、少なくとも1つのAPI関数の呼び出しに関する情報を含んでいる。本開示の1つの特定の態様においては、挙動ルールは、特定の一組のAPI関数呼び出しと、それらのAPI関数呼び出しに対する論理式を含んでいる。例えば、問題のファイルから、特定のAPI関数が特定のパラメータ付きで、挙動ルールによって指定されたように呼び出された場合、コンピュータ保護モジュール102はそのルールを呼び出しログ107から探し出すことになる。
また、挙動ルールは、特定のルールが呼び出されたときに下された判定に対応する。本開示の一態様においては、判定は、呼び出されたルールに対応する、悪意があるか、または望ましくないソフトウェアの最も可能性の高いカテゴリーを示す。判定は、例えば、ウィルス、ワーム、トロイの木馬、および、条件によっては望ましくないソフトウェアのうちの少なくとも1つを含んでいてもよい。
1つの特定の態様例においては、挙動ルールは少なくとも以下のものを含む。
・疑わしいAPI関数のリストにあるAPI関数の呼び出し(例えば、リストは以下のAPI関数を含んでいてもよい:WinExec、CreateProcess、GetFileSize、CreateFile)、
・API関数GetFileSizeが10回呼び出された、
・API関数WriteFileの呼び出しに続く、API関数WinExecの呼び出し(実行用ファイルの起動)、
・コンピュータ上のDNSサーバの交換、
・オペレーティングシステム自動更新の停止、
・ネットワークファイアウォールの停止、
・保護モジュールの停止、
・ユーザアカウント制御(UAC:ウィンドウズ(登録商標)OSのコンポーネント)の停止。
コンピュータ保護モジュール102が、ローカル呼び出しログ107の中から、ローカル脅威データベース108から得られた挙動ルールを1つも発見しなかった場合、コンピュータ保護モジュール102は、リモートサーバ上に位置する検出モジュール110にローカル呼び出しログ107を送信する。
1つの特定の態様例においては、悪意あるソフトウェアの判定に対応する挙動ルールが発見された場合に限って、コンピュータ保護モジュール102はローカル呼び出しログ107を検出モジュール110に送信してもよい。他の態様例においては、条件によっては望ましくないソフトウェアの判定に対応する挙動ルールが発見された場合も、ローカル呼び出しログ107が送信される。
検出モジュール110は、解析対象ファイルのために、少なくとも2つの保護モジュール102から取得したローカル呼び出しログ107を結合して、リモートサーバ上に位置する結合呼び出しログ116とする。
ローカル呼び出しログ107の結合は、結合呼び出しログ116が、各ローカル呼び出しログ107に対して、当該ローカル呼び出しログ107には存在しないレコードを少なくとも1つ持つことになる場合に実行されることに注意すべきである。
3つのローカル呼び出しログがある場合の例を挙げる。第1ログはレコードA、B、Cを、第2ログはレコードA、B、Dを、第3ログはレコードA、C、Dを含んでいる。この例では、レコードA、B、C、Dを含む結合呼び出しログが作成されることになる。結合呼び出しログは、それぞれのローカルログには存在しないレコードを持つことになる。レコードDは第1ログには存在せず、レコードCは第2ログには存在せず、レコードBは第3ログには存在しない。
3つのローカル呼び出しログがある場合のさらに他の例を挙げる。第1ログはレコードA、Bを、第2ログはレコードA、B、Cを、第3ログはレコードA、Cを含んでいる。この例では、結合呼び出しログはレコードA、B、Cを含むことになり、第2ローカルログに相当することになる(すなわち、結合ログは第2ログに存在しないレコードを持たないことになる)ため、結合呼び出しログは作成されないことになる。
1つの特定の態様例においては、結合呼び出しログ116はそれぞれのローカル呼び出しログ107のすべてのレコードを含むことになる。他の特定の態様例においては、結合呼び出しログ116は、1つのローカル呼び出しログ107(例えば、第1呼び出しログ)の全レコード、および、第1呼び出しログには存在しない、その他のローカル呼び出しログ107のレコードを含むことになる。
1つの特定の態様例においては、ローカル呼び出しログ107の結合による結合呼び出しログ116の作成は、ローカル呼び出しログ107のレコードを結合することによってなされる。この場合、交差するレコードは、結合呼び出しログ116の中で、重複してもしなくてもよい。さらに他の態様例においては、ローカル呼び出しログ107は、ファイルから起動されたプロセスの制御フローグラフ(CFG)をさらに含んでもよく、本例においては、結合呼び出しログ116は、複数の制御フローグラフを結合して得られる、上記ファイルに対する結合制御フローグラフを含むことになる。
検出モジュール110は、結合呼び出しログ116の中から、脅威データベース111から得られた挙動ルールを検索する。脅威データベースはリモートサーバ上に位置し、特に、各コンピューティングデバイス101のローカル脅威データベース108の全レコードを収容している。
図2は、コンピュータ保護モジュールの各モジュールとして考えられる例を示す。コンピュータ保護モジュール102は、コンピューティングデバイス101のセキュリティを確保するよう設計された以下のモジュールを含むことができる:オンアクセススキャナ、オンデマンドスキャナ、Eメールアンチウィルス、ウェブアンチウィルス、事前保護モジュール、ホスト侵入防止システム(HIPS)モジュール、データ漏洩防止(DLP)モジュール、脆弱性スキャナ、エミュレータ、ネットワークファイアウォール、等。1つの特定の態様例においては、上記のモジュールは保護モジュール102の構成要素であってもよい。さらに他の態様例においては、これらのモジュールは別々のソフトウェアコンポーネントとして実現されてもよい。
オンアクセススキャナは、ユーザのコンピュータシステム上で開かれたり、起動されたり、保存されたりするすべてのファイルの悪意ある動作を検出する機能性を有している。オンデマンドスキャナは、ユーザの要求に応じて、ユーザが指定したファイルやディレクトリをスキャンするという点で、オンアクセススキャナとは異なっている。
Eメールアンチウィルスは、送受信されるEメールに悪意あるファイルがあるかどうかをチェックするために必要とされる。ウェブアンチウィルスは、ユーザにより掲載されたウェブサイト上に含まれる恐れのある悪意あるコードの実行を防止し、また、ウェブサイトが開かれることを阻止する機能を果たす。HIPSモジュールは、プログラムの望ましくない動作や悪意ある動作を検出し、実行時にその動作を阻止する機能を果たす。DLPモジュールは、コンピュータやネットワークからの機密データの漏洩を検出および防止する機能を果たす。脆弱性スキャナは、コンピューティングデバイス101の脆弱性(例えば、コンピュータ保護モジュール102の特定の構成要素の停止、ウィルスデータベースの陳腐化、ネットワークポートの閉鎖、等)を検出するために必要とされる。ネットワークファイアウォールは、指定されたルールに従ったネットワークトラフィックの制御とフィルタリングを提供する。エミュレータの作用は、エミュレータ内でのコードの実行中にホストシステムを模擬するところにある。事前保護モジュールは挙動シグネチャを用いて、実行中のファイルの挙動を検出し、そのファイルを信頼度によって分類する。
悪意あるソフトウェア(疑わしい挙動、スパム、その他のコンピュータ脅威の兆候)を検出すると、上記のモジュールは、それに対応する、検出された脅威とその脅威を取り除くための処置(例えば、ファイルの除去または変更、その実行の禁止、等)を取る必要性を保護モジュールに伝える通知を作成する(その後、コンピュータ保護モジュール102の判定に変換してもよい)。1つの特定の態様例においては、悪意あるソフトウェアを検出したモジュール自身がその脅威を取り除くための処置を講じてもよい。さらに他の一例においては、判定は(判定によって、誤警報が生じる恐れがあるため)ファジーまたは試験判定でもよく、その場合、保護モジュールは脅威を取り除くための処置を講じることなく、通知を検出モジュール110に回すことになる。コンピュータ保護モジュール102の判定は、ファイルに関する情報の一部であり、後にセキュリティ通知の形で検出モジュール110に送信されることになることに注意すべきである。本開示の1つの特定の態様においては、悪意あるソフトウェアは以下のカテゴリー(判定はカテゴリーの1つに対応する)を含む:悪意あるソフトウェア、および、条件によっては望ましくないソフトウェア。悪意あるソフトウェアは以下のサブカテゴリーを含んでもよい:ウィルス、ワーム、トロイの木馬、パッカー、悪意あるユーティリティ。条件によっては望ましくないソフトウェアはアドウェア、ポルノウェア、使用するとコンピュータに害を及ぼす可能性のある合法的ソフトウェア(リスクウェア)、その他である。
図3は、標的型攻撃保護モジュールの各モジュールとして考えられる例を示す。標的型攻撃保護モジュール103は、例えば、以下の保護モジュールを含むことができる:サンドボックス、侵入検知システム(IDS)、レピュテーションサービス、YARAルールチェッキングモジュール、その他の検出モジュール。
サンドボックスモジュールはコンピュータ保護モジュール102のエミュレータと機能的に類似しているが、相違点は、コンピュータ保護モジュール102が本質的に持っているような時間制限は標的型攻撃保護モジュール103にはないため、サンドボックスがさらなるコンピューティング性能を利用できることと、より長時間動作できるということである。
サンドボックスはプロセスの安全な実行のためのコンピュータ環境であり、ファイルから起動されたプロセスの実行中における疑わしい動作を判定する機能を果たす。
サンドボックスは、例えば、ファイルシステムとレジスタの部分的仮想化に基づくか、ファイルシステムとレジスタへのアクセス規定に基づくか、あるいは、ハイブリッドアプローチに基づいて、バーチャルマシンの形で実現されてもよい。
本開示の一態様によれば、侵入検知システムは、コンピューティングデバイス101またはネットワーク105への不正アクセス、または、コンピューティングデバイス101またはネットワーク105に対する認可されていない制御の発生を識別してもよい。
レピュテーションサービスは、レピュテーションサーバ104のミラーまたはキャッシュされたコピーであってもよく、また、コンピューティングデバイス101上のファイルの人気度に関する情報(ファイルが存在するコンピューティングデバイス101の数、ファイルの起動回数、等)を収容する。
YARAルールチェッキングモジュールは、オープンシグネチャフォーマットのYARAシグネチャをチェックする機能を果たす(http://yararules.com/参照)。
DLPモジュールは、機密データのコンピュータまたはネットワークからの漏洩を検出および防止する機能を果たす。
図4は、悪意あるファイルを判定する方法400に関するフローチャートである。方法400は、図1に記載したシステム101の構成要素の、コンピュータシステム20によって実行される、実施の一例である。
方法はステップ401から始まり、そこでは、少なくとも2台のコンピューティングデバイス101の保護モジュール102が、各コンピューティングデバイス101のローカル呼び出しログ107に、特に、ファイルのプログラムコードの実行中のAPI関数呼び出しを記録する。ファイルから起動されたプロセスは、上記の各コンピューティングデバイス101上で実行される。
コンピューティングデバイス101は、異なった環境(OSおよびそのバージョン、インストールされているOSのアップデート、インストールされているソフトウェアとドライバ、実装されているサービスとプロセス、インターネットとの接続の有無、周辺機器、等)を有していてもよい。さらに、ファイルは、コンピューティングデバイス101や、開かれた時刻や、その他の要因に応じて、異なったパラメータで実行のために開かれてもよい。そのようなパラメータは、例えば、ユーザの権限(管理者権限またはユーザ権限)や、異なる起動方法(例えば、コマンドラインウィンドウズ(登録商標)"Cmd.exe"のインタープリタのコマンド"ie.exe -k"はインターネットエクスプローラをフルスクリーンモードで起動する)でなされる起動の目的(例えば、特定のオブジェクトまたはその他のファイルは実行中のファイルの入力に転送される)や、その他であってもよい。このように、同じファイルを異なるコンピューティングデバイス101上で(あるいは、同じデバイス上であっても)実行すると、その間、そのファイルは異なる挙動、異なるAPI関数の呼び出し、等をすることがある。例えば、1台のコンピューティングデバイス101がインターネット接続されていない場合、ファイルは、他のインターネット接続されているコンピューティングデバイス101上で実行された場合にアクセス可能なIPアドレスにアクセスできないことになる。
ステップ402において、上記のコンピューティングデバイス101のそれぞれの(対応するコンピューティングデバイス101にインストールされている)保護モジュール102が、ファイルのプログラムコードを実行する過程で使用され、ローカル呼び出しログ107の中から、ローカル脅威データベース108から得られた挙動ルールが検索される。保護モジュール102が挙動ルールを発見した場合、ファイルは直ちにコンピューティングデバイス101上で悪意あるものと判定され、ファイルのさらなる実行は保護モジュール102によって終了される。そうでない場合、ステップ403において、保護モジュール102はローカル呼び出しログ107を検出モジュール110に送信する。
ステップ404において、検出モジュール110を使用して、上記ファイルに関して受信したローカル呼び出しログ107が結合呼び出しログ116に結合される。検出モジュール110が、ローカル呼び出しログ107を、上記ファイルに関連する少なくとも2つの異なる保護モジュール102から取得し、それぞれのローカル呼び出しログ107に存在しないレコードが、結合呼び出しログ116中に、少なくとも1つ存在する場合、ステップ404が適用できることに注目すべきである。
ステップ405において、検出モジュール110は、結合呼び出しログ116の中から、脅威データベース111から得られた挙動ルールを検索する。本開示の1つの特定の態様においては、ローカル脅威データベース108と脅威データベース111はコピーである。本開示の他の特定の態様においては、脅威データベース111は、少なくともローカル脅威データベース108の全レコードを収容し、その他のレコードを収容している可能性もある。
例えば、コンピューティングデバイス101上のスペースを節約するために、ローカル脅威データベース108は、所定の時刻において、あるいは、情報システム100の所有者にとって、所定の領域に特徴的な、最も一般的な脅威に対するエントリーを収容してもよい。さらに他の一例においては、ローカル脅威データベース108は脅威データベース111のミラーコピーであり、定期的に更新される。この場合、ローカル脅威データベース108の最終更新から次の定期更新までの間、脅威データベース111は、ローカル脅威データベース108に存在しない新規の脅威レコードで更新することができることは明らかである。
その結果、ステップ406において、少なくとも1つの脅威データベースから得た挙動ルールが結合呼び出しログ116の中から発見された場合、発見された挙動ルールに従って、ファイルは悪意あるものと判定されることになる。この場合、ステップ407において、検出モジュール110は、判定されたファイルに関する(ウィルス、ワーム、トロイの木馬、あるいは、条件によっては望ましくないソフトウェア等の)判定を下してもよく、保護モジュール102のためにウィルスシグネチャを作成してもよい。ウィルスシグネチャとは、例えば、保護モジュール102のシグネチャ解析モジュールのためのシグネチャ、または、エミュレータのシグネチャを意味する。
このように、提起された技術的問題は解決されるであろう、すなわち、保護モジュール102によって判定されなかった悪意あるファイルは、指定された方法によって判定されるであろう。そして、単一のファイルのために、少なくとも2台のコンピュータから得られた様々なローカル呼び出しログを結合して作成された結合呼び出しログの中から、脅威データベースから得られた挙動ルールを検索することによって、挙動ルールを用いた悪意あるファイルの判定の質の向上という、技術的成果が達成されるであろう。
異なるコンピューティングデバイス101上でファイルが実行される間の、異なる挙動の、環境に応じたいくつかの例について、以下に考察する。
例えば、ファイルがエミュレータを検出し、迂回するためのコードを含む場合、エミュレータが作動しているコンピューティングデバイス101上では、ファイルは安全な動作を行うかもしれないが、エミュレータが作動していない他のコンピューティングデバイス101上では、ファイルは悪意ある動作を行うであろう。
さらに他の一例においては、ファイルは(例えば、OSのローカライゼーションから)コンピューティングデバイス101の所在地を調べ、所在地に応じて異なる動作をするかもしれない。他の一例においては、ファイルの実行中、特定のアプリケーションに対して悪意ある動作が実行され、対応する判定が下されるかもしれないが、それらのアプリケーションがコンピューティングデバイス101上にインストールされていない場合、悪意ある動作は実行されず、判定は下されないであろう。
さらに他の一例においては、ファイルは、ネットワークを通して、OSアーキテクチャ(32または64ビット)に応じた付加的な悪意あるモジュールをダウンロードするかもしれない。さらに他の一例においては、ファイルは、異なるアクセス経路を使用して、例えば、HTTPs、DNS、Twitter、Yandex.Disk、または、その他のアクセス経路を介して、コマンドセンターにアクセスするかもしれない。この場合、ファイルは、1つのコンピューティングデバイス101上ではHTTPsを介して、もう1つのコンピューティングデバイス101上では、HTTPsを介してアクセスできなかったために、Twitterを介してアクセスするかもしれない。
さらに他の一例においては、コンピューティングデバイス101上で、管理者権限で起動されたファイルが、直ちに、悪意ある動作を開始するかもしれない。しかし、同じファイルが、コンピューティングデバイス101上で、管理者権限なしに起動された場合、ファイルはその権限を高めようとするかもしれない。
本開示の1つの特定の態様においては、コンピュータ保護モジュール102と標的型攻撃保護モジュール103を使用して、少なくとも下記情報のいくつかが追加記録される。
・API関数からのリターンアドレスへの制御の移管手順、
・ウィンドウズ(登録商標)NTネイティブAPI関数の直接呼び出し、
・ウィンドウズ(登録商標)NTネイティブAPI関数からのリターン、
・コンピュータシステムの切断または過負荷の事象、
・オペレーティングシステムのシステムイベント、
・侵入の痕跡、
・システムコール(fopen()、create()、等)、
・保護モジュールの判定(ウィルス、ワーム、トロイの木馬、あるいは、条件によっては望ましくないソフトウェア等)、
・ファイルまたはその一部のチェックサム、
・コンピューティングデバイス101へのファイルのダウンロードのソース(例えば、ソースのIPアドレス、コンピュータに対するファイルのロード元のフラッシュドライブ、等)、
・ファイルの実行のエミュレーション結果(エミュレータの判定)、
・ファイルがコンピューティングデバイス上に出現した時刻、
・ファイルがネットワークを介して送信しているデータ(例えば、どのIPアドレスがアクセスされているか、どのパケットが送信されているか、等)、
・ファイルがネットワークを介して取得しているデータ(例えば、どのIPアドレスがアクセスされているか、どのパケットが送信されているか、等)。
他の特定の態様例においては、コンピュータ保護モジュール102と標的型攻撃保護モジュール103を使用して、少なくとも下記情報のいくつかが追加記録される。
・コンピュータ上におけるDNSサーバの置換、
・オペレーティングシステム自動更新の無効化、
・ネットワークファイアウォールの無効化、
・保護モジュールの無効化、
・ユーザアカウント制御コンポーネントの無効化、
・オペレーティングシステムのシステム復元コンポーネントの無効化。
さらに他の特定の態様例においては、コンピュータ保護モジュール102と標的型攻撃保護モジュール103を使用して、少なくとも下記情報のいくつかの部分が追加記録される。
・ファイルマネージャ内の「隠しファイル、隠しフォルダー、および隠しドライブを表示する」の停止、
・ネットワークファイアウォールのルールの変更、
・hostsファイルの変更、
・ファイル自体の削除(例えば、プロセスが悪意あるファイルから実行されると、悪意あるコードをシステムプロセス"svchost.exe"の文脈に埋め込み、その後、元の悪意あるファイルを削除する)、
・コンピュータシステムの切断または過負荷の事象、
・プロセス中で発生した例外的状況、
・システムライブラリ(kernel32.dll、ntdll.dll、等)の記述子のアドレスの取得、
・メモリ割り当て、
・システム構造体(プロセス環境ブロック(PEB))の読み込み、
・ファイル記述子の連続取得。
本開示のさらに他の特定の態様においては、解析対象ファイルを実行するプロセス中で作成された子プロセスおよび新規ファイルと関連する上記情報が追加記録される。
1つの特定の態様においては、標的型攻撃保護モジュール103は、上記コンピューティングデバイス101上で実行されコンピュータネットワークを通るファイルと関連する情報を、ローカル呼び出しログ109とともに記録するように構成される。この態様においては、標的型攻撃保護モジュールは、別個のリモートサーバ上に位置し、少なくとも1台のコンピューティングデバイス101とコンピュータネットワーク105を介して接続されてもよい。いくつかの態様においては、この情報は下記のうち1つ以上を含んでもよい。
・侵入の痕跡、
・セキュリティ判定(例えば、サンドボックス、IDSの判定)、
・実行ファイルのチェックサム、または、ファイルの一部のチェックサム、
・コンピューティングデバイス101へのファイルアップロードの送信元(例えば、ソースIPアドレス、コンピュータに対するファイルのダウンロード元のフラッシュドライブ、等)、
・ファイルがネットワーク越しに送信しているデータ(例えば、どのIPアドレスがアクセスされているか、どのパケットが送信されているか、等)、
・ファイルがネットワーク越しに受信しているデータ(例えば、どのIPアドレスから送信されているか、どのパケットが送信されているか、等)、
・コンピュータ上におけるDNSサーバの置換。
この態様における標的型攻撃保護モジュール103は、さらに、ローカル呼び出しログ109を検出モジュール110に送信し、検出モジュール110は、ステップ404において、ローカル呼び出しログ記録109を結合呼び出しログ116に追加する。1つの特定の態様においては、標的型攻撃保護モジュール103をローカル脅威データベース112に対しても関連付けることができる。この場合、標的型攻撃保護モジュール103は、ローカル呼び出しログ109の中から、ローカル脅威データベース112から得た挙動ルールとの適合性を検索することができる。少なくとも1つの挙動ルールとの適合性が見つかった場合、ファイルが悪意あるものと判定することができ、適切な判定が下される。ファイルが実行されているコンピューティングデバイス101上に位置する保護モジュール102に通知が送信されることになる。その後、保護モジュール102は、マルウェアによって特定されたファイルを回復させる処置を講じることになる。標的型攻撃保護モジュール103が、どの挙動ルールとの適合性も検出しなかった場合、ステップ403において、ローカル呼び出しログ109は検出モジュール110に送信されることになる。1つの特定の態様においては、ローカル呼び出しログ109とローカル脅威データベース112は、標的型攻撃保護モジュール103として、同一のリモートサーバ上に位置している。
図5は、悪意あるファイルを検出するためのシステムおよび方法の各態様を、本開示の態様の一例に従って実現できる汎用コンピュータシステムを示す図である。
図示のように、コンピュータシステム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のコンピュータ命令、データ構造体、プログラムモジュール、およびその他のデータを記憶する、独立の電源で動作するモジュールである。
コンピュータシステム20は、コントローラ55を介してシステムバス23と接続されたハードディスク27、リムーバブル磁気ディスク29、およびリムーバブル光学ディスク31を使用するシステムを含んでいる。コンピュータで読み取り可能な形式でデータの保存が可能な任意の種類の媒体56(ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ(RAM)等)を利用できることは、当業者には理解されるであろう。
コンピュータシステム20はファイルシステム36を有しており、その中には、オペレーティングシステム35の他に、追加的なプログラムアプリケーション37、その他のプログラムモジュール38、およびプログラムデータ39を保存することができる。コンピュータシステム20のユーザはキーボード40、マウス42、あるいは、その他、例えば、マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を含むがそれらに限られない当業者に公知の入力装置を使用して、コマンドおよび情報を入力することができる。そのような入力装置は、一般に、コンピュータシステム20に、システムバスと接続されたシリアルポート46を通して差し込まれるが、当業者は、入力装置を、例えば、限定はされないが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス(USB)等の他の方法で接続してもよいことを理解するであろう。モニタ47または他の種類の表示装置も、ビデオアダプタ48等のインターフェースを介してシステムバス23と接続してもよい。パーソナルコンピュータは、モニタ47に加えて、スピーカ、プリンタ等の周辺出力装置(図示せず)を備えてもよい。
コンピュータシステム20を、1台以上のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境下で動作させてもよい。リモートコンピュータ49は、上記コンピュータシステム20の特徴説明の中で述べた要素のほとんどまたは全部を備えたローカルコンピュータワークステーションまたはサーバであってもよい。例えば、ルータ、ネットワークステーション、ピアデバイス、その他のネットワークノード等を含むがそれらに限られないその他の装置がコンピュータネットワークの中に存在してもよい。
ネットワーク接続によって、ローカルエリアコンピュータネットワーク(LAN)50および広域コンピュータネットワーク(WAN)を形成することができる。そのようなネットワークは企業コンピュータネットワークや社内ネットワークで利用され、一般に、インターネットにアクセスできる。LANおよびWANのネットワークにおいては、パーソナルコンピュータ20は、ネットワークアダプタまたはネットワークインターフェース51を介してローカルエリアネットワーク50と接続されている。ネットワークを利用する場合、コンピュータシステム20は、インターネットのような広域コンピュータネットワークとの通信を可能にする、モデム54、または、その他の当業者に公知のモジュールを採用してもよい。モデム54は、内部装置であっても外部装置であってもよいが、シリアルポート46によってシステムバス23と接続してもよい。上記ネットワーク接続は、1台のコンピュータが通信モジュールを使って他のコンピュータとの接続を確立する数多くの広く理解されている方法の非限定例であることは、当業者には理解されるであろう。
様々な態様において、本明細書で説明したシステムおよび方法は、ハードウェア、ソフトウェア、ファームウェア、あるいはそれらの任意の組み合わせの中に実現されてもよい。ソフトウェア中に実現された場合、方法は、非一時的なコンピュータ読み取り可能な媒体上に、1つ以上の命令またはコードとして記憶されてもよい。コンピュータ読み取り可能な媒体には、データストレージが含まれる。一例として、限定はされないが、そのようなコンピュータ読み取り可能な媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、あるいは他の種類の電気的、磁気的、または光学的記憶媒体、もしくは、所望のプログラムコードを命令やデータ構造体の形で運搬または記憶するために利用可能で、汎用コンピュータのプロセッサからアクセス可能な、その他の任意の媒体を含むことができる。
様々な態様において、本開示で説明したシステムおよび方法を、モジュールの意味で扱うことができる。本明細書で使われている用語「モジュール」とは、例えば、特定用途向け集積回路(ASIC)やフィールドプログラマブルゲートアレイ(FPGA)によるハードウェアを用いて実現されるか、あるいは、例えば、マイクロプロセッサシステムと、(実行時に)マイクロプロセッサシステムを専用デバイスに変換するモジュールの機能性を実現する一連の命令によるハードウェアとソフトウェアの組み合わせとして実現された、実世界の装置、構成要素、または構成要素の配置のことである。モジュールは、特定の機能をハードウェアのみで促進し、その他の機能をハードウェアとソフトウェアの組み合わせによって促進する、上記2つの組み合わせとしても実現できる。特定の実現形態においては、少なくとも一部、場合によっては全部のモジュールが、汎用コンピュータのプロセッサ上(例えば、上記図4で詳説されているもの)で実行されてもよい。したがって、各モジュールは各種の適切な構成の中に実現可能であり、本明細書に例示したいかなる特定の実現形態にも限定されるべきではない。
明確化のために、各態様の定型的な特徴のすべてが本明細書に示されているわけではない。本開示の実際の実現形態のいかなる開発においても、開発者の具体的目的を達成するために、実現形態に特有の多くの決定をする必要があり、具体的目的は、実現形態ごとおよび開発者ごとに異なるということが理解されるであろう。そのような開発努力は複雑で多くの時間を要するものであるが、それにもかかわらず、本開示から利益を得る当業者にとって、定型的な技術的取り組みであることが理解される。
さらに、本明細書で用いている表現や用語は説明上のものであって、限定のためではなく、本明細書の用語や表現は、当業者が、当業者の知識と組み合わせて、本明細書が提供する教示や手引きの観点から解釈すべきものと理解すべきである。加えて、明示的記載がない限り、本明細書や請求の範囲におけるいかなる用語も、一般的でない、あるいは特別な意味を持つものとみなされることは意図されていない。
本明細書に開示された様々な態様は、本明細書で例示により言及された公知のモジュールと均等な現在および将来の公知の均等物を包含する。さらに、態様および応用例を図示し、かつ、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの変更が可能であることは、この開示の利益を有する当業者には明らかであろう。

Claims (24)

  1. コンピュータが実行する、悪意あるファイルを検出するための方法であって、
    1台以上のコンピュータから、各コンピュータ上で実行中のファイルから実行された関数呼び出しを含む1つ以上の呼び出しログを受信することと、
    前記1つ以上の呼び出しログを結合して、リモートサーバ上に位置する結合呼び出しログとすることと、
    前記リモートサーバ上に位置する前記結合呼び出しログを検索して、脅威データベースに記憶されている1つ以上の挙動ルールに対する適合性を発見することと、
    前記1つ以上の挙動ルールが前記リモートサーバ上に位置する前記呼び出しログの中に発見された場合、実行されている前記ファイルに関する判定を下すことと、
    前記判定に関する情報を前記1台以上のコンピュータに送信することと、を含む各処理を前記コンピュータが実行することを特徴とする、方法。
  2. 前記1つ以上の挙動ルールを検索済みの前記1つ以上の呼び出しログを受信することをさらに含み、前記1つ以上の挙動ルールは、前記各コンピュータ上で実行中の前記ファイルが、悪意あるソフトウェア、および、条件によっては望ましくないソフトウェアのうちの少なくとも一方であることを示すことを特徴とする、請求項1に記載の方法。
  3. 前記リモートサーバ上に位置する前記結合呼び出しログが、前記1台以上のコンピュータのうちの1台のコンピュータの呼び出しログから取得した少なくとも1つのレコードであって、前記各コンピュータの呼び出しログには存在しない少なくとも1つのレコードを含む場合に限って、前記1つ以上の呼び出しログを結合することをさらに含むことを特徴とする、請求項1に記載の方法。
  4. 前記リモートサーバ上に位置する前記結合呼び出しログは、実行中の前記ファイルから起動されたプロセスの制御フローグラフを含むことを特徴とする、請求項1に記載の方法。
  5. 前記判定はウィルス、ワーム、トロイの木馬、および、条件によっては望ましくないソフトウェアのうちの少なくとも1つであることを特徴とする、請求項1に記載の方法。
  6. 前記1つ以上の挙動ルールは、疑わしい関数のリストにあるAPI関数の呼び出し、特定の関数の指定回数呼び出し、関数呼び出しの順序、前記コンピュータ上のドメインネームシステム(DNS)サーバ情報の交換、オペレーティングシステム更新の無効化、および、ネットワークファイアウォールの無効化のうちの少なくとも1つを含むことを特徴とする、請求項1に記載の方法。
  7. 前記ファイルに対するウィルスシグネチャを作成することと、前記ウィルスシグネチャを前記1台以上のコンピュータに送信することとをさらに含むことを特徴とする、請求項1に記載の方法。
  8. 前記実行中のファイルに関する情報を前記1つ以上の呼び出しログに記録することをさらに含むことを特徴とする、請求項1に記載の方法。
  9. 前記情報は、侵入の痕跡、セキュリティ判定、前記実行中のファイルのチェックサム、または前記実行中のファイルの一部のチェックサム、前記各コンピュータに対する前記実行中のファイルのアップロードの送信元、前記実行中のファイルによる送信データと受信データのうち少なくとも一方、および、DNSサーバ情報が前記各コンピュータ上で交換されたかどうかのうちの少なくとも1つを含むことを特徴とする、請求項8に記載の方法。
  10. 悪意あるファイルを検出するためのシステムであって、
    複数のコンピュータを含む情報システムを備え、
    前記複数のコンピュータのそれぞれは、
    各コンピュータ上のファイルの実行中にアプリケーションプログラミングインターフェース(API)呼び出しを記録し、
    ローカル呼び出しログの中から、ローカル脅威データベースから得られた1つ以上の挙動ルールを検索し、
    前記1つ以上の挙動ルールが前記ローカル呼び出しログの中から発見された場合、前記ファイルが悪意あるものであると判定し、かつ、前記各コンピュータ上の前記ファイルの実行を停止し、
    前記1つ以上の挙動ルールが前記ローカル呼び出しログの中から発見されなかった場合、前記ローカル呼び出しログを検出モジュールに送信する、
    コンピュータ保護モジュールを備え、
    前記情報システムと接続され、リモートサーバ上に位置する前記検出モジュールは、
    前記複数のコンピュータのそれぞれの前記コンピュータ保護モジュールから受信した前記ローカル呼び出しログを結合して、前記リモートサーバ上に位置する結合呼び出しログとし、
    前記リモートサーバ上に位置する前記結合呼び出しログの中から、第2の脅威データベースから得た前記1つ以上の挙動ルールを検索し、
    前記1つ以上の挙動ルールが前記リモートサーバ上に位置する前記結合呼び出しログの中に発見された場合、前記ファイルが悪意あるものであることを示す判定を下し、前記ファイルに対するウィルスシグネチャを作成し、前記ウィルスシグネチャを各コンピュータの前記コンピュータ保護モジュールに送信することを特徴とする、システム。
  11. 前記検出モジュールは、さらに、前記1つ以上の挙動ルールを検索済みの前記1つ以上の呼び出しログを受信し、前記1つ以上の挙動ルールは、前記各コンピュータ上で実行中の前記ファイルが、悪意あるソフトウェア、および、条件によっては望ましくないソフトウェアのうちの少なくとも一方であることを示すことを特徴とする、請求項10に記載のシステム。
  12. 前記検出モジュールは、前記リモートサーバ上に位置する前記結合呼び出しログが、前記複数のコンピュータのうちの1台のコンピュータの呼び出しログから取得した少なくとも1つのレコードであって、前記各コンピュータの呼び出しログには存在しない少なくとも1つのレコードを含む場合に限って、前記1つ以上の呼び出しログを結合することを特徴とする、請求項10に記載のシステム。
  13. 前記リモートサーバ上に位置する前記結合呼び出しログは、実行中の前記ファイルから起動されたプロセスの制御フローグラフを含むことを特徴とする、請求項10に記載のシステム。
  14. 前記判定はウィルス、ワーム、トロイの木馬、および、条件によっては望ましくないソフトウェアのうちの少なくとも1つであることを特徴とする、請求項10に記載のシステム。
  15. 前記1つ以上の挙動ルールは、疑わしい関数のリストにあるAPI関数の呼び出し、特定の関数の指定回数呼び出し、関数呼び出しの順序、前記コンピュータ上のドメインネームシステム(DNS)サーバ情報の交換、オペレーティングシステム更新の無効化、および、ネットワークファイアウォールの停止のうちの少なくとも1つを含むことを特徴とする、請求項10に記載のシステム。
  16. 前記ローカル呼び出しログの中の前記実行中のファイルに関する情報を記録する標的型攻撃保護モジュールをさらに含むことを特徴とする、請求項10に記載のシステム。
  17. 前記情報は、侵入の痕跡、セキュリティ判定、前記実行中のファイルのチェックサム、または前記実行中のファイルの一部のチェックサム、前記各コンピュータに対する前記実行中のファイルのアップロードの送信元、前記実行中のファイルによる送信データと受信データのうち少なくとも一方、および、DNSサーバ情報が前記各コンピュータ上で交換されたかどうかのうちの少なくとも1つを含むことを特徴とする、請求項16に記載のシステム。
  18. プロセッサによって実行されたときに悪意あるファイルを検出するための方法を実行する命令を記憶した非一時的なコンピュータ読み取り可能な媒体であって、前記方法は、
    1台以上のコンピュータから、各コンピュータ上で実行中のファイルから実行された関数呼び出しを含む1つ以上の呼び出しログを受信することと、
    前記1つ以上の呼び出しログを結合して、リモートサーバ上に位置する結合呼び出しログとすることと、
    前記リモートサーバ上に位置する前記結合呼び出しログを検索して、脅威データベースに記憶されている1つ以上の挙動ルールに対する適合性を発見することと、
    挙動ルールが前記リモートサーバ上に位置する前記呼び出しログの中に発見された場合、実行されている前記ファイルに関する判定を下すことと、
    前記判定に関する情報を前記1台以上のコンピュータに送信することと、
    を含むことを特徴とする、コンピュータ読み取り可能な媒体。
  19. 前記1つ以上の挙動ルールを検索済みの前記1つ以上の呼び出しログを受信することをさらに含み、前記1つ以上の挙動ルールは、前記実行中のファイルが、悪意あるソフトウェア、および、条件によっては望ましくないソフトウェアのうちの少なくとも一方であることを示すことを特徴とする、請求項18に記載の媒体。
  20. 前記リモートサーバ上に位置する前記結合呼び出しログが、前記1台以上のコンピュータのうちの1台のコンピュータの呼び出しログから取得した少なくとも1つのレコードであって、前記各コンピュータの呼び出しログには存在しない少なくとも1つのレコードを含む場合に限って、前記1つ以上の呼び出しログを結合することをさらに含むことを特徴とする、請求項18に記載の媒体。
  21. 前記リモートサーバ上に位置する前記結合呼び出しログは、実行中の前記ファイルから起動されたプロセスの制御フローグラフを含むことを特徴とする、請求項18に記載の媒体。
  22. 前記判定はウィルス、ワーム、トロイの木馬、および、条件によっては望ましくないソフトウェアのうちの少なくとも1つであることを特徴とする、請求項18に記載の媒体。
  23. 前記1つ以上の挙動ルールは、疑わしい関数のリストにあるAPI関数の呼び出し、特定の関数の指定回数呼び出し、関数呼び出しの順序、前記コンピュータ上のドメインネームシステム(DNS)サーバ情報の交換、オペレーティングシステム更新の無効化、および、ネットワークファイアウォールの停止のうちの少なくとも1つを含むことを特徴とする、請求項18に記載の媒体。
  24. 前記ファイルに対するウィルスシグネチャを作成することと、前記ウィルスシグネチャを前記1台以上のコンピュータに送信することとをさらに含むことを特徴とする、請求項18に記載の媒体。
JP2018157019A 2017-10-19 2018-08-24 悪意あるファイルを検出するシステムおよび方法 Active JP6639588B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762574248P 2017-10-19 2017-10-19
US62/574,248 2017-10-19
US16/011,822 US10867039B2 (en) 2017-10-19 2018-06-19 System and method of detecting a malicious file
US16/011,822 2018-06-19

Publications (2)

Publication Number Publication Date
JP2019079500A JP2019079500A (ja) 2019-05-23
JP6639588B2 true JP6639588B2 (ja) 2020-02-05

Family

ID=63449327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018157019A Active JP6639588B2 (ja) 2017-10-19 2018-08-24 悪意あるファイルを検出するシステムおよび方法

Country Status (4)

Country Link
US (2) US10867039B2 (ja)
EP (1) EP3474176B1 (ja)
JP (1) JP6639588B2 (ja)
CN (1) CN109684832B (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911472B2 (en) * 2016-02-25 2021-02-02 Imperva, Inc. Techniques for targeted botnet protection
US10855711B2 (en) 2018-06-06 2020-12-01 Reliaquest Holdings, Llc Threat mitigation system and method
US11709946B2 (en) 2018-06-06 2023-07-25 Reliaquest Holdings, Llc Threat mitigation system and method
RU2708355C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде
US11200317B2 (en) * 2018-07-22 2021-12-14 Minerva Labs Ltd. Systems and methods for protecting a computing device against malicious code
US10812507B2 (en) 2018-12-15 2020-10-20 KnowBe4, Inc. System and methods for efficient combining of malware detection rules
FI3823322T3 (fi) * 2018-12-20 2023-04-27 Merck Patent Gmbh Menetelmiä ja järjestelmiä esineen todennuksen valmisteluun ja suorittamiseen
CN110135160B (zh) * 2019-04-29 2021-11-30 北京邮电大学 软件检测的方法、装置及***
US11516228B2 (en) * 2019-05-29 2022-11-29 Kyndryl, Inc. System and method for SIEM rule sorting and conditional execution
USD926810S1 (en) 2019-06-05 2021-08-03 Reliaquest Holdings, Llc Display screen or portion thereof with a graphical user interface
USD926809S1 (en) 2019-06-05 2021-08-03 Reliaquest Holdings, Llc Display screen or portion thereof with a graphical user interface
USD926200S1 (en) 2019-06-06 2021-07-27 Reliaquest Holdings, Llc Display screen or portion thereof with a graphical user interface
USD926782S1 (en) 2019-06-06 2021-08-03 Reliaquest Holdings, Llc Display screen or portion thereof with a graphical user interface
USD926811S1 (en) 2019-06-06 2021-08-03 Reliaquest Holdings, Llc Display screen or portion thereof with a graphical user interface
CN112149126A (zh) * 2019-06-28 2020-12-29 卡巴斯基实验室股份制公司 确定文件的信任级别的***和方法
US11238154B2 (en) * 2019-07-05 2022-02-01 Mcafee, Llc Multi-lateral process trees for malware remediation
KR102317833B1 (ko) * 2019-10-31 2021-10-25 삼성에스디에스 주식회사 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
CN111241546B (zh) * 2020-01-12 2022-06-21 苏州浪潮智能科技有限公司 一种恶意软件行为检测方法和装置
CN113626296A (zh) * 2020-05-09 2021-11-09 深圳云天励飞技术有限公司 一种***稳定性的检测方法、装置和终端
GB2597096B (en) * 2020-07-15 2022-10-05 British Telecomm Computer-implemented automatic security methods and systems
CN112182561B (zh) * 2020-09-24 2024-04-30 百度在线网络技术(北京)有限公司 一种后门的检测方法、装置、电子设备和介质
CN113032779B (zh) * 2021-02-04 2024-01-02 中国科学院软件研究所 一种基于行为参数布尔表达式规则的多行为联合匹配方法和装置
US20230076376A1 (en) * 2021-09-09 2023-03-09 Texas Instruments Incorporated Resource access in a microcontroller
US20230350782A1 (en) * 2022-04-28 2023-11-02 Twilio Inc. Data logging for api usage analytics

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060161816A1 (en) * 2004-12-22 2006-07-20 Gula Ronald J System and method for managing events
US8181248B2 (en) * 2006-11-23 2012-05-15 Electronics And Telecommunications Research Institute System and method of detecting anomaly malicious code by using process behavior prediction technique
US8984628B2 (en) 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
KR20120096983A (ko) * 2011-02-24 2012-09-03 삼성전자주식회사 악성 프로그램 검출 방법 및 이를 구현하는 휴대 단말기
US8555385B1 (en) 2011-03-14 2013-10-08 Symantec Corporation Techniques for behavior based malware analysis
US8955114B2 (en) * 2011-12-14 2015-02-10 Microsoft Corporation Application monitoring through collective record and replay
IL219499B (en) * 2012-04-30 2019-02-28 Verint Systems Ltd A system and method for detecting malicious software
IL219597A0 (en) 2012-05-03 2012-10-31 Syndrome X Ltd Malicious threat detection, malicious threat prevention, and a learning systems and methods for malicious threat detection and prevention
CA2874489A1 (en) * 2012-05-09 2013-11-14 SunStone Information Defense Inc. Methods and apparatus for identifying and removing malicious applications
US9146767B2 (en) * 2012-06-19 2015-09-29 Raytheon Company Secure cloud hypervisor monitor
US9754105B1 (en) * 2012-09-25 2017-09-05 Malwarebytes Corporation Preventing the successful exploitation of software application vulnerability for malicious purposes
JP2014071796A (ja) 2012-10-01 2014-04-21 Nec Corp マルウェア検知装置、マルウェア検知システム、マルウェア検知方法、及びプログラム
JP6326502B2 (ja) * 2013-12-27 2018-05-16 マカフィー, エルエルシー 頻度に基づくレピュテーション
CN104133691B (zh) 2014-05-05 2016-08-31 腾讯科技(深圳)有限公司 加速启动的方法及装置
US9329974B2 (en) * 2014-06-26 2016-05-03 Intel Corporation Technologies for determining binary loop trip count using dynamic binary instrumentation
CN104573515A (zh) * 2014-12-19 2015-04-29 百度在线网络技术(北京)有限公司 一种病毒处理方法、装置和***
US9332029B1 (en) 2014-12-24 2016-05-03 AO Kaspersky Lab System and method for malware detection in a distributed network of computer nodes
JP2016143320A (ja) 2015-02-04 2016-08-08 富士通株式会社 ログ監視方法、ログ監視装置、ログ監視システム、及びログ監視プログラム
US9483643B1 (en) 2015-03-13 2016-11-01 Symantec Corporation Systems and methods for creating behavioral signatures used to detect malware
US20170134405A1 (en) * 2015-11-09 2017-05-11 Qualcomm Incorporated Dynamic Honeypot System
RU2628921C1 (ru) * 2016-03-18 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ выполнения антивирусной проверки файла на виртуальной машине

Also Published As

Publication number Publication date
EP3474176B1 (en) 2021-03-24
US20190121977A1 (en) 2019-04-25
EP3474176A1 (en) 2019-04-24
CN109684832A (zh) 2019-04-26
JP2019079500A (ja) 2019-05-23
US20210064748A1 (en) 2021-03-04
US11829473B2 (en) 2023-11-28
CN109684832B (zh) 2023-06-30
US10867039B2 (en) 2020-12-15

Similar Documents

Publication Publication Date Title
JP6639588B2 (ja) 悪意あるファイルを検出するシステムおよび方法
JP7084778B2 (ja) 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法
US10599841B2 (en) System and method for reverse command shell detection
US10242186B2 (en) System and method for detecting malicious code in address space of a process
CN110119619B (zh) 创建防病毒记录的***和方法
US8955138B1 (en) Systems and methods for reevaluating apparently benign behavior on computing devices
JP2019067372A (ja) プロセスのアドレス空間内の悪意のあるコードの検出のためのシステムおよび方法
Qbeitah et al. Dynamic malware analysis of phishing emails
Hassan et al. Endpoint Defense Strategies: How to Protect Endpoints from Ransomware Attacks
RU2673407C1 (ru) Система и способ определения вредоносного файла
EP3522058B1 (en) System and method of creating antivirus records
Major A Taxonomic Evaluation of Rootkit Deployment, Behavior and Detection
Pektaş Classification des logiciels malveillants basée sur le comportement à l'aide de l'apprentissage automatique en ligne
Corregedor An Architecture for Anti-Malware Protection Based on Collaboration

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191224

R150 Certificate of patent or registration of utility model

Ref document number: 6639588

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