(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5738283
(24)【登録日】2015年5月1日
(45)【発行日】2015年6月24日
(54)【発明の名称】マルウェアスキャンに関する誤警報検出
(51)【国際特許分類】
G06F 21/56 20130101AFI20150604BHJP
【FI】
G06F21/56 340
【請求項の数】8
【全頁数】9
(21)【出願番号】特願2012-514415(P2012-514415)
(86)(22)【出願日】2010年5月28日
(65)【公表番号】特表2012-529690(P2012-529690A)
(43)【公表日】2012年11月22日
(86)【国際出願番号】EP2010057474
(87)【国際公開番号】WO2010142545
(87)【国際公開日】20101216
【審査請求日】2013年4月9日
(31)【優先権主張番号】0909954.0
(32)【優先日】2009年6月10日
(33)【優先権主張国】GB
【前置審査】
(73)【特許権者】
【識別番号】511297708
【氏名又は名称】エフ−セキュア コーポレーション
(74)【代理人】
【識別番号】100109726
【弁理士】
【氏名又は名称】園田 吉隆
(74)【代理人】
【識別番号】100101199
【弁理士】
【氏名又は名称】小林 義教
(72)【発明者】
【氏名】ニエメラ, ヤルノ
【審査官】
脇岡 剛
(56)【参考文献】
【文献】
国際公開第2007/087141(WO,A1)
【文献】
特開2007−213239(JP,A)
【文献】
特表2004−518193(JP,A)
【文献】
特表2008−500653(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
コンピュータシステム上でマルウェアを見つけ出すためにファイルをスキャンする方法であって、
スキャンすべきファイルをシステム内で受信するステップと、
少なくとも1つのマルウェアスキャンエンジンを使用して、マルウェアを示唆する特性をファイルが有するか否かを、1つまたは複数のヒューリスティック手法を使用して、判断するステップと、
マルウェアを示唆する特性をファイルが有すると判断された場合、少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを、1つまたは複数のヒューリスティック手法を使用して、判断するステップと、
クリーンなファイルを示唆する特性をファイルが有すると判断された場合、誤警報であったことを通知するステップと
を含み、
少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断する前記ステップが、ファイルのクリーン度の尺度を生成し、前記尺度を既定のしきい値と比較するステップを含む、方法。
【請求項2】
前記コンピュータシステムがサーバまたは1組のサーバである、請求項1に記載の方法。
【請求項3】
前記コンピュータシステムがクライアントコンピュータである、請求項1に記載の方法。
【請求項4】
少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断する前記ステップが、
アプリケーションプログラミングインターフェース呼び出しを作成するコードをファイルが含むか否か判断するステップと、
グラフィックスおよび/またはサウンドデータをファイルが含むか否か判断するステップと、
人が理解できる複数の言語でのテキストデータをファイルが含むか否か判断するステップと、
クリアテキストストリングをファイルが含むか否か判断するステップと、
ファイルがマルウェアとして識別されることなくシステム内に存在していた期間を判断するステップ
のうちの1つまたは複数を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
複数のクライアントコンピュータにマルウェアスキャンサービスを提供する方法であって、
請求項1から4のいずれか一項に記載の方法を、バックエンドサーバまたは1組のサーバで実施するステップと、
誤警報であったことが通知されたファイルに関して、さらなる自動および/または手動チェックを行って、ファイルがマルウェアであるか否かを確認するステップと、
マルウェアと確認された各ファイルと、マルウェアを示唆する特性を有するが、実際にはクリーンなファイルを示唆する特性を有する各ファイルとに関して、スキャンシグネチャおよび/またはスキャン規則を生成して前記クライアントコンピュータに配布するステップと
を含む方法。
【請求項6】
スキャンすべきファイルを受信するための入力部と、
少なくとも1つのマルウェアスキャンエンジンを使用して、マルウェアを示唆する特性をファイルが有するか否かを、1つまたは複数のヒューリスティック手法を使用して、判断するように構成された第1の処理装置と、
マルウェアを示唆する特性をファイルが有すると判断された場合、少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを、1つまたは複数のヒューリスティック手法を使用して、判断し、クリーンなファイルを示唆する特性をファイルが有すると判断された場合、誤警報であったことを通知するように構成された第2の処理装置と
を備え、
前記第2の処理装置が、少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断する際に、ファイルのクリーン度の尺度を生成し、前記尺度を既定のしきい値と比較する、コンピュータシステム。
【請求項7】
スキャンすべきファイルをシステム内で受信するステップと、
少なくとも1つのマルウェアスキャンエンジンを使用して、マルウェアを示唆する特性をファイルが有するか否かを、1つまたは複数のヒューリスティック手法を使用して、判断するステップと、
マルウェアを示唆する特性をファイルが有すると判断された場合、少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを、1つまたは複数のヒューリスティック手法を使用して、判断するステップと、
クリーンなファイルを示唆する特性をファイルが有すると判断された場合、誤警報であったことを通知するステップと
をコンピュータに実行させるコンピュータプログラムであって、
少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断する前記ステップが、ファイルのクリーン度の尺度を生成し、前記尺度を既定のしきい値と比較するステップを含む、コンピュータプログラム。
【請求項8】
請求項7に記載のプログラムを記憶するコンピュータプログラム記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルウェアスキャンシステムでの誤警報の検出に関し、限定はしないが特に、自動化されたマルウェアスキャンシステムでの誤警報の検出に関する。
【背景技術】
【0002】
用語「マルウェア(malware)」は、malicious software(悪意のあるソフトウェア)の略であり、所有者の同意なくコンピュータシステムに潜入する、またはコンピュータシステムを破壊するように設計された任意のソフトウェアを表す用語として使用されている。マルウェアは、ウイルス、ワーム、トロイの木馬、ルートキット、アドウェア、スパイウェア、および任意の他の悪意のある望ましくないソフトウェアを含むことができる。デスクトップ型パーソナルコンピュータ(PC)、ラップトップ、携帯情報端末(PDA)、または移動体電話などあらゆるコンピュータデバイスが、マルウェアの危険にさらされる可能性がある。
【0003】
デバイスがマルウェアに感染したとき、ユーザはしばしば、望ましくない挙動およびシステム性能の低下に気付く。これは、感染が、望ましくない処理装置の活動、メモリ使用、およびネットワークトラフィックを引き起こす可能性があるからである。また、これは、安定性の問題を発生させ、アプリケーションまたはシステム全体に及ぶクラッシュをもたらすこともある。感染したデバイスのユーザは、実際の原因はユーザが気付いていないマルウェア感染であるにもかかわらず、性能低下がソフトウェアの欠陥またはハードウェアの問題によるものであると誤って考えて、不適切な修正措置を取ることがある。
【0004】
マルウェア作成者は、自分のソフトウェアを検出されにくいように設計するので、マルウェアの検出は困難な課題である。マルウェア作成者はしばしば、システム上でマルウェアの存在を故意に隠す技術を採用し、すなわち、現在実行しているプロセスを列挙するオペレーティングシステムテーブルにマルウェアアプリケーションが現れないことがある。
【0005】
コンピュータデバイスは、マルウェアを検出し、場合によっては駆除するために、アンチウイルスソフトウェアを利用する。このアンチウイルスソフトウェアは、マルウェアを検出するために、スキャン、整合性チェック、およびヒューリスティック解析を含めた様々な方法を利用する。これらの方法のうち、マルウェアスキャンは、個々のマルウェアプログラムを特徴付けるウイルスの指紋すなわち「シグネチャ」を見つけ出すためにファイルを検査するアンチウイルスソフトウェアを伴う。典型的には、これは、アンチウイルスソフトウェアが、それらのシグネチャを含むデータベースを有することを必要とする。アンチウイルスソフトウェアの提供者が新たなマルウェアの脅威を識別したとき、その脅威が解析されて、そのシグネチャが抽出される。ここで、マルウェアが「知られ」、そのシグネチャを更新情報としてアンチウイルスソフトウェアデータベースに供給することができる。
【0006】
マルウェアを検出し、シグネチャを生成してクライアント端末に配布するために、マルウェア検出アプリケーション提供者の「バックエンド」操作は、クライアント端末で利用可能なよりもかなり多くの量の計算を行って多数のファイルおよびコードサンプルを処理する。いくつかの場合には、これは、バックエンドでのファイルおよびコードサンプルの手動解析を含むこともある。当然、アプリケーション提供者の目標は、マルウェアバックエンド検出プロセスをできるだけ自動化し、それと同時に誤警報の危険を最小限にすることである。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、自動化された、または少なくとも部分的に自動化されたマルウェア検出方式のための誤警報検出プロセスを提供することである。この目的は、マルウェアの疑いがある、またはマルウェアを含む疑いがあるサンプルを選別して、クリーンなファイルおよびコードを特徴付ける特性を有する度合いまたはそのような挙動を示す度合いを決定することによって実現される。
【課題を解決するための手段】
【0008】
本発明の第1の態様によれば、コンピュータシステムでマルウェアを見つけ出すためにファイルをスキャンする方法が提供される。この方法は、スキャンすべきファイルをシステム内で受信することと、少なくとも1つのマルウェアスキャンエンジンを使用して、マルウェアを示唆する特性をファイルが有するか否かを判断することとを含む。マルウェアを示唆する特性をファイルが有すると判断された場合、少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断する。クリーンなファイルを示唆する特性をファイルが有すると判断された場合、誤警報であったことが通知される。
【0009】
本発明は、マルウェア検出プロセスへの人為的介入の必要性を減らすことができ、それと同時にサービス提供者および/またはユーザに誤警報の可能性を警告する。サービス提供者の場合、本発明は、提供者がより信頼性の高い製品またはサービスを配布することができるようにする。
【0010】
本発明のコンピュータシステムは、例えばマルウェア検出サービスの提供者によって操作されるサーバまたは1組のサーバでよい。あるいは、コンピュータシステムは、例えばエンドユーザが所有するクライアントコンピュータでよい。
【0011】
少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断するステップをさらに考慮すると、このステップは、
アプリケーションプログラミングインターフェース呼び出しを行うコードをファイルが含むか否か判断すること、
グラフィックスおよび/またはサウンドデータをファイルが含むか否か判断すること、
人が理解できる複数の言語でのテキストデータをファイルが含むか否か判断すること、
クリアテキストストリングをファイルが含むか否か判断すること、
ファイルがマルウェアとして識別されることなくシステム内に存在していた期間を判断すること
のうちの1つまたは複数を含むことができる。当然、他の基準を定義することもできる。
【0012】
少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断するステップは、ファイルのクリーン度の尺度を生成し、その尺度を既定のしきい値と比較するステップを含むことができる。
【0013】
本発明の第2の態様によれば、複数のクライアントコンピュータにマルウェアスキャンサービスを提供する方法であって、
本発明の上記第1の態様の方法をバックエンドサーバまたは1組のサーバで実施するステップと、
誤警報であったことが通知されたファイルに関して、さらなる自動および/または手動チェックを行って、ファイルがマルウェアであるか否か確認するステップと、
マルウェアと確認された各ファイルと、マルウェアを示唆する特性を有するが、実際にはクリーンなファイルを示唆する特性を有する各ファイルとに関して、スキャンシグネチャおよび/またはスキャン規則を生成してクライアントコンピュータに配布するステップと
を含む方法が提供される。
【0014】
本発明の第3の態様によれば、スキャンすべきファイルを受信するための入力部と、少なくとも1つのマルウェアスキャンエンジンを使用して、マルウェアを示唆する特性をファイルが有するか否かを判断するように構成された第1の処理装置とを備えるコンピュータシステムが提供される。このシステムは、第2の処理装置をさらに備え、第2の処理装置は、マルウェアを示唆する特性をファイルが有すると判断された場合、少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否か判断し、クリーンなファイルを示唆する特性をファイルが有すると判断された場合、誤警報であったことを通知するように構成される。
【0015】
本発明の第4の態様によれば、
スキャンすべきファイルをシステム内で受信するステップと、
少なくとも1つのマルウェアスキャンエンジンを使用して、マルウェアを示唆する特性をファイルが有するか否かを判断するステップと、
マルウェアを示唆する特性をファイルが有すると判断された場合、少なくとも1つのクリーン度スキャンエンジンを使用して、クリーンなファイルを示唆する特性をファイルが有するか否かを判断するステップと、
クリーンなファイルを示唆する特性をファイルが有すると判断された場合、誤警報であったことを通知するステップと
をコンピュータに実施させるためのコンピュータプログラムが提供される。
【0016】
本発明の第5の態様によれば、上記第3の態様によるプログラムを記憶するコンピュータプログラム記憶媒体が提供される。
【図面の簡単な説明】
【0017】
【
図1】マルウェアの疑いを検出し、その後、誤警報を識別するためのプロセスを示す流れ図である。
【
図2】マルウェアの疑いを検出し、その後、誤警報を識別するためのコンピュータの概略図である。
【発明を実施するための形態】
【0018】
マルウェア検出アプリケーションの提供者によって実行される典型的なバックエンド検出プロセスは、毎日、数百さらには数千のソフトウェアファイル(完全なアプリケーションおよびコードサンプルを含む)を受信して解析している。これらのファイルは、例えば、スパイダ、サーチャ、ワールドワイドウェブから得ることができ、または、提供者の検出アプリケーションを実行するクライアント端末からバックエンドに送られることがある。バックエンド操作の目的は、「実際に感染報告がある(in the ”wild”)」新規のマルウェアを迅速に検出し、そのマルウェアに関するシグネチャを生成してクライアント端末に配布し、さらに可能であれば、感染除去メカニズムを生成して配布することである。これらのプロセスをできるだけ自動化することが望ましい。
【0019】
マルウェア検出プロセスを考察すると、新規ファイルがバックエンドで受信されるとき、そこで動作するサーバはファイルを受け取り、a)そのファイルが既知のマルウェアを含むかどうか、および/またはb)そのファイルが疑わしい挙動、すなわちマルウェアに典型的な挙動を示す、またはそのような性質を有するかどうか判断する。これらのステップのうち最初のステップa)は、ファイルが既知のマルウェアのシグネチャを含むかどうか判断するためにファイルを解析することによって、比較的簡単に自動化することができる。第2のステップb)も、多数の既知のウイルスを解析することによって得られた経験に基づき生成されている規則または「ヒューリスティック手法(heuristics)」を適用することによって自動化することができる。しかし、ステップb)は、いくつかのクリーンなファイルが1つまたは複数のヒューリスティック手法の適用に対して陽性の結果を示すことは避けられないので、誤警報を発生する危険がある。クライアント端末が、クリーンなファイルがマルウェアの疑いがあると忠告される場合、これは、スキャンアプリケーションに対する顧客の苛立ちや不満、およびアプリケーション提供者からのテクニカルサポートを求める要求の増加を含めた、いくつかの望ましくない結果をもたらすことになる。
【0020】
ここで、疑わしいファイルに対してさらなるスキャンを行って、各ファイルに関する「クリーン度(cleanliness)」スコアを決定することによって、マルウェアを見つけ出すためのファイルの自動スキャンから生じる誤警報を検出するための試みが提案されている。疑わしいファイルに関するクリーン度スコアが、そのファイルがクリーンであり得ることを示す場合、ファイルに対して何らかのさらなる措置が取られて、ファイルが本当に感染しているかどうかを何らかの方法で確認する。例えば、マルウェアがほとんどないサンプルは高性能のグラフィックスまたはサウンドライブラリを使用しており、したがってファイルが多数のグラフィックスおよびサウンドコードを含む場合、マルウェアである可能性は非常に低い。そのようなファイルに関しては、高いクリーン度スコアを決定することができる。
【0021】
クリーン度スコアは、以下のファイル特性の1つまたは複数を解析することによって決定することができる。
・コード解析:
クリーンなコードは、感染したファイルのものとは大きく異なるコードパターンを有する。例えば、クリーンなアプリケーションは、典型的には、ユーザとの対話なしではファイル書き込み操作を行わない。また、一般に、クリーンなファイルは、悪意のあるファイルよりもコードライン当たりに多くのUI操作を有する。
・API呼び出し頻度:
クリーンなアプリケーションは通常、悪意のあるファイルのものとは異なる関数呼び出しの統計的パターンを含む。例えば、クリーンなアプリケーションでは、UIコードがかなり多い傾向がある。また、悪意のあるアプリケーションは、クリーンなファイルよりも多数の他の操作を含む傾向がある。
・関数呼び出しグラフ:
コード解析に関して上述したように、クリーンなアプリケーションによって呼び出される関数または関数の順序は、悪意のあるアプリケーションによって呼び出されるものとは異なる傾向がある。例えば、クリーンなアプリケーションは、任意のUI呼び出しの前にデバイスから情報を送信することはめったにない。同じことが、ファイル操作またはレジストリ修正に関しても当てはまる。
・ストリングおよびリソース解析:
悪意のあるアプリケーションはほぼ常に「パック(packed)」されており、したがって大量のクリアテキストストリングを有さない。同様に、(存在する場合に)悪意のあるアプリケーションによって使用されるリソースは、難読化されている可能性が高い。
・サンプルクリーン期間:
すなわち、提供者が知る限り、いつ以来ファイルが問題を生じていないか。
・ローカライゼーション/地域化:
例えば多言語をサポートするマルウェアファイルはほとんどない。
・地理的/ユーザプロファイル分布パターン:
マルウェアとクリーンなファイルは、地理的およびユーザプロファイル分布が大きく異なることがある。
・Google(商標)ヒット数およびソフトウェアレビューの数:
通常、すべてのクリーンなアプリケーションに関して、Google(商標)は、ソフトウェアに関してかなり多くのことを「知って」いる。例えば、クリーンな市販のアプリケーションは、複数のソフトウェアレビューを有する可能性が高く、クリーンなフリーウェアアプリケーションは、複数のダウンロードページから入手可能である可能性が高い。
・ダウンロードページの数:
Google(商標)レビュー参照。
・文書化:
悪意のあるアプリケーションが「文書化」を含む可能性は非常に低い。したがって、CHMフォーマット文書化の有無に関する単純なチェックが有用とみなすことができる。
【0022】
ファイルクリーン度の尺度は、そのファイルを感染しているものとして報告するエンドユーザの数を見ることによって決定することもできる。通常は多数のそのような報告は、ファイルがクリーンであり、広く使用されていることを示すことがある。
【0023】
スコアは、使用される各ヒューリスティック手法ごとに割り振ることができ、それらの結果は、全体のクリーン度スコアを決定するために、場合によっては何らかの統計的な重み付けを使用して組み合わせることができる。
【0024】
図1は、ソフトウェアファイルでマルウェアを検出するための手順を示す流れ図である。バックエンドスキャンサーバでのファイルの受信(ステップ100)後、ステップ200で、サーバは、最大の検出率を保証するために典型的には複数のマルウェアスキャンエンジンを使用して「従来の」マルウェアスキャンを行う。完全に自動化されたシステムを仮定して、ステップ300でスキャンの結果、マルウェアの疑いがないファイルは、ステップ400でクリーンと識別される。ステップ300で疑わしいものと識別されたファイルは、次いで、ステップ500で、クリーン度スコアを生成するためにさらなるスキャンをかけられる。ステップ600で、このスコアが、何らかの既定のしきい値と比較される。ファイルに関するスコアがしきい値未満である場合、ステップ700で、ファイルが悪意のあるものと識別される(さらに、ファイルのシグネチャを生成してクライアント端末に配布するなど、適切な措置が取られる)。他方、クリーン度スコアがしきい値よりも上である場合、ステップ800で、ファイルが誤警報として識別される。これは、さらなる自動プロセスおよび/または人為的介入をトリガすることがある。
【0025】
ここで提案した誤警報検出メカニズムは、マルウェア検出アプリケーション提供者のバックエンド操作で実施されることが考えられているが、当然、追加または代替として、その操作をクライアントフロントエンドで実施することができ、すなわち顧客/加入者に提供されるソフトウェア製品でそのメカニズムを実施することができる。この場合、生じ得る誤警報の検出は、以下の措置の1つまたは複数を引き起こすことがある。1)ファイルがクリーンなものとして合格する(メカニズムが十分に信頼されている場合のみ)。2)ユーザに警告が示される。および3)誤警報の詳細が提供者のバックエンドに渡される。措置3)は、バックエンドがファイルに対してさらなる解析を行って、結果がクライアント端末に返されるまで、クライアント端末でファイルを検疫することを含むことがある。
【0026】
図2は、上述したマルウェア誤警報検出メカニズムを実施するように構成されたコンピュータ1を概略的に示す。この例では、コンピュータは初期マルウェアスキャンも行うが、必ずしもそれを行う必要はないことを理解されたい。コンピュータは、バックエンドサーバ、またはPC、ラップトップ、PDA、もしくは移動体電話などのクライアント端末でよい。コンピュータは、1つまたは複数の中央処理装置(CPU)および関連のハードウェア2と、ソフトウェア命令、スキャンすべきファイル、および関連のデータを記憶するためのメモリ3とを備える。ソフトウェア命令は、上述した少なくとも2つの主機能、すなわちマルウェアスキャン機能4とクリーン度スキャンおよび取扱い機能5を行う。
【0027】
本発明の範囲から逸脱することなく、上述した実施形態に様々な変更を加えることができることが当業者には理解されよう。