JP2010146566A - マルウェア検出方法およびシステム - Google Patents

マルウェア検出方法およびシステム Download PDF

Info

Publication number
JP2010146566A
JP2010146566A JP2009286595A JP2009286595A JP2010146566A JP 2010146566 A JP2010146566 A JP 2010146566A JP 2009286595 A JP2009286595 A JP 2009286595A JP 2009286595 A JP2009286595 A JP 2009286595A JP 2010146566 A JP2010146566 A JP 2010146566A
Authority
JP
Japan
Prior art keywords
integer
attribute
attributes
malware
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009286595A
Other languages
English (en)
Inventor
Mark Kennedy
ケネディー マーク
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.)
Gen Digital Inc
Original Assignee
Symantec Corp
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 Symantec Corp filed Critical Symantec Corp
Publication of JP2010146566A publication Critical patent/JP2010146566A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】マルウェアを検出する方法を開示する。
【解決手段】本発明方法は、複数の既知の無害な実行可能ファイルにおける複数のメタデータフィールドの検査ステップを有する。本発明方法は、さらに、複数の既知の悪意がある実行可能ファイルにおける複数のメタデータフィールドの検査ステップも有する。本発明方法は、さらに、複数の既知の無害な実行可能ファイル、および既知の悪意がある実行可能ファイルにおける複数のメタデータフィールドの検査によって得られた情報に基づき、マルウェアを示すメタデータフィールド属性を推論するステップも有する。対応するシステムおよびコンピュータ読み取り可能な媒体も開示する。
【選択図】図1

Description

