JP5961183B2 - 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法 - Google Patents

文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法 Download PDF

Info

Publication number
JP5961183B2
JP5961183B2 JP2013542187A JP2013542187A JP5961183B2 JP 5961183 B2 JP5961183 B2 JP 5961183B2 JP 2013542187 A JP2013542187 A JP 2013542187A JP 2013542187 A JP2013542187 A JP 2013542187A JP 5961183 B2 JP5961183 B2 JP 5961183B2
Authority
JP
Japan
Prior art keywords
software application
side component
client
malicious
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.)
Expired - Fee Related
Application number
JP2013542187A
Other languages
English (en)
Other versions
JP2014504399A (ja
JP2014504399A5 (ja
Inventor
オリバー・フリードリックス
アルフレッド・ヒューガー
アダム・ジェイ・オドネル
Original Assignee
シスコ テクノロジー,インコーポレイテッド
シスコ テクノロジー,インコーポレイテッド
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 シスコ テクノロジー,インコーポレイテッド, シスコ テクノロジー,インコーポレイテッド filed Critical シスコ テクノロジー,インコーポレイテッド
Publication of JP2014504399A publication Critical patent/JP2014504399A/ja
Publication of JP2014504399A5 publication Critical patent/JP2014504399A5/ja
Application granted granted Critical
Publication of JP5961183B2 publication Critical patent/JP5961183B2/ja
Expired - Fee Related 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking

Description

本発明は、汎用演算デバイス(汎用コンピュータデバイス)のセキュリティに関し、とりわけ汎用演算デバイス上にある悪意のあるソフトウェア(マルウェア)を検出することに関する。
当業者には知られているように、毎日数万個もの新たな悪意のあるソフトウェアが確認されている。これらのプログラムは、汎用演算デバイスのセキュリティを危険にさらすものである。可能性のあるセキュリティ侵害は、これに限定されるものではないが、システムからの情報窃取、他の不正目的によるシステムへの侵入(スパムメールの送信等)、および一般的に、他の悪意のある行為目的による(オーナ以外の第三者による)システムの遠隔操作を含むものである。
悪意のあるソフトウェアを検出するための1つの定評のある技術は、次のステップを含むものである。
a)ソフトウェア・アプリケーションが悪意のあるものであることを、(たとえば、人が手作業でアプリケーションを解析して、1つまたはそれ以上の悪意のある挙動の存在を特定することにより)複数の独立した手段を用いて確立するステップ。
b)こうしたソフトウェアのハッシュまたはフィンガプリント値(明確な特徴値)を算出するステップ。ハッシュ値とは、2つの異なるアプリケーションは、圧倒的に高い確率で識別可能なフィンガプリント値を含むとの考え方に基づいて、ソフトウェア・アプリケーションの基本的なバイナリコンテンツを取り込み、比較的に短い文字列(ストリング)を生成する数学的変換値である。このフィンガプリント値をまたはハッシュ値を計算するための共通の関数は、限定するものではないが、SHA−256、SHA−1、およびMD5等が含まれる。フィンガプリント値をまたはハッシュ値の他、この変換値を説明するために当業者が用いる別の用語はシグネチャである。本発明の説明に際し、ハッシュ値、フィンガプリント値、およびシグネチャの用語は、互いに置換可能なものとして用いる。これらの用語は、互いに同義語ではないが、本発明を説明する上では、これらの相違は重要ではない。
c)汎用演算デバイスを操作するエンドユーザがハッシュ値にアクセスできるように、ハッシュ値を公開するステップ(たとえば既知の悪意のあるアプリケーションに関するブラックリストにハッシュ値として公表することができる。)。
d)公表されたフィンガプリント値と、システムに搭載(インストール)された新しいソフトウェア・アプリケーションのフィンガプリント値とを、汎用演算デバイスを用いて比較するステップ。
e)前者のフィンガプリント値と後者のフィンガプリント値が一致するか否か、所定のポリシに基づいて、一連のステップを実行する(たとえば新しいソフトウェア・アプリケーションのイントールを禁止する。)。
上記説明した手法には、ソフトウェア・アプリケーションが悪意のあるものであることが事前に特定された場合に限り機能するという問題がある。すなわち、この手法は反応性アプローチである。アプリケーションの基本的な作用が依然として悪意のあるものであっても、そのアプリケーションに表面的な変化を加えたものは、異なるフィンガプリント値を有することになる。換言すると、アプリケーションがブラックリストに含まれているものとは表面的には異なるように見えても、その基本的な作用は同一のものである(犯人がかつらやサングラスを用いて異なる変装をしても、基本的には同一人物であるという場合と同様である。)。ファイルが修正されると、対応するフィンガプリント値が変化し得る。フィンガプリント値が変化すると、事前に確立したアプリケーションのブラックリストのものとは合致せず、このアプリケーションは、反応性シグネチャ式プローチを用いる任意のアンチマルウェア技術による検出から逃れることができる。
マルウェア事例が最近急増しているのは、マルウェア作成者が、まったく新しいマルウェアアプリケーションを作成するのではなく、より数少ないアプリケーションに些細な変化を頻繁に加えることに起因するものと思われる。
この問題に対応するための当該技術における1つの手法は、ジェネリックシグネチャとして知られるものを開発するステップを含む。ソフトウェア・アプリケーションの基本的なバイナリコンテンツに表面的な変更を加えたとしても、このジェネリックシグネチャは不変量として設計されるものである。すなわち悪意のある第三者がバイナリコンテンツに表面的な変更を限定的に加えた場合に限り、得られるハッシュ値は変化しない。たとえばジェネリックシグネチャを生成する1つの手法は、以下の通りである。第1に、ファイルの構造的特性(たとえば異なるセクションのデータサイズ、シンボルの個数、さまざまなセクションのエントロピ等)を抽出する。第2に、これらの変数を標準化し、または複数のバケツに放り込む(複数のカテゴリに分類する)。たとえばデータサイズが0〜100であるとき、バケツ(カテゴリ)1に属するものとする。またデータサイズが100〜200であるとき、バケツ(カテゴリ)2に属するものとする。以下同様である。このとき我々は、シグネチャを生成するために、オリジナルファイルを用いるのではなく、シグネチャの基礎として標準化された構造的特徴を用いることができる。この考え方によれば、ファイルに表面的な変更を加えても、ファイルの基本的構造に対しては、ほとんど、またはまったく変化を与えず、標準化し、カテゴリに分類した後において、まったく変化が見られない。
その結果、単一のジェネリックシグネチャを用いて、所与の基本的なマルウェアの脅威だけでなく、多少の変更を加えたマルウェアの脅威をも検出することができる。シグネチャの概念をより明確にしやすくする物理的類似性を検討するために、あなたが犯人について説明しようとしている場合を想像されたい。きわめて独特な特徴(たとえば毛髪の色、目の色、最後に見たときの服装)を特定することにより、犯人について説明することができる。しかし犯人はかつらを着けているか、またはカラーコンタクトを着用している場合、毛髪や目の色等の特徴は役に立たない。代わりに、構造的な属性(たとえば犯人の伸長、体重、体型、人種等)に焦点を当てた場合、犯人が変装をしたとしても、これらの属性は同じである。さらに、これらの属性を標準化した場合(たとえば犯人の身長は、およそ6フィートであると表現するのではなく、正確に6フィート2インチであると表現し、または犯人の体型はきわめて独特であると表現するのではなく、犯人は体重が最も重い人と表現した場合)、犯人が厚底の靴やぶかぶかの服装を着用していた場合であっても、犯人を特定できる可能性が高い。
しかし当業者には知られているように、ジェネリックシグネチャには欠点がある。限定するものではないが、その欠点とは以下の通りである。
a)ジェネリックシグネチャを生成するためには、手作業による介入が必要となる(たとえばコンピュータウィルスの分析者が、ソフトウェア・アプリケーションのバイナリコンテンツを直接調べて、そのアプリケーションに対してわずかに変更された場合には、シグネチャの値が変わらないように、シグネチャの算出方法を特定する必要がある。)。上述の犯罪分析者の例においては、興味のある属性、およびその属性が取り得る値の範囲を正確に特定する必要があるかも知れない。
b)ジェネリックシグネチャは、誤検出しやすくなる傾向がある(すなわち、実際には安全なアプリケーションであっても、悪意のあるものと誤って判断しやすくなる。)。ジェネリックシグネチャは、単一の基本的なソフトウェア・アプリケーションを特定するだけでなく、それに関連する他のアプリケーションを特定するように設計されるので、適法なアプリケーションの基本的なバイナリコンテンツが、シグネチャの基礎となる悪意のあるアプリケーションのものと類似性を有するため、適法なアプリケーションが誤って悪意のあるものと特定されるリスクがある。上述の犯罪分析者の例においては、犯人の特徴があまりにも不明瞭である場合、身長が6フィートでずんぐりした人はすべて、犯人の特徴を有することになる。
したがって、上記課題に対処するように悪意のあるアプリケーションを検出する方法、構成部品、およびシステムを開発する必要性が存在する。本発明は、こうした必要性に対し、以下の方法を提供するものである。
a)手作業により解析する度合い、およびシステムにおける誤検出を低減するために、自動化によりジェネリックシグネチャを利用するための改善された方法、
b)システムにおける他の最近の(悪意のある)動作等の文脈情報を利用するための方法であって、システム上で作動する特定のソフトウェア・アプリケーションが悪意のあるものか否かに関して、より正確な実態像を形成する方法、
c)懸案のアプリケーションを評価するための機械学習モデルを開発すべく、コーパスを教育して、機械学習技術を利用する方法、および
d)上記方法a)〜c)のうちの2つまたはそれ以上の方法を含む方法。
本発明の1つの態様によれば、クライエントシステムからの文脈情報とともに、所与のソフトウェア・アプリケーションが悪意のあるものか否かについて判断するためのより攻撃的な検出エンジンを用いたシステムを提供する。このシステムは、以下のフェーズを有する。第1に、クライエントは、ソフトウェア・アプリケーションに遭遇し、ソフトウェア・アプリケーションが悪意のあるものか、安全なものかについての素性(特性)について判断することを所望する。クライエントは、限定するものではないが、アンチマルウェア技術、機械学習特徴属性等の当該技術において用いられた(SHA-256のような)従来式のフィンガプリント、ジェネリックシグネチャ等、そのアプリケーションに関するメタデータを抽出する。クライエントは、たとえば最近の感染履歴、システム上で実行中のアプリケーション、アクセスしたウェブサイト等の追加的な文脈情報を収集する。この文脈情報は、適当な場合には、当該技術分野において知られた任意の技術を用いて符号化される。次に、文脈情報とともにアプリケーションに関する情報は、(必要ならばネットワークを介して)サーバ側構成部品に送信される。(この構成部品は、遠隔サーバーコンピュータである必要はなく、ロジック回路自体はクライエントコンピュータ上にあるものであってもよい。ただし、本発明を明確とするために、クライエントコンピュータから送信される情報を処理する独立した構成部品である方がイメージしやすい)。サーバコンピュータは、文脈情報およびアプリケーション情報の両方を調査して、たとえばアプリケーションは実行に際して安全である旨のアプリケーションに関する判断を行う。サーバコンピュータは、クライエントコンピュータがなすべきことについての提案を符号化した応答をクライエントコンピュータに返信する。最終的にクライエントコンピュータは、サーバコンピュータの機能として、ローカルポリシーに基づいて、取るべき処理を判断する。
本発明の別の態様によれば、クライエント側構成部品が提供される。連続的に文脈情報を収集し、任意的には、文脈情報をサーバーに送信し、サーバーの支援を受けて、所与のソフトウェア・アプリケーションが脅威を含むものか否かについて判断する。この判断に際しては、脅威を特定する従来式の技術とともに文脈情報を利用する。文脈情報は、限定するものではないが、システム上に最近インストールされたアプリケーション、システム上で発見された最近の脅威についての情報および脅威が発見された時、クライエントコンピュータが最近アクセスした任意のウェブサイト、クライエントコンピュータがある地理的位置またはクライエントコンピュータのインターネットプロトコル・アドレス(IPアドレス)、およびクライエントコンピュータの識別子等を含むものであってもよい。クライエントコンピュータの識別子を用いて、サーバーコンピュータから見て同一のクライエントコンピュータによる異なるトランザクション(処理)をリンクさせるために、クライエントコンピュータを特定することができる。
本発明の別の態様によれば、構成部品は、クライエントまたはサーバーのいずれかに搭載することができるものであり、クライエントにより送信された文脈情報を用いたロジック回路を有し、このロジック回路は所与のソフトウェア・アプリケーションが悪意のあるものか否かについて判断を行うことができる。同様に、サーバーは、他のクライエントにより記述されたアプリケーションの文脈とともに、懸案のアプリケーションについて他のクライエントにより問い合わせされた頻度およびタイミング等の複数のクライエントから収集可能な追加的な文脈情報を用いることができる。一旦、判断がなされると、対応する提案が判断され、クライエントに送信される。
本発明に係る別の態様によれば、(クライエントシステム上で実行される)基本的な方法は、クライエントから文脈情報を収集して、所与の懸案のアプリケーションが脅威であるか否かの判断を支援することができる。基本的情報の具体例は、クライエントに対する最近のセキュリティイベント(たとえば他の悪意のあるソフトウェアすなわちマルウェアの検出等)、または特定の「リスクのある」ソフトウェア・アプリケーション(ピアツーピア・ファイル共有アプリケーション等)がシステム上の有無を含む。
本発明に係る別の態様によれば、ユーザシステム上の当該ソフトウェア・アプリケーションに付随する文脈情報とともに、所与の懸案のソフトウェア・アプリケーションに関するデータを調査し、当該ソフトウェア・アプリケーションについての判断(たとえば当該ソフトウェア・アプリケーションが悪意のあるものであって、侵入を防ぎ、排除すべきであるか否かについての判断)を行う方法が提供される。この方法は、一連の単純なルールを用いてもよい。たとえば、最近過去1時間以内に10件の脅威が発見され、別の脅威検出システムに基づいて(たとえば機械学習技術を用いて、またはジェネリックシグネチャを用いて)、現在のアプリケーションが65%の確率で悪意のあるものである場合、当該アプリケーションは悪意のあるものと判断する(他の情報がない場合には、真陽性判断の確率がたった65%であるということは、決定的な判断を行う上で不十分なものであるが、最近10件の脅威という文脈情報により、アプリケーションが悪意のあるものであるという可能性は遥かにより大きくなる。)。この方法は、機械学習技術を採用して、一連のルールを生成し、追加的なルールを効率的に符号化するより一般的な(よりジェネリックな)モデルを生成することができる。
本発明の態様によれば、所与のソフトウェア・アプリケーションに関するジェネリックフィンガプリント値を計算するとともに、同一のジェネリックフィンガプリント値を有するアプリケーションが悪意のあるものとみなすべきか否かを判断することができる。この場合、一連の予定された処理が当該ソフトウェアに対してなされることになる。
本発明の別の態様によれば、以下のステップを実行するサーバー側構成部品を提供される。第1に、ソフトウェア・アプリケーションを数学的に変形して、ジェネリックフィンガプリントを生成する。第2に、当該ソフトウェア・アプリケーションのジェネリックフィンガプリントを記録する。第3に、汎用演算デバイス上で実行可能な1つまたはそれ以上のステップを行い、ジェネリックフィンガプリントが悪意のあるものとみなすべきか否か判断する。第4に、クライエント側構成部品にその情報を送信する。
本発明の別の態様によれば、クライエント側構成部品が提供され、これは、第1に、ソフトウェア・アプリケーションに関するジェネリックフィンガプリント値を計算し、第2に、ジェネリックフィンガプリント値をサーバー側構成部品に送信し(またはサーバー側構成部品に関連するデータおよび局在的な処理についての知識を有する場合、これらのステップを局在的に反復し)、第3に、サーバー側構成部品により提供される予定された一連の処理を行い、その処理とは、(1)ジェネリックフィンガプリント以外の方法によりソフトウェア・アプリケーションが安全であるとみなされた場合にソフトウェア・アプリケーションを無視する処理、(2)ソフトウェア・アプリケーションが安全でないとみなされた場合にソフトウェア・アプリケーションをシステムから排除する処理、および(3)ソフトウェア・アプリケーションのさらなる処理および解析のために、異なるサーバー側構成部品にソフトウェア・アプリケーションを送信するd)処理を含む。
本発明の別の態様によれば、所与のソフトウェア・アプリケーションが計算されたジェネリックシグネチャを有する対象であるか否かを特定する方法が提供される。本発明に係る1つの実施形態において、この方法は、サーバー側構成部品において実行され、(電子回路、専用ロジック回路等の)ハードウェアと、(汎用コンピュータシステムまたは専用マシン等上で実行されるような)ソフトウェア、またはこれらの組み合わせを備えたロジックを処理することにより実行される。ただし、この方法をどこで、どのように実行するかの選択は、本明細書に開示するものに限定するものではなく、当業者にとっては、こうした選択肢は数多く存在することは明らかである。
本発明の別の態様によれば、主として、算出されたジェネリックシグネチャ値に基づいて、所与のジェネリックシグネチャを有するアプリケーションが悪意のあるもの(または安全なものである)とみなすべきであるか否かを判断する方法が提供される。1つの実施形態において、この方法は、サーバー側構成部品において実行され、(電子回路、専用ロジック回路等の)ハードウェアと、(汎用コンピュータシステムまたは専用マシン等上で実行されるような)ソフトウェア、またはこれらの組み合わせを備えたロジックを処理することにより実行される。ただし、この方法をどこで、どのように実行するかの選択は、本明細書に開示するものに限定するものではなく、当業者にとっては、こうした選択肢は数多く存在することは明らかである。
本発明の別の態様によれば、機械学習技術を用いて、ソフトウェア・アプリケーションが悪意のあるものとして特定するシステムが提供される。このシステムは、以下のフェーズを有する。第1に、学習データのコーパスを用いてモデルを構築する学習フェーズがある。このモデルは、ソフトウェア・アプリケーションを数学的に変換することにより求めることができる特徴ベクトルを入力値として取り込む。第2に、クライエントシステムが、悪意のある可能性を有するソフトウェア・アプリケーションから特徴ベクトルを抽出し、このモデルを用いてソフトウェア・アプリケーションを直接的に評価するか、またはバックエンド・サーバーに評価させるためにサーバーに送信することができる特徴抽出フェーズがある。第3に、抽出された特徴ベクトルがモデルに適応されて、懸案のアプリケーションが悪意のある可能性が高いか、または安全なものである可能性が高いかについて診断する評価フェーズがある。任意的には、2値的な分類(仕分け)だけでなく、この特徴(悪意のあるものか、安全なものか)の可能性を示すスコア(たとえば0〜100までのスコアであって、スコア0は確実に安全なものであることを示し、スコア100は確実に悪意のあるものであることを示す。)を生成する。第4に、この判断に基づいて、適当なポリシーを適用することができる。本発明の別の態様によれば、1つまたはそれ以上のサーバー側構成部品は、学習フェーズを実行することができる。1つの実施形態において、モデルを求めるために用いられるデータは、サーバー側構成部品と通信する実際のクライエントシステムの処理履歴から直接的に収集することができる。学習させることができる方法は、限定するものではないが、サポートベクターマシン、ニューラルネットワーク、決定木、単純ベイズアルゴリズム、ロジスティック回帰、および教師あり学習、半教師あり学習、および教師なし学習によるその他の技術を含むものである。本発明に係る学習態様または「モデル導出」態様は、ソフトウェア・アプリケーションを分類するための方法を提供できるものである限り、任意の上記技術を用いて実施することができる。学習が完了し、1つのモデルが導出されると、サーバー側構成部品は、そのモデルを用いて新たなソフトウェア案件の特徴ベクトルを評価するモジュールを自働的に構成することができる。
本発明の別の態様によれば、以下のステップを実行するクライエント側構成部品が提供される。すなわちクライエント側構成部品は、第1に、ソフトウェア・アプリケーションから関連する特徴ベクトル値を抽出するステップと、第2に、任意的には、これらの値をローカルモデルと比較して、ソフトウェア・アプリケーションが悪意のあるものか、安全なものであるかを判断するステップと、第3に、任意的には、小さいバイト数で符号化できるように、特徴ベクトルを圧縮するステップと、第4に、(圧縮した、または圧縮しない)特徴ベクトルをサーバー側構成部品に送信するステップと、第5に、サーバー側構成部品の応答に基づいたポリシーを適用するステップとを実行する。サーバー側構成部品の応答に基づくポリシーは、限定するものではないが、1つまたはそれ以上のオプションを含む。第1に、アプリケーションが確実に悪意のあるものと判断された場合、クライエント側構成部品は、そのアプリケーションをシステムから排除し、ユーザがインストールしようとする試みを妨害してもよい。第2に、アプリケーションが確実に悪意のあるものと判断されたのではないが、その可能性が高い場合、クライエント側構成部品は、そのアプリケーション自体のコピーをサーバー側構成部品に送信し、さらに拡張して処理を行い、詳細に解析を行ってもよい。本発明の別の態様によれば、以下のステップを実行するサーバー側構成部品が提供される。すなわちサーバー側構成部品は、第1に、(クライエント側構成部品から送信された)特徴ベクトルを受信するステップと、第2に、任意的には、クライエント側構成部品により圧縮された特徴ベクトルを解凍するステップと、第3に、特徴ベクトルを評価し、アプリケーションが悪意のあるものである可能性を判断するステップと、第4に、クライエント側構成部品がどのように応答すべきかを示す任意的な指令とともに、悪意のある可能性に関する情報をクライエント側構成部品に送信するステップとを実行する。本発明の1つの実施形態によれば、異なるサーバー側構成部品からの応答をどのように処理すべきかの実際のポリシーを、クライエント側構成部品自身に記憶させ、サーバー側構成部品単純な応答を送信してもよい。本発明の別の態様によれば、ソフトウェア・アプリケーションが悪意のある虞があるか否かを判断するモデルに学習させるための方法が提供される。この方法は、実際の領域内利用データを潜在的に活用することができる。本発明の別の態様によれば、クライエント側構成部品が、システム上の関連する文脈情報とともに、ソフトウェア・アプリケーションからの特徴ベクトルを抽出し、任意的には、この情報を圧縮し、そして圧縮した情報をサーバー側構成部品に送信するための方法が提供される。本発明の別の態様によれば、サーバー側構成部品が提供される。潜在的に圧縮された特徴ベクトルを受信し、圧縮された場合には解凍し、モデルに対して特徴ベクトルを評価し、この評価結果を悪意のあるアプリケーションを特定するための他の方法で得られた結果と比較し、そしてクライエント側構成部品にその素性を提供するものであってもよい。
本発明の別の態様によれば、2つまたはそれ以上のジェネリックシグネチャ、文脈情報、または機械学習導出モデルが、クライエントアプリケーションおよびサーバーアプリケーションのいずれか一方または両方において適用され、ソフトウェア・アプリケーションが悪意のあるものか否かを判断する。この実施形態によれば、クライエントアプリケーションは、(i)ソフトウェア・アプリケーションから特徴ベクトルを抽出するステップと、(ii)ソフトウェア・アプリケーションに関するメタテータを抽出し、ソフトウェア・アプリケーションがインストールされる可能性のあるシステムに関する文脈情報を収集するステップと、(iii)ソフトウェア・アプリケーションのジェネリック・フィンガープリント値を計算するステップのうちの2つまたはそれ以上のステップを実行し、得られたデータに関する情報をサーバーコンピュータに送信してもよい。サーバーアプリケーションは、上記情報を処理した後、真偽判断または関連情報をクライエントアプリケーションに返信し、クライエントアプリケーションは、サーバー側構成部品から受信した情報に基づいて、ソフトウェア・アプリケーションに対する処理を行ってもよい。
関連する実施形態によれば、サーバーアプリケーションは、(i)ソフトウェア・アプリケーションから得た特徴ベクトル、(ii)ソフトウェア・アプリケーションに関するメタデータ、およびソフトウェア・アプリケーションがインストールされる可能性のあるシステムに関する文脈情報、ならびに(iii)ソフトウェア・アプリケーションのジェネリック・フィンガープリント値のうちの2つまたはそれ以上を、クライエントアプリケーションから受信するものであってもよい。受信した情報にも依存するが、サーバーアプリケーションは、特徴ベクトルに関する情報をクライエントアプリケーションから受信すると、機械学習により導出された分類アルゴリズムを特徴ベクトルに適用し、メタデータおよび文脈情報をクライエントアプリケーションから受信すると、ソフトウェア・アプリケーションに関するメタデータ、およびクライエントシステムに関する文脈情報を精査し、そして/またはソフトウェア・アプリケーションのジェネリックシグネチャを受信すると、
そのジェネリックシグネチャが悪意のものあるものとみなすべきか否かを判断する。上記ステップが完了すると、サーバーアプリケーションは、ソフトウェア・アプリケーションが悪意のものあるものとみなすべきか否かについて判断を行い、ソフトウェア・アプリケーションが悪意のものあるものとみなすべきか否かについての判断に関する情報を、クライエントアプリケーションに送信する。
添付図面を参照して、本発明に係る好適な実施形態について以下説明する。
本発明に係るジェネリックシグネチャを用いた実施形態におけるクライエントコンピュータの処理手順を示すフローチャートである。 本発明に係る態様に基づいて、ファジー・フィンガープリントが決定的に悪意のあるものであるか否かを判断する方法を示すフローチャートである。 本発明に係る態様に基づいて、ファジー・フィンガープリントが悪意のある可能性があるものであるか否かを判断する方法を示すフローチャートである。なお、この方法に係るステップは、ファジー・フィンガープリントが決定的に悪意のあるものであるか否かを判断する方法のステップとほとんど同一である。実施化における相違点は、選択される数値パラメータMおよびCの値にある(アプリケーションが悪意のある可能性があるものであるか否かを判断するのではなく、アプリケーションが決定的に悪意のあるものであるか否かを判断するためには、少なくともMの値を大きくし、少なくともCの値を小さくすることを必要とする。)。これらのパラメータに対する適当な値は当業者により特定されることが期待される。 本発明の実施形態に係るジェネリック・フィンガープリント生成モジュールを含むクライエント側構成部品を示す構成図である。 本発明の実施形態に係るジェネリック・フィンガープリントに対して(悪意ありとする)確からしさを判断するための履歴データを解析するモジュールを含むサーバー側構成部品を示す構成図である。 本発明の機械学習の実施形態に係る機械学習方法を示すフローチャートである。 本発明の機械学習の実施形態に係るクライエントコンピュータによる特徴抽出方法を示すフローチャートである。 本発明の機械学習の実施形態に係るサーバーコンピュータによる評価方法を示すフローチャートである。 本発明の機械学習の実施形態に係る特徴ベクトル抽出モジュールを含むクライエント側構成部品の構成図である。 本発明の機械学習の実施形態に係る特徴ベクトル評価モジュールおよび特徴ベクトル抽出モジュールを含むサーバー側構成部品の構成図である。 本発明の実施形態に係る、懸案のアプリケーションが悪意のあるものであるか否かを判断するための文脈情報属性を収集する方法のステップを示すフローチャートである。 本発明の実施形態に係る、文脈情報属性を用いて悪意のあるアプリケーションを特定する方法のステップを示すフローチャートである。 本発明の実施形態に係る文脈情報収集モジュールを含むクライエント側構成部品の構成図である。 本発明の実施形態に係る文脈情報確信モジュールを含むサーバー側構成部品の構成図である。 本発明の実施形態に係る例示的なコンピュータシステムの構成図である。
以下の発明の詳細な説明において、本発明をより完全に説明するために、数多くの詳細な特徴について説明する。しかし、当業者には明らかなように、特定の詳細な特徴を備えていなくても、本発明を実施することができる。換言すると、本発明を明確に説明するために、広く知られた構造体およびデバイスについては、詳細には説明せず、ブロック図の形態で示す。
以下の発明の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算に関するアルゴリズムおよび象徴的表現を用いて説明する。他の当業者に対して本発明の実質的内容を最も効率的に教示するために、こうした説明および表現は、データ処理技術における当業者が用いる意義で行われる。複数のステップは、物理量の物理的操作を必要とするものである。必ずという訳ではないが、通常、これらの物理量は、記憶、転送、組み合わせ、比較、その他の操作の対象となり得る電気的または磁気的な信号の形態を有する。時には、主に共通の利用を理由に、これらの信号を、ビット、値(バリュー)、構成要素、シンボル、キャラクタ、用語、数字等として参照する。
ただし、これらの用語および類似する用語のすべては、適当な物理量に付随するものであり、これらの物理量に付与された単なる便宜上のラベルに過ぎないという点に留意されたい。以下の詳細な説明において特に言及がない限り、明細書全体において、「処理ステップ(processing)」、「演算ステップ(computing)」、「計算ステップ(calculating)」、「判断ステップ(determining)」、「表示ステップ(displaying)」等の用語を用いて、コンピュータシステムまたは同様の電子演算デバイスを説明するが、これは、コンピュータシステムのレジスタおよびメモリ内で(電子的な)物理量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタ、あるいは他の情報記憶デバイス、通信デバイス、または表示デバイス内の物理量として同様に表される他のデータに変換するものである。
本発明は、同様に、処理を実行する装置に関する。この装置は、必要な目的のために特に構成されるものであってもよいし、コンピュータに記憶されたコンピュータプログラムにより選択的に起動され、再構成される汎用コンピュータを含むものであってもよい。こうしたコンピュータプログラムは、コンピュータシステムバスに接続されるコンピュータ判読可能記憶媒体に記憶され、コンピュータ判読可能記憶媒体として、限定するものではないが、フロッピーディスク、光ディスク、CD−ROM、光磁気ディスク、リード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、EPROM、EEPROM、磁気カード、光カード等の任意のタイプのディスク、または電気的指令を記憶するのに適した任意のタイプの媒体が含まれる。
以下の説明は、本質的に、任意の特定のコンピュータまたは他の装置に関するものではない。本明細書の開示内容に基づいたプログラムを有する、さまざまな汎用システムを用いることができ、必要な方法ステップを実行するために、より特化した装置を構成することは有用であることを示すことができる。これらのさまざまなシステムに必要な構成は、以下の説明から明らかとなる。さらに本発明は、任意の特定のプログラム言語を用いて表現されるものではない。さまざまなプログラム言語を用いて、ここに記載される教示内容に係る本発明を実行することができる。マシン判読可能媒体は、マシン(たとえばコンピュータ)で判読可能な形態を有する情報を記憶または通信するための任意の機構を有する。マシン判読可能媒体は、たとえばリード・オンリー・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記録媒体、光記録媒体、フラッシュメモリデバイス、あるいは電気的、光学的、音響学的、または他の形態の伝播信号(たとえば搬送波、赤外線信号、デジタル信号等)を記憶する媒体であってもよい。
以下の説明において、当業者に一般に知られた用語について言及する。当該技術分野において、マルウェアの用語は、悪意のあるソフトウェア・アプリケーションを意味する。こうしたアプリケーションは、数多くの不正な目的を有することがある。たとえば、マルウェアを用いて、数多くの不正行為を実行することができる。これらの不正行為は、限定するものではないが、被害者のマシンからデジタル信号を窃取する行為、被害者のマシンを犯行に用いて、他の不正行為を行う行為(たとえば未承諾の電子メールメッセージまたはスパムを送信する行為)、被害者のマシンを遠隔制御する行為、および被害者のマシンの正常な動作を阻害する行為を含む。当該技術分野において、コンピュータウィルスは、一般に、悪意のあるソフトウェアの1つの具体例であると考えられている。コンピュータウィルスに加え、当該技術分野における他のタイプのマルウェアは、トロイの木馬、ワーム、ダウンローダ、ミスリーディングアプリケーションを含む。
アプリケーションの悪意は主観的なものと理解され、しばしばユーザは依存し、通常、明確に定義された一連のルールを有する。本明細書の目的のため、悪意のあるアプリケーションは、ユーザに不快感を与えるアプリケーションを意味するものと理解すべきである。
当該技術分野において、誤検出(偽陽性検出)の用語は、本来は適法なアプリケーションが誤って悪意のあるものと認定される状況を意味するものである。同様に、正検出(真陽性検出)の用語は、悪意のあるアプリケーションが正しく悪意のあるものとして認定される状況を意味するものである。偽陽性率とは、安全なアプリケーションがアンチマルウェア技術により間違って悪意のあるものと認定される確率(尤度)を意味する。真陽性率とは、悪意のあるアプリケーションがアンチマルウェア技術により正しく悪意のあるものとして認定される確率(尤度)を意味する。したがって、アンチマルウェア・ソフトウェアは、偽陽性率を低く維持して、高い真陽性率を実現することを目的とする。したがって、一般に、2つの確率の間には、逆のトレードオフの関係(二律背反)が成立する。あるアンチマルウェア技術がきわめて攻撃的で、数多くの脅威を検出するものである場合、偽陽性率が高くなる可能性がより大きくなる。したがって、アンチマルウェア技術が控えめで、より少数の脅威を検出するものである場合、偽陽性率が低くなることがある。当該技術分野において、真陽性率はときどき(正)検出率と呼ばれることがある。しかし、偽陽性率および偽陽性率は、データサンプルを用いて、一般に、概算により求められたものであることに留意されたい。アンチマルウェアの供給者は、偽陽性検出率と真陽性検出率との間の好適なトレードオフを提供しようとする。適法で重要なビジネスアプリケーションを誤って悪意のあるものと判断すると、顧客に対して甚大な財務上の損害を与えかねない。したがって、偽陽性検出はきわめて不適当である。いくつかの実施例では、偽陽性検出があまりにも適切でないため、供給者は、偽陽性検出率をきわめて小さく維持するために、低い真陽性検出率に甘んじることになる。
当該技術分野において、比較的に短い値の順列(シーケンス)であるシグネチャを用いて、アプリケーションが悪意のあるものか否かを特定することができる。最も一般的な変形において、ソフトウェア・アプリケーション全体に対して付与される変換値として、シグネチャを計算することである。当該技術において、シグネチャは、通常、マルウェアの既知の一部分について計算される。シグネチャは、クライエントのシステム内に転送されるか、またはサーバー内に記憶される。クライエントシステムがソフトウェアの新規な部分を確認すると、そのソフトウェア上でシグネチャを計算し、クライエントシステムのローカルデータ記憶媒体をチェックし、またはサーバーシステムに問い合わせ(照会)することにより、そのシグネチャがマルウェアソフトウェアの既知の一部分と一致するか否か判断する。当該技術分野において、シグネチャは、固有のものであってもよいし、一般的なものであってもよいことを理解されたい。2つのソフトウェア・アプリケーションが同一の固有のシグネチャを有する場合、相当の確率(尤度)で、これら2つのアプリケーションが完全に同一のものである。当該技術分野における固有のシグネチャの一つの具体例は、SHA−256のアプリで算出するハッシュ値である。
一般的なシグネチャは、固有のシグネチャとはことなるものであり、所与のアプリケーションの一連の変形アプリケーションは依然として同じシグネチャを有する可能性がある。あるアプリケーションについて検討すると、これに表面的に変更がなされた場合、固有のシグネチャが元のアプリケーションに対して計算されたものと相当に異なるのに、このアプリケーションに対するジェネリックシグネチャは、依然として、元のアプリケーションのものと同一である場合がある。当該技術分野におけるジェネリックシグネチャの一例はPEハッシュ(pehash)である。当該技術分野におけるジェネリックシグネチャの別の例は、SSディープハッシュ(ssdeep)である。
当該技術分野において、フィンガプリントの用語は従来式のシグネチャと関連付けられ、ファジー・フィンガープリントの用語はジェネリックシグネチャと関連付けられることがよくある。ファジー・フィンガープリントは、ソフトウェア・アプリケーションを入力値とし、(好適には短い)象徴的なシーケンスを出力する変換関数である。理想的には、ファジー・フィンガープリントは2つの素性を有する。第1には、2つのアプリケーションは(一方のアプリケーションに表面的なわずかな変更を加えて他方のアプリケーションを作成した場合)、本質的にきわめて類似しており、これらのアプリケーションのそれぞれのファジー・フィンガープリント値は同一となるはずである。第2には、2つのアプリケーションが相当に異なる場合には、理想的には、これらのアプリケーションのファジー・フィンガープリント値は異なるはずである。こうした素性は理想的なものであり、両方の素性が複数の事例において成立しない場合であっても、ファジー・フィンガープリント値は、なお有用である。ファジー・フィンガープリント値は、ジェネリックシグネチャの一例であり、ジェネリックシグネチャを計算するすべてのアプローチにより、対応するファジー・フィンガープリント値が得られる訳ではない。特に、ファジー・フィンガープリント値を用い、あるアプリケーションのファジー・フィンガープリント値が複数の既知の悪意のあるソフトウェア・アプリケーションに与えられた複数のファジー・フィンガープリント値と一致するか否かを確認して、そのアプリケーションが悪意のあるものか否かを判断することができる。わずかに異なるアプリケーションが同一のファジー・フィンガープリント値を有し得るので、ファジー・フィンガープリント値として機能し得る。当該技術分野におけるファジー・フィンガープリント値の一例は、PEハッシュ値(PEhash)である。当該技術分野におけるファジー・フィンガープリント値の別の例は、SSディープハッシュ値(SSdeep)である。
当該技術分野において、コンビクション(確信)の用語は、ソフトウェアの一部がクライエントシステムに対して悪意のあるものと判断された状況を意味するものである。
当該技術分野において、デジタルシグネチャ(デジタル署名)の用語は、公開鍵暗号作成法を用いて、1つのファイルから比較的に短い文字列を計算するための標準的な技術を意味するものである。ファイルから文字列を計算する暗号化するためには、いわゆる個人鍵(プライベート鍵)を利用する必要がある。公開鍵認証を用いて、ファイルの意図したデジタル署名が正しく計算されたか否か判断することができる。個人鍵の知識がなければ、復号化すべき署名を有効に計算することが導出不可能なものとして、署名方式のセキュリティを確保するものである。当該技術分野においては、このデジタル署名と、上記説明した悪意のあるアプリケーションを検出するタイプのシグネチャをともに「署名(シグネチャ)」と呼ぶが、両者を混同してはならない。
以下の説明において、機械学習の技術分野における当業者に知られた用語を用いる。最も単純な態様において、機械学習技術を用いて、オブジェクトを複数のセットからなる1つに分類することができる。アンチマルウェアの解決手段に関連して、機械学習技術を用いて、所与のソフトウェア・アプリケーションが悪意のありそうか、安全なものでありそうか判断し、分類に対する(悪意ありとする)確からしさ(判断確信度)を反映するスコア(得点)を生成することができる。以下の説明において、本発明の詳細説明が不明瞭となるのを避けるために、機械学習技術に関連する用語体系について、ソフトウェア・アプリケーションが悪意のあるものか、安全なものであるかについての分類のアプリケーションを参照しつつ説明する。第1に、機械学習アプローチは、当該技術分野においては学習フェーズ(training phase)として知られるものを含む傾向がある。悪意のあるものか、安全なものであるかについての分類ソフトウェア・アプリケーションに関連して、まず学習コーパス(training corpus)を構築する。学習コーパスは、通常、一連のソフトウェア・アプリケーションを有する。この一連のアプリケーションのそれぞれには、任意的には、その素性(特性)に関して、たとえば「安全なもの」、「悪意のあるもの」、または「未知のもの」等の「ラベル」が付与されている。このラベルは、手動による解析、またはその他の独立した、おそらくはより高価な手段を用いて判定することができる。ラベル付けされたデータを入手することはより高価であるものと理解されるが、未知のサンプルはより少数であることが好ましい。
さらにコーパスは、最終的には機械学習技術を適用する現実世界のシナリオを表現するものであることが好ましい。たとえばソフトウェア・アプリケーションの分類に関して、コーパス内のアプリケーションが通常、エンドユーザのコンピュータシステム上で確認される可能性のあるアプリケーションを反映し、とりわけ機械学習技術を用いて分類されるコンピュータシステム上のファイルを反映することが好ましい。学習フェーズの最初のプロセスにおいて、特徴ベクトルが各ソフトウェア・アプリケーションから抽出される。特徴ベクトルは、コーパス内のソフトウェア・アプリケーションの顕著な特徴を表現する一連の値である。これらの値は、ソフトウェア・アプリケーションが悪意のあるものか、安全なものか、いずれの傾向が大きいかについて判断する上で、特に関連性が深い(有意義な)ものであることが期待される。
たとえば1つの特徴値は、ファイルがデジタル署名されたものであるか否かを示す単一のバイナリデジット(0または1)であってもよい。この特徴は、実際には、違法なソフトウェア・アプリケーションがデジタル署名されることはほとんどないので、関連性が深いものとなり得る。別の有意義な特徴は、ソフトウェア・アプリケーションを含むファイルサイズである。この特徴は、悪意のあるソフトウェア・アプリケーションが安全なソフトウェア・アプリケーションよりファイルサイズが小さい傾向があるので、関連性が深いものとなり得る。重要なことは、悪意のあるソフトウェア・アプリケーションか、安全なものかを判断する上で、任意の単一の特徴が決定的な証拠とはなり得ないが、複数のこうした特徴値を確認することが決定的な証拠となり得る点に留意するである。数多くのアプリケーション事例において、機械学習システムで利用される特徴の種別は、完全自動化手段を用いて求められるというより、しばしば特定の専門家の判断により決定される。たとえば、ファイルがデジタル署名されたか否かを知ることが有用な情報であると判断する上で、専門家の判断を必要とする場合がある。
特徴ベクトルが学習コーパスから抽出されると、これらのベクトルは、任意のファイル自体に付随するラベルとともに、「学習フェーズ」を実現するアルゴリズムに供給される。学習フェーズの目的は、自動的に「モデル」を算出することにある。モデルは、入力値が特徴ベクトルで、出力値が分類である数学的関数を効率的に符号化するものである。マルウェアを検出するための機械学習技術を用いることに関連して、モデルの出力値は、「安全なもの」または「悪意のあるもの」というバイナリラベルとなり得る。特定の機械学習モデルは、ラベルの確からしさ(悪意ありと判断する確信度)を反映するスコアを生成することもできる。たとえば出力値は(「悪意尤度」が0.95)の形態を有する符号化であってもよく、この場合、モデルは特徴ベクトルが95%の確率で悪意のあるソフトウェア・アプリケーションであると確信するということを意味するものである。機械学習アルゴリズムは、理想的には、分類器を生成する必要があり、分類器は、学習例で得られたラベル(確からしさ)に合理的に一致し、新たなアプリケーション事例に対して生成される合理的な尤度(確率)を有するものである。実際には、モデルは、素性が知られていないアプリケーション事例に対して評価されることが予定されているので、合理的な尤度を生成することは重要なことである。
当該技術分野における特定の機械学習アルゴリズムは、単純ベイズアルゴリズム、人工ニューラルネットワーク、決定木(Decision Trees)、サポートベクターマシン、ロジスティック回帰、近傍法、等を有する。分類器の用語を用いて、モデルを記述することもできる。たとえばサポートベクターマシン分類器を意味する場合もある。一旦、分類器/モデルが確立されると、これを用いて、コンピュータまたはコンピュータネットワークに実際に提供されたソフトウェア・アプリケーションに関する新しい事例を評価することができる。
マルウェアの検出に関して、クライエントシステムは、まずソフトウェア・アプリケーションに付随する特徴ベクトルを抽出し、その特徴ベクトルをモデルに適応させて、その素性、および任意的には尤度(確からしさまたは悪意ありと判断する確信度の値)を求める。最後に、この情報に基づいて特定のポリシー(手順)を適用する。実際の分類化プロセスは、クライエントコンピュータで局在的に行う必要はない。むしろ遠隔サーバーコンピュータ上で実行することができ、この場合、クライエントコンピュータは、特徴ベクトルの符号をサーバーコンピュータに送信する。そしてサーバーコンピュータは、分類器を用いて、特徴ベクトルを評価し、関心のあるソフトウェア・アプリケーションの良否について対応する判定を行う。最終的な分類に関するポリシーは、尤度(確からしさまたは悪意ありと判断する確信度の値)を含む場合には、複雑なものとなり得る。たとえばシステムがきわめて危険な状態にあるか、またはきわめて影響を受けやすい情報を含むとき、ソフトウェア・アプリケーションが安全であるという可能性が高くなければ、そのソフトウェア・アプリケーションを遮断してもよい。他方、システムが影響を受けやすくないとき、反対の手順を取ることができる。すなわち特に、ソフトウェア・アプリケーションが悪意のあるものである可能性が高い場合に、そのソフトウェア・アプリケーションを遮断する。
以下の説明において、当業者に知られたログ情報(コンピュータの履歴情報)の概念を用いる。ログ情報とは、所与のシステム上のトランザクション(変更処理)およびアクション(動作)に関する履歴情報である。たとえばシステムがウェブサーバーである場合、ログには、システムに接続された複数のクライエントコンピュータに関する状況、接続回数、および処理内容が含まれる。ログを用いて、所与のシステム上で起こったことについて、合理的な概要を構成することができる。サーバー側構成部品を用いて、所与のソフトウェア・アプリケーションの素性を所望するクライエントコンピュータを支援するアンチウィルス・システムに関連して、イベント履歴エントリは、必ずしも限定するものではないが、以下のものを含む。すなわちイベント履歴エントリは、同じクライエントコンピュータからの個別のトランザクションをリンクするために用いられるクライエントコンピュータの識別子、クライエントコンピュータが特定のアプリケーションに対する素性を要求した時刻を特定するタイムスタンプ、(インターネットプロトコルまたはIPアドレスにより特定される)クライエントコンピュータの特定、素性が要求されたファイルの説明(たとえばMD5やSHA−256等のファイルフィンガプリントにより符号化されたファイルの説明)、アプリケーションに付随する任意のアンチウィルス・フィンガプリント(限定するものではないが、従来式のフィンガプリントおよび一般的なフィンガプリントを含む)、懸案のソフトウェア・アプリケーションの属性(限定するものではないが、懸案のソフトウェア・アプリケーションの機械学習特徴ベクトル)、懸案のソフトウェア・アプリケーションに関してその素性の判定を支援する文脈データ(コンテキストデータ)、サーバー側構成部品の応答(限定するものではないが、ソフトウェア・アプリケーションに最終的に付与された素性、ソフトウェア・アプリケーションが以前には存在しなかったか、フィールドで共有されるようになったソフトウェア・アプリケーションに関する追加的に記述する予備的素性、ソフトウェア・アプリケーションについてサーバーコンピュータがクライエントコンピュータに対して行った提案、および最終的な素性を補充するプロセスで用いられたさまざまな副次的な技術により付与された素性、および応答が有効である時間を示す反応に対する保持時間または生存時間(TTL))がある。
サーバーコンピュータに対する複数のクエリ(問い合わせ)は、複雑で多面的なものとなり得るので、履歴エントリには、クエリのタイプを特定するエントリが含まれることがある。たとえば、サーバーコンピュータに対する1つのクエリにおいて、クライエントコンピュータは、基本的なフィンガプリントのみを有することがある。同一ファイルに対する後続のクエリにおいて、クライエントコンピュータは、追加的な情報を含むことがある。これら2つのクエリは(解析するとき、同一のクライエントコンピュータが同一のファイルに対して2つのクエリを行った事実をリンクさせやすくできるが)、異なるクエリの種別により独立して記録してもよい。履歴は、複数のクライエントコンピュータから送信される複数の履歴エントリを含む。開示される発明において、展開される機械学習技術を履歴データ用いて学習させる。
開示される発明の目的のため、クライエントコンピュータ上で実行される2組のアプリケーションを区別することは有益である。「懸案のアプリケーション」なる用語は、クライエントコンピュータシステム上のユーザまたはアンチマルウェア構成部品が当該アプリケーションの素性(特性)に興味がある場合において、クライエントコンピュータシステム上に搭載されているソフトウェア・アプリケーションまたは搭載しようとしているソフトウェア・アプリケーションを参照するために用いられる。懸案のアプリケーションに加えて、本明細書は、たとえば懸案のアプリケーションの実行中に別に実行する可能性のある他のタイプのソフトウェア・アプリケーションについて記載する。こうしたソフトウェア・アプリケーションは、限定するものではないが、ウェブブラウザ、ピアツーピア・ファイル共有アプリケーション、銀行取引アプリケーション、またはPDFリーダを含むものであってもよい。悪意のあるアプリケーションは、ピアツーピア・ネットワークを介して送信されることが多いので、懸案のアプリケーションの実行中に、ピアツーピア・ファイル共有アプリケーションを実行させようとすることは、懸案のアプリケーションが悪意のあるものである可能性を若干増大させるものと指摘されている。同様のラインの中で、銀行取引アプリケーションを実行させようとする場合、懸案のアプリケーションが悪意のあるものか否かにかかわらず、懸案のアプリケーションの侵入を妨害し、またはその処理を一時停止させることは有意義である。なぜなら、懸案のアプリケーションが悪意のあるものであるリスクが小さい場合であっても、金銭的なデータが危険に晒され、または窃取されたときのコストに見合うものではないためである。こうした検討事項は、懸案のアプリケーションが悪意のある可能性に連動する単なる信号である点に留意すべきである。個別に事案を検討すると、こうした信号は、当該アプリケーションに対してアクションを取る根拠を与えるには十分でない可能性がある。しかし、懸案のアプリケーションに関する情報に加え、こうした複数の信号が、懸案のアプリケーションが悪意のあるイベントであるか否かについてのより決定的な証拠を提供することができる。こうした信号を特徴ベクトルの属性として見ることにより、機械学習方法を上記信号に適用することができる。
ジェネリックシグネチャの実施形態
本発明に係る1つの実施形態において、クライエント側構成部品およびサーバー側構成部品は、以下のように機能する。サーバー側構成部品は任意的な初期化フェーズで機能し、既知の悪意のあるファイルおよび安全なファイルの両方に対するファジー・フィンガープリント値を計算する。これらの結果は、従来型データベースやカード型データベース等のデータ記憶装置に記憶される。ファジー・フィンガープリント値を計算するためのアルゴリズムは、たとえばPEハッシュ値(PEhash)やSSディープハッシュ値(SSdeep)等の当該技術分野において知られたものであってもよい。択一的には、人手を要するアルゴリズムまたは専用のアルゴリズムを利用してもよい。フィンガープリントの態様の選択(すなわちクライエント側構成部品およびサーバー側構成部品が用いる同一のアルゴリズム)が一致している限り、フィンガープリントの態様の選択が、発明の具体化に影響を与えることはない。
ファジー・フィンガープリント値が決定的に悪意のあるもの(たとえば、これと同一のフィンガープリント値を有する数多くの既知の悪意のあるアプリケーションが存在し、これと同一のフィンガープリント値を有する安全なアプリケーションがまったく存在しない)との十分な証拠があるとサーバー側構成部品が判断した場合、そのファジー・フィンガープリントを決定的に悪意のあるものとラベル付けすることができる。この判定を支援するために、サーバー側構成部品は、安全なものであるか、その属性に基づいて安全なものであると確信される複数のアプリケーションに関するファジー・フィンガープリントを含むデータ構造を維持することができる。データ構造において確認されたファジー・フィンガープリントを有する任意のソフトウェア・アプリケーションは、決定的に悪意のあるものとラベル付けしないことが好ましい。この素性は、クライエントコンピュータへ直接送信されるか、サーバー側構成部品自体に記憶してもよいし、(クライエントコンピュータからクエリ(問い合わせがあったとき、クライエントコンピュータが利用できるようにしても)よい。
いくつかの証拠はあるが、依然として決定的な証拠がないとサーバー側構成部品が判断した場合(たとえば、これと同一のフィンガープリント値を有する既知の安全なアプリケーションが存在するが、処理して得たフィンガープリント値を有する1つまたはそれ以上の悪意のあるアプリケーションが存在する場合)、サーバー側構成部品は、そのファジー・フィンガープリントを悪意のある可能性があると判断することができる。また、いくつかの証拠はあるが、依然として決定的な証拠がないとサーバー側構成部品が判断した場合(たとえば、これと同一のフィンガープリント値を有する既知の安全なアプリケーションが存在する場合)、サーバー側構成部品は、そのファジー・フィンガープリントを安全なものであると判断することができる。同様に、安全なアプリケーションおよび悪意のあるアプリケーションの両方が特定のファジー・フィンガープリントを有する場合、サーバー側構成部品は、そのファジー・フィンガープリントを矛盾があるもの判断することができる。
クライエントコンピュータは、新たなファイルに遭遇したとき、まず任意的に当該技術分野における標準的技術を用いて、そのファイルが脅威を与えるか否かについて判断することができる。そのようなステップは、任意的には、アプリケーションの従来式のフィンガープリント値(たとえばSHA−2、MD5、および当該技術分野における他の既知の技術)を計算するステップと、任意的に、ファイルが悪意のあるものであるか否かについて、(可能ならば、遠隔サーバーコンピュータの支援を受けて)判断するために用いられる他のメタデータを収集するステップを含む。
クライエントコンピュータは、アプリケーションのファジー・フィンガープリントを計算する。任意的には、クライエントコンピュータは、ローカル記憶媒体にあるファジー・フィンガープリントを検索して、アプリケーションが悪意のあるものであるか否か判断し、悪意のあるものと判断した場合、適当な処理を行う。択一的には、クライエントコンピュータは、遠隔サーバーコンピュータに、ファジー・フィンガープリント値、およびアプリケーションに関して収集された他のすべてのデータ(従来式のフィンガープリント値およびその他のファイルのメタデータ)とともにクエリ(問い合わせ)を送信する。
その後、サーバーコンピュータは、受信した情報を記録することができる。(サーバーコンピュータが当該アプリケーションに関して受信した情報とともにすでに記録したであろう情報を用いて)フィンガープリント値が悪意のあるものであると決定的に判定された場合、サーバーコンピュータは、この素性(特性)をクライエントコンピュータに通知することができる。クライエントコンピュータは、適当な処理を行うことができる(本発明の1つの実施形態において、この処理は、当該アプリケーションを完全に削除するか、ユーザのコンピュータへのインストールを阻止することを含む。)。フィンガープリントが悪意のある可能性があると判定された場合、サーバーコンピュータは、この素性(特性)をクライエントコンピュータに通知することができる。クライエントコンピュータは、適当な処理を行うことができる(本発明の1つの実施形態において、この処理は、当該ソフトウェアのコピーを、さらに解析するためサーバーに、コンピュータへ送信することを含む。)。
本発明に係る1つの実施形態において、サーバーコンピュータは、所与のアプリケーションが悪意のあるものであるリスクを低減するために、数多くの安全装置を整備することができる。これらの安全装置は、限定するものではないが、以下のものを含む。第1に、より直接的な手段(たとえば、安全なソフトウェア・アプリケーションの既知のホワイトリスト中にあるアプリケーションと一致する、SHA−256などの従来式のフィンガープリント)を用いて、当該アプリケーションが安全であると判断された場合、サーバーコンピュータは、ファジー・フィンガープリントの素性を書き換えることができる。第2に、ファジー・フィンガープリントの利用を抑制することができる。たとえば、サーバーコンピュータは、このフィンガープリントに関する確からしさ(悪意ありと判断する確信度)を控えめな(適度な)ものに制限することができる。同様に、ファジー・フィンガープリントに基づく確からしさを、懸案のアプリケーションの出現頻度が所定の閾値より小さくなる状況に制限することができる。このシナリオにおいて、システムにパラメータNを導入することができ、当該アプリケーションがN個未満のシステムに出現すると考えられる場合に限り、悪意のあるものと判断してもよい。このように制限することにより、誤検出があった場合の誤検出による損害を少なくとも抑制することができる。悪意のあるファイルは、安全なファイルより出現頻度が小さいという傾向があることが知られている。したがって、ファイルの出現頻度が高い場合、悪意のあるファイルであるとの判断は、より注意深く行う必要がある。第3に、ファジー・フィンガープリントを用いて、ファイルが悪意のあるものと判断することを、悪意のある可能性が若干より高い特定の分類ファイルに制限することができる。たとえば、データサイズがより小さいファイルは、より大きいファイルに比して、悪意のある可能性がより高いことが知られている。これは、悪意のある第三者にとって、より小さいファイルを、被害者のコンピュータマシンにうまく送信する可能性がより高いためである。当該技術において、デジタル署名されたファイルは、デジタル署名されていないファイルに比して、悪意のある可能性がより低いことも知られている。他のファイル属性に対しても同様の検討を行うことができる。したがって、本発明の1つの実施形態では、任意的ではあるが、特に、データサイズが所定閾値より小さく、デジタル署名されていないソフトウェア・アプリケーションに対して、確からしさ(悪意ありと判断する確信度)に基づいたファジー・フィンガープリント値を抑制することができる。第4に、特定の状況の下では、確からしさに基づいたファジー・フィンガープリントを保存することができる。本発明の1つの実施形態では、あるコンピュータマシンが特定の脅威に感染しやすい場合(たとえば過去において、このタイプの脅威に遭遇したことがある場合や、特定の脅威に付随した地理的領域内にある場合)、こうした場合にファジー・フィンガープリントを利用することができる。
本発明の1つの実施形態では、サーバーコンピュータは、特定のファジー・フィンガープリントが悪意のあるものか、または安全なものかに対応するか否かについて、独立して判断することができる。この場合、サーバーコンピュータは、特定のファジー・フィンガープリントを有する既知のマルウェアの集合体から、複数のソフトウェア・アプリケーションの有無等に関する第三者の情報に依拠することができる。択一的には、サーバーコンピュータは、特定のファジー・フィンガープリントを有する安全なマルウェアの集合体から、複数のソフトウェア・アプリケーションの有無等について検索することができる。最後に、サーバーコンピュータは、ユーザコンピュータ履歴データを調査して、当該アプリケーションが悪意のあるものか、または安全なものかについて、その可能性を判断することができる。とりわけ、特定のファジー・フィンガープリントを有するアプリケーションがきわめて一般的なものであるが、悪意のあるものとして知られたものではない場合、当該アプリケーションが実際に安全なものである可能性は通常高い。この場合、この同一のファジー・ハッシュ値を有するアプリケーションを悪意のあるものと判断することには、リスクがある。
本発明に係る1つの態様を説明するために実施例1を示す。この実施例は、本発明に係る1つの実施可能なワークフローを説明するためのもので、本発明を明確に理解しやすくするためことを意図したものである。すなわち本発明を不明確にするのを回避するために実施例1では説明しないが、本発明の全体の範疇に含まれる変形例が数多くあるので、実施例1により本発明を制限する意図はまったくない。
実施例1において、クライエントコンピュータおよびサーバーコンピュータが設けられる。新たなソフトウェア・アプリケーションがクライエントコンピュータに提供される。クライエントコンピュータは、このファイルに対してジェネリックシグネチャおよび特定シグネチャの両方を計算し、サーバーコンピュータに送信する。サーバーコンピュータは、これら両方のフィンガプリント値を認証する。サーバーコンピュータは、これら2つの情報(フィンガプリント値)のみから、ソフトウェア・アプリケーションの最終的な良否判定(既知のブラックリストまたはホワイトリストに含まれるものであるかの判定)を行い、この素性(特性)を返答する。
これら2つの情報のいずれかから、決定的な判定を得ることができない場合、サーバーコンピュータは、クエリ(検索要求)で送信されたジェネリック・フィンガープリントに関して過去に認識されたすべての特定シグネチャを調べる。(複数の異なるファイルが同一のジェネリック・フィンガープリントを有し得るので、同一のジェネリック・フィンガープリントに付随し得る複数の特定フィンガプリントを共有することがある点に留意されたい。)簡略化すると、クエリの中に次のフィンガプリント、すなわち(G,SO),(G,S1),(G,S2),(G,S3),...,(G,S9)が存在する場合を考慮されたい(S1〜S9は異なる特定フィンガプリントであり、これらのすべてが同一のジェネリック・フィンガープリントGに対応するものである。)。ここで、これらの特定フィンガプリントの閾値が悪意のあるものと仮定する(たとえばSO〜S7がすべて既知のマルウェアに対応するものと仮定する)。さらに、過去に確認されたこれらの特定フィンガプリントはいずれも既知の安全なファイル(ホワイトリストに含まれるファイル)に付随するものではないと仮定する。換言すると、特定フィンガプリントS8,S9は、これまで知られていない素性を有する(すなわち特定フィンガプリントS8,S9は、悪意のあるもの、または安全なものであるか不明で、これまで誰も良否判定を行っていない。)。この場合、バターンが現れる。1つのジェネリック・フィンガープリントGに付随する特定フィンガプリントの大多数は、悪意のあるものであるように見える。このとき、このジェネリック・フィンガープリント自体は悪意のあるものとして識別すべきであると判断することが合理的であると考えられる。
サーバーコンピュータは、この一連のステップの後に、このジェネリック・フィンガープリント「G」は悪意のあるものと識別し、クライエントコンピュータに対応する応答を返信する。
上記判定プロセスは、リアルタイムの事象として(すなわちオンザフライで(中間ファイル出力をせず、複数の処理を行うこと))説明したが、実際には、個別に行ってもよい。換言すると、サーバーコンピュータ上のソフトウェアモジュールは、過去のクエリの履歴を周期的に検索して、過去のクエリに関連する大多数の特定フィンガプリントが悪意のあるものらしいとの理由から、悪意のある可能性の高い特定フィンガプリントを抽出するよう試みる。こうして、これらのジェネリック・フィンガープリントを、悪意のあるものと識別することができる。
以上のように、サーバーコンピュータが判定を求められると、オンザフライで計算を実行することを試みるのではなく、単に検索を行ってもよい。これと同時に、このアプローチは、最近の履歴がすでに解析されているので、関連情報を収集して利用することはない。
[機械学習の実施形態]
本発明に係る1つの実施形態において、クライエントコンピュータおよびサーバーコンピュータは以下のように機能する。初期化段階において、サーバーコンピュータは、識別器に学習させる。1つの実施形態において、サーバーコンピュータは、ファイルに対するフィンガプリントが過去に提供され、おそらくは独立した手段を用いて分類された実際に存在するユーザ履歴から学習データを直接的に取得することができる。このファイルが、たとえば既存のホワイトリストまたはブラックリストの存在により安全なものか、または悪意のあるものか、認識することができる。
任意的には、たとえばユーザが自然的分類およびサブ分類に属するか否かといったさまざまな条件に基づいて、履歴データを階層化し、または分割化することができ、自然的分類等は、限定するものではないが、地域グループ(すなわち同様の地域にいるユーザからなるグループ)、および関連グループ(すなわち、同一企業の社員からなるユーザ、本発明に係るシステムまたはソフトウェアを共通の提供源(たとえば共通のダウンロード・サーバーコンピュータまたは共通の頒布チャンネル)から入手したユーザからなるグループ)を含むものであってもよい。所定の条件にもとづいて、学習データを階層化し、または分割化した場合、用いられる学習データを、履歴からの複数の区分または複数の階層に基づいて求めることができる。学習データを分割することの利点は、入力空間の特定領域において複数の機械学習分類器を微調整することができ、その結果として、機械学習分類器の入力空間の特定領域におけるパフォーマンス(性能)を改善することができる点にある。学習フェーズにおいて複数のパラメータが含まれる。一旦、分類器が確立されると、フィールドにおいて展開させることができる。
1つの実施形態において、分類器が特定する数学的関数を実行する実際のコンピュータ指令(または順次説明されるコンピュータ指令の適当な符号化)を自動的に生成することができる。1つの実施形態によれば、これらのコンピュータ指令を遠隔サーバーコンピュータに記憶させてもよい。別の実施形態において、これらのコンピュータ指令を複数のクライエントシステムに送信することができる。
本発明に係る別の実施形態において、クライエントシステムは、新たなソフトウェア・アプリケーションに遭遇したとき、このソフトウェア・アプリケーションに付随する特徴ベクトルを、ソフトウェア・アプリケーションが安全なものか、悪意のあるものかを独立して判定する他の任意のデータとともに抽出する。特徴ベクトルは、特定のアプリケーションの属性に限定する必要はなく、アプリケーションを実行するはシステムに関する他の属性を含むものであってもよい。アプリケーションのバイナリコンテンツに特に関連する特徴ベクトルの属性は、限定するものではないが、アプリケーションのバイナリコンテンツの素性、アプリケーションが参照するダイナミック・リンク・ライブラリ(DLL)のリスト、バイナリコンテンツ内の特定位置の値、領域の数、シンボルの数、バイナリコンテンツの異なる領域の個数、シンボル個数、位置、およびバイナリコンテンツのデータサイズが含まれる。
いくつかの実施形態では、特徴ベクトルはアプリケーションが参照するダイナミック・リンク・ライブラリの符号を含む。その他の実施形態では、特徴ベクトルは、バイナリコンテンツ内の異なる領域に関する領域の数、シンボルの数、および位置を含む。その他の実施形態では、特徴ベクトルは、バイナリコンテンツのデータサイズを含む。アプリケーションに付随する特徴ベクトルの属性は、限定するものではないが、アプリケーションで用いられる登録鍵(registry key)および(通常、ウィンドウズ上で実行する脅威に対する)登録鍵に加えられたすべての変形に関する情報、アプリケーションのファイル名、利用されるネットワークポートおよびアプリケーション・プログラミング・インタフェース(API)通信に関する挙動的属性、アプリケーションにより変更され、生成されるファイル、およびアプリケーションにより中止され、または開始されるサービスが含まれる。
いくつかの実施形態では、特徴ベクトルは、アプリケーションのファイル名および利用される登録鍵を含む。アプリケーションのジェネラルコンテキストデータに付随する特徴ベクトルの属性は、限定するものではないが、アプリケーションに新たに遭遇したときにシステム上で実行するプロセス、アプリケーションの情報源(CD ROM、USBスティックメモリ、ウェブサイト)、マシンの感染履歴、マシンの地理的位置、およびマシンのIPアドレスが含まれる。一般に、特徴ベクトルは、複数の特徴に関する情報を含む。
特徴ベクトルを構成する際、上記特徴ベクトルの値は、逐語的に送信する必要はないが、機械学習アプリケーションを支援するように符号化されることに留意すべきである。たとえば、1つのソフトウェア・アプリケーションに関するすべてのダイナミック・リンク・ライブラリのリストではなく、むしろバイナリ値を用いて、ウィンソック(winsock.dll)等の特定のダイナミック・リンク・ライブラリが用いられたか否かを示すことができる。1つの実施形態では、特徴ベクトルに加えて、クライエントコンピュータは、SHA−256等の従来式のフィンガプリント、またはPEハッシュ値(PEhash)やSSディープハッシュ値(SSdeep)(ともに当該技術分野において知られている。)、またはこれらの組み合わせ等のジェネリック・フィンガープリント値を計算してもよい。特徴ベクトルは、概略的に上記説明した機械学習技術を用いてファイルを分類する際、主として関連するものであるが、他のデータを将来の学習のために用いることができる。たとえば、最初に遭遇したファイルの素性が未知の場合、当該ファイルが後に既知の悪意のあるアプリケーションのブラックリスト上で発見される可能性がある。そのリストがSHA−256を用いて索引付けされると、SHA−256の値および特徴ベクトルの両方をクライエントコンピュータに計算させることにより、特徴ベクトルを特定の素性に関連付けることができる。この特徴ベクトルを、その後の学習フェーズのための学習コーパスに追加することができる。
本発明に係る1つの実施形態において、クライエントコンピュータは、特徴ベクトルの値(データ)を求め、これを圧縮することができる。データを圧縮するための汎用技術があり、この特別の事例においては、望ましい性能パラメータ、特にクライエントコンピュータとサーバーコンピュータとの間で通信されたデータ容量に関する性能パラメータを生成する専用技術を用いることができる。
この特徴ベクトルを任意的に圧縮すると、本発明に係る1つの実施形態によれば、得られたデータは、遠隔サーバーコンピュータに送信される。択一的には、クライエントコンピュータは、遠隔的な検索を回避するために、サーバーコンピュータに接続される論理回路に記録してもよい。
本発明に係る1つの実施形態において、サーバーコンピュータは、必要ならば、クライエントコンピュータから送信されたデータを解凍し、解凍データには特徴ベクトルを含み、適当な位置に格納されたモデルに対して、特徴ベクトルを評価する。クライエントコンピュータが従来式のフィンガプリントまたはジェネリック・フィンガープリント等の他のデータを提供した場合、サーバーコンピュータは、任意的には、分類器からの結果の代わりに、より従来式の手段を介して得られた素性を優先させる。たとえば。クライエントコンピュータが関心のあるソフトウェア・アプリケーションのSHA−256の値を送信してこの値が安全なアプリケーションからなる既知のホワイトリストに含まれていたとき、サーバーコンピュータは、機械学習モデルの出力値にかかわらず、懸案のアプリケーションが安全なものと応答することができる。このアプローチの根拠となる前提は、直接的なホワイトリストまたはブラックリストより、機械学習モデルがより誤りを起こしやすいということにある(ただし、機械学習モデルは、これまで未知であったものを含めて、任意のファイルに対して適用可能であるのに対し、ホワイトリストおよびブラックリストは、そのエントリ数が限られているため、同様に制約があることに留意すべきである。)。サーバーコンピュータは、必要ならばクライエントコンピュータに実行させたい処理に関する情報を付加して、最終的な判断に関する応答をクライエントコンピュータに提供する。このトランザクション(変更処理)に関するトランザクション履歴は、クライエントコンピュータの識別子、タイムスタンプ、特徴ベクトル値、その他のフィンガプリント値、および最終的な素性および情報が得られた際の状況、中でも、サーバーコンピュータがクライエントコンピュータに実行させたい処理のタイプを含むものであるが、任意的に記録される。このトランザクション履歴は、学習コーパスに関する3つの特徴を含むものであるので、その後の新たな分類器の学習フェーズに利用することができる。第1に、このトランザクション履歴は、機械学習訓練アルゴリズムに対する入力値として与えられる特徴ベクトルを含む。第2に、このトランザクション履歴は、数多くの機械学習アルゴリズムが必要とする素性を含む。ただし、学習のためには、巡回フィードバックループを導入するリスクがあるので、従来式の機械学習に基づく素性ではなく、フィンガプリント値やジェネリック・フィンガープリント値を用いて得られる素性を利用することが好ましいことに留意されたい。第3に、このデータにより生成された学習例は、当該分野における実際のユーザ事例に由来するものであり、通常のユーザが将来的に直面するものを如実に表現する傾向がある。
本発明に係る1つの実施形態において、クライエントコンピュータは、サーバーコンピュータから最終的な判断、およびその判断に付随する可能性のある処理指令を受信し、特化されたポリシーによる応答に基づいて処理を行う。1つの実施形態において、可能性のある応答は、限定するものではないが、次のものを含む。すなわち可能性のある応答には、アプリケーションが悪意のあるものと宣言し(システムから当該アプリケーションを取り除くか、ユーザがインストールするのを阻止する。)、任意的ではあるが、コピーをサーバーコンピュータに送信するか、または当該アプリケーションをシステム上に維持することを許容し、および/または当該アプリケーションを追加的に解析するために、クライエントコンピュータからサーバーコンピュータへ送信することを要求する。
上記最後の応答(オプション)は、たとえば当該アプリケーションを悪意のあるものである可能性があるが、その確からしさ(悪意ありと判断する確信度)が十分に高くなく、偽陽性判断するリスクが相当に高いとサーバーコンピュータにより判断された場合に意義あるものである(この場合、ファイルをサーバーコンピュータへ送信することにより、当該アプリケーションに対して追加的でより綿密な解析を行うことができるが、こうした解析は、あまりにも効果であるので、直面したすべてのファイルに対して実行することはできず、疑惑のある複数のファイルの一部を対象として実行することが好ましい。)。
本発明に係る1つの実施形態において、サーバーコンピュータは、数多くの防御手段(セーフガード手段)を所定位置に配置して、所与の安全なアプリケーションを誤って悪意のあるものと判断するリスクを低減することができる。防御手段は、限定するものではないが、以下のものが含まれる。第1に、より直接的な手段(SHA−256等の従来式のフィンガープリントや、安全なソフトウェア・アプリケーションからなる既知のホワイトリストにあるものと一致すること)により、アプリケーションが安全であることが知られている場合、サーバーコンピュータは、機械学習分類器から提供された素性を無視することができる。第2に、機械学習分類器の使用を抑制することができる。たとえば、サーバーコンピュータは、この機械学習分類器による陽性判断される(悪意のあるものとの判断される)数を適当な数に制限することができる。さらに所与のアプリケーションに関する分類数を抑制することができる。たとえばSHA−256の関し、機械学習分類器を用いて、(Nが3等であるような適当な選択に対して)N倍を超えない数の陽性判断を行うことができる。この手法によれば、問題(mistake)があるとき、その問題による結果(damage)が確実に生じるようにすることができる(すなわち最も悪意のあるソフトウェアは、その怪しげな危機(fly-by-night danger)に起因して、低い確率(frequency)を有する傾向があるので、このように抑制することで、正検出率と誤検出率の好適なトレードオフを実現することができる。)。第3に、多少なりとも悪意のあるもの可能性がより高い特定の分類のファイルに対しては、機械学習分類器による陽性判断(悪意のあるものとの判断)を抑制することができる。たとえば、データサイズのより小さいファイルは、より大きいファイルに比較して、悪意のあるものである可能性が高いことが知られている。これは、悪意のある第三者が被害者のマシンに対し、より小さいファイルを送信することに成功する可能性が高いためである。当該技術分野において、デジタル署名されたファイルは、デジタル署名されていないファイルより悪意のあるものである可能性が低いということが知られている。同様の判断が他のファイル属性に対しても成り立つ。したがって、本発明に係る1つの実施形態において、とりわけデータサイズが所定の閾値以下であって、デジタル署名されていないソフトウェア・アプリケーションに関して、機械学習分類器による陽性判断(悪意のあるものとの判断)を任意的に抑制することができる。第4に、特定の条件に関して、機械学習分類器による陽性判断(悪意のあるものとの判断)を記録することができる。
本発明に係る1つの実施形態において、コンピュータマシンが特定の脅威に感染する虞がある場合(たとえば過去においてこのタイプの脅威に遭遇したことがある場合や、特定の脅威に付随した地理的領域にある場合等)、このような場合に機械学習分類器を適用することができる。第5に、特定脅威事例をモデル化するために、機械学習分類器を構築することができる。たとえば、日常的に検出される1つの悪意のあるソフトウェア脅威としてコンフィッカー(Conficker)が当業者に知られている。コンフィッカーには数多くのバリエーションがあるが、バリエーションの中のそれぞれを同一系列の全体の一部として認識することを可能にする十分な共通性がある。したがって、本発明に係る1つの実施形態において、特定の脅威を標的として機械学習分類器を特別に学習させることができる。そのためには、安全なファイルおよびコーパス内の特徴ベクトルを一定に設定し、悪意のあるファイルおよび特定の脅威に関連する特徴ベクトルを含むようにすることができる。このアプローチの利点は、特定の脅威に対して微調整した機械学習分類器において、その脅威に対する偽陽性率(安全なアプリケーションを誤って悪意のあるものと認定する確率)を低く抑えることができ、エンドユーザがこれらのシステムが標的とする特定の脅威を知ることができる点にある。第6に、ポプュラリティ(popularity)が特定の閾値以下であるファイルに対して、機械学習分類器に関するアプリケーションを制限することができる。1つの実施形態において、システムにパラメータNを導入して、N個未満のシステムが特定のアプリケーションを有するような場合にのみ、このアプリケーションが悪意のあるものと認定してもよい。第7に、懸案のシステムがある脅威に感染する可能性が閾値より多少なりとも大きい場合、いくつかの機械学習分類器に関するアプリケーションを制限することができる。脅威に感染する可能性の増大を示唆する指標は、限定するものではないが、そのシステムが最近感染した状況、システムが最近攻撃対象となった情報、脆弱なソフトウェア・アプリケーションがシステム上に存在するか否か、感染に関する共通の特徴ベクトルであるソフトウェア・アプリケーション(クライエントコンピュータを共有するピアツーピア・ファイル等)がシステム上に存在するか否か、およびオープンネットワークポートがシステム上に存在するか否か、が含まれる。
しかしながら、実際には悪意のあるマルウェアが、偽陽性率を低減しようとする安全策(セイフティネット)を取ったために安全なものと過誤認識されるため、一般には、偽陽性率を低減すする試みにより、真陽性率をも低減することになることに留意されたい。当該技術分野においては、こうしたトレードオフ(二律相反)が存在し、特定のアプリケーションにもよるが、図らずも、そのトレードオフが望ましいか否か判断することがあるものと理解されている。たとえば、真陽性率がほんの少しだけ低減する一方、偽陽性判断のリスクが劇的に低減する場合、上記トレードオフが望ましいものである。択一的には、偽陽性判断に要するコストがきわめて高い場合、すなわち安全なアプリケーションを遮断することにより、財政的なビジネス上の損失を招く可能性がきわめて高い場合、真陽性率が実質的に低減するとしても、偽陽性判断コストを実質的に低減させるより従来的な立場を取る方が望ましい。他方、誤った検出(すなわち偽陽性検出)に対するコストがきわめて高い場合、たとえばシステムが非常に高いセキュリティを要求する場合、システムに侵入する脅威のリスクをきわめて小さく抑制するために、高い偽陽性率が許容されない場合もある。
この実施例は、本発明に係る特定の具体例について示し、その手順に沿ったステップまたは手続きについて説明する。この実施例は、本発明に係る説明を明確にするものであって、本発明を限定するものと理解すべきではない。たとえば本発明に係る上記説明は、数多くの変形例および変更例にも適用することができる。不明確な説明を回避するために、これらの変形例および変更例については以下において説明しない。
まず始めに、ユーザのコンピュータマシン上で実行される1つのエージェントソフトウェアを考慮されたい。この実施例において、エージェントソフトウェアは、マイクロソフト・ウィンドウズのファイルシステムのミニフィルタ・ドライバ(filesystem mini-filter driver)を含み、これは新しい(実行可能な)ファイルをファイルシステムへ書き込もうとしていることを検出することができるものである。同様に、新しい実行可能なファイルをファイルシステムへ書き込もうとしていることを検出することができるその他のソフトウェアを用いることができる。ファイルをファイルシステムへ書き込んだこと、または書き込もうとしていることを検出した後、ソフトウェアエージェントは2つの値を計算する。第1に、ファイル上の「従来式の」フィンガプリント値(たとえばSHA−256)を計算する。第2に、ファイルから機械学習特徴ベクトル値を計算する。特徴ベクトル値は、このシステム上のファイルに関連する数多くの属性を有し、限定するものではないが、アプリケーションが参照するダイナミック・リンク・ライブラリ(DLL)、バイナリコンテンツの特定の位置に関する値、ファイル領域の個数(および読み出し可能、書き込み可能、または実行可能等の各領域が有する属性)、シンボルの個数、バイナリコンテンツのテータサイズ、バイナリコンテンツに対するデジタル署名の有無等が含まれる。これらすべての属性は、ファイルのバイナリコンテンツから容易に計算することかできる。さらに、その他の文脈上の情報要素が特徴ベクトルに含まれており、限定するものではないが、ファイルシステムのタイムスタンプ、ファイル名の素性(同一ファイルが異なるシステム上で異なるファイル名を有し、その属性が所与のシステムにおけるファイルの具体例に固有のものとなる場合があることに留意されたい。)、システムにインストールされたその他のソフトウェア・アプリケーションに関する情報(たとえばシステムが脆弱なソフトウェア、または一般にシステム感染を引き起こすソフトウェアに関する情報)、および最近のシステムの感染履歴(たとえば最近30分の間にユーザのコンピュータが感染したか否か)等が特徴ベクトルに含まれている。これらの属性は、適当に符号化されるとともに、(伝送容量を小さくするために)圧縮される。
クライエントコンピュータは、フィンガプリントおよび特徴ベクトルをサーバーコンピュータに送信する。これら2つの値に加えて、クライエントコンピュータは、(同一のクライエントコンピュータからのその他のトランザクションとリンクさせやすくするために)識別子を有していてもよい。
次にサーバーコンピュータは、任意のブラックリストおよびホワイトリスト内のファイルを検索する。このときサーバーコンピュータは、この検索を実行するために、たとえば従来式のフィンガプリントを用いてもよい。この検索により、決定的な素性(特性)が明らかとなった場合(たとえば、このファイルが悪意のあるものか、安全なものであるか決定的であることが知られている場合)、この素性がクライエントコンピュータに送信される。サーバーコンピュータは、任意的ではあるが、この段階でファイルについて追加的な情報(たとえば当該ファイルを保有するユーザの数等)を検索し、フィンガプリント値、基本的な特徴ベクトル、追加的情報、クエリのタイムスタンプ、ユーザの識別子、ブラックリストおよびホワイトリストのリストごとの素性を記録する。記録フォーマットは、サーバーコンピュータのトランザクション履歴であってもよい。
サーバーコンピュータがブラックリストおよびホワイトリストのどちらにもファイルを見出さなかった場合には、以下のステップを実行する。第1に、サーバーコンピュータは、任意的に、その他の計算可能な属性を用いて、クライエントコンピュータから提供される特徴ベクトルを増補(拡張)する。これらの属性は、限定するものではないが、ファイルがユーザコンピュータに出現する頻度、およびファイルがサーバーコンピュータで初めて確認された時を示すサーバーコンピュータ側のタイムスタンプを含むものであってもよい。
そしてサーバーコンピュータは、機械学習分類器(サポートベクターマシン、決定木、ニューラルネットワーク等)を用いて増補された特徴ベクトルを評価する。クライエントコンピュータは、素性(悪意のあるもの/安全なもの)および任意的な確信度を受信し、将来の解析のためのトランザクション(変更処理)が記録される。
サーバーコンピュータは、周期的に、過去のすべての履歴を調べて、既知のブラックリスト/ホワイトリストにフィンガプリント値が記録されたファイルに関するすべての特徴ベクトルを呼び出すことができる。サーバーコンピュータは、フィンガプリント値に対応する特徴ベクトルに関する学習コーパスを形成する(たとえばホワイトリスト上のアイテムは学習コーパスの「安全な」サブセットであり、ブラックリスト上のアイテムは学習コーパスの「悪意のある」サブセットである。)。
このコーパスに基づいて、機械学習分類器(サポートベクターマシン、決定木、ニューラルネットワーク等)を学習させることができる。システムを起動、すなわち「ジャンプスタート(jumpstart)」させる方法がいくつかあることに留意されたい。我々は、データ収集フェーズから開始することができる(複数のタイプのサイレント検出機能(silent detection capability)を想定されたい。)。
文脈上の確からしさ(悪意ありと判断する確信度)に関する実施形態
本発明に係る1つの実施形態によれば、クライエントコンピュータおよびサーバーコンピュータの構成部品は、以下のように機能する。クライエントコンピュータが、あるソフトウェア・アプリケーションに遭遇(アクセス)し、それが悪意のあるものか、安全なものかを分類しようとするとき、そのアプリケーションに関する両方の情報を収集し、システムに関する文脈データ情報とともに用いて、マルウェアの従来式の検出を実施する。収集されるデータ情報として、限定するものではないが、システムに対する最近の感染履歴、クライエントコンピュータの地理的位置情報、インターネットプロトコルすなわちクライエントコンピュータのIPアドレス、および同一のクライエントコンピュータ上で複数回行われるトランザクション(変更処理)をリンクさせるために用いられるクライエントコンピュータ識別子が含まれる。
感染イベントに晒されたカスタムエージェント(custom agent)または第三者エージェント(third-party agent)を用いて、感染履歴を収集することができる。クライエントコンピュータは、ソフトウェア・アプリケーションに関する従来式のデータ情報および文脈上のデータ情報の両方を送信する。データ情報は、未処理の状態で伝送してもよいし、またはネットワークにおける効率的な伝送を可能にするように符号化してもよい。符号化機構の選択は、本発明に係る主な態様に対して直交し、当該技術分野においてデータを符号化するための数多くの技術が存在する。サーバーコンピュータは、クライエントコンピュータからデータを受信し、そのアプリケーションが悪意のあるものか否かを判定する。
ホワイトリストまたはブラックリストにあるシグネチャ等の従来式の手段を用いて、アプリケーションが悪意のあるものか、または安全なものであると判断された場合、クライエントコンピュータから送信される追加的な文脈を参照することなく、最終的な判断がなされる。送信されたデータに基づいて、そのアプリケーションが疑念を抱かせるものであるが、完全に悪意のあるものであると警告するほどの疑念を抱かせるものではない場合、文脈上の情報が考慮される。1つの実施形態において、アプリケーションが疑念を抱かせるものであって、そのコンピュータマシンが1つまたはそれ以上の感染を受けていた場合には、そのアプリケーションは悪意のあるものと、サーバーコンピュータは判断することができる。一旦、サーバーコンピュータがその勧告を通知すると、この情報はクライエントコンピュータに返信され、その後クライエントコンピュータは、その勧告に応じたポリシーを適用することができる。1つの実施形態では、アプリケーションは悪意のあるものと、サーバーコンピュータが判定すると、クライエントコンピュータは、そのシステムから当該アプリケーションを削除するか、システムへのインストールを妨害することができる。異なる実施形態では、クライエントコンピュータは、セキュリティ上、より危険な状態にある場合には、当該アプリケーションを阻止することができる。たとえばマシンが銀行取引アプリケーション等の高いセキュリティを要するソフトウェアを現在実行中である場合、(セキュリティ侵害はより直接的に金銭的損失をもたらすため、)安全面において、より慎重に扱うべき状態にある。この場合、クライエントコンピュータは、銀行取引アプリケーションの実行が完了するまで、疑念を抱かせるソフトウェアの実行を阻止することができる。
本発明の別の実施形態によれば、クライエント側の構成部品は、文脈上の確からしさ(悪意ありと判断する確信度)を生成することに関連する情報を収集する。1つの実施形態では、クライエント側の構成部品は、単に、クライエントコンピュータの識別子をサーバーコンピュータへ送信する。クライエントコンピュータは、任意的に、以下の1つまたはそれ以上の情報要素をサーバーコンピュータへ送信する。すなわち、その情報要素には、最近の感染、ならびにそれらの感染に関するタイムスタンプおよびウィルス識別子、クライエントコンピュータが最近アクセスしたウェブサイトに関する情報、システム上で実行しているアプリケーションに関する情報、システムにインストールされたアプリケーションに関する情報、システム上で開いた(アクセス可能な)ネットホークポートに関する情報、クライエントコンピュータの地理的位置、クライエントコンピュータのインタネットプロトコルまたはIPアドレスが含まれる。1つの実施形態において、このクライエント側の構成部品は、バックグラウンドで、常に実行し、情報を収集し、そして周期的間隔でサーバーコンピュータへ送信することができ、または懸案のアプリケーションに遭遇したときにサーバーコンピュータへ送信することができる。さまざまな実施形態において、このクライエント側の構成部品は、必要があるタイミングで情報を収集することができる。さらに別の実施形態では、このクライエント側の構成部品は、バックグラウンドで収集した情報と、必要なタイミングで収集した情報とを組み合わせてもよい。
本発明の別の実施形態によれば、サーバー側の構成部品は、そのマシンに関する文脈上の情報に加え、アプリケーションに関する情報を解析し、その情報を用いて、当該アプリケーションが悪意のあるものか否かについて判断する。1つの実施形態において、入力された文脈により、アプリケーションが悪意のあるものである可能性が以前より増大するとき、サーバーコンピュータは、疑わしいアプリケーションを悪意のあるアプリケーションに更新することを選択してもよい。別の実施形態では、最近の感染がシステム上で確認されていた場合に、その疑わしいアプリケーションを悪意のあるアプリケーションとみなすようにしてもよい。上記説明した実施形態においては、サーバーコンピュータ上で当該判断を行うものとしたが、ロジック(一連の処理)そのものは、クライエントコンピュータが行ってもよいし、あるいはクライエントコンピュータおよびサーバーコンピュータが協働して行ってもよい。1つの実施形態では、サーバーコンピュータがクライエントコンピュータから提供されたクライエントコンピュータ識別子を参照し、その識別子を用いて、サーバーコンピュータとクライエントコンピュータとの間の履歴を検索することができる。この情報を用いて、文脈を判断に加えることができる。たとえばクライエントコンピュータが最近にサーバーコンピュータと通信して、クライエントコンピュータが問い合わせた懸案のアプリケーションが悪意のあるものであった場合、サーバーコンピュータは、アプリケーションが悪意のあるものである可能性が以前より増大した状況として処理することができる。別の実施形態では、サーバーコンピュータは、複数のクライエントコンピュータから収集した文脈上の情報を利用することができる。この場合サーバーコンピュータは、限定するものではないが、特定のアプリケーションに対して問い合わせされた頻度や、この問い合わせに関連した他のクライエントコンピュータからの文脈情報を含む情報を利用することができる。
本発明に係る別の実施形態によれば、アプリケーションが悪意のあるものか、または安全なものかについて判断の支援するために保有された文脈データ(コンテキストデータ)を収集するために、ある方法が、クライエントコンピュータシステム上で実行される。この方法は以下のステップを有し、各ステップは任意的なものである。第1に、サーバーコンピュータは、同一のシステムからの複数のトランザクション(変更処理)を関連付けるために用いることができるクライエントコンピュータ識別子を収集する。1つの実施形態では、この識別子は、グローバル一意識別子(GUID:Globally Unique Identifier)であってもよい。別の実施形態では、識別子は、クライエントコンピュータが初期化された時にサーバーコンピュータにより構成され、クライエントコンピュータに送信されるものであってもよい。その後、クライエントコンピュータは、このデータを不揮発性記憶媒体に記憶する。第2に、サーバーコンピュータは、悪意のある脅威がシステムに侵入した時に関する情報とともに、カスタムエージェント(custom agent)または第三者エージェント(third-party agent)を用いて、システム上で特定された悪意のある脅威を記録する。アンチマルウェア技術に関連して、こうした脅威はウィルスID、ジェネリックシグネチャ、SHA−256、またはこれらの組み合わせにより特定することができる。通常、ウィルスIDは、脅威に関するほとんどのジェネリックラベル(ジェネリックシグネチャ)を提供し、唯一の脅威を特定する特定ラベル(特定シグネチャ)を提供する。ジェネリック・フィンガープリント値は、両極にある間の特異性のレベルを示唆するものである。第3に、サーバーコンピュータは、ユーザのクライエントコンピュータがアクセスしたすべてのウェブサイトを記録する。第4に、サーバーコンピュータは、ユーザが特定範囲の期間内にイントールしたすべてのソフトウェア・アプリケーションを記録する。第5に、サーバーコンピュータは、懸案のアプリケーション(すなわち、我々の興味を引く素性を有するアプリケーション)が導入された時に実行していたすべてのアプリケーションを記録する。第6に、サーバーコンピュータは、クライエントコンピュータのインターネットプロトコル・アドレス(IPアドレス)を取得する。第7に、サーバーコンピュータは、クライエントコンピュータのネットブロック(netblock)に関する情報を取得する。第8に、サーバーコンピュータは、クライエントコンピュータの地理的情報に関する情報を取得する。第9に、サーバーコンピュータは、クライエントコンピュータのシステム上で用いられている言語に関する情報を取得する。第10に、サーバーコンピュータは、システム上で開いた(アクセス可能な)ネットホークポートに関する情報を取得する。第11に、サーバーコンピュータは、システム上で実行中のアプリケーションに関する情報を取得する。第12に、サーバーコンピュータは、懸案のアプリケーションがシステムに送信された状況に関する情報を取得する。この情報は、限定するものではないが、ウェブブラウザ等を介して取得されたソフトウェア・アプリケーション、ならびにウェブサイト、CD−ROM、またはUSBドライブ等、ファイルが導入されたソース位置が含まれる。第13に、サーバーコンピュータは、懸案のアプリケーションが取得しようとしている権限、たとえばサーバーコンピュータは、管理者権限の下で実行するか否かについての情報を取得する。第14に、サーバーコンピュータは、懸案のアプリケーションに関する問い合わせがあった時に、ユーザが現在閲覧しているウェブサイトに関する情報を取得する。第15に、サーバーコンピュータは、アプリケーションの現在の状況、たとえばアプリケーションがシステム上で実行中であるか否か、または休止中であるか否かについての情報を取得する。これらのすべての情報要素が必ずしも強制的なものではなく、冗長でさえある可能性があることに留意されたい。このリストは、本発明の異なる態様を明瞭にするために含まれるものである。たとえばクライエントコンピュータが識別子とともに、懸案のアプリケーションに関するデータをサーバーコンピュータに送信した場合、サーバーコンピュータは、クライエントコンピュータの過去のトランザクション(変更処理)および懸案のアプリケーションに対するリクエストに関する情報を用いて、文脈上の情報を策定(生成)することができる。とりわけサーバーコンピュータは、クライエントコンピュータが懸案のアプリケーションについて悪意のあるものと問い合わせした(クエリを行った)時に、過去に問い合わせしたアプリケーションを特定し、特定可能な場合には、対応するアプリケーションの脅威を特定することかできる。この情報から、クライエントコンピュータの感染履歴を構築することができる。同様に、サーバーコンピュータは、クライエントコンピュータのインターネットプロトコル・アドレス(IPアドレス)を取得することができるため、クライエントコンピュータの地理的位置に関する情報を取得することができるが、サーバーコンピュータと通信するために、クライエントコンピュータが利用するネットワークプロトコルの一部として含まれる情報を利用することにより、サーバーコンピュータと通信することができる。特に、利用されるプロトコルが通信制御プロトコル/インターネットプロトコル(TCP/IP)である場合、インターネットプロトコル・アドレスは、自動的に包含されるものである。
本発明に係る別の実施形態によれば、懸案のアプリケーションに関連するメタデータとともに文脈情報を用いて、当該アプリケーションが悪意のあるものか、安全なものかについての最終的に判断する方法が提供される。この方法は、以下のステップを有する。第1に、懸案のアプリケーションについて従来式の評価を行う。アプリケーションが悪意のあるものか、安全なものかについて最終的に決定された場合、ある提案とともに、この情報をクライエントコンピュータに送信することができる。アプリケーションの素性(特性)が不明である場合、アプリケーションに関する収集データおよび送信された文脈情報を解析する。1つの実施形態において、収集データおよび送信された文脈情報を機械学習システムの特徴ベクトルとして利用することができる場合、機械学習分類器の結果を利用することができる。こうしたコーパス内の具体例をラベル付けするためには、実行ファイル(executables)について、従来的な手法または手作業による解析を実施する必要がある場合がある。しかしながら、このプロセスは、処理を「ジャンプスタート(jumpstart)」させる手法として提案される。当業者に広く知られた数多くの手法で、学習コーパス構築のための具体例をラベル付けすることができる。あるファイルに関連して、十分な個数の特徴ベクトルがラベル付けされると、本願の実施形態に係る機械学習について上記説明したように、機械学習分類器に学習させることができる。その結果、新しい(分類されていない)事案(アプリケーション)に適応できる「モデル」が得られる。
別の実施形態によれば、アプリケーションが真偽不明であり、マシンが最新の感染履歴を有することを、収集データが示唆するものである場合、アプリケーションを悪意のあるものとみなすことができる。別の実施形態において、マシンのセキュリティ状態が危険に晒されていることを、文脈情報が示唆するものである場合、より攻撃的な(厳格な)検出機能を適用することができる。
これらの検出機能は、限定するものではないが、悪意のあるアプリケーションのジェネリック・フィンガープリント(これは脅威となる変形されたアプリケーションを捉えることができるが、偽陽性の可能性もより高くなるものである。)、ジェネリックな特徴に基づいて脅威を検出できる攻撃的な(厳格な)機械学習分類器、および悪意のある可能性が高いが、未だ精査されていないソフトウェアサンプルのフィンガプリントを含むものであってもよい。マシンのセキュリティ状態が危険に晒されていることを示す文脈情報には、限定するものではないが、以下のものを含んでいてもよい。すなわち、この文脈情報には、システム上における最近の感染、セキュリティ上の危険に晒されていたことが確認されたウェブサイトにアクセスしたこと(こうしたサイトを特定するリストおよびこうしたサイトを特定する技術が開示された発明に直交する場合)、およびピアツーピア・ファイル共有クライエントコンピュータ等の危険を含むと考えられているソフトウェア・アプリケーションをイントールしたことを含む。さらに、マシンが危険に晒されているという潜在的なリスクを有するか否かについて判断する上で、いくつかの文脈情報は有用である。こうした文脈情報は、限定するものではないが、以下のものを含む。すなわち文脈情報は、既知のセキュリティ脆弱性を有するソフトウェア・アプリケーションの有無、およびシステムに脅威となるソフトウェア・アプリケーションをダウンロードさせようとする加害者による情報ルートとして用いられるウェブブラウザ等のソフトウェア・アプリケーションの有無が含まれる。別の実施形態において、銀行取引アプリケーション等のセキュリティ脆弱性アプリケーションがシステム上で実行中であることを文脈データが示す場合、遠隔的に疑いのあるものとみなされるとき、懸案のアプリケーションを一時的に停止するように提案することができる。これは、こうした状況下において、潜在的に危険に晒されたときのコストを考慮したとき、偽陽性のリスクを容認できることが前提となる。別の実施形態において、クライエントコンピュータが特定の地理的領域からアクセスしようとしていること、または特定の地理的領域において処理実行していることを文脈情報が示す場合、当該特定の地理的領域に関する脅威に関連する検出機能を適用することができる。たとえば、銀行トロイ(Bancos Trojan、銀行コンピュータシステムにおけるトロイの木馬)は、(とりわけブラジルの銀行アカウントに関する情報の窃取を目的とする)ブラジルにおけるユーザを標的にした脅威を与える既知のマルウェアである。保護の対象とされるコンピュータシステムがブラジルにある場合、銀行を特定するためのより厳格な技術を適用することができる。この技術は、たとえば専ら銀行を特定するための機械学習分類器であってもよい。関連する実施形態においては、ユーザが特定のウェブサイトにアクセスしたことを文脈情報が示す場合、そのウェブサイトに関連する脅威を特定するための攻撃的な技術を利用することができる。上記実施例において、ユーザが銀行トロイの標的リストと一致する銀行のウェブサイトにアクセスした場合には、銀行トロイの検出機能を適用することができる。同様のラインの中で、ユーザがフェイスブック等のサイトにアクセスした場合には、クーブフェイス・ワーム(Koobface worm)等の脅威に関する検出機能を適用することができる。
この実施例は、1つの可能性のある実施形態を俯瞰することにより、本発明を明確にすることを支援するように、本発明に係る1つの態様を説明するものである。すなわち、この実施例は、本発明の範囲を制限するものと解すべきではない。
(本発明の一部である)エージェントソフトウェアは、クライエントコンピュータ(ラップトップコンピュータまたはデスクトップ・パーソナルコンピュータ)のシステム上で実行されるものである。このソフトウェアは、セキュリティ関連イベントの有無をモニタするものである。たとえばエージェントソフトウェアは、ファイルアクセスをモニタするマイクロソフト・ウィンドウズのミニフィルタ・ドライバ(mini-filter driver)を実行するものであってもよい。これは新しいファイルがファイルシステムに作成されるときは常に、エージェントソフトウェアは、そのファイルを解析し、従来式の技術を用いて(たとえばブラックリストに含まれるか否かにより)悪意のあるものか否かを確認するものである。このプロセスは、任意の場所にあるホストコンピュータによる遠隔操作サービス(たとえば「クラウド型」サービス)に対する問い合わせ(クエリ)により実行することができる。
他方、このような問い合わせ(クエリ)を受信したとき、アプリケーションが悪意のあるものか否かについて判断するためのいくつかの方法を適用することができる。これらの方法は、ブラックリストを用いたアプローチと同様、ヒューリスティックな(発見的な)アプローチを含むものであってもよい。あるファイルが最終的に悪意のあるものと(その他の証拠を必要とすることなく)判断された場合、その結果をクライエントコンピュータに返信してもよい(また将来のプロセスのためにトランザクション(変更処理)を記録してもよい。)。
あるファイルが最終的に悪意のあるものでないと判断されたが、(悪意のあるものである確率が70%という経験則(ヒューリスティック)に基づいて)依然として疑わしい場合、追加的な文脈情報が精査される。たとえば、このファイルを含むシステムが、クライエントコンピュータ共有ピアツーピア・ファイルを最近インストールし、最近日中に最終的に悪意のある3つのファイルが存在すると判断された場合、疑わしいものとして処理したにも拘わらず、この新たなファイルを最終的には悪意のあるものとして認識(ラベル付け)してもよい。
主たるアイデアは、システム上で起こった最近の感染を利用して(梃として)、基準の底上げを支援することである。この場合の判断基準ルールは、きわめて単純である(悪意のある3つのファイルに最近感染したこと、およびクライエントコンピュータ共有ピアツーピア・ファイルを最近インストールしたことを判断基準ルールとする。)。ただし、より洗練された判断基準ルールを適用してもよい。さらに機械学習技術を用いて、判断基準ルール(または判断基準ルールを効率的に符号化するモデル)を設定してもよい。
複合的な実施形態
本発明に係る複合的な実施形態によれば、2つまたはそれ以上の上記説明した実施形態を、クライエントコンピュータ(クライエントアプリケーション)およびサーバーコンピュータ(サーバーアプリケーション)のいずれか一方または両方で一体として、または独立して実施する。換言すると、a)ジェネリックシグネチャ、b)文脈上の確からしさ(悪意ありと判断する確信度)、c)機械学習によるモデルのうちの2つまたはそれ以上を適用して、ソフトウェア・アプリケーションが悪意のあるものか否かを判断する。この実施形態によれば、クライエントコンピュータは、(i)ソフトウェア・アプリケーションから特徴ベクトルを抽出するステップと、(ii)ソフトウェア・アプリケーションに関するメタテータを抽出し、ソフトウェア・アプリケーションがインストールされる可能性のあるシステムに関する文脈情報を収集するステップと、(iii)ソフトウェア・アプリケーションのジェネリック・フィンガープリント値を計算するステップのうちの2つまたはそれ以上のステップを実行し、得られたデータに関する情報をサーバーコンピュータに送信してもよい。サーバーコンピュータは、上記情報を処理した後、真偽判断または関連情報をクライエントコンピュータに返信し、クライエントコンピュータは、サーバーコンピュータから受信した情報に基づいて、ソフトウェア・アプリケーションに対する処理を行ってもよい。
これに応じて、サーバーコンピュータは、(i)ソフトウェア・アプリケーションから得た特徴ベクトル、(ii)ソフトウェア・アプリケーションに関するメタデータ、およびソフトウェア・アプリケーションがインストールされる可能性のあるシステムに関する文脈情報、ならびに(iii)ソフトウェア・アプリケーションのジェネリック・フィンガープリント値のうちの2つまたはそれ以上を、クライエントコンピュータから受信するものであってもよい。クライエントコンピュータから特徴ベクトル情報を受信した場合、サーバーコンピュータは、機械学習による分類アルゴリズムを特徴ベクトルに適用する。ソフトウェア・アプリケーションに関するメタデータ、およびクライエントシステムに関する文脈情報を受信した場合、サーバーコンピュータは、このデータ情報を精査する。ソフトウェア・アプリケーションのジェネリックシグネチャを受信した場合、サーバーコンピュータは、そのジェネリックシグネチャが悪意のものあるものとみなすべきか否かを判断する。サーバーコンピュータは、1つまたはそれ以上の上記評価に基づいて、ソフトウェア・アプリケーションが悪意のものあるものとみなすべきか否かについて判断を行い、ソフトウェア・アプリケーションが悪意のものあるものとみなすべきか否かについての判断に関する情報を、クライエントコンピュータに送信する。
当業者が上記説明を読んだ後においては、本発明に係る数多くの変形例および変更例が明らかとなるところ、図示され、記載された特定の各実施形態は説明を目的として記載されたものであり、限定しようとする意図はまったくないことを理解されたい。
図15は、上記説明した1つまたはそれ以上の処理手続を実行する例示的なコンピュータシステムに関するブロック図である。図15を参照すると、コンピュータシステムは、例示的なクライエントコンピュータシステムまたはサーバーコンピュータシステムを備えたものである。コンピュータシステムは、通信メカニズムまたは情報を通信するためのバスと、情報を処理するためのバスに接続されたプロセッサとを有する。プロセッサは、マイクロプロセッサを含むが、ペンティアム(Pentium)、パワーPC(PowerPC)、アルファ等のマイクロプロセッサに限定されるものではない。このシステムは、(メインメモリと呼ばれる)ランダム・アクセス・メモリ(RAM)や、バスに接続され、プロセッサで実行された情報および指令を記憶するためのその他の動的記憶デバイスを備える。メインメモリは、プロセッサが実行している間または指令を出している間、一時的な変数またはその他の中間的な情報を記憶するために用いられる。
コンピュータシステムは、リード・オンリー・メモリ(ROM)、および/または磁気ディスクもしくは光ディスクや対応するディスクドライブ等、バスに接続され、プロセッサのための情報または指令を記憶するための静的記憶デバイスを備える。データ記憶デバイスは、情報または指令を記憶するために、バスに接続されている。コンピュータシステムは、コンピュータのユーザに情報を表示するためにバスに接続されたブラウン管(CRT)や液晶ディスプレイ(LCD)等のディスプレイデバイスをさらに備えている。英数字キーおよびその他の複数のキーを含む英数字入力デバイスが、同様にバスに接続され、情報および命令選択をプロセッサに送信することができる。追加的なユーザ入力デバイスとして、マウス、トラックボール、トラックパッド、スタイラス、カーソル矢印キー等のカーソル制御デバイスがバスに接続され、方向情報、命令選択をプロセッサに送信し、ディスプレイ上のカーソル移動を制御することができる。バスに接続され得る別のデバイスは、指令、データ、またはその他の情報を、紙やフィルム、同様のタイプの媒体等の媒体上に印刷するためのハードコピーデバイスである。さらに、スピーカおよび/またはマイクロフォン等の録音再生デバイスを任意的にバスに接続して、コンピュータシステムとの音響インターフェイスを実現することができる。バスに接続することができる別のデバイスは、電話や携帯パームトップデバイスと通信するための優先/無線の通信機能デバイスである。
本発明において、このシステムの任意のまたはすべての構成部品および付随するハードウェアを採用してもよい。しかし、コンピュータシステムの他の構成は、いくつかの、またはすべてのデバイスを有するものであってもよい。

