(57)【特許請求の範囲】
【請求項１】
マルウェアを検出するために、コンピュータプログラムのソースコードを含むコンピュータ用ファイルを走査するシステムにおいて、
前記ソースコードの構成部分を構造部分のタイプ別にグループ化して分離する手段と、
前記グループ毎に分離された各々の前記グループにおける文字の発生頻度分布を得るために、各々の前記グループに含まれる文字について、各文字毎に発生する回数をカウントする処理を行う手段と、
各々の前記グループにおける文字の発生頻度分布と、データベースに記憶されている文字の発生頻度分布の範囲とを比較する手段と、
前記の比較する手段による１つまたは複数の比較結果に応じて、前記コンピュータ用ファイルに対し、疑わしいとみなすフラグまたは疑わしくないとみなすフラグのいずれかをたてる手段とを具備することを特徴する、コンピュータ用ファイルを走査するシステム。
【請求項２】
前記の比較する手段が、前記グループの中の１つまたは複数の部分における文字の発生頻度分布が、データベースに記憶されている文字の発生頻度分布の範囲から外れていることを検出した場合、前記フラグをたてる手段は、当該ファイルに対し、疑わしいとみなすフラグをたてるように動作する請求項１に記載のシステム。
【請求項３】
前記フラグをたてる手段は、各々の前記グループにおける文字の発生頻度分布とデータベースに記憶されている文字の発生頻度分布とを比較し、各グループ毎の比較結果に応じて定められた値をスコアとして累算し、全グループ分を累算したスコアに応じて、当該ファイルに対し、疑わしいとみなすフラグをたてるように動作する請求項１に記載のシステム。
【請求項４】
前記比較する手段による処理において、前記データベースに記憶されている文字の発生頻度分布の範囲の大きさは、前記プログラム又は前記グループに含まれる文字数が減少するにつれて広くなるように設定されている請求項１から３のいずれか一項に記載のシステム。
【請求項５】
前記システムが、さらに、
誤って疑わしいとされるかもしれないファイルを除外するために使用されるルールを保持する手段と、
保持された前記ルールを走査中のファイルに適応する手段とを具備し、
前記適応する手段によって、走査中のファイルが除外すべきファイルに該当すると特定された場合には、前記フラグをたてる手段は、当該ファイルに対し、疑わしいとみなすフラグをたてないこととする請求項１から４のいずれか一項に記載のシステム。
【請求項６】
前記グループは、コメントのグループ、変数名のグループ、サブルーチン名のグループ、および文字列のグループの少なくとも１つを含む請求項１から５のいずれか一項に記載のシステム。
【請求項７】
マルウェアを検出するために、コンピュータプログラムのソースコードを含むコンピュータ用ファイルを、自動的に走査することをコンピュータで実施する方法において、
前記ソースコードの構成部分を構造部分のタイプ別にグループ化して分離するステップと、
前記グループ毎に分離された各々の前記グループにおける文字の発生頻度分布を得るために、各々の前記グループに含まれる文字について、各文字毎に発生する回数をカウントする処理を行うステップと、
各々の前記グループにおける文字の発生頻度分布と、データベースに記憶されている文字の発生頻度分布の範囲とを比較するステップと、
前記の比較するステップによる１つまたは複数の比較した結果に応じて、前記コンピュータ用ファイルに対し、疑わしいとみなすフラグまたは疑わしくないとみなすフラグのいずれかをたてるステップとを含むことを特徴とする、コンピュータ用ファイルの自動走査方法。
【請求項８】
前記の比較するステップが、前記グループの中の１つまたは複数の部分における文字の発生頻度分布が、データベースに記憶されている文字の発生頻度分布の範囲から外れていることを検出した場合、前記フラグをたてるステップは、当該ファイルに対し、疑わしいとみなすフラグをたてるようになっている請求項７に記載の方法。
【請求項９】
前記フラグをたてるステップは、各々の前記グループにおける文字の発生頻度分布とデータベースに記憶されている文字の発生頻度分布とを比較し、各グループ毎の比較結果に応じて定められた値をスコアとして累算し、全グループ分を累算したスコアに応じて、当該ファイルに対し、疑わしいとみなすフラグをたてるようになっている請求項７に記載の方法。
【請求項１０】
前記の比較するステップの処理において、前記データベースに記憶されている文字の発生頻度分布の範囲の大きさは、前記プログラム又は前記グループに含まれる文字数が減少するにつれて広くなるように設定されている請求項７から９のいずれか一項に記載の方法。
【請求項１１】
前記方法が、さらに、
誤って疑わしいとされるかもしれないファイルを除外するために使用されるルールを保持するステップと、
保持された前記ルールを走査中のファイルに適応するステップと、を含み、
前記適応するステップによって、走査中のファイルが除外すべきファイルに該当すると特定された場合には、前記フラグをたてるステップは、当該ファイルに対し、疑わしいとみなすフラグをたてないこととする請求項７から１０のいずれか一項に記載の方法。
【請求項１２】
前記グループは、コメントのグループ、変数名のグループ、サブルーチン名のグループ、および文字列のグループの少なくとも１つを含む請求項７から１１のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マクロおよび実行可能なスクリプトにおいて、マルウェア（悪意ある破壊工作用ソフトウェア）を発見的に検出する方法およびシステムに関するもので、コード化された文字列が存在するか否かをチェックすることにより実施されるものである。
【背景技術】
【０００２】
ウィルスおよび他の形のマルウェアは、コンピュータのユーザおよびインターネットのユーザにとって、絶えず増え続ける問題を引き起こしている。初期のウィルスは、既知のコンピュータでよく実行されているバイナリーの実行ファイルとして、広がる傾向があった。ウィルスの感染を測定する従来の方法は、ウィルス対策用ファイルを走査することである。このウィルス対策用ファイルの走査では、既知のマルウェアの特徴となるシグネチャ（signature）として特定されるようなバイトパターンを捜すために、連続するバイトとして処理されるファイル内が走査される。このウィルス対策用ファイルは、ローカル用もしくはネットワーク用ディスク装置に格納されたファイルにて実行されるか、または、ネットワークで送信中のファイルにて実行されることが可能である。そして、ウィルス対策用ファイルが、ネットワーク上の特殊なノードを通過するか、または電子メイル用ゲートウェイのようなネットワークのゲートウェイを通過する際に、上記走査が実行される。また一方で、ウェブへのアクセス、電子メイル、および、その他の目的によるインターネットの使用は拡大しつつあり、また、ユーザが使用する標準的なマシンに見られるソフトウェアは、益々高機能になってきているので、ウィルス作成者にとって、基本的なソースコードの形で分配できるようなウィルスを作成するチャンスが生じるような状況になってきている。ここで説明しているスクリプトウィルスまたはマクロウィルスと呼ばれるウィルスは、プログラムの実行環境として機能するようなソフトウェアを保持するユーザのコンピュータを頼りにしている。換言すれば、上記のウィルスは、例えば、電子メイルに添付される書類として、上記の目標としているコンピュータに到着する。
【０００３】
非専門のユーザがより使いやすくなるようにオペレーションシステムに付加された特性は、ウィルス作成者にとって悪用できるチャンスを提供するようになっている。例えば、マイクロソフト社のウィンドウズ（登録商標）は、ファイルに便利性をもたらしている。この便利性によれば、一定のファイル拡張子（すなわち、ファイル名において、最後の“．”の後に続く文字）を有するファイルは、特定のアプリケーションプログラムと関係付けられている。このおかげで、ウィンドウズ（登録商標）マシンのグラフィカルユーザインターフェイス（GUI）で、ユーザがファイルを開こうとする動作によって、ウィンドウズ（登録商標）マシンが、関連するプログラムを活性化して、該当するファイルをロードすることができるようになる。このことが、最近のスクリプトウィルスの根本的な原因を提供している。このスクリプトウィルスは、ソースコードを含むファイルを、ユーザに配布される電子メイルに添付することによって機能する。そして、送付されたファイルには、受信者側のコンピュータのスクリプト用のホストプログラムを活性化するために必要な拡張子が付与されている。受信者が添付ファイルを開封したときに、ホストが活性化され、ファイルが実行される。そこで、多数のウィルスが急激に発生し、このウィルスは、ホストからのビジュアルベーシックのスクリプトかの如くして、ウィンドウズ（登録商標）マシン上で広がっていく。
【０００４】
同様に、ワードプロセッサや表計算のような、エンドユーザ用のアプリケーションプログラムの多くは、マクロの機能を組み込んでおり、繰返しの仕事または難しい仕事に対して、ユーザが自動的に対処することができるようになっている。上記アプリケーションプログラムに含まれるマクロの言語には、さまざまな程度の複雑性を有している。マクロの言語のいくつかは、マイクロソフトオフィス製品に見られるような、並行処理型のスクリプト言語に非常に類似している。細かい相違点は、スクリプトが、単にソースコードの形でディスクや他の場所に格納される傾向があるのに対して、マクロからなるファイルは、テキスト形式のソースコード以外に、または当該ソースコードの代わりにバイナリーのデータを含むことが可能である。例えば、上記のバイナリーのデータは、マクロのソースコードのトークン化版（tokenized）、または実際に実行可能な機械コードを含むことも可能である。
【０００５】
ビジュアルベーシックのスクリプト言語、およびマイクロソフトオフィスのマクロの言語に付け加えて、いくつかのコンピュータ言語があり、これらの言語では、ソースコードが実行できるようなファイルの形で使用されている。これは、言語をコンパイルすることなしに、解釈することができることのおかげであり、例えば、パール（Perl）の言語が該当する。このような言語媒体を利用するウィルス作成者は、たびたび創造的な努力を試みて、言語から隠れているものを捜し出す。上記ウィルス作成者は、理解することが難しいな言語の記述コードを処理することが可能である。また、上記ウィルス作成者は、コードの各世代においてコードが微妙に変化していくのに対応するように、修正したコードを自分で作成することが可能である。このようなコードの修正は、ウィルス対策を行っているベンダー側に対して、いろいろな面で無限に変化するウィルスを検出するためのシグネチャ（Signature）を作り出すことを困難にするために行われている。また、上記ウィルス作成者は、コメントや文字列の中にウィルスのコードを隠すこともできる。そして、これらのウィルスのコードは、読み込まれ、復号化されて活動を開始することになる。
【０００６】
シグネチャを基本にする走査は、スクリプト、またはソースコードのみのマクロのウィルスに対しては効果的でない。なぜなら、シグネチャを基本にする走査の内容は、機械言語の命令に対して、１対１に適応していないからである。この理由として、同一内容のプログラムによる動作がソースコードで表現され得るような、多くの異なった方法が存在すること、および、ソースコードが、いろいろな方法で変形されることが可能であることが挙げられる。上記ソースコードは、例えば、“余白（white space）”、すなわち、スペース（space）、タブおよび改行文字の使用によって、または、ソースコードによる効果を変化させることなく、当該ソースコードの内容を変化させることができるような変数名の置換によって変形され得る。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、いくつかのプログラムにおいて、スクリプトレベルおよびマクロレベルのウィルスに関して、上記プログラムのいろいろな部分で、文字の数をカウントして文字の発生頻度を解析することにより、ウィルスを発見的に検出することが可能になるという事実を認識することに基づいてなされたものである。
換言すれば、本発明の目的は、スクリプトおよびマクロからなるウィルスのソースコードの自動解析に基づいて、マルウェアを発見的に検出するための方法およびシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明に従えば、マルウェアを検出するために、所定のコンピュータ言語からなるコンピュータプログラムのソースコードを含むコンピュータ用ファイルを走査するシステムを提供する。
このシステムは、
上記コンピュータプログラムの各種の構造部分に対応させて、上記ソースコードを構成部分のグループ毎に分離する手段と、
上記グループ毎に分離された各々の上記構成部分における文字の発生頻度分布を得るために、各々の上記構成部分にて文字集合体の文字の発生する回数をカウントする処理を行う手段と、
各々の上記構成部分における文字の発生頻度分布と、予測される文字の発生頻度分布の範囲とを比較する手段と、
上記の比較する手段による１つまたは複数の比較結果に応じて、上記コンピュータ用ファイルに対し、疑わしいとみなすフラグまたは疑わしくないとみなすフラグのいずれかをたてる手段とを具備する。
【０００９】
また、本発明は、マルウェアを検出するために、所定のコンピュータ言語からなるプログラムのソースコードを含むコンピュータファイルを走査する方法を提供する。
この方法は、
上記コンピュータプログラムの各種の構造部分に対応させて、上記ソースコードを構成部分のグループ毎に分離するステップと、
上記グループ毎に分離された各々の上記構成部分における文字の発生頻度分布を得るために、各々の上記構成部分にて文字集合体の文字の発生する回数をカウントする処理を行うステップと、
各々の上記構成部分における文字の発生頻度分布と、予測される文字の発生頻度分布の範囲とを比較するステップと、
上記の比較するステップによる１つまたは複数の比較した結果に応じて、上記コンピュータ用ファイルに対し、疑わしいとみなすフラグまたは疑わしくないとみなすフラグのいずれかをたてるステップとを含む。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照しながら、本発明の範囲が制限されることのない実施例によって、本発明に関する詳細の説明を行うこととする。
【００１１】
図１に示す本発明の実施例は、ウィルス対策の走査システムに使用するためのものである。上記走査システムにおいて、走査のために、入力１に供給される一連のファイルは、全体のシステム１０により走査される対象物であって、走査の結果に応じてウィルスを含んでいる可能性があることをフラグで示されることになる。走査対象となるファイルの素性は、本発明にとって重要ではない。走査対象となるファイルは、連続して、ローカル用またはネットワーク用のディスク装置から読み取ることが可能なファイルである。ここで、上記ファイルは、通常は一般的な使用目的で、ディスク装置に格納することが可能なファイルであるか、または、電子メイルに添付するためにシステムで作成されたファイルである。当該ファイルは、図１に示すようなシステムの一部を形成する電子メイルの走査システムによって処理される。入力１に供給されるファイルは、事前の自動フィルタリングの対象になることが前提とされている。この事前の自動フィルタリングにおいては、スクリプトレベルのファイルまたはスクリプトが含まれているマクロレベルのファイルにとって障害となる全てのファイルが、除去されるものと想定されている。
【００１２】
ソフトウェアのオートマトン（automaton）により実施されるシステム１０は、以下に説明するアルゴリズムに従って、動作する。
【００１３】
アルゴリズム
１．１つのスクリプトレベルのファイルが、走査処理のために入力１に送られてくる。
２．収集機能部２は、スクリプトで規定される該当プログラムを解析し、繰り返し再現されるような部分は除外して、グループ毎に解析できるように、プログラムの各々の部分をグループ毎に一緒にして収集する。典型的なグループとしては、全てコメントからなるグループ、変数名のグループ、サブルーチン名のグループ、文字列のグループが該当するが、本発明は、ここに挙げた特定のグループに制限されるものではない。
３．上記のように収集されたグループの内容が、記録機能部３に渡される。そして、この記録機能部３は、各々のグループに関して、疑わしいかまたは疑わしくないかを記録することになる。
４．上記記録機能部３は、ステップ４で処理するために第１のグループを選択する。
５．発生頻度解析機能部５は、選択されたグループの内容を取り上げ、各々の文字の発生する数を数え、発生頻度分布を示すヒストグラムのデータの集合体を完成させる。
６．照合機能部６は、上記の分布データを発生頻度解析機能部５から受け取り、言語データベース７に記憶されている既知の言語に関しての予測分布と、受け取った分布データとが、厳密に一致しているか否かを判定する。上記分布データが、既知の言語に関して予測される分布と一致していない場合、このグループは、取りあえず疑わしいものとしてフラグが立てられる。
７．もし、処理すべき残りのグループがある場合は、ステップ４の処理に戻る。
８．もし、疑わしいものとしてマークされたグループが無い場合は、走査中のファイルに対し、マルウェアとして取り扱わないとするフラグを立て、出力８で処理を終了する。
９．疑わしいとされたスクリプトは、除外リスト処理機能部９（図１の９には、除外リストと記載）によって、無視できるか否かがチェックされる。これは、例えば、既に疑わしいものとしてフラグが立てられたスクリプトは無視できるからである。もし、当該スクリプトを無視することができる場合は、処理を停止して、出力８で走査中のファイルに対し、マルウェアとして取り扱わないとするフラグをたてることになる。
１０．もし、処理がここ（ステップ１１）まで達した場合は、出力１１で“マルウェアとして処理”のフラグを活性化させ、当該スクリプトに対し、マルウェアである旨のフラグを立てることになる。
【００１４】
収集機能
収集機能部２で実施される１つの方法は、スクリプトを構文分析するプロセスである。このプロセスは、スクリプトを各々の構成部分に分解する。システム１０が関係する構成部分とは、コメント、文字列およびその他のものであり、記録機能部３によって将来解析できるようにするために、グループ毎に格納される。収集機能部２は、種々のタイプのスクリプトに対し、それぞれ異なる構文分析を行うプロセスが必要になるであろう。例えば、パール（PERL）におけるコメントは、ハッシュ文字“＃”によって導入される。また一方で、マイクロソフトのＶＢＡ（アプリケーションソフトのためのビジュアルベーシック）のコメントは、単語“Rem”または一重引用符のいずれかによって導入される。
【００１５】
実施例
ＶＢＡスクリプトの１つの実施例は、下記のとおりである。
サブ  テスト（）（Sub Test ()）。
コメント  これは、テスト用サブルーチンです（Rem This is a test subroutine）。
コメント  それは、多くのことは実施しない（Rem It dose not do much）。
メッセージボックス関数“ハローワールド”（MsgBox "Hello World"）。
終了  サブ（End Sub）。
サブ  テスト2（）（Sub Test2 ()）。
コメント  この別のルーチン（Rem This another routine）。
コメント  それは、多くのことは実施しない（Rem It dose not do much）。
整数の変数（var）の格納領域を確保（Dim var As Integer）。
文字列の別変数（AnotherVar）の格納領域を確保（Dim AnotherVar as String）。
変数＝７（Var = 7）。
別変数＝“ハロー”（AnotherVar = "Hello"）。
変数＝変数＋３（Var = Var + 3）。
終了  サブ（End Sub）
【００１６】
上記の記述は、以下に続く各々のグループを発生させることになる。
【００１７】
コメントのグループ
これは、テスト用サブルーチンです（This is a test subroutine）。
それは、多くのことは実施しない（Rem It dose not do much）。
この別のルーチン（Rem This another routine）。
【００１８】
ルーチン名のグループ
テスト（Test）
テスト２（Test2）
【００１９】
文字列のグループ
ハローワールド（Hello World）
ハロー（Hello）
【００２０】
変数名のグループ
変数（Var）
別の変数（AnotherVar）
【００２１】
記録機能部
記録機能部３は、上記に挙げた各グループを処理すると共に、処理内容としては発生頻度解析および照合の処理機能が含まれる。
【００２２】
発生頻度解析機能部
発生頻度解析機能部５は、大文字を等価な小文字に交換する。そして、各グループにある、各々の文字コードの事例数をカウントし、パーセンテージを計算する。解析内容は、単一のバイトの文字集合体に限定されることない。換言すれば、発生頻度解析機能部５は、複数のバイトからなる文字集合体およびユニコードを処理するように構成されるべきである。
【００２３】
実施例
もし、文字列のグループが下記の場合、
Hello World
Hello
【００２４】
発生頻度の分布は、以下のようになるであろう。
a  0    f  0    k  0    p  0    u  0    z      0
b  0    g  0    l  5    q  0    v  0    space  1
c  0    h  2    m  0    r  1    w  1
d  1    i  0    n  0    s  0    x  0
e  2    j  0    o  3    t  0    y  0
【００２５】
また、発生頻度の分布のパーセンテージは、以下のようになるであろう。
a  0.00    f  0.00    k  0.00    p  0.00    u  0.00    z     0.00
b  0.00    g  0.00    l 31.25    q  0.00    v  0.00    space 6.25
c  0.00    h 12.50    m  0.00    r  6.25    w  6.25
d  6.25    i  0.00    n  0.00    s  0.00    x  0.00
e 12.50    j  0.00    o 18.75    t  0.00    y  0.00
【００２６】
照合機能部
照合機能部６は、発生頻度解析機能部５で計算されたグループの発生頻度分布と既知の集合体の発生頻度分布とを比較する。通常は、これらの集合体は、英語、ドイツ語または中国語等の言語で書かれたものとなる。特別なグループに当った場合、照合機能部６は、句読点の全て、またはいくつかをカウントすることもあればカウントしないこともある。例えば、サブルーチンと変数名は、一般的には句読点を含まれていないので、これらのグループでは、句読点は無視されることになる。しかしながら、文字列およびコメントは、一般的には句読点が含まれているので、また特別に空白を含んでいることもあるが、これらのグループでは、句読点が無視されることはない。
【００２７】
各々の文字の発生頻度のパーセンテージと当該文字に関して予測される発生頻度のパーセンテージの範囲とを比較することにより、集合体毎に照合がなされる。もし、前者の発生頻度のパーセンテージが、後者の予測される発生頻度のパーセンテージの範囲から外れる場合は、異常として記録され、異常のカウント数が増えていく。一旦、全ての文字が処理された時点で、異常のカウント数がチェックされる。そして、異常のカウント数が所定の数値より大きい場合、当該グループは、当該集合体に一致していないとしてフラグが立てられる。そして、照合機能部は、次の集合体に関する照合の処理を継続して遂行していく。もし、異常のカウント数がある値より大きくならない場合、当該グループは当該集合体に一致している旨のフラグが立てられる。そして、照合機能部の処理は、当該グループは疑わしくないことを記録して終了する。
【００２８】
もし、走査中のグループの中で、当該グループに一致する集合体が存在しない場合、当該グループは、疑わしいとして記録される。
【００２９】
各々の文字に関して許容される発生頻度のパーセンテージの範囲は、その集合体（例えば、英語）、実際の文字（例えば、“Ｅ”）、およびテスト対象のグループ内の合計文字数の関数になるであろう。したがって、合計文字数で考えれば、テスト対象の比較的大きいグループは、比較的小さなグループよりも、良好な相関関係が得られるであろう。非常に小さなグループでは、良好な相関関係を得ることは期待できない。そして、カットオフがなされるポイントとして、当該集合体の関数が０％〜１００％の間で、上記パーセンテージの範囲の限界を規定することになるであろう。
【００３０】
許容される異常のカウント数は、テスト対象のグループの集合体と合計文字数との関数になるであろう。
【００３１】
例えば、英語の例では、文字“Ｅ”は、おおよそ１０％の頻度で発生することが予測されている。10,000文字のサイズのグループにおいて、上記関数は、９．２％〜１０．８％を予測されるパーセンテージの範囲の限界として規定することになるであろう。1,000文字のサイズのグループにおいて、上記関数は、７％〜１２．５％を予測されるパーセンテージの範囲の限界として規定することになるであろう。
【００３２】
除外リスト
除外リスト処理機能部９は、所定のルールを実行する。このルールは、実害はないが、除外しないと、誤って疑わしいとしてマークされるかもしれないプログラムを、偽陽性として除外するために使用される。除外リストのルールは、いろいろな方法で実行され得る。ここで、上記ルールは、ファイルに対するＭＤ５チェックサムと既存のチェックサムのリストとの比較を含んでいるが、これに限定されることはない。あるいは、上記ルールは、正規の表現によりファイルをサーチする方法を含むことも可能である。もし、走査中のファイルと除外リストとの一致が生じた場合は、出力８で、当該ファイルにマルウェアが存在しないものとして取り扱う旨のフラグを立てる処理以外は、さらなる処理を実行しないようにする。
【００３３】
ウィルスとして停止されたプログラムは、ウィルスであることが判明しない場合は、解析することが可能である。そして、同じような擬陽性のプログラムが、今後発生しないようにするために、当該プログラムは、除外リストの名簿へのエントリが生成され、除外リスト処理機能部９のルールに付加される。
【００３４】
さらに、単独のウィルス検出システムとして上記システム１０を使用した場合と同様に、より大きなシステムの一部として、他の手法を具備しているシステムと組み合わせて上記システム１０を使用することが可能である。例えば、システム１０により、ウィルスとしてフラグを立てられたプログラムは、ある特定のスコアを付与されるか、または、正確な状況に応じて決定される種々のスコアを付加されるであろう。もし可能であれば、当該プログラムは、他の使用システムから取り込まれたスコアに関連付けられて、カウントされることになるであろう。種々のグループは、それぞれ異なった重みを付与されることが可能になる（例えば、文字列のグループにおける異常は、変数のグループにおける異常よりも疑わしい可能性がある）。上記スコアは、また他の発見的な手法を使用することによっても付与することが可能である。そして、合計スコアが、ある限界を超えた場合のみ、当該プログラムは、ウィルスとしてフラグが立てられることになる。
【００３５】
特別に長い文字列、または多数からなる文字列は、これら自身で、分離されたグループとみなすことが可能である。
【００３６】
小さなサンプルの集合体は、無視することもできる。例えば、１０個の変数だけしか存在しない場合、これらの変数は、解析するに値しないとすることができる。
【図面の簡単な説明】
【００３７】
【図１】本発明に係るシステムの１つの実施例の構成を示すもので、上記実施例の処理内容を示すブロック図とフローチャートとを組み合わせた図である。
【図１】
0004711949.tif 000002