消費者および企業は、機密データを保存するのに、ますますコンピュータに依存するようになってきた。よって悪意あるプログラマーたちは、他者のコンピュータに対して違法な制御およびアクセスを得ることに、ますます力を傾注し続けているようである。悪意を抱くコンピュータプログラマーたちは、他人のコンピュータシステムおよびデータに危害を及ぼすウィルス、トロイの木馬、ワームおよびその他のプログラムをこれまでに作り、また作り続けている。これら悪意のあるプログラムは、通常マルウェアと称される。
セキュリティソフトウェア会社は、顧客に対して日頃からマルウェア署名(例えば、マルウェアを識別するハッシュ機能)を作成し、また展開することによって、マルウェアの高まる風潮と闘っている。しかしながら、膨大な量のマルウェアがまだ識別されていない。従って必要なのは、未確認のマルウェアを検出する方法(プロセス)である。
本発明の実施形態は、悪意があるファイル(以下「悪意ファイル」と称する)の一つ以上のメタデータフィールド属性に基づく悪意があるデータ(以下「悪意データ」と称する)の検出を目的とする。例えば、検査モジュールは、複数の既知の無害な実行可能ファイルの複数のメタデータフィールドを検査することができる。検査モジュールはまた、複数の既知の悪意がある実行可能ファイル(以下「悪意実行ファイル」と称する)の複数のメタデータフィールドも検査することができる。推論モジュールは、複数の既知の無害な実行可能ファイル(以下「無害実行ファイル」と称する)および既知の悪意実行ファイルにおける複数のメタデータフィールドを検査することによって収集した情報に基づいて、マルウェアを示すメタデータフィールド属性を推論することができる。
いくつかの実施形態では、セキュリティモジュールは、複数の既知の無害実行ファイル、および既知の悪意実行ファイルにおけるメタデータフィールドの検査から推論された情報を使って、未知の実行可能ファイル(以下「未知実行ファイル」と称する)がマルウェアを含んでいるか否かを判定することができる。例えば、セキュリティモジュールは、未知実行ファイルを受け取る可能性がある。このとき、セキュリティモジュールは、その未知実行ファイルがマルウェアを示すメタデータフィールド属性を含んでいるか否かを決定することによって、その未知実行ファイルがマルウェアを含んでいるか否かを決定することができる。
少なくとも一つの実施形態では、セキュリティモジュールは、未知実行ファイルがマルウェアを含んでいるのであれば、セキュリティアクションを実施することができる。セキュリティモジュールは、未知実行ファイルの隔離、未知実行ファイルのセキュリティベンダーへの報告、未知実行ファイルのマルウェアファイルリストへの追加、および/または他の適切なセキュリティアクションを実施することによって、セキュリティアクションを実施することができる。上述の実施形態の機能は、本明細書に記載の一般原理に基づいて、互いに組み合わせて使用することができる。これら実施形態および他の実施形態、機能および利点は、添付図面および特許請求の範囲と合わせて下記の説明を読むことによって、より完全に理解することができるであろう。
添付図面は多数の実施例を示し、これら図面は本明細書の一部である。以下の説明とともに、これら図面は、本発明の様々な原理を提示し、また説明するものである。
ある実施形態によるマルウェア検出の例示的なシステムのブロック図である。 ある実施形態によるマルウェア検出の例示的な方法のフローチャートである。 ある実施形態による例示的な実行可能ファイルのブロック図である。 ある実施形態によるマルウェア検出の例示的な方法のフローチャートである。 本明細書に記載および/または説明する一つ以上の実施例を実行することのできるコンピューティングシステム例のブロック図である。 本明細書に記載および/または説明する一つ以上の実施形態を実行することのできる、例示的なコンピューティングネットワークのブロック図である。
図面全体にわたり、同一の参照符号および説明は、類似するが、必ずしも同じものとは限らない要素を示している。本明細書に記載の実施例は、様々な変更した形態または代替的形態となり得るが、図面には例として特定の実施形態を示し、本明細書において詳細を示す。しかし、本明細書に記載の実施例は、開示された特定の形態に限定することを意図するものではない。むしろ本発明は、添付する特許請求の範囲に該当する、あらゆる変更形態、等価形態、代替的形態をカバーする。
以下に、より詳細に示すように、本発明は、一般に、既知の無害な実行可能ファイル(無害実行可能ファイル)と既知の悪意のある実行可能ファイル(悪意実行可能ファイル)とを検査し、そして検査中に得られる情報を使ってマルウェアの検出を行って、未知のファイルがマルウェアを含んでいるか否かを決定する方法およびシステムに関する。図1は、既知の無害実行可能ファイルと既知の悪意実行可能ファイルを検査し、そして未知の実行可能ファイル(未知実行可能ファイル)がマルウェアを含んでいるか否かを決定する例示的なシステムの図である。図2は、既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルを検査し、マルウェアを示すメタデータ属性を推論する例示的なプロセスを示す。図3は例示的なポータブルの実行可能(PE)ファイルを示し、図4はPEファイルがマルウェアを含んでいるか否かを決定する例示的なプロセスを示す。本発明の実施形態を実現する例示的なコンピューティングシステムおよび例示的なネットワークを、図5および図6に示す。
図1は例示的なシステム100のブロック図である。システム100は一つ以上のタスクを実施する一つ以上のモジュール110を含むことができる。例えば、モジュール110は、既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルのメタデータフィールドを検査する検査モジュール112を含むことができる。実行可能フィールドのメタデータフィールドは、実行可能ファイルのヘッダフィールドおよび/またはその他のフィールドを含むことができる。モジュール110はまた、既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルを検査することによって得られる情報に基づいて、マルウェアを示すメタデータフィールド属性を推論する、推論モジュール114を含むこともできる。モジュール110は、マルウェアを示すメタデータフィールド属性を使って未知実行可能ファイルがマルウェアを含んでいるか否かを決定することのできる、セキュリティモジュール116を含むことができる。
ある実施形態では、図1の一つ以上のモジュール110は、コンピューティングシステムによって実行されるとき、本明細書に開示する一つ以上のステップをコンピューティングシステムに実施させる、一つ以上のソフトウェアアプリケーションまたはプログラムを表すことができる。例えば、以下により詳しく説明するように、一つ以上のモジュール110は、図5に示すコンピューティングシステム510のような一つ以上のコンピューティング装置および/または図6に示す例示的なネットワークアーキテクチャ600の一部で実行するために構成した、ソフトウェアモジュールを表すことができる。図1の一つ以上のモジュール110はまた、本明細書に開示するステップと関連する一つ以上のタスクを実行するように構成した、一つ以上の特別用途コンピュータの全体または一部も表すことができる。
システム100はデータベース120を含むことができる。データベース120は、既知の無害実行可能ファイルおよび既知の悪意実行可能ファイル内で検査される一つ以上のメタデータフィールドのリストを記憶することのできる、メタデータフィールド・データベース122を含むことができる。データベース120はまた、マルウェアメタデータフィールド情報データベース124を含むことができる。マルウェアメタデータフィールド情報データベース124は、マルウェアを示すメタデータフィールド属性および/またはメタデータフィールド属性がどのようにマルウェアを示すのかを識別するどんな情報も含むことができる。マルウェアを示すメタデータフィールド属性は、実行可能ファイル内で見つかった場合、その実行可能ファイルがマルウェアを含んでいることを示すことのできる一つ以上のメタデータフィールド属性を含むことができる。
いくつかの実施形態では、マルウェアメタデータフィールド情報データベース124は、マルウェアのメタデータフィールド属性をどのように利用して、未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するのかを示す情報を含むことができる。ある実施形態によると、マルウェアメタデータフィールド情報データベース124は、任意の適切な機械学習アルゴリズムを既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルに適用することから得られる情報を含むことができる。例えば、マルウェアメタデータフィールド情報データベース124は、マルウェアの検出におけるメタデータ属性の有用性を示す、一つ以上のメタデータフィールド属性の重み付け情報を含むことができる。
いくつかの実施形態では、マルウェアメタデータフィールド情報データベース124は、閾値を示す閾値情報を含むことができる。セキュリティモジュール116は、マルウェアメタデータフィールド情報データベース124のメタデータフィールド属性と一致する実行可能ファイルのメタデータフィールド属性の数が閾値以上の場合、実行可能ファイルがマルウェアを含んでいると決定することができる。マルウェアメタデータフィールド情報データベース124は、付加的または代替的に、マルウェアを示すメタデータフィールド属性の一つ以上の組み合わせを示す情報を含むことができる。いくつかの実施形態では、マルウェアメタデータフィールド情報データベース124は、マルウェアを示すあるメタデータフィールド属性が、マルウェアを示す別のメタデータフィールド属性よりも強力なマルウェアの指標であることを示す情報を含むことができる。
図1の一つ以上のデータベース120は、一つ以上のコンピューティング装置の一部分を示す。一つ以上のデータベース120は、図5に示すコンピューティングシステム510の一部分および/または図6に示す例示的なネットワークアーキテクチャ600のいくつかの部分を示す。あるいは、図1の一つ以上のデータベース120は、コンピューティング装置によってアクセスすることのできる一つ以上の物理的に分かれた装置を示す。
図2は検査モジュール112などの検査モジュール、推論モジュール114などの推論モジュールおよび/またはセキュリティモジュール116などのセキュリティモジュールによって実現することのできるプロセスを示す。検査モジュールは、複数の既知の無害実行可能ファイルにおける複数のメタデータフィールドを検査することができる(ステップ210)。例えば、検査モジュールは、2つ以上の既知の無害実行可能ファイルにおける2つ以上のメタデータフィールドを検査することができる。
既知の無害実行可能ファイルは、無害であると識別された任意のファイル(すなわち、マルウェアを含まないファイル)を含む。実行可能ファイルのメタデータフィールドは、実行可能ファイルに関するおよび/またはそれに関連する情報を持つどんなフィールドであってもよい。例えば、実行可能ファイルのメタデータフィールドにおける入力事項は、実行可能ファイルの属性を示すことができる。
いくつかの実施形態では、メタデータフィールドはまた、実行可能ファイルの静的属性を含むことができる。本明細書において、用語「静的属性」とは、ファイルが実行されていないときに観測できるファイルの属性に言及する。つまり、静的属性は、実行可能ファイルの情報の検査に基づいて決定できる属性である。逆に、動的属性は、ファイルの実行に基づいて観測される属性である。
実行可能ファイルは、コンピュータが実行できるコード(つまり、命令)を含む任意のファイルとすることができる。実行可能ファイルはまた、実行ファイルまたはバイナリと称することもできる。実行可能ファイルは、適切な実行可能ファイルフォーマットによってフォーマットすることができる。実行可能ファイルフォーマットの例として、ポータブル実行可能(PE)ファイルフォーマットがある。PEファイルフォーマットは、WINDOWS(登録商標)オペレーティングシステムの32ビットおよび64ビットのバージョンに使用されるファイルフォーマットとすることができる。実行可能ファイルはまた、LINUX(登録商標)オペレーティングシステム、MAC(登録商標)オペレーティングシステム、UNIX(登録商標)オペレーティングシステムおよび/または他のオペレーティングシステムの実行ファイルを含むことができる。
既知の無害実行可能ファイルの検査に加え、検査モジュールは、複数の既知の悪意実行可能ファイルにおける複数のメタデータフィールドを検査することができる(ステップ220)。例えば検査モジュールは、2つ以上の既知の悪意実行可能ファイルにおける2つ以上のメタデータフィールドを検査することができる。既知の悪意実行可能ファイルとしては、コンピュータシステムおよびデータに危害を及ぼすウィルス、トロイの木馬、ワームおよび/または他のプログラムのような、マルウェアを含むことで知られるどんな実行可能ファイルがある。いくつかの実施形態では、検査モジュールは、既知の無害実行可能ファイルおよび既知の悪意実行可能ファイル内で同じメタデータフィールドを検査することができる。他の実施形態では、検査モジュールは、既知の悪意実行可能ファイルよりも既知の無害実行可能ファイル内で、一つ以上の様々なメタデータフィールドを検査することができる。
検査モジュールは、実行可能ファイルのメタデータフィールド内の属性値を決定することによって、実行可能ファイルのメタデータフィールドを検査することができる。検査モジュールは、検査中に収集した情報(例えば、属性値)を、例えばマルウェアメタデータフィールド情報データベース124のようなデータベースに記憶することができる。
検査モジュールが既知の無害実行可能ファイルおよび既知の悪意実行可能ファイルを検査した後に、推論モジュールは、検査中に得た情報に基づいて、マルウェアを示すメタデータフィールド属性を推論することができる。先にも述べたように、検査中に得た情報は属性情報を含むことができる。推論モジュールは属性情報の処理を行い、どの属性がマルウェアを示すのかを決定することができる。推論モジュールは、適切な機械学習アルゴリズムを使って、どの属性がマルウェアを示しているかを決定することができる。推論モジュールはまた、未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するのにメタデータ属性をどのように使用するのかを決定するために、任意の適切な機械学習アルゴリズムも使うことができる。例えば、推論モジュールは、メタデータ属性のどの組み合わせが悪意実行可能ファイルを示すのかを決定することができる。推論モジュールは、マルウェアメタデータフィールド情報データベース124のようなデータベースに、マルウェアを識別するためのメタデータ属性の使用法に関するあらゆる情報を記憶することができる。
実行可能ファイルは、様々なタイプのメタデータフィールドおよびそれに対応する属性を含むことができる。例えば、実行可能なファイルとしては、一つ以上のデバッグ・セクション属性に関する1つ以上のデバッグ・セクションフィールド、1つ以上のインポート属性に関する1つ以上のインポートフィールド、1つ以上のシンボル・テーブル属性に関する1つ以上のシンボル・テーブルフィールド、1つ以上のオプショナル・ヘッダ属性に関する1つ以上のオプショナル・ヘッダフィールド、1つ以上の特性属性に関する一つ以上の特性フィールド、1つ以上のイメージ・サブシステム属性に関する1つ以上のイメージ・サブシステムフィールド、1つ以上のベース・オブ・イメージ属性に関する1つ以上のベース・オブ・イメージフィールド、1つ以上のリンカ・バージョン属性に関する1つ以上のリンカ・バージョンフィールド、1つ以上のサイズ属性に関する1つ以上のサイズフィールド、および/または1つ以上のリアル・バーチャル・アドレス(RVA)属性に関する1つ以上のRVAフィールドがある。
実行可能ファイルとしては、さらに、1つ以上のエントリー・ポイント属性に関する1つ以上のエントリー・ポイントフィールド、1つ以上のコード・セクション・ベース属性に関する1つ以上のコード・セクション・ベースフィールド、1つ以上のノー・イン・アウト属性に関する1つ以上のノー・イン・アウトフィールド、1つ以上のスレッド・レベル・スペキュレーション(TLS)属性に関する1つ以上のTLSフィールド、1つ以上のハズ・サーティフィケート属性に関する1つ以上のハズ・サーティフィケートフィールド、1つ以上のノード属性に関する1つ以上のノードフィールド、1つ以上のアライメント属性に関する1つ以上のアライメントフィールド、1つ以上のオペレーティング・-システム・バージョン属性に関する1つ以上のオペレーティング・システム・バージョンフィールド、1つ以上のイメージ・バージョン属性に関する1つ以上のイメージ・バージョンフィールド、1つ以上のミニマム・サブシステム・バージョン属性に関する1つ以上のミニマム・サブシステム・バージョンフィールド、1つ以上のダイナミック・リンク・ライブラリ(DLL)特性属性に関する1つ以上のDLL特性フィールド、1つ以上のエクスターナルバインディングファシリティ(EBFs)属性に関する1つ以上のEBFsフィールド、1つ以上のスタック・サイズ属性に関する一つ以上のスタック・サイズフィールド、1つ以上のヒープ・サイズ属性に関する1つ以上のヒープ・サイズフィールド、および/または1つ以上のセクション数属性に関する1つ以上のセクション数フィールドがある。
本明細書に記載する属性は、任意の適切な種類のデータによっても表すことができる。例えば、デバッグ・セクション属性としては、デバッグ・セクション整数があり、このシンボル・テーブル属性としては、シンボル・テーブル・ポインタ整数および/またはシンボル整数の数があり、イメージ・サブシステム属性としては、グラフィカル・ユーザーインタフェース整数および/またはキャラクタ・ベース・ユーザーインタフェース整数があり、またリンカ・バージョン属性としては、メジャー・リンカ・バージョン整数および/またはマイナー・リンカ・バージョン整数がある。RVA属性としては、RVA・エントリー・ポイント整数、RVA・スタート・オブ・コード・セクション整数、RVA・ベース・オブ・コード-セクション整数、および/またはRVA・スタート・オブ・データ・セクション整数がある。
オペレーティング・システム・バージョン属性としては、メジャー・オペレーティング・システム・バージョン整数および/またはマイナー・オペレーティング・システム・バージョン整数がある。イメージ・バージョン属性としては、メジャー・イメージ・バージョン整数および/またはマイナー・イメージ・バージョン整数がある。ミニマム・サブシステム・バージョン属性としては、メジャー・サブシステム・バージョン整数および/またはマイナー・サブシステム・バージョン属性がある。サイズ属性としては、イメージ・サイズ整数、コード・セクション・サイズ整数、初期化・データ・サイズ整数、非初期化・データ・サイズ整数、および/またはヘッダ・サイズ整数がある。オプショナル・ヘッダ属性としては、実行可能ファイルのオプショナル・ヘッダにおける任意の属性がある。
エントリー・ポイント属性としては、エントリー・ポイント整数がある。コード・セクション・ベース属性としては、コード・セクション・ベース整数がある。アライメント属性としてはセクション・アライメント整数および/またはファイル・アライメント整数がある。DLL・特性属性としては、DLL・特性整数があり、スタック-サイズ属性としては、サイズ・オブ・スタック・リザーブ整数および/またはサイズ・オブ・スタック・コミット整数があり、ヒープ・サイズ属性としては、サイズ・オブ・ヒープ・リザーブ整数および/またはサイズ・オブ・ヒープ・コミット整数があり。ベース・オブ・イメージ属性としては、ベース・オブ・イメージ整数があり、EBFs属性としてはEBFs整数がある。ノー・イン・アウト属性としては、ノー・イン・アウト整数があり、ハズ・サーティフィケート属性としては、ハズ・サーティフィケート整数があり、ナンバー・オブ・セクション属性としては、ナンバー・オブ・セクション整数があり、ノード属性としてはノード整数があり、TLS属性としてはTLS整数がある。
インポート属性としては、ハズ・インポート整数、ハズ・ディレイド・インポート整数、urlmon・インポート整数、msvcrt・インポート整数、oleaut32・インポート整数、setupapi・インポート整数、user32・インポート整数、advapi32・インポート整数、shell32・インポート整数、gdi32・インポート整数、comdlg32・インポート整数および/またはimm32・インポート整数がある。特性属性としては、様々な実行可能ファイル特性用の1つ以上の特性フラグがある。
上述のように、メタデータフィールド属性は、実行可能ファイルの様々な特性を表すことができる。例えば、複数のセクション・アライメント整数を使用して、セクションをどこにロードする必要があるかを示すことができる。複数のファイル・アライメント整数は、セクション開始のオフセットとすることができる。メジャーおよびマイナーのオペレーティング・システム・バージョン整数は、実行可能ファイルの実行に必要なミニマム・オペレーティング・システムバージョンを示すことができる。メジャーおよびマイナーのイメージ・バージョン整数は、実行可能ファイルのバージョンを示す。メジャーおよびマイナーのサブシステム・バージョン整数は、実行可能ファイルの実行に必要とされる、最小限のサブシステム・バージョンを示すことができる。イメージ・サイズ整数は、セクション・アライメントを考慮したイメージのサイズを示すことができる。ヘッダ・サイズ整数は、実行可能ファイルにおけるヘッダの全体サイズを示すことができる。グラフィカル・ユーザーインタフェース整数は、実行可能ファイルがグラフィカル・ユーザーインタフェースを使用するか否かを示すフラグを含むことができる。キャラクターベースド・ユーザーインタフェース整数は、実行可能ファイルがキャラクター・ベースド・ユーザーインタフェースを使用するか否かを示すフラグを含むことができる。
サイズ・オブ・スタック・リザーブ整数は、スタックのためにとっておく必要のあるアドレススペースの量を示すことができる。サイズ・オブ・スタック・コミット整数は、スタックのためにコミットされる実際のメモリ量を示すことができる。サイズ・オブ・ヒープ・リザーブ整数は、ヒープのためにとっておく必要のあるアドレススペースの量を示すことができる。サイズ・オブ・ヒープ・コミット整数は、ヒープのためにコミットされる実際のメモリ量を示すことができる。シンボル・テーブル・ポインタ整数は、シンボル・テーブルのオフセットとすることができる。ナンバー・オブ・シンボル整数は、シンボル・テーブル内のシンボル数を示すことができる。デバッグ・セクション整数は、実行可能ファイルがデバッグ・セクションを有するか否かを示すことができる。メジャーおよびマイナーのリンカ・バージョン整数は、実行可能ファイルを生成したリンカのバージョンを示すことができる。コード・セクション・サイズ整数は、実行可能ファイルにおけるコードセクションのサイズを示すことができる。初期化・データ・サイズ整数は、実行可能ファイルの中の初期化・データセクションのサイズを示すことができる。非初期化・データ・サイズ整数は、実行可能ファイルの中の非初期化・データセクションのサイズを示すことができる。
urlmon・インポート整数は、実行可能ファイルがurlmon.dllファイルにリンクしているか否かを示すことができる。msvcrt・インポート整数は、実行可能ファイルがmsvcrt.dllファイルにリンクしているか否かを示すことができる。oleaut32・インポート整数は、実行可能ファイルがoleaut32.dllファイルにリンクしているか否かを示すことができる。 setupapi・インポート整数は、実行可能ファイルがsetupapi.dllファイルにリンクしているか否かを示すことができる。user32・インポート整数は、実行可能ファイルがuser32−import.dll ファイルにリンクしている否かを示すことができる。advapi32・インポート整数は、実行可能ファイルがadvapi.exeファイルにリンクしているか否かを示すことができる。shell32・インポート整数は、実行可能ファイルがshell32・imports.dllファイルにリンクしているか否かを示すことができる。gdi32インポート整数は、実行可能ファイルが gdi32.dllファイルにリンクしているか否かを示すことができる。comdlg32・インポート整数は、実行可能ファイルがkomdlg32.dllファイルにリンクしているか否かを示すことができる。imm32・インポート整数は、実行可能ファイルがimm32.dllファイルにリンクしているか否かを示すことができる。
上述したように、実行可能ファイルはPEファイルフォーマットとすることができる。図3はPEファイルフォーマットの実行可能ファイル300の例を示す。図3に示すように、実行可能ファイル300は、ディスクオペレーティングシステム(DOS)スタブ310を含むことができる。実行可能ファイル300はまた、ファイルヘッダ320を含むことができる。ファイルヘッダ320は一つ以上のメタデータフィールドを含むことができる。例えば、ファイルヘッダ320は、バイナリが動作するよう意図したシステムを示すマシンフィールド、ナンバー・オブ・セクションフィールド、タイム・スタンプフィールド、シンボル・テーブル・ポインタフィールド、シンボル数フィールド、デバッグ・情報フィールド、オプショナル・ヘッダ・サイズフィールド、イメージ・ファイル・リロケーション・ストリップドフィールド、イメージ・ファイル・実行可能・イメージフィールド、イメージ・ファイル・ライン・ナンバー・ストリップドフィールド、ファイル・ローカル・シンボル・ストリップドフィールド、イメージ・ファイル・アグレッシブ・ウォーキング・セット・トリムフィールド、イメージ・ファイル・バイツ・リバースド・ローフィールド、イメージ・ファイル・32-ビット・マシンフィールド、イメージ・ファイル・デバッグ・ストリップドフィールド、イメージ・ファイル・リムーバブル・ラン・フロム・スワップフィールド、イメージ・ファイル・ネット・ラン・フロム・スワップフィールド、イメージ・ファイル・システムフィールド、イメージ・ファイルダイナミックリンクライブラリ(DLL)フィールド、および/またはイメージ・ファイル・アップ・システム・オンリーフィールドを含むことができる。
実行可能ファイル300はまた、オプショナル・ヘッダ330を含むことができる。オプショナル・ヘッダ330は、一つ以上のメタデータフィールドを含む。例えば、オプショナル・ヘッダ330は、メジャー・リンカ・バージョンフィールド、マイナー・リンカ・バージョンフィールド、サイズ・オブ・コードフィールド、サイズ・オブ・初期化・データフィールド、サイズ・オブ・非初期化・データフィールド、オフセット・ツー・ザ-エントリー・ポイントフィールド、アドレス・オブ・エントリー・ポイントフィールド、オフセット・ツー・ザ・ベース・オブ・コードフィールド、ベース・オブ・データフィールド、セクション・アライメントフィールド、ファイル・アライメントフィールド、メジャー・オペレーティング・システム・バージョンフィールド、マイナー・オペレーティング・システム・バージョンフィールド、メジャー・イメージ・バージョンフィールド、マイナー・イメージ・バージョンフィールド、メジャー・サブシステム・バージョンフィールド、マイナー・サブシステム・バージョンフィールド、WINDOWS(登録商標)・32-ビットグラフィカルユーザーインタフェース(GUI)アプリケーションフィールド、WINDOWS(登録商標)・32-ビット・バージョン・バリューフィールド、サイズ・オブ・イメージフィールド、サイズ・オブ・ヘッダフィールド、チェック・サムフィールド、イメージ・サブシステム・ネイティブフィールドを含むことができる。
オプショナル・ヘッダ330はまた、イメージ・サブシステム・WINDOWS(登録商標)・GUIフィールド、イメージ・サブシステム・WINDOWS(登録商標)キャラクターユーザーインタフェース(CUI)フィールド、イメージ・サブシステム・OS/2・CUIフィールド、イメージ・サブシステム・POSIX・CUIフィールド、DLL・特性フィールド、プロセス・アタッチメントフィールド、スレッド・デタッチメントフィールド、スレッド・アタッチメントフィールド、プロセス・デタッチメントフィールド、サイズ・オブ・スタック・リザーブフィールド、サイズ・オブ・スタック・コミットフィールド、サイズ・オブ・ヒープ・リザーブフィールド、サイズ・オブ・ヒープ・コミットフィールド、ローダフラグ、イメージ-ディレクトリフラグを含むことができる。
実行可能ファイル300はまた、データディレクトリ340およびセクションヘッダ350を含むことができる。セクションヘッダ350は、1つ以上のメタデータフィールドを含むことができる。例えば、セクションヘッダ350は、イメージ・サイズショートニング・フィールド、イメージ・セクション・ヘッダフィールド、バーチャル・アドレスフィールド、サイズ・オブ・ロー・データフィールド、ポインター・ツー・ローデータフィールド、ポインター・ツー・リロケーションフィールド、実行可能ファイル300の一つ以上の属性を示す一つ以上のフラグを含むことのできる特性フィールドを含む。実行可能なファイル300はまた、セクション1の360(1)からセクションNの360(n)を含むことができる。
図4は、ポータブル実行可能ファイルのマルウェアを検出する方法を示す。検査モジュールは、複数の既知のポータブルな無害実行可能ファイルの複数のメタデータフィールドを検査することができる(ステップ410)。検査モジュールはまた、複数の既知のポータブルな悪意実行可能ファイルにおける複数のメタデータフィールドを検査することができる(ステップ420)。検査モジュールは、既知のポータブルな無害実行可能ファイルおよび/または既知のポータブルな悪意実行可能ファイルを任意な数だけ検査することができる。例えば、検査モジュールは、数十、数百、数千、数万、数百万の実行可能ファイルを検査することができる。検査モジュールはまた、既知のポータブルな無害実行可能ファイルおよび/または既知のポータブルな悪意実行可能ファイルのメタデータフィールドを任意な数だけ検査することができる。実行可能ファイルが検査された後、推論モジュールは検査に基づいて、マルウェアを示すメタデータフィールド属性を推論することができる(ステップ430)。
セキュリティモジュールは、推論モジュールによって推論された情報を使って、未知の実行可能ファイルがマルウェアを含んでいるか否かを決定することができる。例えば、セキュリティモジュールは未知の実行可能ファイルを受け取る可能性がある(ステップ440)。セキュリティモジュールは、未知の実行可能ファイルが前もって識別されたマルウェアを示すメタデータフィールド属性を含んでいるか否かを決定することによって、未知の実行可能ファイルがマルウェアを含んでいるか否かを決定することができる。
いくつかの実施形態では、セキュリティモジュールはアンチウィルスセキュリティソフトウェアプログラムを含む、またはその一部とすることができる。少なくとも一つの実施形態によると、クライアントコンピューティング装置はセキュリティモジュールを含むことができ、そしてセキュリティモジュールは、クライアントコンピューティング装置の未知のファイルがマルウェアを含んでいるか否かを決定することによって、クライアントコンピューティング装置を保護することができる。セキュリティモジュールはまた、クライアントコンピューティング装置にダウンロードされるファイルがマルウェアを含んでいるか否かを決定することができる。その他の実施形態では、サーバまたは他の任意のコンピューティング装置もセキュリティモジュールを含むことができる。
一実施形態では、850,000個の既知の無害実行可能ファイルおよび500,000個の既知の悪意実行可能ファイルを検査モジュールによって検査した。検査中に収集された情報は、推論モジュールによって処理され、マルウェアを示すヘッダフィールド属性を決定した。推論モジュールによって推論された情報に基づき、セキュリティモジュールは、0.5%以下の誤検出判定を返しながら、約50〜60%の悪意実行可能ファイルを悪質なものとして識別することができた。このような結果を当業者は予期しなかったであろう。
図5は、本明細書に記載および/または説明する1つ以上の実施形態を実行することのできる例示的なコンピューティングシステム510のブロック図である。コンピューティングシステム510は、コンピュータの読み取り可能な命令を実行することのできる1つのまたは複数のマルチプロセッサコンピューティング装置またはシステムを広義に表している。コンピューティングシステム510の例としては、以下のものに限定しないが、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティングシステム、ハンドヘルドデバイスまたは他のコンピューティングシステムまたは装置がある。その最も基本的な構成において、コンピューティングシステム510は少なくとも1個のプロセッサ514およびシステムメモリ516を備えることができる。
プロセッサ514は、一般に、データ処理または命令の機械言語翻訳および実行を行うことのできる任意のタイプまたは形式の処理ユニットを表す。ある実施形態では、プロセッサ514は、ソフトウェアアプリケーションまたはモジュールから命令を受け取る可能性がある。これらの命令によって、プロセッサ514は本明細書に記載および/または説明する一つ以上の実施例の機能を実施することができる。例えば、プロセッサ514は、単独で、またはその他の構成部品と組み合わせて、本明細書に記載する検査、推論、受け取り、決定および/または実行というステップのうち一つ以上のものを実施する、または実施する手段とすることができる。プロセッサ514は、さらに、本明細書に記載および/または説明する他のステップ、方法またはプロセスを実施する、または実施する手段とすることができる。
システムメモリ516は、一般に、データおよび/または他のコンピュータの読み取り可能な命令を記憶することのできる、任意のタイプまたは形式の揮発性もしくは不揮発性の記憶装置または媒体を表す。システムメモリ516の例としては、以下のものに限定しないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリまたはその他のあらゆる適切なメモリ装置がある。ある実施形態では、必須ではないが、コンピューティングシステム510は、揮発性メモリユニット(例えばシステムメモリ516)および不揮発性記憶装置(例えば、以下に詳細を説明する主記憶装置532など)の双方を有することができる。
ある実施形態では、例示的なコンピュータシステム510は、さらに、プロセッサ514およびシステムメモリ516に加えて、1つ以上のコンポーネントまたは素子を備えることができる。例えば、図5に説明するように、コンピューティングシステム510は、メモリコントローラ518、入力/出力(I/O)コントローラ520および通信インタフェース522を備えることができ、それらはそれぞれ通信インフラ512を介して相互に接続する。通信インフラ512は、一般に、コンピューティング装置における1個以上のコンポーネント間の通信を容易化することのできる、任意のタイプまたは形式のインフラを表す。通信インフラ512の例としては、以下のものに限定しないが、通信バス(ISA,PCI,PCIeまたは同様のバス)およびネットワークがある。
メモリコントローラ518は、一般に、メモリもしくはデータの処理、またはコンピューティングシステム510の1個以上のコンポーネント間の通信を制御することのできる、任意のタイプまたは形式の装置を表す。例えば、ある実施形態では、メモリコントローラ518は、通信インフラ512を介して、プロセッサ514、システムメモリ516、I/Oコントローラ520間の通信を制御することができる。ある実施形態では、メモリコントローラは、単独で、または他の素子と組み合わせて、例えば検査、推論、受け取り、決定、および/または実行などのような、本明細書に記載および/または説明する、一つ以上のステップまたは機能を実施する、または実施する手段とすることができる。
I/Oコントローラ520は、一般に、コンピューティング装置の入出力機能の調整および/または制御を行うことのできる、任意のタイプまたは形式のモジュールを表す。例えば、ある実施形態では、I/Oコントローラは、コンピューティングシステム510の1個以上の素子、例えば、プロセッサ514、システムメモリ516、通信インタフェース522、ディスプレイアダプタ526、入力インタフェース530および記憶インタフェース534間におけるデータ送信の制御または容易化を行うことができる。I/Oコントローラ520は、例えば、単独で、または他の素子と組み合わせて、本明細書に記載する検査、推論、受け取り、決定、および/または実施というステップのうち一つ以上を実施するために使用することができるか、または実施するための手段とすることができる。I/Oコントローラ520は、さらに、本明細書に示す他のステップまたは機能を実施するために使うことができる、または実施するための手段とすることができる。
通信インタフェース522は、例示的なコンピューティングシステム510と1つ以上の付加装置との間の通信を容易化することのできる、任意のタイプまたは形式の通信装置またはアダプタを広義に表す。例えば、ある実施形態では、通信インタフェース522は、コンピューティングシステム510および付加的コンピューティングシステムを備えるプライベートまたはパブリックのネットワークとの間の通信を容易化することができる。通信インタフェース522の例としては、以下のものに限定しないが、有線ネットワークインタフェース(例えばネットワークインタフェースカード)、無線ネットワークインタフェース(例えば無線ネットワークインタフェースカードなど)、モデムおよび他の適切なインタフェースがある。少なくとも一つの実施形態では、通信インタフェース522は、例えばインターネットなどのネットワークへの直接のリンクを介して、リモートサーバへの直接的な接続を提供することができる。通信インタフェース522はまた、例えば、ローカルエリアネットワーク(Ethernet(登録商標)ネットネットワークなど)、パーソナルエリアネットワーク、電話またはケーブルネットワーク、携帯電話接続、衛星データ接続またはその他の適切な接続を通して、このような接続を間接的に提供することもできる。
ある実施形態では、通信インタフェース522はまた、外部バスまたは通信チャネルを介して、コンピューティングシステム510と1つ以上の追加ネットワークまたは記憶装置との間で通信を容易化するように構成した、ホストアダプタを表すこともできる。ホストアダプタの例には、SCSIホストアダプタ、USBホストアダプタ、IEEE594ホストアダプタ、SATAとeSATAホストアダプタ、ATAとPATAホストアダプタ、ファイバーチャネルインタフェースアダプタ、Ethernet(登録商標)アダプタなどが含まれるが、これらに限定されない。また通信インタフェース522によって、コンピューティングシステム510に分散またはリモートコンピューティングを行わせることもできる。例えば、通信インタフェース522はリモート装置から命令を受け取ったり、または実行のためにリモート装置へ命令を送ったりすることができる。ある実施形態では、通信インタフェース522は、単独で、またはその他の構成要素と組み合わせて、本明細書に開示する検査、推論、受け取り、決定および/または実施というステップのうち一つ以上のものを実施する、または実施する手段とすることができる。通信インタフェース522は、さらに、本明細書に示す他のステップおよび特徴を実施するために使用することができる、または実施する手段とすることができる。
図5に示すように、コンピューティングシステム510は、さらに、ディスプレイアダプタ526を介して通信インフラ512に接続する少なくとも1つのディスプレイ装置524を備えることができる。ディスプレイ装置524は一般に、ディスプレイアダプタ526によって転送される情報を視覚的に表示することのできる、任意のタイプまたは形式の装置を表す。同様に、ディスプレイアダプタ526は、一般に、ディスプレイ装置524で表示するように、通信インフラ512(または本発明の技術分野で既知のフレームバッファ)からのグラフィックス、テキストおよび他のデータを転送するよう構成した、任意のタイプまたは形式の装置を表す。
図5に示すように、例示的なコンピューティングシステム510は、さらに、入力インタフェース530を介して通信インフラ512に接続する、少なくとも1個の入力装置528を備えることができる。入力装置528は、一般に、コンピュータまたは人間が生成した入力を例示的コンピューティングシステム510に供給することのできる、任意のタイプまたは形式の入力装置を表す。入力装置528の例としては、以下のものに限定しないが、キーボード、ポインティング装置、音声認識装置または他の入力装置がある。少なくとも一つの実施形態では、入力装置528は、単独で、または他の素子と組み合わせて、本明細書に開示する検査、推論、受け取り、決定、および/または実施というステップのうち一つ以上のものを実施することができるか、または実施するための手段とすることができる。入力装置528は、さらに、本明細書に示すその他のステップおよび特徴を実施するために使用することができるか、または実施するための手段とすることができる。
図5に説明するように、例示的なコンピューティングシステム510は、さらに、記憶インタフェース534を介して通信インフラ512に接続する、主記憶装置532およびバックアップ記憶装置533を備えることができる。記憶装置532および533は、一般に、データおよび/または他のコンピュータ読み取り可能な命令を記憶することのできる、任意のタイプおよび/または形式の記憶装置または記憶媒体を表す。例えば、記憶装置532,533は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、フロッピー(登録商標)ディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブとすることができる。記憶インタフェース423は、一般に、記憶装置532,533と、コンピューティングシステム510における他の素子との間でデータの送信を行う、任意のタイプまたは形式のインタフェースまたはデバイスを表す。
ある実施形態では、記憶装置532,533は、コンピュータソフトウェア、データ、または他のコンピュータ読み取り可能な情報を記憶するように構成した、リムーバブル記憶装置に対する読み出しおよび/または書き込みを行うよう構成することができる。適切なリムーバブル記憶ユニットの例としては、以下のものに限定しないが、フロッピー(登録商標)ディスク、磁気テープ、光ディスク、フラッシュメモリ装置がある。記憶装置532,533はまた、コンピュータソフトウェア、データまたは他のコンピュータの読み取り可能な命令をコンピューティングシステム510にロードするための他の類似な構造またはデバイスを備えることができる。例えば、記憶装置532,533は、ソフトウェア、データまたは他のコンピュータの読み取り可能な情報を読み出しおよび書き込みするよう構成することができる。記憶装置532,533は、さらに、コンピューティングシステム510の一部とする、または他のインタフェースシステムを通してアクセスする個別のデバイスとすることもできる。
ある実施形態では、本明細書に開示する例示的なファイルシステムを主記憶装置532に記憶するとともに、本明細書に開示する例示的なファイルシステムバックアップをバックアップ記憶装置533に記憶することができる。記憶装置532,533は、例えば、本開示に示す他のステップや特徴を実施するために使用することができる、または実施するための手段とすることができる。
他の多数のデバイスまたはサブシステムをコンピューティングシステム510に接続することができる。逆に、本明細書に記載および/または説明する実施形態を実施するために、図5に示すコンポーネントおよびデバイスの全てが存在しなければならないということではない。上述したデバイスおよびサブシステムは、さらに、図5に示すものとは異なる方法で相互に接続することができる。コンピューティングシステム510は、さらに、ソフトウェア、ファームウェア、および/またはハードウェア構成を任意の数だけ使用することができる。例えば、本明細書に開示する一つ以上の実施例は、コンピュータ読み取り可能な媒体にコンピュータプログラム(または、コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータの読み取り可能な命令またはコンピュータ制御ロジックとも称することができる)として符号化することができる。用語「コンピュータ読み取り可能な媒体」とは、一般に、コンピュータの読み取り可能な命令を記憶または担持することができる任意の形式の装置、キャリア、または媒体に言及する。コンピュータ読み取り可能な媒体としては、以下のものに限定しないが、例えば、搬送波のような伝送タイプの媒体、および磁気記憶媒体のような物理的媒体(例えば、ハードディスクドライブやフロッピー(登録商標)ディスク)、光記憶媒体(例えば、CD−ROMまたはDVD−ROM)、電子記憶媒体(例えばソリッドステートドライブおよびフラッシュ媒体)および他の分散システムがある。
コンピュータプログラムを含むコンピュータ読み取り可能な媒体は、コンピューティングシステム510にロードすることができる。コンピュータ読み取り可能な媒体に記憶されるコンピュータプログラムの全体または一部は、それからシステムメモリ516および/または記憶装置532,533の様々な部分に記憶される。プロセッサ514によって実行されると、コンピューティングシステム510にロードされたコンピュータプログラムは、プロセッサ514に、本明細書に記載および/または説明する一つ以上の実施例の機能を実施させる、または実施させるための手段となるようにすることができる。付加的または代替的に、本明細書に記載および/または説明する一つ以上の実施例は、ファームウェアおよび/またはハードウェアで実現することができる。例えば、コンピューティングシステム510は、本明細書に開示する一つ以上の実施例を実現するよう構成した、特定用途向け集積回路(ASIC)として構成することができる。
図6は、例示的なネットワークアーキテクチャ600のブロック図であり、クライアントシステム610,620,630およびサーバ640,645をネットワーク650に接続することができる。クライアントシステム610,620,630は、一般に、例えば図5の例示的なコンピューティングシステム510のような、任意のタイプまたは形式のコンピューティング装置またはシステムを表す。同様に、サーバ640,645は、一般に、様々なデータベースサービスの提供および/または特定のソフトウェアアプリケーションを実行するよう構成した、アプリケーションサーバまたはデータベースサーバのような、コンピューティング装置またはシステムを表す。ネットワーク650は、一般に、例えば、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)またはインターネットを含む、あらゆる電気通信またはコンピュータネットワークを表す。
図6に示すように、1台以上の記憶装置660(1)〜(N)をサーバ640に直接取り付けることができる。同様に、1台以上の記憶装置670(1)〜(N)をサーバ645に直接取り付けることができる。記憶装置660(1)〜(N)および記憶装置670(1)〜(N)は一般に、データおよび/または他のコンピュータ読み取り可能な命令を記憶することのできる、任意のタイプもしくは形式の記憶装置または媒体を表している。ある実施形態では、記憶装置660(1)〜(N)および記憶装置670(1)〜(N)は、NFS,SMBまたはCIFSのような様々なプロトコルを使って、サーバ640および645と通信を行うように構成したネットワーク接続ストレージ(NAS)装置を表すことができる。
サーバ640,645は、さらに、ストレージエリアネットワーク(SAN)ファブリック680に接続することができる。SANファブリック680は一般に、複数の記憶装置間の通信を容易化することのできる、任意のタイプもしくは形式のコンピュータネットワークまたはアーキテクチャを表す。SANファブリック680は、サーバ640,645、複数の記憶装置690(1)〜(N)、および/またはインテリジェントストレージアレイ695間の通信を容易化することができる。SANファブリック680は、さらに、ネットワーク650およびサーバ640,645を介して、クライアントシステム610,620,630と記憶装置690(1)〜(N)および/またはインテリジェントストレージアレイ695との間の通信を、記憶装置690(1)〜(N)およびアレイ695がクライアントシステム610,620,630に局部的に取り付けられた装置として現れるようにして、容易化する。記憶装置660(1)〜(N)および記憶装置670(1)〜(N)のように、記憶装置690(1)〜(N)およびインテリジェントストレージアレイ695は、一般に、データおよび/または他のコンピュータ読み取り可能な命令を記憶することのできる、任意のタイプもしくは形式の記憶装置または媒体を表す。
ある実施形態では、図5の例示的なコンピューティングシステム510につき説明すると、図5の通信インタフェース522のような通信インタフェースは、クライアントシステム610,620,630のそれぞれとネットワーク650との間に接続能力を付与するために使用することができる。クライアントシステム610,620,630は、例えば、ウェブブラウザまたはその他のクライアントソフトウェアを使って、サーバ640または645の情報にアクセスすることができる。このようなソフトウェアによって、クライアントシステム610,620,630は、サーバ640,サーバ645、記憶装置660(1)〜(N)、記憶装置670(1)〜(N)、記憶装置690(1)〜(N)および/またはインテリジェントストレージアレイ695によってホストされるデータにアクセスすることができる。図6はデータ交換のネットワーク(例えばインターネットのような)の使用を説明するものであるが、本明細書に記載および/または説明する実施形態は、インターネットまたは特定のネットワークベースの環境に限定されるものではない。
少なくとも一つの実施形態では、本明細書に開示する一つ以上の実施例の全てまたは一部を、コンピュータプログラムとして符号化し、サーバ640、サーバ645、記憶装置660(1)〜(N)、記憶装置670(1)〜(N)、記憶装置690(1)〜(N)および/またはインテリジェントストレージアレイ695またはそれらの任意の組み合わせにロードし、そして実行することができる。本明細書に開示する一つ以上の実施例の全てまたは一部もまたコンピュータプログラムとして符号化し、サーバ640に記憶し、サーバ645によって実行し、ネットワーク650によってクライアントシステム610,620,630に分散することができる。よって、ネットワークアーキテクチャ600は、単独で、または他の素子と組み合わせて、本明細書に開示する検査、推論、受け取り、決定および/または実行というステップのうち1つ以上を行うことができる、および/または行う手段とすることができる。ネットワークアーキテクチャ600は、さらに、本開示に示すその他のステップや機能の特徴を実施するために使用される、または実施するための手段とすることができる。
詳細に上述したように、コンピューティングシステム410および/またはネットワークアーキテクチャ500の一つ以上のコンポーネントは、単独または他の素子との組み合わせで、本明細書に記載および/または説明する例示的な方法の一つ以上のステップを実施することができる、または実施するための手段とすることができる。例えば、コンピューティングシステムは、複数の既知の無害実行可能ファイルにおける複数のメタデータフィールドを検査することができる。コンピューティングシステムは、さらに、複数の既知の悪意実行可能ファイルにおける複数のメタデータフィールドも検査することができる。コンピューティングシステムは、複数の既知の無害な、および既知の悪意実行可能ファイルにおける複数のメタデータフィールドを検査することから得た情報に基づいて、マルウェアを示すメタデータフィールド属性を推論することができる。
ある実施形態では、コンピューティングシステムは悪意実行可能ファイルを受け取る可能性がある。コンピューティングシステムは、未知の実行可能ファイルがマルウェアを示すメタデータフィールド属性を含んでいるか否かを決定することにより、未知の実行可能ファイルがマルウェアを含んでいるか否かを決定することができる。少なくとも一つの実施形態では、コンピューティングシステムは、未知の実行可能ファイルがマルウェアを含んでいると、セキュリティアクションを実施することができる。
様々な実施形態によると、複数の既知の無害実行可能ファイルは、ポータブルの実行可能ファイルを含むことができ、複数の既知の悪意実行可能ファイルはポータブルの実行可能ファイルを含むことができる。少なくとも一つの実施形態では、メタデータフィールド属性はヘッダフィールド属性を含むことができる。ある実施形態によると、ヘッダフィールド属性は、デバッグ・セクション属性、インポート属性、シンボル・テーブル属性、オプショナル・ヘッダ属性、特性属性、イメージ・サブシステム属性、リンカ・バージョン属性、サイズ属性、リアル・バーチャル・アドレス属性、エントリー・ポイント属性、コード・セクション・ベース属性、アライメント属性、オペレーティング・システム・バージョン属性、イメージ・バージョン属性、ミニマム・サブシステム・バージョン属性、ダイナミック・リンク・ライブラリキャラクテリスティック属性、スタック・サイズ属性、ヒープ・サイズ属性、セクション数属性、ノー・イン・アウト属性、スレッド・レベル・スペキュレーション属性および/またはベース・オブ・イメージ属性のうち少なくとも一つを含む。
いくつかの実施形態では、マルウェアを示すメタデータフィールド属性は、複数の既知の無害な実行可能ファイルと既知の悪意実行可能ファイル内で検査される複数のメタデータフィールドのサブセットを含む。少なくとも一つの実施形態では、マルウェアを示すメタデータフィールド属性は、静的属性を含むことができる。様々な実施形態では、マルウェアを示すメタデータフィールド属性の推論は、マルウェアを示すメタデータフィールド属性の少なくとも一つの組み合わせの決定を含む。少なくとも一つの実施形態によると、マルウェアを示すメタデータフィールド属性の推論には、マルウェアを示す第1メタデータフィールド属性が、マルウェアを示す第2メタデータフィールド属性よりも強いマルウェアの指標であるという決定を含む。
いくつかの実施形態では、マルウェアを示すメタデータフィールド属性は、デバッグ・セクション属性、シンボル・テーブル属性、イメージ・サブシステム属性、リンカ・バージョン属性、リアル・バーチャル・アドレス属性、オペレーティング・システム・バージョン属性、イメージ・バージョン属性、ミニマム・サブシステム・バージョン属性、ダイナミック・リンク・ライブラリ・キャラクテリスティック属性、スタック・サイズ属性、ヒープ・サイズ属性、および/またはセクション数属性のうち少なくとも一つを含む。
いくつかの実施形態では、マルウェアを示すメタデータフィールド属性は、セクション・アライメント整数、ファイル・アライメント整数、メジャー・オペレーティング・システム・バージョン整数、マイナー・オペレーティング・システム・バージョン整数、メジャー・イメージ・バージョン整数、マイナー・イメージ・バージョン整数、メジャー・サブシステム・バージョン整数、マイナー・サブシステム・バージョン整数、イメージ・サイズ整数、ヘッダ・サイズ整数、グラフィカル・ユーザーインタフェース整数、キャラクタ・ベース・ユーザーインタフェース整数、サイズ・オブ・スタック・リザーブ整数、サイズ・オブ・スタック・コミット整数、サイズ・オブ・ヒープ・リザーブ 整数、サイズ・オブ・ヒープ・コミット整数、シンボル・テーブル・ポインタ整数、シンボル数整数、デバッグ・セクション整数、メジャー・リンカ・バージョン整数、マイナー・リンカ・バージョン整数、コード・セクション・サイズ整数、初期化・データ・サイズ整数、非初期化・データ・サイズ整数、リアル・バーチャル・アドレス(「RVA」)エントリー・ポイント整数、RVA・スタート・オブ・コード・セクション整数、RVA・ベース・オブ・コード・セクション整数、RVA・スタート・オブ・データ・セクション整数、ベース・オブ・イメージ整数、ハズ・インポート整数、ハズ・ディレイ・インポート整数、エクスターナル・バインディング・ファシリティ整数、ノー・イン・アウト整数、urlmon・インポート整数、スレッド・レベル・スペキュレーション整数、msvcrt・インポート整数、oleaut32・インポート整数、setupapi・インポート整数、user32・インポート整数、advapi32・インポート整数、shell32・インポート整数、gdi32・インポート整数、comdlg32・インポート整数、imm32・インポート整数、 ハズ・サーティフィケート整数、ノード整数および/またはセクション数整数のうち少なくとも2つを含む。
ある実施形態によると、システムは、複数の既知の無害実行可能ファイルにおける複数のヘッダフィールド、および複数の既知の悪意実行可能ファイルにおける複数のヘッダフィールドを検査するようにプログラムした検査モジュールを有する。このシステムは、さらに、検査モジュールによって得た情報を記憶するように構成したデータベースと、検査モジュールから取得した情報に基づいて、マルウェアを示すヘッダフィールド属性を推論するようにプログラムした推論モジュールとを有する。
ある実施形態では、システムは未知の実行可能ファイルを受け取る、および/またはその未知の実行可能ファイルがマルウェアを示すヘッダフィールド属性を含んでいるか否かを決定することによって、その未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するようにプログラムしたセキュリティシステムを有することができる。少なくとも一つの実施形態では、セキュリティモジュールは、さらに、未知の実行可能ファイルがマルウェアを含んでいる場合、セキュリティアクションを実施するようにプログラムすることができる。
上述の開示は特定のブロック図、フローチャートおよび例を使って様々な実施形態を示すが、本明細書に記載および/または説明する各ブロック図の構成部分、フローチャートステップ、動作および/またはコンポーネントは、広範囲のハードウェア、ソフトウェアまたはファームウェア(またはそれらの組み合わせ)を使って個々におよび/または集合的に実現することができる。さらに、他のコンポーネントに含まれる構成部品の開示はどのようなものであっても、同じ機能を達成するために多くの他のアーキテクチャを実現することができるので、本来は例示的なものと見なすことができる。
本明細書に記載および/または説明するプロセスパラメータおよびステップの順序は、単なる例であり、所望に応じて修正することができる。例えば、本明細書に説明または記載のステップは特定の順序で示す、または論じたが、これらのステップは必ずしも説明または論じた通りの順序で行う必要はない。本明細書に記載または説明する様々な例示的方法もまた、本明細書に記載または説明する1つ以上のステップを削除することもできるし、または開示されたものに加えて、追加のステップを含むこともできる。
さらに、様々な実施形態を完全に機能的なコンピューティングシステムとして本明細書に記載および/または説明してきたが、分散を行うために実際に使用される特定の種類のコンピュータ読み取り可能な媒体に関わらず、一つ以上のこれらの実施例は、様々な形態のプログラム製品として流通させることができる。本明細書に開示する実施形態はまた、特定のタスクを実行するソフトウェアモジュールを使って実現することもできる。これらのソフトウェアモジュールは、コンピュータ読み取り可能な記憶媒体またはコンピューティングシステムに記憶することのできるスクリプト、バッチまたはその他の実行可能ファイルを含むことができる。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書に開示する一つ以上の実施例を実行するコンピューティングシステムとして構成することができる。
上述の説明は、当業者が本明細書に記載する実施例の様々な態様を最大限に利用できるように行った。この例示的説明は網羅的、または開示した通りの形式に限定することを意図したものではない。本発明の要旨または範囲から逸脱することなく、多くの変更および改変が可能である。本明細書に記載する実施形態は、あらゆる面において例示的であり、限定するものではないと見なし、また、添付の特許請求の範囲および特許請求の範囲が決定する等価物を参照して本発明の範囲を決定するのが望ましい。
別段に記載のない限り、明細書または特許請求の範囲において、各要素は複数存在し得る。さらに、簡単のために、明細書および請求項で使用される「〜を含む」および「〜を有する」という言葉は、同じ意味を持つ言葉である「〜を備える」と置き替えることができる。
100 システム
110 モジュール
112 検査モジュール
114 推論モジュール
116 セキュリティモジュール
120 データベース
122 メタデータフィールド・データベース
124 マルウェアメタデータフィールド情報データベース
300 実行可能ファイル
310 DOSスタブ
320 ファイルヘッダ
330 オプショナル・ヘッダ
340 データディレクトリ
350 セクションヘッダ
360(1) セクション1
360(2) セクション2
360(n) セクションN
510 コンピューティングシステム
514 プロセッサ
516 システムメモリ
518 メモリコントローラ
520 I/Oコントローラ
522 通信インタフェース
524 ディスプレイ装置
526 ディスプレイアダプタ
528 入力装置
530 入力インタフェース
532 主記憶装置
533 バックアップ記憶装置
534 記憶インタフェース
600 ネットワークアーキテクチャ
610、620、630 クライアント
640、645 サーバ
650 ネットワーク
660(1)〜660(N)、670(1)〜670(N)、690(1)〜690(N)装置
680 SANファブリック
695 インテリジェント記憶アレイ