Claims (10)

  1. ソフトウェア・アプリケーションが悪意のあるものか否かについて判断するためのコンピュータにより実行される方法であって、
    前記ソフトウェア・アプリケーションから特徴ベクトルを抽出するステップと、
    特徴ベクトルをクライエント側構成部品からサーバー側構成部品に送信するステップと、
    前記特徴ベクトルに少なくとも部分的に基づいて、前記ソフトウェア・アプリケーションが安全なものか、または悪意のあるものかについての判断に関する情報を、前記サーバー側構成部品から受信するステップと
    前記ソフトウェア・アプリケーションに関するメタデータを抽出し、前記ソフトウェア・アプリケーションがインストールされ得るシステムに付随する文脈情報を収集するステップと、
    メタデータおよび文脈情報をサーバー側構成部品に送信するステップと、
    文脈情報は、クライエント側構成部品がアクセスしたウェブサイトおよびクライエント側構成部品の地理的位置を含み、
    メタデータおよび文脈情報に少なくとも部分的に基づいて、前記ソフトウェア・アプリケーションが安全なものか、または悪意のあるものかについての判断に関する情報をサーバー側構成部品から受信するステップと、
    前記ソフトウェア・アプリケーションのジェネリック・フィンガープリント値を計算するステップと、
    ジェネリック・フィンガープリント値をサーバー側構成部品に送信するステップと、
    ジェネリック・フィンガープリント値に少なくとも部分的に基づいて、前記ソフトウェア・アプリケーションが安全なものか、または悪意のあるものかについての判断に関する情報をサーバー側構成部品から受信するステップと、
    サーバー側構成部品から受信した、メタデータ、文脈情報、およびジェネリック・フィンガープリント値から得られた前記情報に基づいて、前記ソフトウェア・アプリケーションに関して処理を実行するステップとを有することを特徴とする方法。
  2. ソフトウェア・アプリケーションが悪意のあるものか否かについて判断するためのコンピュータにより実行される方法であって、
    サーバー側構成部品において、
    i)前記ソフトウェア・アプリケーションからの特徴ベクトル、
    ii)前記ソフトウェア・アプリケーションに関するメタデータおよび前記ソフトウェア・アプリケーションがインストールされ得るシステムに付随する文脈情報であって、クライエント側構成部品がアクセスしたウェブサイトおよびクライエント側構成部品の地理的位置を含む文脈情報、および
    iii)前記ソフトウェア・アプリケーションのジェネリック・フィンガープリント値、
    を含む情報をクライエント側構成部品から受信するステップと、
    特徴ベクトルをクライエント側構成部品から受信すると、機械学習により導出された分類アルゴリズムを特徴ベクトルに適用するステップと、
    前記ソフトウェア・アプリケーションに関するメタデータおよびクライエント側構成部品に関する文脈情報をクライエント側構成部品から受信すると、メタデータおよび文脈情報を調査するステップと、
    前記ソフトウェア・アプリケーションのジェネリック・フィンガープリント値をクライエント側構成部品から受信すると、ジェネリック・フィンガープリント値が悪意のあるものとみなすべきか否か判断するステップと、
    クライエント側構成部品に関して、前記ソフトウェア・アプリケーションが悪意のあるものとみなすか否かについて判断するステップと、
    特徴ベクトル、メタデータ、文脈情報、およびジェネリック・フィンガープリント値に基づいて得られた情報であって、前記ソフトウェア・アプリケーションが悪意のあるものとみなすか否かについての情報をクライエント側構成部品へ送信するステップとを有することを特徴とする方法。
  3. メタデータは、従来式のシグネチャおよびジェネリックシグネチャからなるグループから選択されたものであることを特徴とする請求項に記載の方法。
  4. クライエント側構成部品およびサーバー側構成部品は、別個の遠隔コンピュータデバイス上に構成されていることを特徴とする請求項に記載の方法。
  5. クライエント側構成部品は、文脈情報を連続的に収集することを特徴とする請求項に記載の方法。
  6. ソフトウェア・アプリケーションが悪意のあるものか否かについて判断するための指令を含む非一時的コンピュータ可読媒体であって、
    前記コンピュータ可読指令は、
    前記ソフトウェア・アプリケーションから特徴ベクトルを抽出する指令と、
    特徴ベクトルをクライエント側構成部品からサーバー側構成部品に送信する指令と、
    前記特徴ベクトルに少なくとも部分的に基づいて、前記ソフトウェア・アプリケーションが安全なものか、または悪意のあるものかについての判断に関する情報を、前記サーバー側構成部品から受信する指令と
    前記ソフトウェア・アプリケーションに関するメタデータを抽出し、前記ソフトウェア・アプリケーションがインストールされ得るシステムに付随する文脈情報を収集する指令と、
    メタデータおよび文脈情報をサーバー側構成部品に送信する指令と、
    文脈情報は、クライエント側構成部品がアクセスしたウェブサイトおよびクライエント側構成部品の地理的位置を含み、
    メタデータおよび文脈情報に少なくとも部分的に基づいて、前記ソフトウェア・アプリケーションが安全なものか、または悪意のあるものかについての判断に関する情報をサーバー側構成部品から受信する指令と、
    前記ソフトウェア・アプリケーションのジェネリック・フィンガープリント値を計算する指令と、
    ジェネリック・フィンガープリント値をサーバー側構成部品に送信する指令と、
    ジェネリック・フィンガープリント値に少なくとも部分的に基づいて、前記ソフトウェア・アプリケーションが安全なものか、または悪意のあるものかについての判断に関する情報をサーバー側構成部品から受信する指令と、
    サーバー側構成部品から受信した、メタデータ、文脈情報、およびジェネリック・フィンガープリント値から得られた前記情報に基づいて、前記ソフトウェア・アプリケーションに関して処理を実行する指令とを有することを特徴とする非一時的コンピュータ可読媒体。
  7. ソフトウェア・アプリケーションが悪意のあるものか否かについて判断するための指令を含む非一時的コンピュータ可読媒体であって、
    前記コンピュータ可読指令は、
    サーバー側構成部品において、
    i)前記ソフトウェア・アプリケーションからの特徴ベクトル、
    ii)前記ソフトウェア・アプリケーションに関するメタデータおよび前記ソフトウェア・アプリケーションがインストールされ得るシステムに付随する文脈情報であって、クライエント側構成部品がアクセスしたウェブサイトおよびクライエント側構成部品の地理的位置を含む文脈情報、および
    iii)前記ソフトウェア・アプリケーションのジェネリック・フィンガープリント値、
    を含む情報をクライエント側構成部品から受信する指令と、
    特徴ベクトルをクライエント側構成部品から受信すると、機械学習により導出された分類アルゴリズムを特徴ベクトルに適用する指令と、
    前記ソフトウェア・アプリケーションに関するメタデータおよびクライエント側構成部品に関する文脈情報をクライエント側構成部品から受信すると、メタデータおよび文脈情報を調査する指令と、
    前記ソフトウェア・アプリケーションのジェネリック・フィンガープリント値をクライエント側構成部品から受信すると、ジェネリック・フィンガープリント値が悪意のあるものとみなすべきか否か判断する指令と、
    クライエント側構成部品に関して、前記ソフトウェア・アプリケーションが悪意のあるものとみなすか否かについて判断する指令と、
    特徴ベクトル、メタデータ、文脈情報、およびジェネリック・フィンガープリント値に基づいて得られた情報であって、前記ソフトウェア・アプリケーションが悪意のあるものとみなすか否かについての情報をクライエント側構成部品へ送信する指令とを有することを特徴とする非一時的コンピュータ可読媒体。
  8. メタデータは、従来式のシグネチャおよびジェネリックシグネチャからなるグループから選択されたものであることを特徴とする請求項に記載の非一時的コンピュータ可読媒体。
  9. ライエント側構成部品およびサーバー側構成部品は、別個の遠隔コンピュータデバイス上に構成されていることを特徴とする請求項に記載の非一時的コンピュータ可読媒体。
  10. クライエント側構成部品は、文脈情報を連続的に収集することを特徴とする請求項に記載の非一時的コンピュータ可読媒体。
