(57)【要約】【課題】本来の正常ファイルをウィルスとして誤判定してしまうことを極力防止することのできるコンピュータウィルス検出装置を提供する。【解決手段】  複数の正常ファイル及び複数のウィルスファイルから抽出された特徴点のそれぞれと、当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを用いるコンピュータウィルス検出装置であって、正常ファイルが検査対象ファイルとして与えられたウィルス判定手段が当該正常ファイルをウィルスファイルであると誤判定したときに、シグニチャ・テーブルにおいて前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対応するウィルス確率を前記ウィルス判定手段にて用いられなくする制御手段を有する構成となる。【選択図】図５
2010073020.tif 000002
【特許請求の範囲】
【請求項１】
予めウィルスではないと判定されている複数の正常ファイル及び予めウィルスであると判定されている複数のウィルスファイルから抽出された特徴点のそれぞれと、特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数を用いて当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを格納する格納手段と、
前記シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定するウィルス判定手段とを有するコンピュータウィルス検出装置であって、
正常ファイルが検査対象ファイルとして与えられた前記ウィルス判定手段が当該正常ファイルをウィルスファイルであると誤判定したときに、前記シグニチャ・テーブルにおいて前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対応するウィルス確率を前記ウィルス判定手段にて用いられなくする制御手段を有するコンピュータウィルス検出装置。
【請求項２】
前記制御手段は、
前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対するウィルス確率が所定値以上であるか否かを判定するウィルス確率判定手段と、
該ウィルス確率判定手段にてウィルス確率が所定値以上であるとの判定のなされた特徴点の、当該ウィルス確率を生成する際に用いられた前記複数の正常ファイルに出現する回数が所定回数以上であるか否かを判定する正常回数判定手段と、
該正常回数判定手段にて前記特徴点の前記複数の正常ファイルに出現した回数が前記所定回数以上であるとの判定がなされたときに、前記シグニチャ・テーブルにおいて当該特徴点に対応づけられたウィルス確率を前記ウィルス判定手段にて用いられなくするシグニチャ・テーブル制御手段とを有する請求項１記載のコンピュータウィルス検出装置。
【請求項３】
前記ウィルス確率判定手段は、
前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点が関数名を表すか否かを判定する関数判定手段を有し、
該関数名を表すと判定された特徴点について、当該特徴点に対するウィルス確率が前記所定値以上であるか否かを判定する請求項２記載のコンピュータウィルス検出装置。
【請求項４】
前記正常回数判定手段は、前記特徴点の前記複数の正常ファイルに出現する回数が１回以上であるか否かを判定する請求項２または３記載のコンピュータウィルス検出装置。
【請求項５】
前記制御手段は、
前記シグニチャ・テーブルにおいて前記特徴点に対応付けられたウィルス確率を前記ウィルス判定手段にて用いられなくした後に、前記ウィルス判定手段に前記正常ファイルがウィルスファイルであるか否かを再判定させ、
該再判定において、前記正常ファイルがウィルスファイルであると誤判定されたときに、前記ウィルス判定手段における前記正常ファイルの再判定にて用いられた特徴点について、前記ウィルス確率判定手段、正常回数判定手段及びシグニチャ・テーブル制御手段での処理を行わせる請求項２乃至４のいずれかに記載のコンピュータウィルス検出装置。
【請求項６】
前記制御手段は、
前記ウィルス判定手段での再判定、及び前記ウィルス確率判定手段、正常回数判定手段及びシグニチャ・テーブル制御手段での処理を繰り返し行わせる請求項５記載のコンピュータウィルス検出装置。
【請求項７】
前記ウィルス判定手段での再判定、及び前記ウィルス確率判定手段、正常回数判定手段及びシグニチャ・テーブル制御手段での処理が繰り返される毎に、前記ウィルス確率判定手段にて用いられる基準値を小さい値に変更する請求項６記載のコンピュータウィルス検出装置。
【請求項８】
予めウィルスではないと判定されている複数の正常ファイル及び予めウィルスであると判定されている複数のウィルスファイルから抽出された特徴点のそれぞれと、特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数を用いて当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを格納する格納手段と、
前記シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定するウィルス判定手段とを有するコンピュータウィルス検出装置での処理方法であって、
正常ファイルが検査対象ファイルとして与えられた前記ウィルス判定手段が当該正常ファイルをウィルスファイルであると誤判定したときに、前記シグニチャ・テーブルにおいて前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対応するウィルス確率を前記ウィルス判定手段にて用いられなくする制御ステップを有する処理方法。
【請求項９】
前記制御ステップは、
前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対するウィルス確率が所定値以上であるか否かを判定するウィルス確率判定ステップと、
該ウィルス確率判定ステップにてウィルス確率が所定値以上であるとの判定のなされた特徴点の、当該ウィルス確率を生成する際に用いられた前記複数の正常ファイルに出現する回数が所定回数以上であるか否かを判定する正常回数判定ステップと、
該正常回数判定ステップにて前記特徴点の前記複数の正常ファイルに出現した回数が前記所定回数以上であるとの判定がなされたときに、前記シグニチャ・テーブルにおいて当該特徴点に対応づけられたウィルス確率を前記ウィルス判定手段にて用いられなくするシグニチャ・テーブル制御ステップとを有する請求項８記載の処理方法。
【請求項１０】
予めウィルスではないと判定されている複数の正常ファイル及び予めウィルスであると判定されている複数のウィルスファイルから抽出された特徴点のそれぞれと、特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数を用いて当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを格納した格納手段と、
前記シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定するウィルス判定手段とを有するコンピュータウィルス検出装置に適用されるコンピュータに、
正常ファイルが検査対象ファイルとして与えられた前記ウィルス判定手段が当該正常ファイルをウィルスファイルであると誤判定したときに、前記シグニチャ・テーブルにおいて前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対応するウィルス確率を前記ウィルス判定手段にて用いられなくする制御ステップを実行させるプログラム。
【請求項１１】
前記制御ステップは、
前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対するウィルス確率が所定値以上であるか否かを判定するウィルス確率判定ステップと、
該ウィルス確率判定ステップにてウィルス確率が所定値以上であるとの判定のなされた特徴点の、当該ウィルス確率を生成する際に用いられた前記複数の正常ファイルに出現する回数が所定回数以上であるか否かを判定する正常回数判定ステップと、
該正常回数判定ステップにて前記特徴点の前記複数の正常ファイルに出現した回数が前記所定回数以上であるとの判定がなされたときに、前記シグニチャ・テーブルにおいて当該特徴点に対応づけられたウィルス確率を前記ウィルス判定手段にて用いられなくするシグニチャ・テーブル制御ステップとを有し、
前記ウィルス確率判定ステップ、正常回数判定ステップ及びシグニチャ・テーブル制御ステップを前記コンピュータに行わせる請求１０記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検査対象ファイルがコンピュータウィルスであるか否かを判定することによってコンピュータウィルスを検出するコンピュータウィルス検査装置、該コンピュータウィルス検査装置での処理方法、及び該コンピュータウィルス検査装置に適用されるコンピュータに実行させるステップを含むプログラムに関する。
【背景技術】
【０００２】
コンピュータウィルスは、経済産業省の定義によれば、第三者のプログラムやデータベースに対して意図的に何らかの被害を及ぼすように作られたプログラムであり、自己伝染機能、潜伏機能及び発病機能の少なくとも１つの機能を有するものであるとされている。コンピュータにおいてこのようなコンピュータウィルス（以下、単にウィルスという）を検出するためには、一般に、ウィルス対策ソフト（以下、アンチウィルスという）が利用される。このアンチウィルスは、既知のウィルスに含まれる文字列（strings）等の固有情報が特徴点として登録されているシグニチャを参照し、そのシグニチャに登録された特徴点を含むファイルをウィルスとして検出する。従って、アンチウィルスではシグニチャにまだ登録されていない特徴点（文字列等）を含む未知のウィルスを検出することができない。
【０００３】
アンチウィルスメーカは、新たなウィルスが報告される毎に、その解析及び特徴点の抽出を行って、その特徴点をシグニチャに追加して当該シグニチャの更新を行っている。しかし、近年、未知のウィルスの発生速度にシグニチャの更新が間に合わなくなりつつある。そこで、シグニチャに過度に依存せずに未知のウィルスでも検出できる手法の開発が重要となっている。
【０００４】
このような状況のなかで、本特許出願の発明者等は、定期的に既知のウィルスを学習させておくことで、その既知のウィルスと類似性のある未知のウィルスを検出する方法を提案している（非特許文献１参照）。この方法は、ベイズ理論に従っており、学習部分と検出部分とに分かれている。
【０００５】
学習部分では、例えば、アンチウィルスによってウィルスでないことが既に判明している複数の正常ファイル及びアンチウィルスによってウィルスであることが既に判明している複数のウィルスファイルから固有情報（例えば、文字列（strings））が特徴点として抽出される。この抽出された各特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数のそれぞれが調べられる。これらの回数、前記正常ファイルの総数及び前記ウィルスファイルの総数を用いて各特徴点のウィルスファイルに含まれる可能性が所定のアルゴリズムに従ってウィルス確率として数値化される。そして、各特徴点とその特徴点がウィルスファイルに含まれる可能性を表すウィルス確率とを対応付けたシグニチャ・テーブルが作成される。
【０００６】
このような学習部分での処理が定期的に行われ、その都度、シグニチャ・テーブルの更新がなされる。
【０００７】
検査すべきファイル（検査対象ファイル）がコンピュータに入力すると、検出部分での処理がなされる。この検出部分では、その検査対象ファイルから複数の特徴点（例えば、文字列（strings））が抽出される。そして、前記シグニチャ・テーブルを参照して、その抽出された各特徴点のウィルス確率が決定される。なお、抽出された特徴点がシグニチャ・テーブルに登録されていない場合には、その特徴点に、例えば、ウィルスファイルに含まれている可能性が中程度であることを表すウィルス確率が割当てられる。このようにして、検査対象ファイルから抽出された複数の特徴点のそれぞれについてのウィルス確率が決定されると、それらのウィルス確率に基づいて前記検査対象のファイルがウィルスファイルであるか否かが判定される。このような判定では、ウィルス確率の高い特徴点を多く含む検査対象ファイル、即ち、既知のウィルスとの類似性の高い検査対象ファイルについては、ウィルスファイルであると判定され易く、ウィルス確率の低い特徴点を多く含む検査ファイル、即ち、既知のウィルスとの類似性の低い検査対象ファイルについては、ウィルスファイルではないと判定され易い。
【０００８】
このようなコンピュータウィルス検出方法では、既知のウィルスではなくても、既知のウィルスに比較的多く含まれる特徴点を多く含んでいれば、そのファイルはコンピュータウィルスとして判定できるようになる。従って、この方法は、既知のウィルスに類似性のある亜種ウィルスの検出に特に効果的である。また、前記コンピュータウィルス検出方法は、未知のウィルスの特徴点がアンチウィルスにて用いられるシグニチャに登録されるまでの間、そのアンチウィルスを補完するものとして利用することにより、全体としてより完全なウィルスの検出が可能になる。
【０００９】
【非特許文献１】小池竜一、中谷直司、萩原由香里、厚井裕司、高倉弘喜、吉田等明  「ベイズ学習アルゴリズムを用いた未知のコンピュータウィルス検出方法」  情報処理学会論文誌  Vol.46 No.8 pp.1984-1996  2005.08.15
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、学習アルゴリズムを利用して既知のウィルスに類似性のあるファイルをウィルスとして検出する従来の方法は、アンチウィルスによってはウィルスと判定することのできない（正常なファイルであると誤判定してしまう）ファイルをウィルスとして判定できることに最大のメリットがある。しかし、アンチウィルスによって正常なファイルであると判定されるファイルには、未知のウィルスファイル及び本来の正常ファイルを含み得るものであるが、本来の正常ファイルをウィルスとして誤判定してしまうと、アンチウィルスの機能をかえって阻害する結果となってしまう。このため、アンチウィルスは正常ファイルをウィルスとして誤判定することの無い様に種々の工夫を盛り込んでいる。同様に、学習アルゴリズムを利用して既知のウィルスに類似性のあるファイルをウィルスとして検出する方法においても、本来の正常ファイルをウィルスとして誤判定してしまうことを極力防止する必要がある。
【００１１】
本発明は、このような事情に鑑みてなされたもので、既知のウィルスとの類似性に基づいてウィルスであるか否かを判定する際に、本来の正常ファイルをウィルスとして誤判定してしまうことを極力防止することのできるコンピュータウィルス検出装置を提供するものである。
【課題を解決するための手段】
【００１２】
本発明に係るコンピュータウィルス検出装置は、予めウィルスではないと判定されている複数の正常ファイル及び予めウィルスであると判定されている複数のウィルスファイルから抽出された特徴点のそれぞれと、特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数を用いて当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを格納する格納手段と、前記シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定するウィルス判定手段とを有するコンピュータウィルス検出装置であって、正常ファイルが検査対象ファイルとして与えられた前記ウィルス判定手段が当該正常ファイルをウィルスファイルであると誤判定したときに、前記シグニチャ・テーブルにおいて前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対応するウィルス確率を前記ウィルス判定手段にて用いられなくする制御手段を有する構成となる。
【００１３】
このような構成により、ウィルス判定手段が、シグニチャ・テーブルを参照して、検査対象ファイルである正常ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいてその正常ファイルがウィルスファイルであると誤判定すると、前記正常ファイルから抽出されて前記判定に用いられた特徴点のシグニチャ・テーブルにおいて対応するウィルス確率が前記ウィルス判定手段にて利用することができなくなる。
【００１４】
以後、ウィルス判定手段は、前記ウィルスファイルであると誤判定されるような正常ファイルから抽出された前記特徴点のウィルス確率を考慮することなく、シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定することができるようになる。
【００１５】
また、本発明に係るコンピュータウィルス検出装置において、前記制御手段は、前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対するウィルス確率が所定値以上であるか否かを判定するウィルス確率判定手段と、該ウィルス確率判定手段にてウィルス確率が所定値以上であるとの判定のなされた特徴点の、当該ウィルス確率を生成する際に用いられた前記複数の正常ファイルに出現する回数が所定回数以上であるか否かを判定する正常回数判定手段と、該正常回数判定手段にて前記特徴点の前記複数の正常ファイルに出現した回数が前記所定回数以上であるとの判定がなされたときに、前記シグニチャ・テーブルにおいて当該特徴点に対応づけられたウィルス確率を前記ウィルス判定手段にて用いられなくするシグニチャ・テーブル制御手段とを有する構成とすることができる。
【００１６】
このような構成により、ウィルスファイルであると誤判定された正常ファイルから抽出される特徴点のうち、ウィルス確率が所定値以上であって、ウィルス確率を生成する際に用いられた複数の正常ファイルに出現する回数が所定回数以上となる特徴点のシグニチャ・テーブルにおいて対応するウィルス確率がウィルス判定手段にて利用できなくなる。よって、ウィルス判定手段は、ウィルスファイルであると誤判定された正常ファイルから抽出される特徴点のうち、ウィルスファイルに比較的多く含まれ（ウィルス確率が所定値以上）、かつ、正常ファイルにも含まれる（複数の正常ファイルに所定回数以上出現）誤判定の原因となるような特徴点に対するウィルス確率を考慮することなく、以後の検査対象ファイルの判定を行うことができるようになる。
【００１７】
また、本発明に係るコンピュータウィルス検出装置において、前記ウィルス確率判定手段は、前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点が関数名を表すか否かを判定する関数判定手段を有し、該関数名を表すと判定された特徴点について、当該特徴点に対するウィルス確率が前記所定値以上であるか否かを判定するように構成することができる。
【００１８】
このような構成により、一般にファイルの特徴を良く表し得る何らかの関数名を表す特徴点を対象にして、シグニチャ・テーブルにおいて対応するウィルス確率のウィルス判定手段での利用の可否を決めることができる。
【００１９】
更に、本発明に係るコンピュータウィルス検出装置において、前記正常回数判定手段は、前記特徴点の前記複数の正常ファイルに出現する回数が１回以上であるか否かを判定するように構成することができる。
【００２０】
このような構成により、ウィルスファイルと誤判定された正常ファイルから抽出された特徴点がウィルス確率を生成する際に用いられた複数の正常ファイルに１回でも出現していれば、シグニチャ・テーブルにおいて当該特徴点に対応するウィルス確率のウィルス判定手段での利用を制限することができるようになる。
【００２１】
また、本発明に係るコンピュータウィルス検出装置において、前記制御手段は、前記シグニチャ・テーブルにおいて前記特徴点に対応付けられたウィルス確率を前記ウィルス判定手段にて用いられなくした後に、前記ウィルス判定手段に前記正常ファイルがウィルスファイルであるか否かを再判定させ、該再判定において、前記正常ファイルがウィルスファイルであると誤判定されたときに、前記ウィルス判定手段における前記正常ファイルの再判定にて用いられた特徴点について、前記ウィルス確率判定手段、正常回数判定手段及びシグニチャ・テーブル制御手段での処理を行わせる構成とすることができる。
【００２２】
このような構成により、ウィルスファイルであると誤判定された正常ファイルから抽出された特徴点に対応するウィルス確率のウィルス判定手段での利用制限がなされても、再判定において、前記正常ファイルがウィルスファイルと誤判定された場合に、前記再判定に用いられた前記正常ファイルから抽出された特徴点のシグニチャ・テーブルにおいて対応するウィルス確率のウィルス判定手段での利用が制限されるようになる。以後、ウィルス判定手段は、前記ウィルスファイルであると誤判定されるような正常ファイルから抽出されたより多くの特徴点のウィルス確率を考慮することなく、シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定することができるようになる。
【００２３】
更に、本発明に係るコンピュータウィルス検出装置において、前記制御手段は、前記ウィルス判定手段での再判定、及び前記ウィルス確率判定手段、正常回数判定手段及びシグニチャ・テーブル制御手段での処理を繰り返し行わせる構成とすることができる。
【００２４】
このような構成により、正常ファイルがウィルスファイルであると誤判定される間、ウィルス判定手段での再判定、及び、その再判定において正常ファイルから抽出される特徴点のシグニチャ・テーブルにおいて対応するウィルス確率のウィルス判定手段での利用制限（ウィルス確率判定手段、正常回数判定手段、シグニチャ・テーブル制御手段での処理）が繰り返されるので、ウィルス判定手段は、前記ウィルスファイルであると誤判定されるような正常ファイルから抽出される更に多くの特徴点のウィルス確率を考慮することなく、シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定することができるようになる。
【００２５】
また、更に、本発明に係るコンピュータウィルス検出装置において、前記ウィルス判定手段での再判定、及び前記ウィルス確率判定手段、正常回数判定手段及びシグニチャ・テーブル制御手段での処理が繰り返される毎に、前記ウィルス確率判定手段にて用いられる基準値を小さい値に変更するように構成することができる。
【００２６】
このような構成により、ウィルス判定手段での再判定、及び、その再判定において正常ファイルから抽出される特徴点のシグニチャ・テーブルにおいて対応するウィルス確率のウィルス判定手段での利用制限（ウィルス確率判定手段、正常回数判定手段、シグニチャ・テーブル制御手段での処理）を繰り返す過程において、ウィルス判定手段において利用制限される特徴点のウィルス確率が次第に低下していくので、その利用制限が相対的により多くの特徴点に及ぶようになる。その結果、繰り返し回数をより少なくしつつ、正常ファイルをウィルスファイルであると誤判定することをより確実に防止することができるようになる。
【００２７】
本発明に係る処理方法は、予めウィルスではないと判定されている複数の正常ファイル及び予めウィルスであると判定されている複数のウィルスファイルから抽出された特徴点のそれぞれと、特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数を用いて当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを格納する格納手段と、前記シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定するウィルス判定手段とを有するコンピュータウィルス検出装置での処理方法であって、正常ファイルが検査対象ファイルとして与えられた前記ウィルス判定手段が当該正常ファイルをウィルスファイルであると誤判定したときに、前記シグニチャ・テーブルにおいて前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対応するウィルス確率を前記ウィルス判定手段にて用いられなくする制御ステップを有する構成となる。
【００２８】
また、本発明に係る処理方法において、前記制御ステップは、前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対するウィルス確率が所定値以上であるか否かを判定するウィルス確率判定ステップと、該ウィルス確率判定ステップにてウィルス確率が所定値以上であるとの判定のなされた特徴点の、当該ウィルス確率を生成する際に用いられた前記複数の正常ファイルに出現する回数が所定回数以上であるか否かを判定する正常回数判定ステップと、該正常回数判定ステップにて前記特徴点の前記複数の正常ファイルに出現した回数が前記所定回数以上であるとの判定がなされたときに、前記シグニチャ・テーブルにおいて当該特徴点に対応づけられたウィルス確率を前記ウィルス判定手段にて用いられなくするシグニチャ・テーブル制御ステップとを有する構成とすることができる。
【００２９】
本発明に係るプログラムは、予めウィルスではないと判定されている複数の正常ファイル及び予めウィルスであると判定されている複数のウィルスファイルから抽出された特徴点のそれぞれと、特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数を用いて当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを格納した格納手段と、前記シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定するウィルス判定手段とを有するコンピュータウィルス検出装置に適用されるコンピュータに、正常ファイルが検査対象ファイルとして与えられた前記ウィルス判定手段が当該正常ファイルをウィルスファイルであると誤判定したときに、前記シグニチャ・テーブルにおいて前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対応するウィルス確率を前記ウィルス判定手段にて用いられなくする制御ステップを実行させる構成となる。
【００３０】
また、本発明に係るプログラムにおいて、前記制御ステップは、前記ウィルス判定手段が前記正常ファイルに対する判定に際して用いた特徴点に対するウィルス確率が所定値以上であるか否かを判定するウィルス確率判定ステップと、該ウィルス確率判定ステップにてウィルス確率が所定値以上であるとの判定のなされた特徴点の、当該ウィルス確率を生成する際に用いられた前記複数の正常ファイルに出現する回数が所定回数以上であるか否かを判定する正常回数判定ステップと、該正常回数判定ステップにて前記特徴点の前記複数の正常ファイルに出現した回数が前記所定回数以上であるとの判定がなされたときに、前記シグニチャ・テーブルにおいて当該特徴点に対応づけられたウィルス確率を前記ウィルス判定手段にて用いられなくするシグニチャ・テーブル制御ステップとを有し、前記ウィルス確率判定ステップ、正常回数判定ステップ及びシグニチャ・テーブル制御ステップを前記コンピュータに行わせる構成とすることができる。
【発明の効果】
【００３１】
本発明に係るコンピュータウィルス検出装置によれば、ウィルス判定手段が、ウィルスファイルであると誤判定されるような正常ファイルから抽出される前記特徴点のウィルス確率を考慮することなく、シグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定することができるので、シグニチャ・テーブルを参照して既知のウィルスとの類似性に基づいてウィルスであるか否かを判定する際に、本来の正常ファイルをウィルスとして誤判定してしまうことを極力防止することができるようになる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明の実施の形態について、図面を用いて説明する。
【００３３】
本発明の実施の形態に係るコンピュータウィルス検出装置が適用されるコンピュータ通信システムは、図１に示すように構成される。
【００３４】
図１において、このコンピュータ通信システムでは、サーバ１０及び複数のコンピュータ（以下、単にＰＣという）２０1、２０2、・・・、２０nがＬＡＮ１０１によって接続されており、各ＰＣ２０1〜２０nは、ＬＡＮ１０１を介して他のＰＣとの相互通信及びサーバ１０との通信が可能になっている。サーバ１０は更にインターネット１００に接続されている。これにより、各ＰＣ２０1〜２０nは、ＬＡＮ１０１及びサーバ１０を介してインターネット１００に接続された他のＰＣ３０1、３０2、・・・、３０mとの通信も可能になっている。なお、実際は、インターネット１００には、種々のＰＣ、サーバ、ネットワーク（無線ネットワークも含む）等が接続されているが、簡単のため、図１は、インターネット１００にＰＣ３０1−３０m及びサーバ１０が接続された構成を示している。
【００３５】
サーバ１０は、インターネット１００を介して受信したＰＣ２０i（ｉ＝１〜ｎ）宛のデータを、ＬＡＮ１０１を介して当該ＰＣ２０iに送信し、ＬＡＮ１０１を介してＰＣ２０j（ｊ＝１〜ｎ）から受信したＰＣ３０k（ｋ＝１〜ｍ）宛のデータをインターネット１００に当該ＰＣ３０k宛のデータとして送出する。サーバ１０にはデータベース１５（例えば、ハードディスク記憶装置）が接続されている。データベース１５（格納手段）には、後述するコンピュータウィルス検出に必要となるシグニチャ・テーブルや他の各種データ（実行ファイルを含む）が格納されている。
【００３６】
この例では、ウィルス検出プログラムがサーバ１０にインストールされており、このウィルス検出プログラムに従った処理を行うサーバ１０及び前記シグニチャ・テーブルを格納したデータベース１５によって、コンピュータウィルス検出装置が構成されている。このコンピュータウィルス検出装置は、サーバ１０を通過するファイル（実行ファイル）がウィルスであるか否かを判定するものであるが、その判定は、基本的に、前述した非特許文献１に記載される手法（ベイズ理論）に従っている。その具体的な処理について以下説明する。
【００３７】
サーバ１０は、ある頻度にて図２に示す処理を実行する。この処理は、非特許文献１に記載されるウィルス検出手法における学習部分に対応している。
【００３８】
アンチウィルスを使ってウィルスではないことが判定されている総数ｎgood個の正常実行ファイル（ＰＥ形式）がサーバ１０に与えられると、サーバ１０は、そのｎgood個の正常実行ファイルのそれぞれから予め設定された文字数（例えば、４文字）の文字列（strings）を特徴点ｓとして抽出する（Ｓ１）。また、アンチウィルスを使ってウィルスであると判定されている総数ｎbad個のウィルス実行ファイル（ＰＥ形式）がサーバ１０に与えられると、サーバ１０は、そのｎbad個のウィルスファイルのそれぞれから前記文字数の文字列（strings）を特徴点ｓとして抽出する（Ｓ２）。
【００３９】
このようにして総数ｎgood個の正常実行ファイル及び総数ｎbad個のウィルス実行ファイルから特徴点が抽出されると、サーバ１０は、抽出された各特徴点ｓについて、総数ｎgood個の正常実行ファイルに出現する回数ｇと、総数ｎbad個のウィルス実行ファイルに出現する回数ｂとを集計する。そして、サーバ１０は、その各出現回数ｂ、ｇ、正常実行ファイルの総個数ｎgood及びウィルス実行ファイルの総個数ｎbadを用いて各特徴点ｓに対するウィルス確率Ｐ（ｓ）を下式に従って演算する（Ｓ３）。
【数１】
2010073020.tif 000003
【００４０】
特徴点ｓの総数ｎbadのウィルス実行ファイルに出現する回数ｂが多くてその割合（ｂ／ｎbad）が大きく、総数ｎgoodの正常実行ファイルに出現する回数ｇが少なくてその割合（ｇ／ｎgood）が小さい場合、ウィルス確率Ｐ（ｓ）は、より「１」に近い値になる。一方、特徴点ｓの総数ｎgoodの正常実行ファイルに出現する回数ｇが多くてその割合（ｇ／ｎgood）が大きく、総数ｎbadのウィルス実行ファイルに出現する回数ｂが少なくてその割合（ｂ／ｎbad）が小さい場合、ウィルス確率（ｓ）は、「１」未満のより小さい値になる。このように、ウィルス確率Ｐ（ｓ）は、対応する特徴点ｓがウィルス実行ファイルに含まれる可能性を数値化して表したものとなっている。そして、ウィルス確率Ｐ（ｓ）が大きければ大きいほど（１に近ければ近いほど）、その特徴点ｓがより多くのウィルス実行ファイルに含まれているということ、即ち、ウィルス実行ファイルに含まれている可能性が高いことを表している。
【００４１】
なお、非特許文献１にも記載されるように、ウィルス確率Ｐ（ｓ）の最大値が０．９９、その最小値が０．０１に設定されて、ウィルス確率Ｐ（ｓ）は、最大値０．９９と最小値０．０１との間の値をとり得るものとなる。
【００４２】
各特徴点ｓのウィルス確率Ｐ（ｓ）が演算されると、サーバ１０は、各特徴点ｓとウィルス確率Ｐ（ｓ）とを対応付けたシグニチャ・テーブルを作成し、データベース１５に格納する（Ｓ４）。シグニチャ・テーブルは、例えば、図３に示すように、各特徴点ｓ１、ｓ２、・・・、ｓｉ、・・・、ｓｎと、各ウィルス確率Ｐ（ｓ１）、Ｐ（ｓ２）、・・・、Ｐ（ｓｉ）、・・・、Ｐ（ｓｎ）とを対応づけるとともに、各特徴点ｓと、当該特徴点ｓが総数ｎbadのウィルス実行ファイルに出現する回数ｂ及び当該特徴点ｓが総数ｎgoodの正常実行ファイルに出現する回数ｇとを対応付けてもいる。なお、図３に示すシグニチャ・テーブルには、「除外フラグ」の欄があるが、これについては後述する。
【００４３】
サーバ１０は、例えば、新規のウィルスが報告される毎に、あるいは、定期的に、非特許文献１に記載されるウィルス検出手法の学習部分に対応した処理として図２に示す手順に従った処理を実行し、前記シグニチャ・テーブル（図３参照）を更新する。
【００４４】
次に、サーバ１０は、インターネット１００からやＬＡＮ１０１を介して各ＰＣ２０1〜２０nから実行ファイルを受信する毎にその実行ファイルに対して、あるいは、定期的に、データベース１５に格納された実行ファイルに対して、非特許文献１に記載されるウィルス検出手法における検出部分に対応した処理を図４に示す手順に従って実行する。
【００４５】
図４において、サーバ１０は、検査対象の実行ファイルを取得すると（Ｓ１１）、ベイズフィルタＢＦの処理（Ｓ１２〜Ｓ１７またはＳ１８）を実行する。このベイズフィルタＢＦの処理（ファイル判定手段に対応）では、検査対象の実行ファイルから特徴点ｓ（strings）が抽出され（Ｓ１２）、抽出された各特徴点ｓに対してウィルス確率Ｐ（ｓ）が決定される（Ｓ１３）。この各特徴点ｓに対するウィルス確率Ｐ（ｓ）の決定は、シグニチャ・テーブル（図３参照）を参照して行われる。その特徴点ｓがシグニチャ・テーブルに存在していれば、その特徴点ｓに対するウィルス確率Ｐ（ｓ）がシグニチャ・テーブルにおいて対応するウィルス確率Ｐ（ｓ）に決められる。その特徴点ｓがシグニチャ・テーブルに存在していなければ、その特徴点ｓに対して、例えば、デフォルト値（例えば、０．４）のウィルス確率Ｐ（ｓ）が決められる。
【００４６】
このようにして、検査対象の実行ファイルから抽出された各特徴点ｓに対するウィルス確率Ｐ（ｓ）が決定されると、前記抽出された全特徴点ｓから、ウィルス確率Ｐ（ｓ）の予め定められたＰbase（例えば、０．４９９の値）との差の大きい順に、所定個数（例えば、１５個）の特徴点ｓが選択される（Ｓ１４）。そして、その選択された１５個の特徴点ｓに対応したウィルス確率Ｐ（ｓ）に基づいて複合確率Ｐvが、次式に従って演算される（Ｓ１５）。
【数２】
2010073020.tif 000004
【００４７】
検査対象の実行ファイルから抽出された特徴点から更に選択された１５個の特徴点それぞれに対応するウィルス確率Ｐ（ｉ）の値が「１」に近い値、即ち、その特徴点がウィルス実行ファイルに含まれている可能性が高い場合、上式に従って演算される複合確率Ｐvは、「１」に近い値となる。一方、上記選択された１５個の特徴点それぞれに対応するウィルス確率Ｐ（ｉ）の値がゼロに近い値、即ち、その特徴点がウィルス実行ファイルに含まれる可能性が低い場合、上式に従って演算される複合確率Ｐvは、「０」に近い値になる。従って、前記式にて演算される複合確率Ｐvは、前記選択された１５個の特徴点を含む検査対象の実行ファイルが、ウィルスファイルである可能性を数値化して表したものであるといい得る。
【００４８】
当該ベイズフィルタＢＦの処理では、更に、前述したように得られた複合確率Ｐvが所定の閾値Ｐthより大きいか否かが判定される（Ｓ１６）。この閾値Ｐthは、複合確率Ｐvから検査対象の実行ファイルがウィルス実行ファイルであるか否かを判定するための基準の値で、例えば、「０．９０」に設定される。そして、前記複合確率Ｐvが前記閾値Ｐthより大きい場合、検査対象の実行ファイルはウィルス実行ファイルとして判定される（Ｓ１７）。このようにウィルス実行ファイルであると判定された実行ファイルについては、例えば、アンチウィルスメーカに詳しい解析の依頼を行うなど、新たなウィルスに対するのと同等の処置がなされる。一方、前記複合確率Ｐvが前記閾値Ｐthより小さい場合、検査対象の実行ファイルは正常実行ファイルであると判定される（Ｓ１８）。
【００４９】
なお、検査対象の実行ファイルがウィルス実行ファイルであると判定された場合、サーバ１０は、その実行ファイルを破棄する。また、その実行ファウルについて、アンチウィルスメーカへの報告がなされる。
【００５０】
サーバ１０は、前述したウィルス検出に係る処理を実行する一方、所定のプログラムに従ってシグニチャ・テーブルに対する制御処理を図５及び図６に示す手順に従って行う。
【００５１】
サーバ１０は、前述した学習部分に対応する処理（図２参照）とは別の頻度またはそれと同じ頻度にて、例えば種々のWindows（登録商標）OSのもとで動作するコンピュータ内にて生成されてウィルスへの感染も無いことが保証され得る実行ファイル等やアンチウィルスで検査済みの正常であると既に判明している実行ファイル（正常実行ファイル）を検査対象として、前述したベイズフィルタＢＦ（図４におけるＳ１２〜Ｓ１７またはＳ１８）の処理を実行している。その過程で、当該正常実行ファイルをウィルスファイルであると誤判定すると、サーバ１０は、図５及び図６に示す手順に従った制御処理を開始する。
【００５２】
サーバ１０は、ベイズフィルタＢＦによってウィルス実行ファイルであると誤判定した正常実行ファイルを取得し（Ｓ２１）、ベイズフィルタＢＦがその誤判定に際して用いた１５個の特徴点ｓ（図４におけるＳ１２〜Ｓ１４参照）を取得する（Ｓ２２）。そして、サーバ１０は、取得した特徴点ｓに対応するウィルス確率Ｐ（ｓ）をシグニチャ・テーブル（図３参照）から取得する（Ｓ２３）。サーバ１０は、更に、その特徴点ｓ（文字列：strings）が、一般にファイルの特徴を良く表し得る何らかの関数名を表すか否かを判定し（Ｓ２４）、その特徴点ｓが関数名を表す場合（Ｓ２４でＹＥＳ）、更に、その特徴点ｓに対応するウィルス確率Ｐ（ｓ）が所定値Ｐ、例えば、０．７以上であるか否かを判定する（Ｓ２５）。前記ウィルス確率Ｐ（ｓ）が所定値Ｐ＝０．７以上であるとの判定がなされると（Ｓ２５でＹＥＳ）、サーバ１０は、ウィルス確率Ｐ（ｓ）が所定値Ｐ＝０．７以上であると判定した特徴点ｓに対応するｇ値（総数ｎgoodの正常実行ファイルに出現した回数）をシグニチャ・テーブル（図３参照）から取得する（Ｓ２６）。そして、そのｇ値が１以上である場合（Ｓ２７でＹＥＳ）、即ち、その特徴点が前記総数ｎgoodの正常実行ファイルに１回でも出現していた場合には、サーバ１０は、シグニチャ・テーブル（図３参照）における当該特徴点に対応した除去フラグをＯＮ（図３において△印）にする（Ｓ２８）。この除去フラグは、以後のベイズフィルタＢＦでの処理において、特徴点に対応するウィルス確率Ｐを用いないことを意味している。従って、サーバ１０は、シグニチャ・テーブルにおいて除去フラグのＯＮになった特徴点に対応するウィルス確率Ｐを用いることなくベイズフィルタＢＦの処理（図４におけるＳ１２〜Ｓ１７またはＳ１８）を行うことになる。
【００５３】
なお、Ｓ２４〜Ｓ２７の処理の過程で、特徴点ｓが関数名を表していない場合（Ｓ２４でＮＯ）、例えば、単なる文字の羅列の場合、または、特徴点ｓのウィルス確率が所定値Ｐより小さい場合（Ｓ２５でＮＯ）、または、特徴点ｓに対応するｇ値が１より小さい場合（Ｓ２７でＮＯ）、即ち、特徴点が総数ｎgoodの正常実行ファイルに１回も出現していなかった場合には、後のステップがスルーされる。即ち、シグニチャ・テーブルにおいてその特徴点に対応する除去フラグはＯＮにされない。
【００５４】
次に、サーバ１０は、前記取得した１５個全ての特徴点ｓについて前述した処理（Ｓ２３〜Ｓ２８）を実行したか否かを判定し（Ｓ２９）、未処理の特徴点がある場合（Ｓ２９でＮＯ）、その未処理の特徴点について前述した処理（Ｓ２３〜Ｓ２９）を実行する。そして、取得した１５個全ての特徴点ｓについての処理が終了すると（Ｓ２９でＹＥＳ）、サーバ１０での処理は、図６に示す処理に移行する。
【００５５】
図６において、サーバ１０は、ウィルス実行ファイルであると誤判定した前記正常実行ファイルについて、ベイズフィルタＢＦでの再処理（図４におけるＳ１２〜Ｓ１７またはＳ１８）、即ち、当該正常実行ファイルがウィルス実行ファイルであるか否かの再判定を行う（Ｓ３０）。この場合、シグニチャ・テーブルにおいて除去フラグ（図３参照）がＯＮになった特徴点ｓに対応したウィルス確率Ｐ（ｓ）は用いられない。このように、ウィルス実行ファイルであると誤判定されるような正常実行ファイルから抽出された特徴点のうち、ウィルス実行ファイルに比較的多く含まれ（ウィルス確率Ｐ（ｓ）が所定値Ｐ＝０．７以上）、かつ、正常実行ファイルにも含まれる（総数ｎgoodの正常実行ファイルに少なくとも１回出現）誤判定の原因となるような特徴点（除去フラグがＯＮになった特徴点）を考慮することなく、当該正常実行ファイルの判定（ベイズフィルタＢＦの処理）を行った結果、当該正常実行ファイルがウィルス実行ファイルではない（正常実行ファイルである）と判定されると（Ｓ３１でＮＯ）、サーバ１０は、その処理を終了する。
【００５６】
以後、サーバ１０は、前記非特許文献１に記載されるウィルス検出手法における検出部分に対応した図４に示すベイズフィルタＢＦの処理を含む通常の処理において、シグニチャ・テーブルにおいて除去フラグがＯＮとなる特徴点に対応したウィルス確率を用いない。従って、ベイズフィルタＢＦの処理は、ウィルス実行ファイルであると誤判定されるような正常実行ファイルから抽出された特徴点を考慮することなく、シグニチャ・テーブルを参照して、検査対象の実行ファイルから抽出された１５個の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象の実行ファイルがウィルス実行ファイルであるか否かを判定するようになる。これにより、本来の正常実行ファイルをウィルス実行ファイルとして誤判定してしまうことを極力防止することができるようになる。
【００５７】
一方、前記再判定（Ｓ３０）の結果、まだ、当該正常実行ファイルがウィルスファイルであると誤判定されてしまう場合（Ｓ３１でＹＥＳ）、サーバ１０は、再判定（Ｓ３０、Ｓ３１）までの処理が、所定回数N、例えば、３回繰り返されたか否かを判定する（Ｓ３２）。そして、その再判定までの処理がまだ３回繰り返されていない場合（Ｓ３２でＮＯ）、図５に示す処理（Ｓ２２〜Ｓ２９）、即ち、前記再判定にて用いられた１５個の特徴点について、関数名であるか否かの判定（Ｓ２４）、ウィルス確率の判定（Ｓ２３、Ｓ２５）、正常実行ファイル出現回数ｇ値の判定（Ｓ２６、Ｓ２７）及びシグニチャ・テーブルにおける除去フラグの制御（Ｓ２８）を行う。そして、前記再判定に用いられた１５個全ての特徴点についての処理が終了すると（Ｓ２９でＹＥＳ）、当該正常実行ファイルに対するベイズフィルタＢＦの更なる再処理、即ち、当該正常実行ファイルがウィルスファイルであるか否かの更なる再判定がなされる（Ｓ３０）。そして、その更なる再判定の結果、当該正常実行ファイルがウィルス実行ファイルではないとの判定がなされると、処理が終了する。一方、その更なる再判定でも、当該正常実行ファイルがウィルス実行ファイルであると誤判定されると、更に、図５に示す処理がなされる。
【００５８】
このように、当該正常実行ファイルがウィルス実行ファイルであると誤判定されている間、再判定の処理（Ｓ３０、Ｓ３１）及び図５に示す処理（ＳＳ２２〜Ｓ２９）がＮ（例えば３）回繰り返され得る。その過程で、シグニチャ・テーブルにおいて各再判定で用いられたウィルス確率が所定値Ｐ以上となり、かつｇ値が１以上となる特徴点に対応する除去フラグがＯＮにされる。また、その繰り返しの過程で、再判定で用いられた１５個の特徴点から除去フラグをＯＮにすべき特徴点を選択するための基準の値となる所定値Ｐ（図５におけるＳ２５参照）は、その繰り返しの毎に、小さい値に変更される。例えば、３回繰り返され得る場合、具体的には、１回目の処理では、前述したようにＰ＝０．７、２回目の処理では、Ｐ＝０．６、３回目の処理ではＰ＝０．５に設定される。
【００５９】
このように、ベイズファイルＢＦによる再判定と、図５に示す処理が繰り返されるので、ウィルス実行ファイルであると誤判定されるような正常実行ファイルから抽出されるより多くの特徴点に対応する除去フラグがシグニチャ・テーブル（図３参照）においてＯＮにされる。その結果、そのようなシグニチャ・テーブルを用いてウィルス実行ファイルであるか否かの判定を行うベイズフィルタＢＦ（図４におけるＳ１２〜Ｓ１７またはＳ１８）は、ウィルス実行ファイルであると誤判定されるような正常ファイルから抽出されるより多くの特徴点のウィルス確率を考慮することなく、検査対象の実行ファイルから抽出される１５個の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象の実行ファイルがウィルス実行ファイルであるか否かを判定することができるようになる。
【００６０】
更に、再判定で用いられた１５個の特徴点から除去フラグをＯＮにすべき特徴点を選択するための基準の値となる所定値Ｐ（図５におけるＳ２５参照）が、その繰り返し毎に小さい値に変更されるので、ベイズフィルタＢＦにおいて、除去フラグがＯＮにされて利用制限される特徴点のウィルス確率が次第に低下し得る。その結果、その利用制限が相対的により多くの正常実行ファイルに出現し得る特徴点に及ぶようになり、正常実行ファイルをウィルス実行ファイルであると誤判定することをより確実に防止することができるようになる。
【００６１】
なお、前記再判定（Ｓ３０、Ｓ３１）及び図５に示す処理（Ｓ２２〜Ｓ２９）を繰り返し得る回数Ｎは、その処理を繰り返す間に前記正常実行ファイルをウィルス実行ファイルであると誤判定しなくなるであろう（Ｓ３１でＮＯと判定される）値（例えば、３）に定められる。
【００６２】
前述した例では、ウィルス実行ファイルであると誤判定されてしまう正常実行ファイルから抽出された特徴点に対して、シグニチャ・テーブルにおいて対応する除去フラグをＯＮにすることにより、当該特徴点に対応するウィルス確率のベイズフィルタＢＦ（図４におけるＳ１２〜Ｓ１７またはＳ１８）での利用を制限するようにしたが、特徴点の利用制限はこれに限定されない。例えば、利用制限されるべき特徴点を別にリスト化してもよい（共通特徴点除去リスト）。その特徴点に対応するウィルス確率がウィルス判定に実質的に用いられないようにするものであれば特に限定されない。
【００６３】
なお、サーバ１０は、前述した処理とは別に、アンチウィルスに従った処理を検査対象の実行ファイルを取得時または所定の周期にて行う。これにより、既知のウィルスについてはアンチウィルスによって検出及び除去が可能になるとともに、前述した処理（図２、図４、図５、図６参照）によって、未知のウィルス、特に、亜種ウィルスの検出及び除去が可能になる。従って、両者相俟って、ウィルスのより完全な検出及び除去が可能となる。また、図４に示す手順に従って、ウィルスファイル（亜種ウィルスファイル）であると判定された実行ファイル及び非ウィルスであると判定された実行ファイルそれぞれから抽出される特徴点に基づいて、シグニチャ・テーブル（図３参照）を更新することもできる。
【００６４】
また、前述した例では、シグニチャ・テーブルに関する処理（図２、図５及び図６参照）は、サーバ１０にて実行されたが、他のＰＣにて実行するようにしてもよい。この場合、シグニチャ・テーブルの作成、更新、除去フラグの制御が他のＰＣで行われ、その結果が、データベース１５内のシグニチャ・テーブルに反映される。
【００６５】
更に、前述した例では、サーバ１０がウィルス検出を行うものであったが、他のＰＣがウィルス検出を行うものであってもよい。この場合、前述した処理が当該他のＰＣにて行われる。
【００６６】
また、更に、前述した例では、非特許文献１に記載されるベイズ理論に従ったウィルス検出方法を前提（図２及び図４の処理）としたが、本発明は、複数の正常ファイル及び複数のウィルスファイルから抽出された特徴点のそれぞれと、特徴点が前記複数の正常ファイルに出現する回数及び前記複数のウィルスファイルに出現する回数を用いて当該特徴点がウィルスファイルに含まれる可能性を所定のアルゴリズムに従って数値化して得られるウィルス確率とが対応づけられたシグニチャ・テーブルを参照して、検査対象ファイルから抽出される複数の特徴点のそれぞれに対するウィルス確率を決定し、各特徴点に対して決定されたウィルス確率に基づいて前記検査対象ファイルがウィルスファイルであるか否かを判定するウィルス検出方法を前提にするものであれば、特に限定されない。
【産業上の利用可能性】
【００６７】
本発明に係るコンピュータウィルス検出装置は、既知のウィルスとの類似性に基づいてウィルスであるか否かを判定する際に、本来の正常ファイルをウィルスとして誤判定してしまうことを極力防止することができるという効果を有し、検査対象ファイルがコンピュータウィルスであるか否かを判定することによってコンピュータウィルスを検出するコンピュータウィルス検査装置として有用である。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態に係るコンピュータウィルス検出装置が適用されるコンピュータ通信システムを示すブロック図である。
【図２】コンピュータウィルス検出装置でのシグニチャ・テーブルを作成するための処理（学習処理１）の手順を示すフローチャートである。
【図３】シグニチャ・テーブルの一例を示す図である。
【図４】コンピュータウィルス検出装置でのウィルス検出処理の手順を示すフローチャートである。
【図５】コンピュータウィルス検出装置でのシグニチャ・テーブル制御に係る処理（学習処理２）の手順（その１）を示すフローチャートである。
【図６】コンピュータウィルス検出装置でのシグニチャ・テーブル制御に係る処理（学習処理２）の手順（その２）を示すフローチャートである
【符号の説明】
【００６９】
１０  サーバ
１５  データベース（格納手段）
２０1、２０2、・・・、２０n  コンピュータ
３０1、３０2、・・・、３０m  コンピュータ
１００  インターネット
１０１  ＬＡＮ
【図１】
2010073020.tif 000005
【図２】
2010073020.tif 000006
【図３】
2010073020.tif 000007
【図４】
2010073020.tif 000008
【図５】
2010073020.tif 000009
【図６】
2010073020.tif 000010