Claims (20)

  1. マルウェア検出をコンピュータで実現する方法において、
    複数の既知の無害実行可能ファイルにおける複数のメタデータフィールドを検査するステップと、
    複数の既知の悪意実行可能ファイルにおける複数のメタデータフィールドを検査するステップと、
    前記複数の既知の無害実行可能ファイル、および既知の悪意実行可能ファイルにおける複数のメタデータフィールドの検査から得られた情報に基づき、マルウェアを示すメタデータフィールド属性を推論するステップと
    を有する、マルウェア検出をコンピュータで実現する方法。
  2. 請求項1に記載のマルウェア検出をコンピュータで実現する方法において、さらに、
    未知の実行可能ファイルを受け取るステップと、
    前記未知の実行可能ファイルがマルウェアを示すメタデータフィールド属性を含んでいるか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するステップと
    を有する、方法。
  3. 請求項2に記載のマルウェア検出をコンピュータで実現する方法において、さらに、
    前記未知の実行可能ファイルがマルウェアを含んでいる場合、セキュリティアクションを実施するステップを有する、
    方法。
  4. 請求項1に記載のマルウェア検出をコンピュータで実現する方法において、
    前記複数の既知の無害実行可能ファイルはポータブル実行可能ファイルを有し、
    前記複数の既知の悪質実行可能ファイルはポータブル実行可能ファイルを有し、
    前記メタデータフィールド属性はヘッダフィールド属性を有する、
    マルウェア検出をコンピュータで実現する方法。
  5. 請求項1に記載のマルウェア検出をコンピュータで実現する方法において、
    前記マルウェアを示すメタデータフィールド属性は、以下の属性、すなわち、
    デバッグ・セクション属性、
    インポート属性、
    シンボル・テーブル属性、
    オプショナル・ヘッダ属性、
    特性属性、
    イメージ・サブシステム属性、
    リンカ・バージョン属性、
    サイズ属性、
    リアル・バーチャル・アドレス属性、
    エントリー・ポイント属性、
    コード・セクション・ベース属性、
    アライメント属性、
    オペレーティング・システム・バージョン属性、
    イメージ・バージョン属性、
    ミニマム・サブシステム・バージョン属性、
    ダイナミック・リンク・ライブラリ・特性属性、
    スタック・サイズ属性、
    ヒープ・サイズ属性、
    セクション個数属性、
    ノー・イン・アウト属性、
    スレッド・レベル・スペキュレーション属性、
    ベース・オブ・イメージ属性
    のうち少なくとも一つを有する、方法。
  6. 請求項1に記載のマルウェア検出をコンピュータで実現する方法において、マルウェアを示す前記メタデータフィールド属性は、前記複数の既知の無害実行可能ファイルおよび既知の悪意実行可能ファイル内で検査された、前記複数のメタデータフィールドからの属性のサブセットを有する、方法。
  7. 請求項1に記載のマルウェア検出をコンピュータで実現する方法において、マルウェアを示す前記メタデータフィールド属性は静的属性を有する、方法。
  8. 請求項1に記載のマルウェア検出をコンピュータで実現する方法において、マルウェアを示すメタデータフィールド属性を推論するステップは、マルウェアを示すメタデータフィールド属性の少なくとも一つの組み合わせを決定するステップを有する、方法。
  9. 請求項1に記載のマルウェア検出をコンピュータで実現する方法において、マルウェアを示すメタデータフィールド属性を推論するステップは、マルウェアを示す第1メタデータフィールド属性が、マルウェアを示す第2メタデータフィールド属性よりも強い指標であることを決定するステップを有する、方法。
  10. 請求項1に記載のマルウェア検出をコンピュータで実施する方法において、少なくとも一つのコンピュータ読み取り可能な媒体における、コンピュータ実行可能命令として明確に具現化した、方法。
  11. マルウェア検出をコンピュータで実現する方法において、
    複数の既知の無害なポータブル実行可能ファイルにおける複数のメタデータフィールドを検査するステップと、
    複数の既知の悪意があるポータブル実行可能ファイルにおける複数のメタデータフィールドを検査するステップと、
    前記複数の既知の無害なポータブル実行可能ファイル、および既知の悪意があるポータブル実行可能ファイルにおける前記複数のメタデータフィールドの検査から得られた情報に基づき、マルウェアを示すメタデータフィールド属性を推論するステップと、
    未知の実行可能ファイルを受け取るステップと、
    前記未知の実行可能ファイルがマルウェアを示すメタデータフィールドを含んでいるか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでいるか否かを決定するステップと
    を有する、マルウェア検出をコンピュータで実現する方法。
  12. 請求項11に記載のマルウェア検出をコンピュータで実現する方法において、
    マルウェアを示すメタデータフィールド属性は、以下の属性、すなわち
    デバッグ・セクション属性、
    シンボル・テーブル属性、
    イメージ・サブシステム属性、
    リンカ・バージョン属性、
    リアル・バーチャル・アドレス属性、
    オペレーティング・システム・バージョン属性、
    イメージ・バージョン属性、
    ミニマム・サブシステム・バージョン属性、
    ダイナミック・リンク・ライブラリ・特性属性、
    スタック・サイズ属性、
    ヒープ・サイズ属性、
    セクション数属性、
    のうち、少なくとも1つを含むものとした、方法。
  13. 請求項11に記載のマルウェア検出をコンピュータで実現する方法において、
    マルウェアを示す前記メタデータフィールド属性は、以下の整数、すなわち
    セクション・アライメント整数、
    ファイル・アライメント整数、
    メジャー・オペレーティング・システム・バージョン整数、
    マイナー・オペレーティング・システム・バージョン整数、
    メジャー・イメージ・バージョン整数、
    マイナー・イメージ・バージョン整数、
    メジャー・サブシステム・バージョン整数、
    マイナー・サブシステム・バージョン整数、
    イメージ・サイズ整数、
    ヘッダ・サイズ整数、
    グラフィカル・ユーザーインタフェース整数、
    キャラクタ・ベース・ユーザーインタフェース整数、
    サイズ・オブ・スタック・リザーブ整数、
    サイズ・オブ・スタック・コミット整数、
    サイズ・オブ・ヒープ・リザーブ整数、
    サイズ・オブ・ヒープ・コミット整数、
    シンボル・テーブル・ポインタ整数、
    シンボル個数整数、
    デバッグ・セクション整数、
    メジャー・リンカ・バージョン整数、
    マイナー・リンカ・バージョン整数、
    コード・セクション・サイズ整数、
    初期化・データ・サイズ整数、
    非初期化・データ・サイズ整数、
    リアル・バーチャル・アドレス・エントリー・ポイント整数、
    リアル・バーチャル・アドレス・スタート・オブ・コード・セクション整数、
    リアル・バーチャル・アドレス・ベース・オブ・コード・セクション整数、
    リアル・バーチャル・アドレス・スタート・オブ・データ・セクション整数、
    ベース・オブ・イメージ整数、
    ハズ・インポート整数、
    ハズ・ディレイ・インポート整数、
    エクスターナル・バインディング・ファシリティ整数、
    ノー・イン・アウト整数、
    urlmon・インポート整数、
    スレッド・レベル・スペキュレーション整数、
    msvcrt・インポート整数、
    oleaut32・インポート整数、
    setupapi・インポート整数、
    user32・インポート整数、
    advapi32・インポート整数、
    shell32・インポート整数、
    gdi32・インポート整数、
    comdlg32・インポート整数
    imm32・インポート整数
    ハズ・サーティフィケート整数、
    ノード整数
    セクション個数整数
    のうち、少なくとも2つを含むものとした、方法。
  14. 請求項11に記載のマルウェア検出をコンピュータで実現する方法において、さらに、
    前記未知の実行可能ファイルがマルウェアを含む場合にセキュリティアクションを実施するステップを有し、
    前記セキュリティアクションは、以下のステップ、すなわち、
    前記未知の実行可能ファイルを隔離するステップと、
    前記未知の実行可能ファイルをセキュリティソフトウェアベンダーに報告するステップと、
    前記未知の実行可能ファイルをマルウェアファイルのリストへ追加するステップと
    のうち、少なくとも一つを有する、方法。
  15. 請求項11に記載のマルウェア検出をコンピュータで実現する方法において、少なくとも一つのコンピュータ読み取り可能な媒体における、コンピュータ実行可能命令として明確に具現化した、方法。
  16. 検査モジュールであって、
    複数の既知の無害な実行可能ファイルにおける複数のヘッダフィールドを検査し、
    複数の既知の悪意がある実行可能ファイルにおける複数のヘッダフィールドを検査する
    ようプログラムした、該検査モジュールと、
    前記検査モジュールと通信し、前記検査モジュールによって得られた情報を記憶するよう構成したデータベースと、
    前記検査モジュールから得られた前記情報に基づき、マルウェアを示すヘッダフィールド属性を推論するようプログラムした推論モジュールと
    を備えたシステム。
  17. 請求項16に記載のシステムにおいて、さらに、
    セキュリティシステムであって、
    未知の実行可能ファイルを受け取り、
    前記未知の実行可能ファイルがマルウェアを示す前記ヘッダフィールド属性を含んでいるか否かを決定することによって、前記未知の実行可能ファイルがマルウェアを含んでいるか否かを決定する
    ようにプログラムした、該セキュリティシステムを有する、システム。
  18. 請求項17に記載のシステムにおいて、前記セキュリティモジュールは、さらに、前記未知の実行可能ファイルがマルウェアを含んでいる場合に、セキュリティアクションを実施するようプログラムした、システム。
  19. 請求項16に記載のシステムにおいて、前記ヘッダフィールド属性は、以下の属性、すなわち、
    デバッグ・セクション属性、
    インポート属性、
    シンボル・テーブル属性、
    オプショナル・ヘッダ属性、
    特性属性、
    イメージ・サブシステム属性、
    リンカ・バージョン属性、
    サイズ属性、
    リアル・バーチャル・アドレス属性、
    エントリー・ポイント属性、
    コード・セクション・ベース属性、
    アライメント属性、
    オペレーティング・システム・バージョン属性、
    イメージ・バージョン属性、
    ミニマム・サブシステム・バージョン属性、
    ダイナミック・リンク・ライブラリ・特性属性、
    スタック・サイズ属性、
    ヒープ・サイズ属性、
    セクション個数属性、
    ノー・イン・アウト属性、
    スレッド・レベル・スペキュレーション属性、
    ベース・オブ・イメージ属性
    のうち、少なくとも一つを含む、システム。
  20. 請求項16に記載のシステムにおいて、マルウェアを示す前記ヘッダフィールド属性は静的属性を含む、システム。