JP2013542187A 2010-12-01 2011-12-01 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法 Expired - Fee Related JP5961183B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41858010P 2010-12-01 2010-12-01
US61/418,580 2010-12-01
PCT/US2011/062957 WO2012075336A1 (en) 2010-12-01 2011-12-01 Detecting malicious software through contextual convictions, generic signatures and machine learning techniques

Publications (3)

Publication Number Publication Date
JP2014504399A JP2014504399A (ja) 2014-02-20
JP2014504399A5 JP2014504399A5 (ja) 2014-12-18
JP5961183B2 true JP5961183B2 (ja) 2016-08-02

Family

ID=46172276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013542187A Expired - Fee Related JP5961183B2 (ja) 2010-12-01 2011-12-01 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法

Country Status (6)

Country Link
EP (1) EP2646911B1 (ja)
JP (1) JP5961183B2 (ja)
AU (1) AU2011336466C1 (ja)
BR (1) BR112013013625A2 (ja)
CA (1) CA2819832C (ja)
WO (1) WO2012075336A1 (ja)

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US20140188986A1 (en) 2013-01-02 2014-07-03 Sourcefire, Inc. Method and Apparatus for Identifying Computing Resource Trajectory
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9413781B2 (en) 2013-03-15 2016-08-09 Fireeye, Inc. System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
AU2014302603A1 (en) 2013-06-24 2016-01-07 Cylance Inc. Automated system for generative multimodel multiclass classification and similarity analysis using machine learning
RU2580036C2 (ru) 2013-06-28 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ создания гибкой свертки для обнаружения вредоносных программ
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9489514B2 (en) * 2013-10-11 2016-11-08 Verisign, Inc. Classifying malware by order of network behavior artifacts
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9083730B2 (en) 2013-12-06 2015-07-14 At&T Intellectual Property I., L.P. Methods and apparatus to identify an internet protocol address blacklist boundary
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9740857B2 (en) 2014-01-16 2017-08-22 Fireeye, Inc. Threat-aware microvisor
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
AU2015213797B2 (en) * 2014-02-07 2019-09-26 Cylance Inc. Application execution control utilizing ensemble machine learning for discernment
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US10268820B2 (en) 2014-06-11 2019-04-23 Nippon Telegraph And Telephone Corporation Malware determination device, malware determination system, malware determination method, and program
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9465939B2 (en) 2014-06-27 2016-10-11 Mcafee, Inc. Mitigation of malware
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
EP3222024A1 (en) * 2014-11-21 2017-09-27 Bluvector, Inc. System and method for network data characterization
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
CN104680861B (zh) * 2015-03-31 2017-02-01 佛山市金蓝领教育科技有限公司 互联网原子词点触学习机
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US9892261B2 (en) 2015-04-28 2018-02-13 Fireeye, Inc. Computer imposed countermeasures driven by malware lineage
US20160335432A1 (en) * 2015-05-17 2016-11-17 Bitdefender IPR Management Ltd. Cascading Classifiers For Computer Security Applications
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
RU2624552C2 (ru) * 2015-06-30 2017-07-04 Закрытое акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
JP6742398B2 (ja) 2015-07-31 2020-08-19 ブルヴェクター, インコーポレーテッドBluvector, Inc. マルウェアの識別とモデルの不均一性のために現場の分類器を再訓練するためのシステム及び方法
JP6039768B1 (ja) * 2015-08-12 2016-12-07 日本電信電話株式会社 調整装置、調整方法および調整プログラム
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
RU2606564C1 (ru) * 2015-09-30 2017-01-10 Акционерное общество "Лаборатория Касперского" Система и способ блокировки выполнения сценариев
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
KR101801752B1 (ko) 2016-02-16 2017-11-28 한국인터넷진흥원 악성앱 유사도 분석 방법 및 장치
JP5982597B1 (ja) * 2016-03-10 2016-08-31 株式会社Ffri 情報処理装置、情報処理方法、プログラム及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
JP6749873B2 (ja) * 2017-09-01 2020-09-02 日本電信電話株式会社 検知装置、検知方法、および、検知プログラム
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US20190102543A1 (en) * 2017-09-29 2019-04-04 AVAST Software s.r.o. Observation and classification of device events
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
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
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
GB2573179B (en) * 2018-04-20 2020-04-22 Arm Ip Ltd Reliance control in networks of devices
JP7097017B2 (ja) * 2018-05-14 2022-07-07 日新電機株式会社 部分放電診断装置
US11372893B2 (en) 2018-06-01 2022-06-28 Ntt Security Holdings Corporation Ensemble-based data curation pipeline for efficient label propagation
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
CN111147431B (zh) * 2018-11-06 2022-06-07 北京京东尚科信息技术有限公司 用于生成信息的方法和装置
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11743290B2 (en) 2018-12-21 2023-08-29 Fireeye Security Holdings Us Llc System and method for detecting cyberattacks impersonating legitimate sources
US11176251B1 (en) 2018-12-21 2021-11-16 Fireeye, Inc. Determining malware via symbolic function hash analysis
US11601444B1 (en) 2018-12-31 2023-03-07 Fireeye Security Holdings Us Llc Automated system for triage of customer issues
US11310238B1 (en) 2019-03-26 2022-04-19 FireEye Security Holdings, Inc. System and method for retrieval and analysis of operational data from customer, cloud-hosted virtual resources
US11252185B2 (en) 2019-03-28 2022-02-15 NTT Security Corporation Graph stream mining pipeline for efficient subgraph detection
US11677786B1 (en) 2019-03-29 2023-06-13 Fireeye Security Holdings Us Llc System and method for detecting and protecting against cybersecurity attacks on servers
US11636198B1 (en) 2019-03-30 2023-04-25 Fireeye Security Holdings Us Llc System and method for cybersecurity analyzer update and concurrent management system
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11119751B2 (en) 2019-07-16 2021-09-14 International Business Machines Corporation Self-learning optimized patch orchestration
WO2021053646A1 (en) * 2019-09-21 2021-03-25 Cashshield Pte. Ltd. Detection of presence of malicious tools on mobile devices
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
US11522884B1 (en) 2019-12-24 2022-12-06 Fireeye Security Holdings Us Llc Subscription and key management system
US11436327B1 (en) 2019-12-24 2022-09-06 Fireeye Security Holdings Us Llc System and method for circumventing evasive code for cyberthreat detection
US11838300B1 (en) 2019-12-24 2023-12-05 Musarubra Us Llc Run-time configurable cybersecurity system
JP2021189658A (ja) * 2020-05-28 2021-12-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
US11514173B2 (en) 2020-12-02 2022-11-29 International Business Machines Corporation Predicting software security exploits by monitoring software events
US20220269785A1 (en) * 2021-02-23 2022-08-25 Saudi Arabian Oil Company Enhanced cybersecurity analysis for malicious files detected at the endpoint level
US20230171269A1 (en) * 2021-11-30 2023-06-01 At&T Intellectual Property I, L.P. Identifying and targeting communication network events via uniform resource locator sets
EP4199471A1 (en) * 2021-12-17 2023-06-21 AO Kaspersky Lab System and method for restricting the reception of e-mails from a sender of bulk spam mail

