JP6313384B2 - アンチウィルス判定の最適化のためのシステム及び方法 - Google Patents

アンチウィルス判定の最適化のためのシステム及び方法 Download PDF

Info

Publication number
JP6313384B2
JP6313384B2 JP2016163356A JP2016163356A JP6313384B2 JP 6313384 B2 JP6313384 B2 JP 6313384B2 JP 2016163356 A JP2016163356 A JP 2016163356A JP 2016163356 A JP2016163356 A JP 2016163356A JP 6313384 B2 JP6313384 B2 JP 6313384B2
Authority
JP
Japan
Prior art keywords
executable
file
executable file
tool
condition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016163356A
Other languages
English (en)
Other versions
JP2017097842A (ja
Inventor
ブイ. ラディコフ アンドレ
ブイ. ラディコフ アンドレ
ブイ. リスキン アレクサンダー
ブイ. リスキン アレクサンダー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2017097842A publication Critical patent/JP2017097842A/ja
Application granted granted Critical
Publication of JP6313384B2 publication Critical patent/JP6313384B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • 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/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)
  • Medical Treatment And Welfare Office Work (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

関連出願
この出願は、ロシア連邦特許出願番号2015145266(2015年10月22日出願)についての優先権の利益を主張し、本明細書中に参考として援用する。
実施形態としては、一般的に、実行可能ファイルのアンチウィルスのチェックに関するものである。より具体的には、実施形態は、アンチウィルス評価プロセスを最適化するために、アンチウィルスのチェックから実行可能ファイルを戦略的に除外するためのシステム及び方法に関するものである。
動的ライブラリ又は動的リンクライブラリ(DLL)を含む実行可能ファイル又はポータブル実行(PE)ファイルを実行すると、コンピュータシステムのユーザーにとって危険になる可能性がある。悪意のあるコード(ウィルス又はトロイの木馬プログラム等)は、主にそのような実行可能ファイルを使用して拡散される。従って、実行可能ファイルの実行時又は実行する前に、そのようなファイルのアンチウィルス判定(又はチェック)を行うことが推奨されている。従来のアンチウィルスチェックは、単純又は複雑なチェック方法のどちらも用いるものであった。例えば、単純なチェックは、全てのプログラムの中から既知であって悪質なプログラムを検出できる署名(シグネチャー)スキャンである。しかし、チェックに使用されるアンチウィルスデータベースが非常に大きい場合が多いので、署名スキャンは時間を要する手法となっている。他の例では、複雑なチェックは、実行可能ファイルの挙動の解析を含むことができる。このようなシステムでは、ファイルの詳細な解析ために設計された解析モジュールを備えたコードエミュレータを使用できる。前述のチェックは、コンピュータシステムリソースと個人ユーザデータ(機密情報を含む)の両方の安全を保証する。前述のチェックには、利用されるチェックの種類に応じて、コンピュータリソースの様々な量及び種類(通常は限定されている)が必要である。
さらに、今日のコンピュータシステムの実行可能ファイルの数は絶えず増加している。これにより、全ての実行可能ファイルとリソース(関連のチェックを実行するために必要となるリソース)のアンチウィルスのチェックに必要とされる時間に影響を与える。その結果、アンチウィルスチェックに必要なコンピュータシステムのリソースを削減する手法が重要となる。
アンチウィルスチェックを最適化する手法の中には、通常、いわゆるホワイトリスト又はブラックリストの使用が含まれているか、或いはファイルの変更の追跡(タイムスタンプなどによる)に基づいてチェックが行われる。これらの手法は、オブジェクトコード、PEフォーマットの実行可能ファイル、マクロ、スクリプトなど、特定の種類の実行可能ファイルに基づいて実行することもできる。
例えば、米国特許第7,490,352号は、実行可能ファイルの実行が開始される瞬間に実行可能ファイルが信頼されているかどうかを確認する手法を記載している。この手法には、チェック対象のファイルが悪質なファイル種類に属するかどうかを判定し、ファイルの整合性とファイルを送信又は実行するソースの信頼性を検証することが含まれる。しかしながら、これらの手法は、1つの非常に大きな欠点を有する。特に前述のリストを事前作成する必要がある。したがって、前述のリストに含まれる実行可能ファイルは、すでに少なくとも1回、より深くアンチウィルスチェックを受けている。通常、前述のものを含み、全ての利用可能なアンチウィルス技術を用いて判定される。したがって、ハードウェア的なリソース及び時間的なリソースは又、より深いチェックのため且つリストを作成するために割り当てられている。しかし、コンピューティングシステムでは、新しい実行可能ファイルのアンチウィルスチェックを可能な限り高速に実行し、コンピュータリソースの使用を可能な限り最小にしたいという要求が多い。"新しい実行可能ファイル"とは、そのファイル又はそのファイルに関する情報が前述のリストに含まれていないことを意味する。
したがって、アンチウィルスの判定に要する時間を短縮するシステムと方法が必要である。特に、初めて実行される実行可能ファイル("新しい実行可能ファイル")を含むようなチェックの場合に必要となる。したがって、アンチウィルスチェックを最適化するシステム及び方法が必要とされる。それは、実行可能ファイルをアンチウィルスチェックする前に、検出し且つ更なるアンチウィルスチェックから除外することを許可するシステム及び方法を含み、その実行可能ファイルは安全であるという判定が可能である。
実施形態は、アンチウィルスチェックから実行可能ファイル等(特に、新しい実行可能フォーマット(NE)ファイルなどの動的ライブラリ及び/又はリソースファイル等)を除外することによってファイルのアンチウィルスチェックを最適化するように構成されている。その結果、実行可能コードを含まないファイルを除外することにより、アンチウィルスチェックのスピードアップがなされる。
一実施形態では、実行可能コードを含まない実行可能ファイルをアンチウィルスチェックから除外するシステムは、検査ツールと、分解ツールと、解析ツールとデータベースとを含む。
検査ツールは、アンチウィルスチェックのために実行可能ファイルを受信し、実行可能ファイルを分解ツールへ送信し、解析ツールから受け取った決定に基づいて実行可能コードを含まない実行可能ファイルをアンチウィルスチェックから除外するように構成される。
分解ツールは、実行可能ファイルの構造を解析し、実行可能ファイルのヘッダーを確認することによって実行可能ファイルのフォーマットを特定し、実行可能ファイルのフォーマット及び実行可能ファイルの構造に関する情報を解析ツールへ送信するように構成される。
解析ツールは、
少なくとも実行可能ファイルのフォーマットに関する情報に基づいてデータベースから条件リストを選択し、条件リストは、実行可能ファイルの構造解析のための複数の条件を有し、
選択される条件リストを使用して実行可能ファイルの構造の解析を実行し、
上記解析は選択される条件リストからの各条件が満たされているかどうかを確認することを含み、
上記解析に基づく結果を作成し、その結果は、確認済み各条件が満たされているかどうかに関する情報を含み、
上記結果に基づく決定を発行し、その決定は、条件リストからの全ての条件が満たされる場合に実行可能ファイル内に実行可能コードが存在しないという決定であり、
発行される決定を検査ツールへ送信するように構成される。
データベースは、解析ツールから操作できるように接続され、条件リストを格納するように構成される。
他の実施形態では、実行可能コードを含まない実行可能ファイルをアンチウィルスチェックから除外する方法は、
検査ツールを使用して、アンチウィルスチェックのための実行可能ファイルを受信する工程と、
分解ツールを用いて実行可能ファイルの構造を解析し、実行可能ファイルのヘッダーを確認して実行可能ファイルのフォーマットを特定する工程と、
解析ツールを用いて、少なくとも実行可能ファイルのフォーマットに関する情報に基づいてデータベースから条件リストを選択する工程と、上記条件リストは実行可能ファイルの構造の解析のための複数の条件を有し、
解析ツールを用いて、選択される条件リストを使用して実行可能ファイルの構造を解析する工程と、その解析は選択される条件リストからの各条件が満たされているかどうかを確認することを含み、
検査ツールを用いて、上記解析に基づく結果を作成する工程と、その結果は確認済み各条件が満たされているかどうか関する情報を含み、
上記結果に基づく決定を発行する工程と、その決定は条件リストからの全ての条件が満たされる場合に実行可能ファイル内に実行可能コードが存在しないという決定であり、
検査ツールを使用して、実行可能コードを含まない実行可能ファイルを上記発行される決定に基づいて、アンチウィルスチェックから除外する工程を含む。
前述の概要は、本明細書の主題における、各例示された実施形態又は全ての実装を説明することを意図するものではない。以下の図面及び詳細な説明は、様々な実施形態をより具体的に例示する。
本発明の主題は、様々な実施形態の以下の詳細な説明と、関連する添付の図面を考慮することにより、さらに完全に理解されることができる。
図1は、一実施形態に係る、実行可能ファイルのアンチウィルスチェックを最適化するためのシステムのブロック図である。
図2は、一実施形態に係る、アンチウィルスチェックから実行可能ファイルを除外する方法のフローチャートである。
図3は、実施形態を実装するように構成されたコンピュータシステムのブロック図である。
様々な実施形態は、様々な変更及び代替形態に従うが、その詳細は、図面の例として示されており、詳細に説明される。しかしながら、特許請求の範囲に記載された発明を記載された特定の実施形態に限定する意図はないことを理解されたい。むしろ、特許請求の範囲によって規定される主題の精神及び範囲内に入る全ての修正、等価物、及び代替物をカバーすることを意図するものである。
図面の詳細な説明
図1は、一実施形態に係る、実行可能ファイルのアンチウィルスチェックを最適化するためのシステム10のブロック図である。特に、図1の最適化システム10は、ユーザー機器20に代わって又はユーザー機器20のために、1つ又は複数の実行可能ファイル100をアンチウィルスチェックから除外するように構成されている。
ユーザー機器20は、パーソナルコンピュータ、ラップトップコンピュータ、タブレット、パーソナルデジタルアシスタント、モバイルデバイス、又は実行可能ファイルを実行するように構成された任意の他のコンピューティングデバイスを備えることができる。図に示すように、最適化システム10は、一般的に、1つ又は複数の実行可能ファイル100を除外するためのアンチウィルスシステム110を備えている。
以下でさらに説明するように、アンチウィルスシステム110は、一般的に、検査ツール120と実行可能ファイル検出システム130とを備えている。実行可能ファイル検出システム130は、一般的に、分解ツール150、解析ツール160、及びデータベース170を備えている。他のネットワーク構成ももちろん可能であるが、インターネット190を介してアンチウィルスサーバ180を操作できるように接続されていてもよい。
一実施形態では、アンチウィルスチェック最適化システム10は、アンチウィルスチェックから実行可能ファイルを除外することによってアンチウィルスチェックを最適化するように構成される。一実施形態では、実行可能ファイル100の実行処理は、アンチウィルスシステム110によって傍受される。他の例では、オンデマンドスキャン(ODS)又はホストベースの侵入防止システム(HIPS)などの技術を使用して実行可能ファイル100のアンチウィルスチェックが実行される場合にも、最適化システム10は利用することができる。当業者が容易に理解できるように、タイミング、アンチウィルスチェック及び/又は除外の例は、単なる例示として提供されており、適用の範囲を限定することを意図するものではない。
また、図1は、アンチウィルスシステム110によって利用される実行可能ファイル検出システム130のツール間の相互作用の一例を示す。本明細書で説明するように、アンチウィルスシステム110のツール又はモジュールは、実行可能ファイル100のアンチウィルスチェックをしている間に利用でき、従って実行可能ファイル100の検出及びその後のアンチウィルスチェックからの除外することができる。実施形態では、"実行可能ファイル"は、PE又はNEフォーマットを含むか又はそれに相当する任意のファイル、或いは実行可能コードを含む任意のファイルを含むことができる。特に、PEフォーマットファイルには、Dynamic Link Library(DLL)などの動的ライブラリが含むことができる。NEフォーマットファイル(以下、"NEファイル"と称する)は、Windowsスクリーンプログラム(バックグラウンドファイルとも呼ばれる)を含むファイルなどのリソースファイル(ライブラリ)を含むことができ、"scr"拡張子を有するファイルを含むことができる。
図1を参照すると、アンチウィルスシステム110の実施形態は、検査ツール120と実行可能ファイル検出システム130とを含む。検査ツール120は、悪意のあるファイルを検出するために、実行可能ファイル100を含むファイルのアンチウィルスチェックを実行するように構成されている。実施形態では、検査ツール120は、悪意のあるファイルをその後除去又は修復するようにさらに構成されている。検査ツール120は、1つ又は複数のアンチウィルスのデータベースを使用する署名(シグネチャー)解析などの古典的なファイルチェック方法を利用することができる。他の実施形態では、検査ツール120は、より複雑なチェック方法を利用することができる。複雑なチェック方法は、バイトコードのコマンドへの解析、ファイルのエミュレーションを含むことができ、各コマンドはコンピュータの仮想コピーで実行される。一実施形態で、エミュレーションは、コマンド実行時のプログラムの挙動又は活動を監視することを含む。他の例として、複雑なチェック方法にヒューリスティック解析を含めることができる。一実施形態では、ヒューリスティック解析は、未知の悪意のあるプログラムを検出するために、過去の事象などの情報の解析を含む。他の例では、複雑なチェック方法は、レピュテーションサービス(例えば、ファイルに関する情報を含む信頼できるサーバ)などのリモートサービスを利用することを含む。上述の全てのチェックは、リソースを消費し、時間を要する操作又はどちらも使う操作であることに留意すべきである。しかし、検出システム130により、実行可能ファイル100(例えば、動的ライブラリ及びNEファイル)が実行可能コードを含むかどうかについての判定ができる。一実施形態では、実行可能コードを含まない実行可能ファイル100は安全なファイルであるとみなされる。したがって、安全な実行可能ファイルをアンチウィルスチェックする必要はない。
ただし、全ての実行可能ファイルのフォーマットが、実行可能コードがないという特定の安全基準に一致するわけではない。このため、システム10の実施形態は、指定された安全基準に一致することができるファイルフォーマットのみを含むファイルフォーマットのリストを事前作成することができる。例えば、特定のフォーマットのみのファイル又はフォーマットリストに含まれるフォーマットは、安全性を判定するために検出システム130へ送信される。一実施形態によれば、検出システム130が特定のファイルをチェック又は無視するという調整ができるように、フォーマットリストは変更可能である。フォーマットリストに含まれるファイルフォーマットの例としては、Windows(登録商標)、Linux(登録商標)、Mac OS(登録商標)などのさまざまなオペレーティングシステムの動的ライブラリとNEファイル(たとえば、拡張子が "scr"のバックグラウンドファイル)がある。
他の実施形態では、ファイルフォーマットのチェックは、検出システム130内でなされ、ファイルフォーマットのリストで確認されている種類についての情報を利用するチェックである。
例えば、検査ツール120は、検出ツール130に実行可能ファイルを送ることができる。検出システム130は、分解ツール150を使用して、受信したファイルのフォーマットを判定することができる。
アンチウィルスチェックを実行するために、検査ツール120はプログラムの実行を傍受し、実行可能ファイル100を検出システム130へ送ることができる。例えば、Notepad.exeアプリケーション等の実行可能ファイルが起動された場合、アプリケーションが動的ライブラリを読み込み及び他のファイルを開く間に、検査ツール120により傍受される。一実施形態では、実行可能ファイルのフォーマットに基づいて実行可能ファイルの種類が判定される。
図1に示すように、検出システム130は、分解ツール150、解析ツール160及びデータベース170を含む。分解ツール150は、実行可能ファイル(例えば、動的ライブラリ)の構造を解析するように構成される。一実施形態では、構造の判定は、少なくとも実行可能ファイルのフォーマットを判定することを含む。一実施形態では、動的ライブラリの場合、フォーマットは、"Native DLL"又は".NET Assembly DLL"のいずれかとすることができる。
一実施形態では、分解ツール150は、実行可能ファイル100の構造に含まれる実行可能なセクションが存在するかどうかを判定するようにさらに構成される。
例えば、セクションが実行可能であれば、セクションの実行可能なステータス(フラグ)に基づいてそのような判定を行うことができる。分解ツール150は、さらに、実行可能ファイルにあるプログラムコードの実行開始アドレス(すなわち、エントリポイント)を判定するように構成することができる。分解ツール150は、実行可能ファイル100(動的ライブラリ)のフォーマット及びその構造に関する情報を解析ツール160に提供することができる。
解析ツール160は、条件リストに従って実行可能ファイル、例えば動的ライブラリ(以下、"DLLファイル"と呼ぶ)を解析するように構成されている。一実施形態では、条件リストは、分解ツール150から受信したファイルフォーマット情報に基づいてデータベース170から選択される。したがって、一実施形態では、各ファイルフォーマットに対する条件リストが1つ存在する。条件リストは、実行可能ファイル(動的ライブラリ)の構造を解析するための条件を含むことができる。条件リストの例は、以下の例で提供されている。
解析自体は、チェック対象の特定のファイル(DLLファイル)に対して条件リストの各条件が満たされているかどうかを確認するように構成されている。その後、解析ツール160は解析結果を作成することができる。解析結果は、条件リストからの各条件が満たされているかどうかに関する情報を含むことができる。全ての条件が満たされる場合、解析ツール160は、実行可能コードが存在しないという決定を発行し、チェック対象のファイルが安全であることが判明される。そうではなく、少なくとも1つの条件が満たされていない場合、解析ツール160は、実行可能コードが存在するという決定を発行し、疑わしいとしてチェックされるべきファイルであると判明される。その結果、ファイルはその後のアンチウィルスチェックの対象となる。解析ツール160は、次に、発行した決定を検査ツール120へ送る。したがって、実行可能コードが存在しないという決定を検査ツール120が取得するという実施形態の場合、検査ツール120は、実行可能ファイルをアンチウィルスチェックから除外する。或いは、実行可能コードが存在する決定を検査ツール120が取得する場合、検査ツール120はアンチウィルスチェックを実行し、ファイルの安全である又は悪意のある決定を発行する。
一実施形態では、データベース170は、フォーマットリストにある少なくとも各々のフォーマットに対して、解析に使用される条件の1つのリストを格納するように構成されている。したがって、新しいフォーマットがフォーマットリストに追加される場合、新しいフォーマットのための条件における新しいリストをデータベース170に加えることもできる。データベース170は、フォーマットのリストに関係なく追加されることもでき、条件リストは、その場その場で追加され、又は条件リストに対するフォーマット比1対1でなくても追加される。
他の実施形態では、特定の種類のアンチウィルスチェックは、満たされていない特定の条件に基づいて設定できる。たとえば、DLLファイルの場合、エクスポートセクションのアドレスとサイズがゼロでなければならないという条件が示される。つまり、セクションは空でなければならない。ただし、エクスポートセクションに情報(たとえば、ファイルの実行に必要な機能及びこの機能を受け取ることができるアドレス)が含まれている場合は、条件が満たされていないか或いは失敗したという状態を示す。したがって、上記セクションからの情報は、例えばファイル又はファイル署名に関連する"ホワイトリスト"又は"ブラックリスト"に基づいて署名解析を行う等、アンチウィルスチェックをする間に使用することができる。
一実施形態では、アンチウィルスシステム110は、アンチウィルスサーバ180を操作できるように接続される構成となっている。一実施形態では、アンチウィルスシステム110とアンチウィルスサーバ180との間のインターフェースは、インターネット190等の様々なネットワークを介して情報を交換できる。例えば、アンチウィルスサーバ180は、フォーマットリスト或いは新規又は変更された条件リストのために、新しいフォーマットに関連した利用可能な情報を送信するか、さもなければ利用可能にすることができる。さらに、アンチウィルスシステム110は、検査及び除外される実行可能ファイル(動的ライブラリ)に関する情報をアンチウィルスサーバ180へ送信するか、さもなければ利用可能にすることができる。
以下に、アンチウィルスチェックから"Notepad.exe"アプリケーションの実行可能ファイルを除外する例を示す。"Notepad.exe"アプリケーションが実行されると、"Notepad.exe"アプリケーションが起動するのに必要なリソース又は関数を含む動的ライブラリも読み込まれる。たとえば、その動的ライブラリの1つは、"Notepad.exe.mui"動的ライブラリである。起動中、検査ツール120を使用するアンチウィルスシステム110は、動的ライブラリ"Notepad.exe.mui"の読み込み処理を傍受する。一実施形態では、検査ツール120は、上述したフォーマットリスト等を含むことができる。この実施形態では、検査ツール120は、フォーマットリスト内のファイルと一致するファイルのみを、分解ツール150へ送信するか、さもなければ利用可能となるように構成される。この例では、"Notepad.exe.mui"動的ライブラリは、フォーマットリストのフォーマットと一致するDLLフォーマットファイル(以下、"DLLファイル"と呼ぶ)である。したがって、検査ツール120は、動的ライブラリを検出システム130へ送信する。特に、"Notepad.exe.mui"は、分解ツール150へ送られる。
分解ツール150は、DLLファイルを受信すると、DLLファイルの構造を"分解する"又は解析する。DLLファイル構造を分解している間、"特性(characteristics)"フィールド内のDLLファイルのヘッダーを確認することにより、DLLファイルフォーマットが判定される。指定されたフィールドでは、対応するフラグが検出される(例えばDLLファイルでは、IMAGE_FILE_DLL構造体のフィールド値が設定されている)。DLLファイルの場合、分解ツール150は、そのファイルが"Native DLL"の動的ライブラリの種類に属するということを判定するように構成されている。その後、分解ツール150は、DLLファイル(動的ライブラリ)100のフォーマット及びDLLファイル構造を含む情報を解析ツール160へ送信する。
一実施形態では、分解ツール150は、実行可能なセクションが存在するかどうかを確認するように構成される。例えば、分解ツール150は、特定のセクションが実行可能かどうかを判定することができる。実行可能セクションであると識別される場合、分解ツール150は、エントリポイント又はプログラムコード実行の開始位置を確認するようにさらに構成される。このデータ(セクション及びエントリポイントの確認)は、前述の情報及びDLLファイル構造とともに解析ツール160へ送られる追加の基準とすることができる。たとえば、Native DLLフォーマットの動的ライブラリの場合、次の送信基準、エントリポイントはゼロアドレス(0x00)を示すべきという基準、各実行可能セクションに対するセクション配列に実行ステータス(フラグ)は存在しないという基準、を必須とすることができる。或いは、少なくとも1つの基準が満たされていない場合、分解ツール150は、前述の情報及びDLLファイル構造を解析ツール160へ送信せず、代わりに検査ツール120に通知する。したがって、検査ツール120はアンチウィルスチェックを実行する。さらに、他の実施形態では、指定された基準は、データベース170に格納された条件の少なくとも1つのリストに含まれる条件とすることができる。
解析ツール160は、DLLファイルフォーマットについて分解ツール150から受け取った情報に基づいて、データベース170内の条件リストを選択する。条件リストの選択は、特定のファイルフォーマットに従って行われる。上記のDLLファイル(Notepad.exe.mui)については、"Native DLL"フォーマットに従って条件の一覧が選択される。たとえば、条件リストには、IMAGE_DATA_DIRECTORY構造体配列の解析用に、次の条件を含めることができる。
- "リソーステーブル(Resource table)"セクション(リソースセクション)のアドレスとサイズがゼロでない。つまり、リソースに関する情報が存在する。
- "エクスポートテーブル(Export table)"セクション(エクスポートセクション)のアドレスとサイズがゼロに等しい。つまり、エクスポート可能な関数に関する情報はない。
- "インポートテーブル(Import table)"セクション(インポートセクション)のアドレスとサイズがゼロに等しい。つまり、インポート可能な関数に関する情報はない。
- "インポートアドレステーブル(Import address)"セクション(インポートテーブルセクション)のアドレスとサイズがゼロに等しい。つまり、インポートアドレステーブルがない。
- "スレッドローカルストレージ(Thread local storage)"(TLS)テーブル(スレッドメモリセクション)のアドレスとサイズがゼロに等しい。つまり、TLSは存在しない。
一実施形態では、条件リストは、前述の条件の少なくとも3つを含む。他の実施形態では、条件リストは、前述の条件のうちの3つ未満を含むことができる。他の実施形態では、他の組み合わせ又はリンクされた条件も利用することができる。例えば、第1の条件は、第2の条件の評価をトリガとすることができる。他の例では、第1の条件は、第2及び第3の条件の両方の評価をトリガとすることができ、以下同様である。
解析ツール160はさらに、選択された条件リストに従ってDLLファイル構造の解析を行うように構成される。一実施形態では、条件リストに従ってファイル構造を解析することは、条件リストから各条件が満たされているかどうかを確認することを含む。解析の後、解析ツール160は結果を作成する。上記結果には、条件が満たされているかどうかに関する情報を含めることができる。たとえば、上記結果には、全ての条件が満たされているかどうか又は少なくとも1つの条件が満たされていないかどうかに関するバイナリフラグを含むことができる。他の例では、上記結果は、満たされた条件及び満たされていない条件に関するデータを含むことができる。このような実施形態では、適切なデータ構造を利用して条件付きデータを格納することができる。
Notepadの例に戻ると、DLLファイル("Notepad.exe.mui")のチェック結果は、全ての条件が満たされている場合に対応する。結果として、解析ツール160は、実行可能コードがないという決定を発行し、少なくとも実行可能コードがない場合には、チェック対象のファイルを安全であると判明される。その後、解析ツール160は、発行された決定を検査ツール120へ送信するか、さもなければ利用可能にする。次いで、検査ツール120は、少なくとも実行可能コードがないという解析ツール160からの決定に基づいて、アンチウィルスチェックからDLLファイルを除外する。
他の例では、システムリソースファイルをアンチウィルスチェックから除外することができる。たとえば、"standard Microsoft .NET Framework"パックの"System.XML.resources.dll"ファイルを呼び出すことができる。したがって、アンチウィルスシステム110は、検査ツール120を使用して"System.XML.resources.dll"ファイル(以下、".NETファイル"とする)の読み込みを傍受することができる。その後、".NET"ファイルは分解ツール150へ送信されるか、さもなければ利用可能となる。次に、分解ツール150は、".NET"ファイルの構造を分解する。例えば、分解ツール150は、"特性(characteristics)"フィールドのファイルヘッダーを確認することによって、".NET"ファイルフォーマットを判定することができる。関連するフラグの有無が、"特性(characteristics)"フィールドで検出されるか又は判定がなされる。分解ツール150は、".NET"ファイルが".NETアセンブリDLL"の動的ライブラリの種類に属すると判定することができる。その後、分解ツール150は、".NET"ファイル100のフォーマット及びその構造に関する情報を解析ツール160へ送信するか、さもなければ利用可能にする。
さらに、一実施形態では、分解ツール150は、実行可能セクション(実行可能であるセクション)が存在するかどうかを確認し、エントリポイントのアドレス(プログラムコード実行の開始)を判定することもできる。このデータは、ファイル構造データと共に解析ツール160へ送信することができる。たとえば、".NET Resource DLL"動的ライブラリのフォーマットの場合、次の条件が必須である。
- 実行可能なセクションが1つしか存在しない。すなわち、セクションは、"特性(characteristics)"フィールドに対応するフラグを有する。
- エントリポイントは、ゼロアドレス(0х00)又は特定のセクションに従ったエントリポイントのいずれかを示す必要がある。この場合、".NET"ファイルのエントリポイントは、"mscoree.dll"ライブラリの"_CorDllMain"関数の呼び出しを示す。
そうでない場合、少なくとも1つの基準が満たされていない場合、分解ツール150は、".NET"ファイルフォーマット及び構造情報を解析ツール160へ送信せず、代わりに適切に検査ツール120に通知する。したがって、検査ツール120は、アンチウィルスチェックを実行する。さらに、他の例では、指定された基準は、データベース170に格納された条件リストからの条件を含むこともできる。一実施形態では、前述の基準が条件である場合、分解ツール150は、それらを追加の送信基準として使用しない。
フォーマット及び構造の基準が満たされている例に戻ると、解析ツール160は、上述のように、分解ツール150からの".NET"ファイルフォーマットに関して受信した情報に基づいてデータベース170から条件リストを選択し、選択された条件リストに従って".NET"ファイルを解析する。".NET"ファイルに対する条件リストは、".NET"リソースDLLフォーマットに従って選択することができ、次の条件を含めることができる。
-"_CorDllMain"インポート可能関数へのエントリポイント、そこにはインポート可能な関数はなく、"_CorDllMain"関数自体がmscoree.dllからインポートされる。
-mscoree.dllライブラリからインポート可能な関数を除き、インポート可能な関数は存在しない。
-"エクスポートテーブル(Export table)"セクション(エクスポートセクション)のアドレスとサイズがゼロに等しい。つまり、エクスポート可能な関数に関する情報はない。
-"スレッドローカルストレージ(Thread local storage)"(TLS)テーブル(スレッドメモリセクション)のアドレスとサイズはゼロに等しい。つまり、TLSは存在しない。
-".NET"メタデータ(.NET MetaData)セクションのアドレスとサイズがゼロでない。
-"ManagedNativeHeader"構造体のアドレスとサイズがゼロに等しい。つまり、チェック対象の".NET"ファイルはNativeImageファイルではない。
-管理可能なリソースの有無、そのサイズがゼロでない。
- MaskValidフィールドは、MethodDef、MethodPtr、MethodSemantics、MethodImpl、及びMetodSpecの各メソッドのテーブルに関連するビットを含まない。
一実施形態では、条件リストは、前述の条件の少なくとも3つを含む。他の実施形態では、条件リストは、前述の条件のうちの3つ未満を含むことができる。
条件が満たされているかどうかを判定するという解析の後、解析ツール160は、関連する結果を作成する。結果には、条件リストからの全ての条件が満たされているかどうか、又は少なくとも1つの条件が満たされていないかどうかに関する情報が含まれる。".NET"ファイルの場合、条件リストから上記の全ての条件が満たされているとみなされる。その結果、解析ツール160は、実行可能コードがないという決定を発行し、チェック対象のファイルが安全であると判明される。その後、解析ツール160は、発行された決定を検査ツール120へ送信するか、さもなければ利用可能にする。したがって、検査ツール120は、少なくとも実行可能コードがないとの決定に基づいて、アンチウィルスチェックから".NET"ファイルを除外する。
前述のフォーマットリストに一致するその他のファイルフォーマットは、アンチウィルスチェックから除外するという目的において解析することができる。たとえば、実行可能なDOSファイル及びリソースファイル(フォントファイルなど)は、MZ-NEフォーマットファイルの例である。したがって、上記のファイルフォーマットについては、ファイル解析を実行する条件リストをファイルフォーマットに対応させることができる。たとえば、条件リストには次の条件を含めることができる。
-セクションの数がゼロに等しい(ファイルセグメントの数=0、自動データセグメント番号=0)。
-ヒープ割り当て(Heap allocation)セクション(メモリ割り当てセクション)のアドレスとサイズはゼロに等しい。
-スタック割り当て(Stack allocation section)セクションのアドレスとサイズ(スタック内の位置)がゼロに等しい。
-制御レジスタはゼロ(IP = 0、CS = 0、SP = 0、SS = 0)に初期化される。
-インポート用のライブラリはない(ImportNamesセクションはゼロアドレス0x0000を示す)。
他の実施形態では、解析ツール160は、ファイル解析中の条件の順次確認するように構成される。たとえば、前の条件が満たされる場合にのみ、後続の条件がチェックされる。したがって、条件が満たされていない場合、解析ツール160はチェックを中断し、対応する結果を、条件が満たされなかったためにチェックが中断されたというメッセージと共に検査ツール120へ送信することができる。その結果、検査ツール120は、指定された条件に従って、アンチウィルスチェックを実行する。
図2を参照する。一実施形態に係る、アンチウィルスチェックから実行可能ファイルを除外する方法200のフローチャートが示される。特に、方法200は、実行可能コードがない動的ライブラリなどの実行可能ファイル100をアンチウィルスチェックから除外するように構成されている。アンチウィルス処理中にファイルが実行可能なものであると判明された場合、そのファイルに対するアンチウィルスチェックに先立って、方法200が適用されてアンチウィルスチェックから実行可能ファイルが除外される。方法200の結果に基づいて、アンチウィルスチェックから実行可能ファイルを除外する決定を行うことができる。本明細書で説明するように、方法200は特に動的ライブラリ及びNEファイルを除外するために利用することができる。
工程210において、対象である実行可能なファイルは、アンチウィルスチェックをするために受信される。他の実施形態では、実行可能ファイルの実行処理が傍受される。例えば、検査ツール120を利用して実行可能ファイルを受信することができる。次に、検査ツール120は、受信したファイルを分解ツール150へ送信するか、さもなければ利用可能にする。
分解ツール150は、工程220において、ファイルの構造の解析と、ファイルヘッダー内の"特性"フィールド内にある対応するファイルフォーマットのフラグの検出に基づいて、受信したファイルのフォーマットを判定する。たとえば、ファイルが動的ライブラリ(Native DLLフォーマット)、制御可能な動的ライブラリ(.NET Assembly DLL)又はNEファイル(MZ-NEフォーマット)であるという判定がなされる。
工程230において、判定されたファイルフォーマットはファイルフォーマットリストと比較される。フォーマットリストには、後続のチェックが成功した場合にアンチウィルスチェックから除外できるファイルのフォーマットが含まれている。ファイルのフォーマットがフォーマットリストに存在する場合、分解ツール150は、ファイルのさらなる分解又は解析を実行する。或いは、検査ツール120によってファイルのアンチウィルスチェックが工程235で実行される。
ファイルフォーマットがフォーマットリスト内のフォーマットの1つと一致する場合に戻って、分解ツール150は、実行可能なプログラムコードのセクションを判定する。一実施形態では、実行可能なセクションは、"特性"フィールドに関連するフラグ(実行可能ステータス)にマークがなされる場合がある。工程240において、工程250で使用される実行可能ファイル内のプログラムコード実行開始アドレス(エントリポイント)の判定が行われる。この場合、前述の条件(セクションとエントリポイントのチェック)が特定のファイルフォーマットの関連基準と比較される。工程240及び工程250の例は、図1の説明に示されている。たとえば、Native DLLフォーマットファイルのこれらの条件(セクションとエントリポイントのチェック)は、次の条件、エントリポイントはゼロアドレスを示す必要があり、各実行可能セクションのセクション配列の先頭に実行フラグがないという条件を満たす必要がある。上記の条件が満たされていない場合、工程200は工程255で停止する。その後、検査ツール120に通知され、検査ツール120は工程235に進む。或いは、分解ツール150は、ファイルフォーマット及び構造に関する情報を解析ツール160へ送信する。
工程260において、解析ツール160は、ファイルフォーマットに関する受信した情報に基づいて、解析を行うために条件リストを選択する。
工程270において、解析ツール160は、選択された条件リストに従って解析を実行し、解析結果を作成する。一実施形態では、工程270における解析は、条件リストからの各条件が満たされているかについてのチェックを含む。解析結果は、条件リストから各条件を満たすための情報を含むことができる。
工程280において、解析結果に基づいて、全ての条件が満たされるという決定が作成される。したがって、少なくとも1つの条件が満たされなかった場合、解析ツール160は、実行可能コードの有無に関する決定を発行し、検査ツール120を使用して工程235において、疑わしいとしてチェックされるべきファイルであって、アンチウィルスチェックを必要とするファイルが判明される。そうではなく、全ての条件が満たされる場合、解析ツール160は、実行可能コードがないという決定を発行し、チェック対象のファイルが安全であると判明される。その後、解析ツール160は、実行可能コードが存在しない決定をツール120へ送信するか、さもなければ利用可能にする。
したがって、受信した決定に基づいて、検査ツール120は、工程290で実行可能ファイルをアンチウィルスチェックから除外する。
図3は、本明細書で説明される本発明の態様が様々な実施形態に従って実装され得るコンピュータシステム300をより詳細に示す図である。
コンピュータシステム300は、パーソナルコンピュータ320などのコンピューティングデバイスを含むことができ、パーソナルコンピュータ320は、1つ又は複数のプロセッサ部321、システムメモリ322、及びシステムバス323を含むことができる。1つ又は複数のプロセッサ部321に接続されたメモリを含む様々なシステムコンポーネントを含む。様々な実施形態では、プロセッサ部321は、コンピュータ可読媒体に格納された情報を処理することができる複数の論理コアを含むことができる。システムバス323は、関連する技術レベルにおいて既知である任意のバス構造として実現され、順に、バスメモリ又はバスメモリコントローラ、周辺バス及びローカルバスを含み、他のバスアーキテクチャと相互作用することができる。システムメモリは、読み出し専用メモリ(ROM)324などの不揮発性メモリ、又はランダムアクセスメモリ(RAM)325などの揮発性メモリを含むことができる。基本入出力システム(BIOS)326は、例えばROM324を使用するオペレーティングシステムをブートしている間に、パーソナルコンピュータ320の要素間での情報の転送を確実にする基本手順を含む。
パーソナルコンピュータ320は、順番に、データの読み書きするためのハードドライブ327、リムーバブル磁気ディスク329を読み書き可能にする磁気ディスクドライブ328、及び、リムーバブル光学ディスク331(CD-ROM、DVD-ROM及び他の光学情報媒体等)を読み書き可能にする光学ドライブ330を含む。
ハードドライブ327、磁気ドライブ328、及び光学ドライブ330は、それぞれハードドライブインターフェース332、磁気ドライブインターフェース333及び光学ドライブインターフェース334を介してシステムバス23に接続される。ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ320のコンピュータ命令、データ構造、プログラムモジュール、及び他のデータを記憶するため、電力的に独立しているモジュールである。
本開示は、ハードドライブ327、リムーバブル磁気ドライブ329及びリムーバブル光学ドライブ330を使用するシステムの実装を提供するが、他の種類のコンピュータ情報媒体を採用することもできることが理解されるべきである。そのような情報媒体は、コンピュータによって読み取り可能なフォーマット(ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ(RAM)等)でデータを格納することができ、コントローラ355を介してシステムバス323に接続される。
コンピュータ320は、ファイルシステム336(記録されるシステム335はここに格納される)を含むだけでなく、追加のプログラム・アプリケーション337、他のプログラムモジュール338及びプログラムデータ339も備える。
ユーザーは、入力デバイス(キーボード340、マウス342)を用いて、パーソナルコンピュータ320にコマンドと情報を入力することが可能である。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲームコントローラー、スキャナー、等を用いることができる。
そのような入力デバイスは、通常コンピュータシステム320に、シリアルポート346を介して接続される。システムバスに順に接続されるが、他の方法で、例えばパラレルポート、ゲームポート及びユニバーサルシリアルバス(USB)を用いて接続されることもできる。モニター347又は他の種類のディスプレイデバイスも、ビデオアダプター348等のインターフェースを介してシステムバス323に接続される。モニター347に加えて、パーソナルコンピュータは、スピーカー、プリンタ等他の周辺外部デバイス(図示せず)に備えてもよい。
パーソナルコンピュータ320は、ネットワーク環境で動作することができる。この場合、1つ又は複数の他のリモートコンピュータ349とのネットワーク接続を利用する。リモートコンピュータ349は、類似のパーソナルコンピュータ又はサーバであってもよい。図3に示すように、パーソナルコンピュータ320の内容を説明する際に先に述べた上記の要素の大部分又は全部を有する。コンピューティングネットワークは、ルータ、ネットワークステーション、ピアリングデバイス又は他のネットワークノードなどの他のデバイスを有することもできる。
ネットワーク接続は、ローカルエリアネットワーク(LAN)350及びワールドエリアネットワーク(WAN)を構成することができる。このようなネットワークは、企業コンピュータネットワーク又は社内ネットワークで使用され、通常はインターネットにアクセスする。LAN又はWANネットワークでは、パーソナルコンピュータ320は、ネットワークアダプタ又はネットワークインタフェース351を介してローカルエリアネットワーク350に接続される。ネットワークを使用する場合、パーソナルコンピュータ320は、モデム354又は他の手段を使用して、インターネット等のワールドエリアネットワークに接続する。モデム354は内部的又は外部的デバイスであり、シリアルポート346によってシステムバス323と接続される。これらのネットワーク接続は一例であり、ネットワークの正確な構成を示す必要はないことを留意されたい。すなわち、実際には、コンピュータ間の技術的通信手段を用いて接続を確立する他の手段が存在する。
システム、デバイス、及び方法の様々な実施形態を本明細書で説明してきた。これらの実施形態は、例示としてのみ与えられ、特許請求の範囲に記載された発明の範囲を限定するものではない。さらに、記載された実施形態の様々な特徴は、多くの追加の実施形態を作成するために様々な方法で組み合わせることができることを理解されたい。さらに、開示された実施形態と共に使用するために様々な材料、寸法、形状、構成及び位置などが記載されているが、請求された発明の範囲を超えることなく、開示されたもの以外のものが利用されてもよい。
本明細書の主題が上記の個々の実施形態に示されたものよりも少ない特徴を含むことができることを関連分野の当業者は認識するであろう。本明細書に記載された実施形態は、本明細書の主題の様々な特徴が組み合わされ得る方法の網羅的な提示を意味するものではない。したがって、実施形態は、相互に排他的な特徴の組み合わせではない。むしろ、様々な実施形態は、当業者に理解されるように、異なる個々の実施形態から選択された異なる個別の特徴の組み合わせを含むことができる。さらに、一実施形態に関して説明した要素は、他に記載がない限り、そのような実施形態で説明されていない場合でも、他の実施形態で実装することができる。
従属請求項は、請求項において、1つ又は複数の他の請求項の特定の組み合わせを参照することができる。しかし、他の実施例は、従属請求項と他の各従属請求項の主題との組み合わせ、又は他の従属或いは独立請求項にある1つ又は複数の特徴の組合せも含む。特定の組合せを意図していないと述べられていない限り、そのような組み合わせが本明細書において提案される。
上記の文献を参照することによる組み込みは、本明細書の明示的開示に反してどの主題も組み込まれないように限定される。上記の文献の参照による取り込みはさらに限定され、その文書に含まれる請求項は参照により本明細書に組み込まれない。上記の文献を参照することにより組み込まれるいかなる要件もさらに限定されるものであるので、本明細書に明示的に含まれない限り、上記文献により提供された任意の定義は参照により組み込まれない。
特許請求の範囲を解釈するために、米国特許法35 U.S.C. §112(f)の準用規定は、請求項に、"するための手段"又は"するための工程"という特定の用語が記載されていないかぎり行使されないということが明確に意図されている。

Claims (24)

  1. 実行可能コードを含まない実行可能ファイルをアンチウィルスチェックから除外するシステムであって、検査ツール、分解ツール、解析ツール、データベースを備え、
    前記検査ツールは、
    アンチウィルスチェックのために実行可能ファイルを受信し、
    前記実行可能ファイルを前記分解ツールへ送信し、
    前記解析ツールから受け取った決定に基づいて、実行可能コードを含まない前記実行可能ファイルを前記アンチウィルスチェックから除外するように構成され、
    前記分解ツールは、
    前記実行可能ファイルの構造を解析し、前記実行可能ファイルのヘッダーを確認することによって前記実行可能ファイルのフォーマットを特定し、
    前記実行可能ファイルのフォーマット及び前記実行可能ファイルの構造に関する情報を前記解析ツールへ送信するように構成され、
    前記解析ツールは、
    少なくとも前記実行可能ファイルのフォーマットに関する情報に基づいて前記データベースから条件リストを選択し、前記条件リストは前記実行可能ファイルの構造の解析のための複数の条件を含み、
    前記選択された条件リストを使用して前記実行可能ファイルの構造の解析を実行し、前記解析は、前記選択される条件リストからの各条件が満たされているかどうかを確認することを含み、
    前記解析に基づく結果を作成し、前記結果は、確認済みの各条件が満たされているかどうかに関する情報を含み、
    前記結果に基づく決定を発行し、前記条件リストからの全ての条件が満たされる場合に前記実行可能ファイル内に実行可能コードが存在しないという決定であり、
    前記発行された決定を前記検査ツールへ送信するように構成され、
    前記データベースは、前記解析ツールから操作できるように接続され、前記条件リストを格納するように構成される、システム。
  2. 前記複数のファイルのフォーマットは、新しい実行可能(NE)フォーマット、動的リンクライブラリ(DLL)フォーマット、リソースファイルフォーマット、及び実行可能なDOSファイルフォーマットを含む、請求項1に記載のシステム。
  3. 前記動的リンクライブラリ(DLL)フォーマットは、Native DLL又は.NETアセンブリDLLであることを特徴とする請求項2に記載のシステム
  4. 前記実行可能ファイルの構造の解析は、前記実行可能ファイルの1つ以上のセクションが実行できるかどうかの判定を含む、請求項1に記載のシステム。
  5. 前記実行可能ファイルの構造の解析は、前記実行可能ファイルのプログラムコードのエントリポイントの判定を含む、請求項1に記載のシステム。
  6. 前記データベースから選択された前記条件リストは、前記実行可能ファイルの前記フォーマットに固有である、請求項1に記載のシステム。
  7. 前記実行可能ファイルは、.NETアセンブリ動的ライブラリ(DLL)であり、前記条件リストは、
    動的ライブラリの_CorDllMain関数へのエントリポイント、
    _CorDllMain関数がmscoree.dllからインポートされたかどうか、
    動的ライブラリのエクスポートテーブルセクションのエクスポートテーブルアドレス及びエクスポートテーブルサイズ、
    動的ライブラリのスレッドローカルストレージテーブルのスレッドローカルストレージテーブルアドレスとスレッドローカルストレージテーブルサイズ、
    動的ライブラリの.NETメタデータセクションのメタデータアドレス及びメタデータサイズ、
    動的ライブラリのManagedNativeHeader構造体のネイティブヘッダーアドレス及びネイティブヘッダーサイズ、
    動的ライブラリの管理可能なリソースサイズの有無、又は
    動的ライブラリのMaskValidフィールドが、MethodDef、MethodPtr、MethodSemantics、MethodImpl、又はMethodSpecのテーブルに関連するビットがあるかどうか、
    という条件を含む、請求項6に記載のシステム。
  8. 前記検査ツールは、アンチウィルスチェックを行うようにさらに構成され、前記検査ツールによるアンチウィルスチェックの種類は、前記条件リストからの満たされていない条件に基づいて判定される、請求項1に記載のシステム。
  9. 満たされていない前記条件は、エクスポートセクションのアドレスがゼロであるか、及び前記エクスポートセクションのサイズがゼロであるかという条件であり、前記アンチウィルスチェックは前記エクスポートセクションのシグネチャ解析である、請求項8に記載のシステム。
  10. インターネットを介して前記データベースと通信できるように接続されるアンチウィルスサーバをさらに備え、前記アンチウィルスサーバは、前記条件リストへ更新を送信するように構成される、請求項1に記載のシステム。
  11. 前記検査ツールは、前記実行可能ファイルの読み込みを傍受するようにさらに構成される、請求項1に記載のシステム。
  12. 前記条件リストは、第1の条件及び第2の条件を含み、前記第1の条件が満たされていない場合、前記解析ツールは、前記第2の条件のチェックを中断し、前記発行された決定を送信するように構成される、請求項1に記載のシステム。
  13. 前記システムは、少なくとも1つのプロセッサ、データ記憶装置、及び入出力機能の計算ハードウェアを含むコンピューティングプラットフォームで実行され、前記検査ツール、前記分解ツール、及び前記解析ツールは、前記コンピューティングプラットフォームで実行される有形の媒体に格納されたコンピュータプログラム命令を含む、請求項1に記載のシステム。
  14. 実行可能コードを含まない実行可能ファイルをアンチウィルスチェックから除外する方法であって、
    前記方法は、少なくとも1つのプロセッサ、データ記憶装置、及び入出力機能の計算ハードウェアを含むコンピューティングプラットフォームで実行され、
    前記方法は、検査工程、分解工程、解析工程を含み、
    前記検査工程では、前記計算ハードウェアに実装された検査ツールを使って、アンチウィルスチェックのための実行可能ファイルを受信し、
    前記分解工程では、前記計算ハードウェアに実装された分解ツールを使って、前記実行可能ファイルの構造を解析し、前記実行可能ファイルのヘッダーを確認することによって前記実行可能ファイルのフォーマットを特定し、
    前記解析工程では、前記計算ハードウェアに実装された解析ツールを使って、少なくとも前記実行可能ファイルのフォーマットに関する情報に基づいて、データベースから条件リストを選択し、前記条件リストは前記実行可能ファイルの構造を解析するために複数の条件を含み、
    前記解析ツールを用いて、前記選択される条件リストによって前記実行可能ファイルの構造を解析し、前記解析は前記選択された条件リストからの各条件が満たされているかどうかを確認することを含み、
    前記解析ツールを用いて、前記解析に基づく結果を作成し、前記結果は確認済みの各条件が満たされているかどうかに関する情報を含み、
    前記解析ツールを用いて、前記結果に基づく決定を発行し、前記決定は前記条件リストからの全ての条件が満たされる場合に前記実行可能ファイル内に実行可能コードが存在しないという決定であり、
    前記検査ツールを使用して、実行可能コードを含まない前記実行可能ファイルを前記発行される決定に基づいて、アンチウィルスチェックから除外する、方法。
  15. 前記複数のファイルのフォーマットは、新しい実行可能(NE)フォーマット、動的リンクライブラリ(DLL)フォーマット、リソースファイルフォーマット、及び実行可能DOSファイルフォーマットを含む、請求項14に記載の方法。
  16. 前記動的リンクライブラリ(DLL)フォーマットは、Native DLL又は.NETアセンブリDLLであることを特徴とする請求項15に記載のシステム。
  17. 前記実行可能ファイルの構造を解析する工程は、前記実行可能ファイルの1つ以上のセクションが実行できるどうかの判定を含む、請求項14に記載の方法。
  18. 前記実行可能ファイルの構造を解析する工程は、前記実行可能ファイルのプログラムコードのエントリポイントの判定を含む、請求項14に記載の方法。
  19. 前記データベースから選択された前記条件リストは、前記実行可能ファイルのフォーマットに固有である、請求項14に記載の方法。
  20. 前記検査ツールを用いてアンチウィルスチェックを行う工程をさらに備え、前記アンチウィルスチェックの種類は、前記条件リストからの満たしていない条件に基づいて判定される、請求項14に記載の方法。
  21. アンチウィルスサーバから前記条件リストへの更新を受信することをさらに含む、請求項14に記載の方法。
  22. 前記検査ツールを用いて前記実行可能ファイルの読み込みを傍受する工程をさらに含む、請求項14に記載の方法。
  23. 前記条件リストは、第1の条件及び第2の条件を含み、前記方法は、前記第1の条件が満たされていない場合、前記解析ツールによる前記第2の条件のチェックを中断し、前記検査ツールに前記決定を送信する工程をさらに含む、請求項14に記載の方法。
  24. 前記検査ツール、前記分解ツール、及び前記解析ツールは、前記コンピューティングプラットフォームで実行される有形の媒体に格納されたコンピュータプログラム命令である、請求項14に記載の方法。
JP2016163356A 2015-10-22 2016-08-24 アンチウィルス判定の最適化のためのシステム及び方法 Active JP6313384B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2015145266 2015-10-22
RU2015145266A RU2606559C1 (ru) 2015-10-22 2015-10-22 Система и способ оптимизации антивирусной проверки файлов
US15/015,764 2016-02-04
US15/015,764 US9444832B1 (en) 2015-10-22 2016-02-04 Systems and methods for optimizing antivirus determinations

Publications (2)

Publication Number Publication Date
JP2017097842A JP2017097842A (ja) 2017-06-01
JP6313384B2 true JP6313384B2 (ja) 2018-04-18

Family

ID=56881112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016163356A Active JP6313384B2 (ja) 2015-10-22 2016-08-24 アンチウィルス判定の最適化のためのシステム及び方法

Country Status (5)

Country Link
US (1) US9444832B1 (ja)
EP (1) EP3159822B1 (ja)
JP (1) JP6313384B2 (ja)
CN (1) CN106355092B (ja)
RU (1) RU2606559C1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572663B1 (en) * 2016-03-09 2020-02-25 Symantec Corporation Systems and methods for identifying malicious file droppers
KR101893518B1 (ko) * 2016-10-28 2018-10-04 한국전자통신연구원 제어 시스템의 업데이트 관리 장치, 업데이트 검증 장치 및 그 방법
US11481492B2 (en) 2017-07-25 2022-10-25 Trend Micro Incorporated Method and system for static behavior-predictive malware detection
US10460108B1 (en) 2017-08-16 2019-10-29 Trend Micro Incorporated Method and system to identify and rectify input dependency based evasion in dynamic analysis
RU2702053C1 (ru) * 2018-12-28 2019-10-03 Акционерное общество "Лаборатория Касперского" Способ снижения нагрузки на сканирующую подсистему путем дедупликации сканирования файлов
US11636204B2 (en) 2019-10-01 2023-04-25 Acronis International Gmbh Systems and methods for countering removal of digital forensics information by malicious software
CN112149113B (zh) * 2020-11-26 2021-06-08 飞天诚信科技股份有限公司 一种iOS应用反钩子的方法及装置

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826013A (en) 1995-09-28 1998-10-20 Symantec Corporation Polymorphic virus detection module
US5696822A (en) 1995-09-28 1997-12-09 Symantec Corporation Polymorphic virus detection module
US6717588B1 (en) * 1998-08-14 2004-04-06 Microsoft Corporation Multilingual user interface for an operating system
GB2396227B (en) * 2002-12-12 2006-02-08 Messagelabs Ltd Method of and system for heuristically detecting viruses in executable code
GB2400933B (en) 2003-04-25 2006-11-22 Messagelabs Ltd A method of, and system for, heuristically detecting viruses in executable code by detecting files which have been maliciously altered
US7721334B2 (en) * 2004-01-30 2010-05-18 Microsoft Corporation Detection of code-free files
US7523500B1 (en) 2004-06-08 2009-04-21 Symantec Corporation Filtered antivirus scanning
US20060129603A1 (en) * 2004-12-14 2006-06-15 Jae Woo Park Apparatus and method for detecting malicious code embedded in office document
US7490352B2 (en) 2005-04-07 2009-02-10 Microsoft Corporation Systems and methods for verifying trust of executable files
US20070006300A1 (en) * 2005-07-01 2007-01-04 Shay Zamir Method and system for detecting a malicious packed executable
US8161548B1 (en) * 2005-08-15 2012-04-17 Trend Micro, Inc. Malware detection using pattern classification
US9235703B2 (en) 2005-09-30 2016-01-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virus scanning in a computer system
US9055093B2 (en) 2005-10-21 2015-06-09 Kevin R. Borders Method, system and computer program product for detecting at least one of security threats and undesirable computer files
CN100483434C (zh) * 2005-12-12 2009-04-29 北京瑞星国际软件有限公司 病毒识别方法及装置
US20080115219A1 (en) * 2006-11-13 2008-05-15 Electronics And Telecommunications Research Apparatus and method of detecting file having embedded malicious code
US20080127038A1 (en) * 2006-11-23 2008-05-29 Electronics And Telecommunications Research Institute Apparatus and method for detecting self-executable compressed file
US20090013405A1 (en) 2007-07-06 2009-01-08 Messagelabs Limited Heuristic detection of malicious code
JP2010009269A (ja) * 2008-06-26 2010-01-14 Iwate Univ コンピュータウィルス検出装置、コンピュータウィルス検出方法及びコンピュータウィルス検出プログラム
US8181251B2 (en) 2008-12-18 2012-05-15 Symantec Corporation Methods and systems for detecting malware
US8621625B1 (en) 2008-12-23 2013-12-31 Symantec Corporation Methods and systems for detecting infected files
US8745743B2 (en) 2009-06-09 2014-06-03 F-Secure Oyj Anti-virus trusted files database
GB2471716A (en) * 2009-07-10 2011-01-12 F Secure Oyj Anti-virus scan management using intermediate results
HUE038791T2 (hu) * 2009-07-29 2018-11-28 Reversinglabs Corp Hordozható futtatható fájl elemzése
US8955131B2 (en) * 2010-01-27 2015-02-10 Mcafee Inc. Method and system for proactive detection of malicious shared libraries via a remote reputation system
CN101924761B (zh) 2010-08-18 2013-11-06 北京奇虎科技有限公司 一种依据白名单进行恶意程序检测的方法
EP2447859B1 (en) * 2010-11-01 2015-04-08 Kaspersky Lab, ZAO System and method for acceleration of malware detection using antivirus cache
WO2012071989A1 (zh) * 2010-11-29 2012-06-07 北京奇虎科技有限公司 基于机器学习的程序识别方法及装置
US8549647B1 (en) 2011-01-14 2013-10-01 The United States Of America As Represented By The Secretary Of The Air Force Classifying portable executable files as malware or whiteware
RU2491623C1 (ru) 2012-02-24 2013-08-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки файлов на доверенность
CN103067364B (zh) * 2012-12-21 2015-11-25 华为技术有限公司 病毒检测方法及设备
US10409987B2 (en) 2013-03-31 2019-09-10 AO Kaspersky Lab System and method for adaptive modification of antivirus databases
RU2541120C2 (ru) 2013-06-06 2015-02-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных исполняемых файлов на основании сходства ресурсов исполняемых файлов
RU2568285C2 (ru) * 2013-09-30 2015-11-20 Закрытое акционерное общество "Лаборатория Касперского" Способ и система анализа работы правил обнаружения программного обеспечения
US9769189B2 (en) 2014-02-21 2017-09-19 Verisign, Inc. Systems and methods for behavior-based automated malware analysis and classification
RU2584505C2 (ru) 2014-04-18 2016-05-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ предварительной фильтрации файлов для контроля приложений
US9015814B1 (en) 2014-06-10 2015-04-21 Kaspersky Lab Zao System and methods for detecting harmful files of different formats
CN104077528A (zh) * 2014-06-25 2014-10-01 珠海市君天电子科技有限公司 病毒检测方法、装置以及终端

Also Published As

Publication number Publication date
EP3159822A2 (en) 2017-04-26
EP3159822A3 (en) 2017-07-05
EP3159822B1 (en) 2018-07-18
CN106355092B (zh) 2019-05-03
RU2606559C1 (ru) 2017-01-10
US9444832B1 (en) 2016-09-13
CN106355092A (zh) 2017-01-25
JP2017097842A (ja) 2017-06-01

Similar Documents

Publication Publication Date Title
JP6313384B2 (ja) アンチウィルス判定の最適化のためのシステム及び方法
JP6842367B2 (ja) ファイル中の悪意のあるコードの検出システム及び方法
US9081967B2 (en) System and method for protecting computers from software vulnerabilities
RU2514141C1 (ru) Способ эмуляции вызовов системных функций для обхода средств противодействия эмуляции
JP2018041438A5 (ja)
RU2665911C2 (ru) Система и способ анализа файла на вредоносность в виртуальной машине
JP6404273B2 (ja) 仮想マシンでファイルのアンチウイルススキャンを実行するシステム及び方法
US11048795B2 (en) System and method for analyzing a log in a virtual machine based on a template
US10867043B2 (en) Method and system for generating a request for information on a file to perform an antivirus scan
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
US11528298B2 (en) Methods and systems for preventing malicious activity in a computer system
RU2649794C1 (ru) Система и способ формирования журнала в виртуальной машине для проведения антивирусной проверки файла
US11397812B2 (en) System and method for categorization of .NET applications
JP2008129707A (ja) プログラム分析装置、プログラム分析方法、及びプログラム
CN110659478B (zh) 在隔离的环境中检测阻止分析的恶意文件的方法
Huster et al. To boldly go where no fuzzer has gone before: Finding bugs in linux’wireless stacks through virtio devices
EP2835757B1 (en) System and method protecting computers from software vulnerabilities
EP3588350B1 (en) Method and system for generating a request for information on a file to perform an antivirus scan
RU91204U1 (ru) Система определения новых версий программ
JP6498413B2 (ja) 情報処理システム、情報処理装置、制御サーバ、生成サーバ、動作制御方法及び動作制御プログラム
EP3588346A1 (en) Method of detecting malicious files resisting analysis in an isolated environment
RU2595510C1 (ru) Способ исключения процессов из антивирусной проверки на основании данных о файле
JP2014211733A (ja) 監視装置、監視方法、および、監視プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180322

R150 Certificate of patent or registration of utility model

Ref document number: 6313384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250