JP2009286595A 2008-12-18 2009-12-17 マルウェア検出方法およびシステム Pending JP2010146566A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/338,877 US8181251B2 (en) 2008-12-18 2008-12-18 Methods and systems for detecting malware

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015102581A Division JP6129897B2 (ja) 2008-12-18 2015-05-20 マルウェアを示すヘッダフィールド属性の識別をコンピュータで実現する方法およびシステム

Publications (1)

Publication Number Publication Date
JP2010146566A true JP2010146566A (ja) 2010-07-01

Family

ID=41859811

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009286595A Pending JP2010146566A (ja) 2008-12-18 2009-12-17 マルウェア検出方法およびシステム
JP2015102581A Active JP6129897B2 (ja) 2008-12-18 2015-05-20 マルウェアを示すヘッダフィールド属性の識別をコンピュータで実現する方法およびシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015102581A Active JP6129897B2 (ja) 2008-12-18 2015-05-20 マルウェアを示すヘッダフィールド属性の識別をコンピュータで実現する方法およびシステム

Country Status (4)

Country Link
US (1) US8181251B2 (ja)
EP (1) EP2199941B1 (ja)
JP (2) JP2010146566A (ja)
CN (2) CN101753570A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150658A (ja) * 2011-01-19 2012-08-09 Lac Co Ltd 情報処理装置、システム、通信監視方法およびプログラム
JP2017509962A (ja) * 2014-01-31 2017-04-06 サイランス・インコーポレイテッドCylance Inc. 構造化ファイルからの静的特徴抽出
JP2017097842A (ja) * 2015-10-22 2017-06-01 エーオー カスペルスキー ラボAO Kaspersky Lab アンチウィルス判定の最適化のためのシステム及び方法
JP2017102566A (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 不正ファイル検知装置、不正ファイル検知方法、および、不正ファイル検知プログラム
WO2017146094A1 (ja) * 2016-02-24 2017-08-31 日本電信電話株式会社 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム
JP2018508054A (ja) * 2014-11-26 2018-03-22 グラスウォール・(アイピー)・リミテッド ファイルベースコンテンツが持つリスク判定のための統計分析手法
JP2019079493A (ja) * 2017-10-18 2019-05-23 エーオー カスペルスキー ラボAO Kaspersky Lab 機械学習を用いる悪意のあるファイルを検出するシステムおよび方法

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051322B2 (en) 2002-12-06 2006-05-23 @Stake, Inc. Software analysis framework
GB0513375D0 (en) 2005-06-30 2005-08-03 Retento Ltd Computer security
US8613080B2 (en) 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US20100192222A1 (en) * 2009-01-23 2010-07-29 Microsoft Corporation Malware detection using multiple classifiers
US10210162B1 (en) 2010-03-29 2019-02-19 Carbonite, Inc. Log file management
KR101122650B1 (ko) * 2010-04-28 2012-03-09 한국전자통신연구원 정상 프로세스에 위장 삽입된 악성코드 탐지 장치, 시스템 및 방법
JP5135389B2 (ja) * 2010-06-30 2013-02-06 株式会社日立情報システムズ 情報漏えいファイル検知装置、及びその方法とプログラム
EP2418600A1 (en) * 2010-08-11 2012-02-15 Thomson Licensing Malware protection scheme
BR112013013625A2 (pt) * 2010-12-01 2016-09-13 Sourcefire Inc detecção de software malicioso através de convicções contextuais, assinaturas genéricas e técnicas de aprendizado automatizado
US9218461B2 (en) 2010-12-01 2015-12-22 Cisco Technology, Inc. Method and apparatus for detecting malicious software through contextual convictions
US9088601B2 (en) 2010-12-01 2015-07-21 Cisco Technology, Inc. Method and apparatus for detecting malicious software through contextual convictions, generic signatures and machine learning techniques
KR20120072120A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 악성 파일 진단 장치 및 방법, 악성 파일 감시 장치 및 방법
RU2454714C1 (ru) * 2010-12-30 2012-06-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов
ES2755780T3 (es) 2011-09-16 2020-04-23 Veracode Inc Análisis estático y de comportamiento automatizado mediante la utilización de un espacio aislado instrumentado y clasificación de aprendizaje automático para seguridad móvil
US8875293B2 (en) * 2011-09-22 2014-10-28 Raytheon Company System, method, and logic for classifying communications
US9286063B2 (en) 2012-02-22 2016-03-15 Veracode, Inc. Methods and systems for providing feedback and suggested programming methods
US9020652B2 (en) * 2012-04-13 2015-04-28 The Boeing Company Event processing system for an electrical power system
US9715325B1 (en) 2012-06-21 2017-07-25 Open Text Corporation Activity stream based interaction
US9392003B2 (en) 2012-08-23 2016-07-12 Raytheon Foreground Security, Inc. Internet security cyber threat reporting system and method
CN102867038A (zh) * 2012-08-30 2013-01-09 北京奇虎科技有限公司 文件类型的确定方法和装置
US11126720B2 (en) 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
US9292688B2 (en) 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US20140283046A1 (en) * 2013-03-13 2014-09-18 Mcafee, Inc. Anti-malware scanning of database tables
US10649970B1 (en) * 2013-03-14 2020-05-12 Invincea, Inc. Methods and apparatus for detection of functionality
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9280369B1 (en) 2013-07-12 2016-03-08 The Boeing Company Systems and methods of analyzing a software component
US9396082B2 (en) 2013-07-12 2016-07-19 The Boeing Company Systems and methods of analyzing a software component
US9336025B2 (en) 2013-07-12 2016-05-10 The Boeing Company Systems and methods of analyzing a software component
US9852290B1 (en) 2013-07-12 2017-12-26 The Boeing Company Systems and methods of analyzing a software component
US8943592B1 (en) * 2013-07-15 2015-01-27 Eset, Spol. S.R.O. Methods of detection of software exploitation
US9798981B2 (en) 2013-07-31 2017-10-24 Entit Software Llc Determining malware based on signal tokens
EP3028203A4 (en) * 2013-07-31 2017-03-29 Hewlett-Packard Enterprise Development LP Signal tokens indicative of malware
CN104424437B (zh) * 2013-08-28 2018-07-10 贝壳网际(北京)安全技术有限公司 多文件样本的测试方法、装置和客户端
EP2854065B1 (en) * 2013-09-30 2018-06-06 AO Kaspersky Lab A system and method for evaluating malware detection rules
US9479521B2 (en) 2013-09-30 2016-10-25 The Boeing Company Software network behavior analysis and identification system
RU2568285C2 (ru) 2013-09-30 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Способ и система анализа работы правил обнаружения программного обеспечения
US9407644B1 (en) 2013-11-26 2016-08-02 Symantec Corporation Systems and methods for detecting malicious use of digital certificates
CN103944757B (zh) * 2014-04-11 2017-11-10 珠海市君天电子科技有限公司 网络异常检测的方法和装置
US10686759B2 (en) 2014-06-22 2020-06-16 Webroot, Inc. Network threat prediction and blocking
US9548988B1 (en) 2014-08-18 2017-01-17 Symantec Corporation Systems and methods for attributing potentially malicious email campaigns to known threat groups
US9762593B1 (en) 2014-09-09 2017-09-12 Symantec Corporation Automatic generation of generic file signatures
US9367685B2 (en) * 2014-09-30 2016-06-14 Juniper Networks, Inc. Dynamically optimizing performance of a security appliance
US9754106B2 (en) * 2014-10-14 2017-09-05 Symantec Corporation Systems and methods for classifying security events as targeted attacks
US9571510B1 (en) 2014-10-21 2017-02-14 Symantec Corporation Systems and methods for identifying security threat sources responsible for security events
JP6916112B2 (ja) 2014-11-21 2021-08-11 ブルヴェクター, インコーポレーテッドBluvector, Inc. ネットワークデータ特性評価のシステムと方法
CN105488405A (zh) * 2014-12-25 2016-04-13 哈尔滨安天科技股份有限公司 一种基于pdb调试信息的恶意代码分析方法及系统
US10395133B1 (en) 2015-05-08 2019-08-27 Open Text Corporation Image box filtering for optical character recognition
US10599844B2 (en) 2015-05-12 2020-03-24 Webroot, Inc. Automatic threat detection of executable files based on static data analysis
US9813437B2 (en) 2015-06-15 2017-11-07 Symantec Corporation Systems and methods for determining malicious-download risk based on user behavior
US10642976B2 (en) * 2015-06-27 2020-05-05 Mcafee, Llc Malware detection using a digital certificate
US9740862B1 (en) * 2015-06-29 2017-08-22 Juniper Networks, Inc. Identifying malware based on a relationship between a downloader file and a downloaded file
US10289686B1 (en) 2015-06-30 2019-05-14 Open Text Corporation Method and system for using dynamic content types
US9690938B1 (en) 2015-08-05 2017-06-27 Invincea, Inc. Methods and apparatus for machine learning based malware detection
CN106709337A (zh) * 2015-11-18 2017-05-24 中兴通讯股份有限公司 一种恶意捆绑软件的处理方法和装置
RU2679783C2 (ru) * 2015-12-18 2019-02-12 Закрытое акционерное общество "Лаборатория Касперского" Способ создания сценария популярных событий активации
US9836603B2 (en) 2015-12-30 2017-12-05 Symantec Corporation Systems and methods for automated generation of generic signatures used to detect polymorphic malware
US10028145B2 (en) 2016-04-15 2018-07-17 Microsoft Technology Licensing, Llc Blocking undesirable communications in voice over internet protocol systems
US10116680B1 (en) 2016-06-21 2018-10-30 Symantec Corporation Systems and methods for evaluating infection risks based on profiled user behaviors
EP3475822B1 (en) 2016-06-22 2020-07-22 Invincea, Inc. Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning
US10049214B2 (en) * 2016-09-13 2018-08-14 Symantec Corporation Systems and methods for detecting malicious processes on computing devices
US10454961B2 (en) * 2016-11-02 2019-10-22 Cujo LLC Extracting encryption metadata and terminating malicious connections using machine learning
US20180285565A1 (en) * 2017-03-30 2018-10-04 AVAST Software s.r.o. Malware detection in applications based on presence of computer generated strings
US11537713B2 (en) * 2017-08-02 2022-12-27 Crashplan Group Llc Ransomware attack onset detection
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
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
US10728034B2 (en) 2018-02-23 2020-07-28 Webroot Inc. Security privilege escalation exploit detection and mitigation
US10826931B1 (en) * 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US10742670B1 (en) * 2018-04-18 2020-08-11 NortonLifeLock Inc. Detecting and preventing execution of a malicious computer application using utility driven graph summarization
US10846403B2 (en) * 2018-05-15 2020-11-24 International Business Machines Corporation Detecting malicious executable files by performing static analysis on executable files' overlay
US11138313B2 (en) * 2018-08-13 2021-10-05 Juniper Networks, Inc. Malware detection based on user interactions
US10853489B2 (en) * 2018-10-19 2020-12-01 EMC IP Holding Company LLC Data-driven identification of malicious files using machine learning and an ensemble of malware detection procedures
CN109543408B (zh) * 2018-10-29 2021-10-12 卓望数码技术(深圳)有限公司 一种恶意软件识别方法和系统
US11403411B2 (en) 2018-11-20 2022-08-02 Cisco Technology, Inc. Unstructured data sensitivity inference for file movement tracking in a network
US11196766B2 (en) * 2019-03-21 2021-12-07 Red Hat, Inc. Detecting denial of service attacks in serverless computing
US11314863B2 (en) 2019-03-27 2022-04-26 Webroot, Inc. Behavioral threat detection definition and compilation
CN110135152B (zh) * 2019-03-28 2021-07-02 江苏通付盾信息安全技术有限公司 应用程序攻击检测方法及装置
CN110147655A (zh) * 2019-03-28 2019-08-20 江苏通付盾信息安全技术有限公司 应用程序的安全防护系统及方法
CN110569403B (zh) * 2019-09-11 2021-11-02 腾讯科技(深圳)有限公司 一种字符串提取的方法以及相关装置
CN110765444A (zh) * 2019-09-23 2020-02-07 云深互联(北京)科技有限公司 一种企业浏览器访问权限配置方法和装置
EP4085363A1 (en) * 2020-01-05 2022-11-09 British Telecommunications public limited company Code-based malware detection
EP4109309B1 (en) * 2021-06-22 2026-01-28 Acronis International GmbH Machine learning through iterative memory analysis for malware detection
US20230297687A1 (en) * 2022-03-21 2023-09-21 Vmware, Inc. Opportunistic hardening of files to remediate security threats posed by malicious applications
JPWO2024194993A1 (ja) * 2023-03-20 2024-09-26

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041173A (ja) * 2000-07-18 2002-02-08 Moan Kokusai Kofun Yugenkoshi プログラムファイル認証方法
JP2004510226A (ja) * 2000-09-22 2004-04-02 ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー ウイルス保護機能を持つ超音波イメージング・システム
JP2006285983A (ja) * 2005-03-31 2006-10-19 Microsoft Corp コンピュータシステムからナレッジベースをアグリゲートし、コンピュータをマルウェアから事前に保護すること
WO2007003916A2 (en) * 2005-06-30 2007-01-11 Prevx Limited Methods and apparatus for dealing with malware
JP2007080281A (ja) * 2005-09-13 2007-03-29 Cloudmark Inc 実行可能コードのためのシグネチャ
JP2007280013A (ja) * 2006-04-06 2007-10-25 Internatl Business Mach Corp <Ibm> 情報処理装置による通信を制御する方法およびプログラム
JP2008545177A (ja) * 2005-05-05 2008-12-11 シスコ アイアンポート システムズ エルエルシー 電子メッセージ中での脅威の識別

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2391965B (en) * 2002-08-14 2005-11-30 Messagelabs Ltd Method of, and system for, heuristically detecting viruses in executable code
JP4025882B2 (ja) * 2004-04-26 2007-12-26 国立大学法人岩手大学 コンピュータウィルス固有情報抽出装置、コンピュータウィルス固有情報抽出方法及びコンピュータウィルス固有情報抽出プログラム
US7461339B2 (en) * 2004-10-21 2008-12-02 Trend Micro, Inc. Controlling hostile electronic mail content
US20070056035A1 (en) * 2005-08-16 2007-03-08 Drew Copley Methods and systems for detection of forged computer files
US20090013405A1 (en) * 2007-07-06 2009-01-08 Messagelabs Limited Heuristic detection of malicious code
KR100938672B1 (ko) * 2007-11-20 2010-01-25 한국전자통신연구원 악성 코드에 의해 삽입된 동적 연결 라이브러리 검출 장치 및 방법
KR100942795B1 (ko) * 2007-11-21 2010-02-18 한국전자통신연구원 악성프로그램 탐지장치 및 그 방법
CN101281571B (zh) * 2008-04-22 2010-12-22 白杰 防御未知病毒程序的方法
CN101316171B (zh) * 2008-06-30 2010-12-08 成都市华为赛门铁克科技有限公司 病毒防范方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041173A (ja) * 2000-07-18 2002-02-08 Moan Kokusai Kofun Yugenkoshi プログラムファイル認証方法
JP2004510226A (ja) * 2000-09-22 2004-04-02 ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー ウイルス保護機能を持つ超音波イメージング・システム
JP2006285983A (ja) * 2005-03-31 2006-10-19 Microsoft Corp コンピュータシステムからナレッジベースをアグリゲートし、コンピュータをマルウェアから事前に保護すること
JP2008545177A (ja) * 2005-05-05 2008-12-11 シスコ アイアンポート システムズ エルエルシー 電子メッセージ中での脅威の識別
WO2007003916A2 (en) * 2005-06-30 2007-01-11 Prevx Limited Methods and apparatus for dealing with malware
JP2007080281A (ja) * 2005-09-13 2007-03-29 Cloudmark Inc 実行可能コードのためのシグネチャ
JP2007280013A (ja) * 2006-04-06 2007-10-25 Internatl Business Mach Corp <Ibm> 情報処理装置による通信を制御する方法およびプログラム

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CSND200701012008; 織田 薫: '"ウイルス感染や不正アクセスなどのトラブルが発生した場合の対処方法を解説 セキュリティトラブル大脱出' PC Japan 第12巻,第6号, 20070601, p.74-81, ソフトバンククリエイティブ株式会社 *
CSNG200800510006; 柿本 圭介,田中 英彦: '"自己組織化マップを用いたWindowsシステムサービスコールの分類によるマルウェア検出手法"' 情報処理学会研究報告 Vol.2008,No.45, 20080515, p.43-48, 社団法人情報処理学会 *
JPN6014000832; Peter Szor: ATTACKS ON WIN32 , 199810, p.57-84 *
JPN6014025503; 柿本 圭介,田中 英彦: '"自己組織化マップを用いたWindowsシステムサービスコールの分類によるマルウェア検出手法"' 情報処理学会研究報告 Vol.2008,No.45, 20080515, p.43-48, 社団法人情報処理学会 *
JPN6014025504; 織田 薫: '"ウイルス感染や不正アクセスなどのトラブルが発生した場合の対処方法を解説 セキュリティトラブル大脱出' PC Japan 第12巻,第6号, 20070601, p.74-81, ソフトバンククリエイティブ株式会社 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150658A (ja) * 2011-01-19 2012-08-09 Lac Co Ltd 情報処理装置、システム、通信監視方法およびプログラム
JP2017509962A (ja) * 2014-01-31 2017-04-06 サイランス・インコーポレイテッドCylance Inc. 構造化ファイルからの静的特徴抽出
JP2018508054A (ja) * 2014-11-26 2018-03-22 グラスウォール・(アイピー)・リミテッド ファイルベースコンテンツが持つリスク判定のための統計分析手法
JP2017097842A (ja) * 2015-10-22 2017-06-01 エーオー カスペルスキー ラボAO Kaspersky Lab アンチウィルス判定の最適化のためのシステム及び方法
JP2017102566A (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 不正ファイル検知装置、不正ファイル検知方法、および、不正ファイル検知プログラム
WO2017146094A1 (ja) * 2016-02-24 2017-08-31 日本電信電話株式会社 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム
JPWO2017146094A1 (ja) * 2016-02-24 2018-07-12 日本電信電話株式会社 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム
US10878091B2 (en) 2016-02-24 2020-12-29 Nippon Telegraph And Telephone Corporation Attack code detection device, attack code detection method, and attack code detection program
JP2019079493A (ja) * 2017-10-18 2019-05-23 エーオー カスペルスキー ラボAO Kaspersky Lab 機械学習を用いる悪意のあるファイルを検出するシステムおよび方法

Also Published As

Publication number Publication date
US8181251B2 (en) 2012-05-15
EP2199941A2 (en) 2010-06-23
US20100162395A1 (en) 2010-06-24
CN101753570A (zh) 2010-06-23
CN105095760A (zh) 2015-11-25
EP2199941A3 (en) 2012-04-25
EP2199941B1 (en) 2017-06-21
JP2015181031A (ja) 2015-10-15
JP6129897B2 (ja) 2017-05-17

Similar Documents

Publication Publication Date Title
JP6129897B2 (ja) マルウェアを示すヘッダフィールド属性の識別をコンピュータで実現する方法およびシステム
US8479291B1 (en) Systems and methods for identifying polymorphic malware
US9009836B1 (en) Security architecture for virtual machines
JP6166839B2 (ja) 実行時のアプリケーションメソッドを置き換えるためのシステム及び方法
US8725702B1 (en) Systems and methods for repairing system files
US9043922B1 (en) Systems and methods for determining malicious-attack exposure levels based on field-data analysis
US9330258B1 (en) Systems and methods for identifying uniform resource locators that link to potentially malicious resources
US9405899B2 (en) Software protection mechanism
US9015814B1 (en) System and methods for detecting harmful files of different formats
US9158915B1 (en) Systems and methods for analyzing zero-day attacks
US8904538B1 (en) Systems and methods for user-directed malware remediation
US8352484B1 (en) Systems and methods for hashing executable files
US8336100B1 (en) Systems and methods for using reputation data to detect packed malware
US9111089B1 (en) Systems and methods for safely executing programs
US8176556B1 (en) Methods and systems for tracing web-based attacks
US9804948B2 (en) System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
CN107810504A (zh) 基于用户行为确定恶意下载风险的系统和方法
CN104769598B (zh) 用于检测非法应用程序的系统和方法
CN107864676A (zh) 用于检测计算过程中未知漏洞的系统和方法
CN105453102A (zh) 用于识别已泄漏的私有密钥的系统和方法
RU2667052C2 (ru) Обнаружение вредоносного программного обеспечения с перекрестным обзором
US9552481B1 (en) Systems and methods for monitoring programs
US10846405B1 (en) Systems and methods for detecting and protecting against malicious software
US10650142B1 (en) Systems and methods for detecting potentially malicious hardware-related anomalies
CN115413342A (zh) 用于识别嵌入式设备固件中的软件漏洞的系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140912

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150120