Family Cites Families (11)

* 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
KR100612452B1 (ko) * 2004-11-08 2006-08-16 삼성전자주식회사 악성 코드 탐지 장치 및 그 방법
GB0513375D0 (en) * 2005-06-30 2005-08-03 Retento Ltd Computer security
US8201244B2 (en) * 2006-09-19 2012-06-12 Microsoft Corporation Automated malware signature generation
US8245295B2 (en) * 2007-07-10 2012-08-14 Samsung Electronics Co., Ltd. Apparatus and method for detection of malicious program using program behavior
US20090248696A1 (en) * 2008-03-31 2009-10-01 David Rowles Method and system for detecting restricted content associated with retrieved content
US8732825B2 (en) * 2008-05-28 2014-05-20 Symantec Corporation Intelligent hashes for centralized malware detection
US8255993B2 (en) * 2008-06-23 2012-08-28 Symantec Corporation Methods and systems for determining file classifications
US8181251B2 (en) * 2008-12-18 2012-05-15 Symantec Corporation Methods and systems for detecting malware
US20100169972A1 (en) * 2008-12-31 2010-07-01 Microsoft Corporation Shared repository of malware data
GB2469323B (en) * 2009-04-09 2014-01-01 F Secure Oyj Providing information to a security application

Also Published As

Publication number Publication date
BR112013013625A2 (pt) 2016-09-13
EP2646911B1 (en) 2018-04-04
WO2012075336A1 (en) 2012-06-07
CA2819832A1 (en) 2012-06-07
AU2011336466A1 (en) 2013-07-18
CA2819832C (en) 2017-03-14
JP2014504399A (ja) 2014-02-20
EP2646911A4 (en) 2014-07-23
AU2011336466C1 (en) 2017-01-19
AU2011336466B2 (en) 2016-08-25
EP2646911A1 (en) 2013-10-09

Similar Documents

Publication Publication Date Title
JP5961183B2 (ja) 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法
US9088601B2 (en) Method and apparatus for detecting malicious software through contextual convictions, generic signatures and machine learning techniques
US9218461B2 (en) Method and apparatus for detecting malicious software through contextual convictions
US10437997B2 (en) Method and apparatus for retroactively detecting malicious or otherwise undesirable software as well as clean software through intelligent rescanning
Alazab Profiling and classifying the behavior of malicious codes
Thomas et al. Machine learning approaches in cyber security analytics
EP2310974B1 (en) Intelligent hashes for centralized malware detection
US8850570B1 (en) Filter-based identification of malicious websites
Nissim et al. Keeping pace with the creation of new malicious PDF files using an active-learning based detection framework
US20120002839A1 (en) Malware image recognition
Thomas et al. Machine learning and cybersecurity
Arslan et al. A review on mobile threats and machine learning based detection approaches
Mohata et al. Mobile malware detection techniques
US20220058261A1 (en) System and method for identifying a cryptor that encodes files of a computer system
Deepserish et al. PET-Droid: Android Malware Detection Using Static Analysis
EP3961449B1 (en) System and method for identifying a cryptor that encodes files of a computer system
US11934515B2 (en) Malware deterrence using computer environment indicators
Parmar et al. Information Security against Malware Activities using AI Models
Alazab Forensic identification and detection of hidden and obfuscated malware
Al Shamsi Mapping, Exploration, and Detection Strategies for Malware Universe
CN117312943A (zh) 威胁情报分类方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141027

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141027

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160104

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160624

R150 Certificate of patent or registration of utility model

Ref document number: 5961183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees