(57)【特許請求の範囲】
【請求項１】
ハードウェアプロセッサおよびメモリを備えたコンピュータシステムであって、前記ハードウェアプロセッサは、訓練された分類器カスケードを使用して、対象オブジェクトがコンピュータセキュリティ脅威を引き起こすか否かを判定するように構成され、前記分類器カスケードがレコードの訓練コーパス上で訓練され、前記訓練コーパスが少なくとも第１のクラスのレコードと第２のクラスのレコードとに事前分類され、前記カスケードを訓練することは、
前記訓練コーパスを所定の第１の閾値に従って第１の複数のレコードグループに分けて、前記第１の複数のレコードグループのうちの第１のグループの第１の割合のレコードが前記第１のクラスに属するように、前記カスケードのうちの第１の分類器を訓練することであって、前記第１の割合は、前記第１の閾値を超えるように選ばれる、ことと、
前記第１のグループを含む前記訓練コーパスを所定の第２の閾値に従って第２の複数のレコードグループに分けて、前記第２の複数のレコードグループのうちの第２のグループの第２の割合のレコードが前記第２のクラスに属するように、前記カスケードのうちの第２の分類器を訓練することであって、前記第２の割合は、前記第２の閾値を超えるように選ばれる、ことと、
前記第１および第２の分類器を訓練したことに応答して、前記訓練コーパスからレコードセットを取り除き、縮小化訓練コーパスを生み出すことであって、前記レコードセットは前記第１および第２のグループから選択される、ことと、
前記レコードセットを取り除いたことに応答して、前記縮小化訓練コーパスを所定の第３の閾値に従って第３の複数のレコードグループに分けて、前記第３の複数のレコードグループのうちの第３のグループの第３の割合のレコードが前記第１のクラスに属するように、前記カスケードのうちの第３の分類器を訓練することであって、前記第３の割合は、前記第３の閾値を超えるように選ばれる、ことと、
前記レコードセットを取り除いたことに応答して、前記第３のグループを含む前記縮小化訓練コーパスを所定の第４の閾値に従って第４の複数のレコードグループに分けて、前記第４の複数のレコードグループのうちの第４のグループの第４の割合のレコードが前記第２のクラスに属するように、前記カスケードのうちの第４の分類器を訓練することであって、前記第４の割合は、前記第４の閾値を超えるように選ばれる、ことと
を含む、コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムであって、訓練された前記分類器カスケードを使用することは、
前記対象オブジェクトのクラス割り当てを決定するために、前記第１および第２の分類器を適用することと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属さないとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属さないときに、前記対象オブジェクトの前記クラス割り当てを決定するために、前記第３の分類器を適用することと
を含む、コンピュータシステム。
【請求項３】
請求項２に記載のコンピュータシステムであって、訓練された前記分類器カスケードを使用することは、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属するとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属さないときに、前記対象オブジェクトを前記第１のクラスに割り当てることと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属さないとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属するときに、前記対象オブジェクトを前記第２のクラスに割り当てることと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属するとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属するときに、前記対象オブジェクトに、悪意のないとしてラベル付けすることと
をさらに含む、コンピュータシステム。
【請求項４】
請求項１に記載のコンピュータシステムであって、前記第１の割合のレコードは、前記第１のグループのすべてのレコードが前記第１のクラスに属するように選ばれる、コンピュータシステム。
【請求項５】
請求項１に記載のコンピュータシステムであって、前記レコードセットは、前記第１および第２のグループのすべてのレコードを含む、コンピュータシステム。
【請求項６】
請求項１に記載のコンピュータシステムであって、前記第１のクラスは、悪意のあるオブジェクトのみから成る、コンピュータシステム。
【請求項７】
請求項１に記載のコンピュータシステムであって、前記第１のクラスは、害のないオブジェクトのみから成る、コンピュータシステム。
【請求項８】
請求項１に記載のコンピュータシステムであって、前記第１の分類器は、パーセプトロン、サポートベクターマシン（ＳＶＭ）、クラスタ化分類器および決定木から成る分類器グループから選択される、コンピュータシステム。
【請求項９】
請求項１に記載のコンピュータシステムであって、前記対象オブジェクトは、実行可能オブジェクト、電子通信およびＷｅｂページから成るオブジェクトグループから選択される、コンピュータシステム。
【請求項１０】
ハードウェアプロセッサおよびメモリを備えたコンピュータシステムであって、前記ハードウェアプロセッサは、コンピュータセキュリティ脅威の検出において使用するための分類器カスケードを訓練するように構成され、前記カスケードはレコードの訓練コーパス上で訓練され、前記訓練コーパスは、少なくとも第１のクラスのレコードと第２のクラスのレコードとに事前分類され、前記カスケードを訓練することは、
前記訓練コーパスを所定の第１の閾値に従って第１の複数のレコードグループに分けて、前記第１の複数のレコードグループのうちの第１のグループの第１の割合のレコードが前記第１のクラスに属するように、前記カスケードのうちの第１の分類器を訓練することであって、前記第１の割合は、前記第１の閾値を超えるように選ばれる、ことと、
前記第１のグループを含む前記訓練コーパスを所定の第２の閾値に従って第２の複数のレコードグループに分けて、前記第２の複数のレコードグループのうちの第２のグループの第２の割合のレコードが前記第２のクラスに属するように、前記カスケードのうちの第２の分類器を訓練することであって、前記第２の割合は、前記第２の閾値を超えるように選ばれる、ことと、
前記第１および第２の分類器を訓練したことに応答して、前記訓練コーパスからレコードセットを取り除き、縮小化訓練コーパスを生み出すことであって、前記レコードセットは前記第１および第２のグループから選択される、ことと、
前記レコードセットを取り除いたことに応答して、前記縮小化訓練コーパスを所定の第３の閾値に従って第３の複数のレコードグループに分けて、前記第３の複数のレコードグループのうちの第３のグループの第３の割合のレコードが前記第１のクラスに属するように、前記カスケードのうちの第３の分類器を訓練することであって、前記第３の割合は、前記第３の閾値を超えるように選ばれる、ことと、
前記レコードセットを取り除いたことに応答して、前記第３のグループを含む前記縮小化訓練コーパスを所定の第４の閾値に従って第４の複数のレコードグループに分けて、前記第４の複数のレコードグループのうちの第４のグループの第４の割合のレコードが前記第２のクラスに属するように、前記カスケードのうちの第４の分類器を訓練することであって、前記第４の割合は、前記第４の閾値を超えるように選ばれる、ことと
を含む、コンピュータシステム。
【請求項１１】
請求項１０に記載のコンピュータシステムであって、コンピュータセキュリティ脅威を検出することは、
悪意と評価された対象オブジェクトのクラス割り当てを決定するために、前記第１および第２の分類器を適用することと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属さないとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属さないときに、前記対象オブジェクトの前記クラス割り当てを決定するために、前記第３の分類器を適用することと
を含む、コンピュータシステム。
【請求項１２】
請求項１１に記載のコンピュータシステムであって、コンピュータセキュリティ脅威を検出することは、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属するとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属さないときに、前記対象オブジェクトを前記第１のクラスに割り当てることと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属さないとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属するときに、前記対象オブジェクトを前記第２のクラスに割り当てることと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属するとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属するときに、前記対象オブジェクトに、悪意のないとしてラベル付けすることと
をさらに含む、コンピュータシステム。
【請求項１３】
請求項１０に記載のコンピュータシステムであって、前記第１の割合のレコードは、前記第１のグループのすべてのレコードが前記第１のクラスに属するように選ばれる、コンピュータシステム。
【請求項１４】
請求項１０に記載のコンピュータシステムであって、前記レコードセットは、前記第１および第２のグループのすべてのレコードを含む、コンピュータシステム。
【請求項１５】
請求項１０に記載のコンピュータシステムであって、前記第１のクラスは、悪意のあるオブジェクトのみから成る、コンピュータシステム。
【請求項１６】
請求項１０に記載のコンピュータシステムであって、前記第１のクラスは、害のないオブジェクトのみから成る、コンピュータシステム。
【請求項１７】
請求項１０に記載のコンピュータシステムであって、前記第１の分類器は、パーセプトロン、サポートベクターマシン（ＳＶＭ）、クラスタ化分類器および決定木から成る分類器グループから選択される、コンピュータシステム。
【請求項１８】
請求項１０に記載のコンピュータシステムであって、前記コンピュータセキュリティ脅威は、悪意のあるソフトウェア、迷惑通信およびオンライン詐欺から成る脅威グループから選択される、コンピュータシステム。
【請求項１９】
コンピュータシステムの少なくとも１つのハードウェアプロセッサによって実行されたときに、前記コンピュータシステムに、訓練された分類器カスケードを使用して、対象オブジェクトがコンピュータセキュリティ脅威を引き起こすか否かを判定させる命令を記憶した非一時的コンピュータ可読媒体であって、前記分類器カスケードはレコードの訓練コーパス上で訓練され、前記訓練コーパスは少なくとも第１のクラスのレコードと第２のクラスのレコードに事前分類され、前記カスケードを訓練することは、
前記訓練コーパスを所定の第１の閾値に従って第１の複数のレコードグループに分けて、前記第１の複数のレコードグループのうちの第１のグループの第１の割合のレコードが前記第１のクラスに属するように、前記カスケードのうちの第１の分類器を訓練することであって、前記第１の割合は、前記第１の閾値を超えるように選ばれる、ことと、
前記第１のグループを含む前記訓練コーパスを所定の第２の閾値に従って第２の複数のレコードグループに分けて、前記第２の複数のレコードグループのうちの第２のグループの第２の割合のレコードが前記第２のクラスに属するように、前記カスケードのうちの第２の分類器を訓練することであって、前記第２の割合は、前記第２の閾値を超えるように選ばれる、ことと、
前記第１および第２の分類器を訓練したことに応答して、前記訓練コーパスからレコードセットを取り除き、縮小化訓練コーパスを生み出すことであって、前記レコードセットは前記第１および第２のグループから選択される、ことと、
前記レコードセットを取り除いたことに応答して、前記縮小化訓練コーパスを所定の第３の閾値に従って第３の複数のレコードグループに分けて、前記第３の複数のレコードグループのうちの第３のグループの第３の割合のレコードが前記第１のクラスに属するように、前記カスケードのうちの第３の分類器を訓練することであって、前記第３の割合は、前記第３の閾値を超えるように選ばれる、ことと、
前記レコードセットを取り除いたことに応答して、前記第３のグループを含む前記縮小化訓練コーパスを所定の第４の閾値に従って第４の複数のレコードグループに分けて、前記第４の複数のレコードグループのうちの第４のグループの第４の割合のレコードが前記第２のクラスに属するように、前記カスケードのうちの第４の分類器を訓練することであって、前記第４の割合は、前記第４の閾値を超えるように選ばれる、ことと
を含む、非一時的コンピュータ可読媒体。
【請求項２０】
請求項１９に記載のコンピュータ可読媒体であって、訓練された前記分類器カスケードを使用することは、
前記対象オブジェクトのクラス割り当てを決定するために、前記第１および第２の分類器を適用することと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属さないとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属さないときに、前記対象オブジェクトの前記クラス割り当てを決定するために、前記第３の分類器を適用することと
を含む、コンピュータ可読媒体。
【請求項２１】
請求項２０に記載のコンピュータ可読媒体であって、訓練された前記分類器カスケードを使用することは、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属するとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属さないときに、前記対象オブジェクトを前記第１のクラスに割り当てることと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属さないとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属するときに、前記対象オブジェクトを前記第２のクラスに割り当てることと、
前記第１および第２の分類器を適用したことに応答して、前記対象オブジェクトが前記第１の分類器に従う前記第１のクラスに属するとき、かつ、前記対象オブジェクトが前記第２の分類器に従う前記第２のクラスに属するときに、前記対象オブジェクトに、悪意のないとしてラベル付けすることと
をさらに含む、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、マルウェア検出などのコンピュータセキュリティアプリケーション用の自動化された分類器を訓練するためのシステムおよび方法に関する。
【背景技術】
【０００２】
[0002]マルウェアとしても知られている悪意のあるソフトウェアは、世界中の多くのコンピュータシステムに影響を及ぼす。コンピュータウイルス、ワーム、トロイの木馬、およびルートキットなどのその多くの形態において、マルウェアは、何百万人ものコンピュータユーザに深刻なリスクを与え、ユーザを、とりわけデータの損失、個人情報窃盗、および生産性の損失に対して脆弱にする。サイバー攻撃の頻度と精巧化は、ここ数年で劇的に上がった。マルウェアは、ほぼすべてのコンピュータのプラットフォームおよびオペレーティングシステムに影響を及ぼし、毎日、新しい悪意のあるエージェントが検出され、特定される。
【０００３】
[0003]このような脅威に対してユーザおよびデータを防護するために、例えば、悪意のあるエージェントを検出し、それらを無能にするために、かつ／またはユーザもしくはシステム管理者に注意を喚起するために、コンピュータセキュリティソフトウェアが使用され得る。コンピュータセキュリティソフトウェアは、通常、それぞれのオブジェクトの固有の特徴セットに従って、不明のオブジェクトが、害のないかまたは悪意のあるかを判断するために、自動化された分類器に依拠する。このような特徴は、構造的かつ／または挙動的であり得る。自動化された分類器は、様々な機械学習アルゴリズムを使用して、マルウェアを特定するように訓練され得る。
【０００４】
[0004]自動化された分類器のよくある問題は、検出率における上昇が、通常、分類誤り（フォールスポジティブおよび／またはフォールスネガティブ）の回数における上昇を伴うということである。フォールスポジティブ、例えば、正規のオブジェクトを誤って悪意のあると特定することは、このようなラベル付けが、ユーザに対するデータ損失または生産性の損失につながる可能性があるので、特に望ましくないことであり得る。自動化された分類器の訓練中に直面する別の困難さは、コンピュータセキュリティアプリケーションの場合、数百万ものレコードから成ることがある、大きな訓練コーパスを処理するために必要とされる、相当な計算に関わる費用である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0005]フォールスポジティブの最小比率を確実にしつつ、大量の訓練データを素早く処理することができる、新しい分類器および訓練方法を開発することにかなりの関心が集まっている。
【課題を解決するための手段】
【０００６】
[0006]１つの態様によれば、コンピュータシステムは、ハードウェアプロセッサおよびメモリを備える。ハードウェアプロセッサは、訓練された分類器カスケードを使用して、対象オブジェクトがコンピュータセキュティ脅威を引き起こすか否かを判定するように構成される。分類器カスケードは、レコードの訓練コーパス上で訓練され、訓練コーパスは、少なくとも第１のクラスのレコードと第２のクラスのレコードとに事前分類される。カスケードの訓練は、第１の複数のレコードグループのうちの第１のグループのレコードの第１の割合のレコードが第１のクラスに属するように、所定の第１の閾値に従って、訓練コーパスを第１の複数のレコードグループに分けるように、カスケードの第１の分類器を訓練することであって、第１の割合が第１の閾値を超えるように選ばれる、ことを含む。カスケードを訓練することは、第２の複数のレコードグループのうちの第２のグループの第２の割合のレコードが第２のクラスに属するように、所定の第２の閾値に従って、第１のグループを含む訓練コーパスを、第２の複数のレコードグループに分けるように、カスケードの第２の分類器を訓練することであって、第２の割合が第２の閾値を超えるように選ばれる、ことをさらに含む。カスケードを訓練することは、第１および第２の分類器を訓練したことに応答して、訓練コーパスからレコードセットを取り除き、縮小化訓練コーパスを生み出すことであって、レコードセットが、第１および第２のグループから選択される、ことをさらに含む。カスケードを訓練することは、レコードセットを取り除いたことに応答して、第３の複数のレコードグループのうちの第３のグループの第３の割合のレコードが第１のクラスに属するように、所定の第３の閾値に従って、縮小化訓練コーパスを第３の複数のレコードグループに分けるように、カスケードの第３の分類器を訓練することであって、第３の割合が第３の閾値を超えるように選ばれる、ことをさらに含む。カスケードを訓練することは、レコードセットを取り除いたことに応答して、第４の複数のレコードグループのうちの第４のグループの第４の割合のレコードが第２のクラスに属するように、所定の第４の閾値に従って、第３のグループを含む縮小化訓練コーパスを、第４の複数のレコードグループに分けるように、カスケードの第４の分類器を訓練することであって、第４の割合が第４の閾値を超えるように選ばれる、ことをさらに含む。
【０００７】
[0007]別の態様によれば、コンピュータシステムは、ハードウェアプロセッサおよびメモリを備える。ハードウェアプロセッサは、コンピュータセキュリティ脅威を検出する際に使用するよう、カスケードを訓練するように構成される。分類器カスケードは、レコードの訓練コーパス上で訓練され、訓練コーパスは、少なくとも第１のクラスのレコードと第２のクラスのレコードとに事前分類される。カスケードの訓練は、第１の複数のレコードグループのうちの第１のグループの第１の割合のレコードが第１のクラスに属するように、所定の第１の閾値に従って、訓練コーパスを第１の複数のレコードグループに分けるように、カスケードの第１の分類器を訓練することであって、第１の割合が第１の閾値を超えるように選ばれる、ことを含む。カスケードを訓練することは、第２の複数のレコードグループのうちの第２のグループの第２の割合のレコードが第２のクラスに属するように、所定の第２の閾値に従って、第１のグループを含む訓練コーパスを、第２の複数のレコードグループに分けるように、カスケードの第２の分類器を訓練することであって、第２の割合が第２の閾値を超えるように選ばれる、ことをさらに含む。カスケードを訓練することは、第１および第２の分類器を訓練したことに応答して、訓練コーパスからレコードセットを取り除き、縮小化訓練コーパスを生み出すことであって、レコードセットが第１および第２のグループから選択される、ことをさらに含む。カスケードを訓練することは、レコードセットを取り除いたことに応答して、第３の複数のレコードグループのうちの第３のグループの第３の割合のレコードが第１のクラスに属するように、所定の第３の閾値に従って、縮小化訓練コーパスを第３の複数のレコードグループに分けるように、カスケードの第３の分類器を訓練することであって、第３の割合が第３の閾値を超えるように選ばれる、ことをさらに含む。カスケードを訓練することは、レコードセットを取り除いたことに応答して、第４の複数のレコードグループのうちの第４のグループの第４の割合のレコードが第２のクラスに属するように、所定の第４の閾値に従って、第３のグループを含む縮小化訓練コーパスを、第４の複数のレコードグループに分けるように、カスケードの第４の分類器を訓練することであって、第４の割合が第４の閾値を超えるように選ばれる、ことをさらに含む。
【０００８】
[0008]別の態様によれば、非一時的コンピュータ可読媒体は、コンピュータシステムの少なくとも１つのハードウェアプロセッサによって実行されたとき、コンピュータシステムに、訓練された分類器カスケードを使用して、対象オブジェクトがコンピュータセキュリティ脅威を引き起こすか否かを判定させる、命令を記憶する。分類器カスケードは、レコードの訓練コーパス上で訓練され、訓練コーパスは、少なくとも第１のクラスのレコードと第２のクラスのレコードとに事前分類される。カスケードの訓練は、第１の複数のレコードグループのうちの第１のグループの第１の割合のレコードが第１のクラスに属するように、所定の第１の閾値に従って、訓練コーパスを第１の複数のレコードグループに分けるように、カスケードの第１の分類器を訓練することであって、第１の割合が第１の閾値を超えるように選ばれる、ことを含む。カスケードを訓練することは、第２の複数のレコードグループのうちの第２のグループの第２の割合のレコードが第２のクラスに属するように、所定の第２の閾値に従って、第１のグループを含む訓練コーパスを、第２の複数のレコードグループに分けるように、カスケードの第２の分類器を訓練することであって、第２の割合が第２の閾値を超えるように選ばれる、ことをさらに含む。カスケードを訓練することは、第１および第２の分類器を訓練したことに応答して、訓練コーパスからレコードセットを取り除き、縮小化訓練コーパスを生み出すことであって、レコードセットが第１および第２のグループから選択される、ことをさらに含む。カスケードを訓練することは、レコードセットを取り除いたことに応答して、第３の複数のレコードグループのうちの第３のグループの第３の割合のレコードが第１のクラスに属するように、所定の第３の閾値に従って、縮小化訓練コーパスを第３の複数のレコードグループに分けるように、カスケードの第３の分類器を訓練することであって、第３の割合が第３の閾値を超えるように選ばれる、ことをさらに含む。カスケードを訓練することは、レコードセットを取り除いたことに応答して、第４の複数のレコードグループのうちの第４のグループの第４の割合のレコードが第２のクラスに属するように、所定の第４の閾値に従って、第３のグループを含む縮小化訓練コーパスを、第４の複数のレコードグループに分けるように、カスケードの第４の分類器を訓練することであって、第４の割合が第４の閾値を超えるように選ばれる、ことをさらに含む。
【０００９】
[0009]本発明の先の態様および利点は、以下の「発明を実施するための形態」を読んだ時点で、また、以下の図面を参照した時点で、よりよく理解されるようになるであろう。
【図面の簡単な説明】
【００１０】
【図１】[0010]本発明のいくつかの実施形態による、典型的なコンピュータセキュリティシステムを示す図である。
【図２】[0011]本発明のいくつかの実施形態による、クライアントシステムの典型的なハードウェア構成を示す図である。
【図３】[0012]本発明のいくつかの実施形態による、分類器訓練システムの典型的なハードウェア構成を示す図である。
【図４】[0013]本発明のいくつかの実施形態による、図１の分類器訓練システム上で実行し、かつ分類器カスケードを訓練するように構成された、トレーナを示す図である。
【図５−Ａ】[0014]本発明のいくつかの実施形態による、カスケードの第１の分類器によって、２つの異なる領域に分けられた特徴空間を示す図である。
【図５−Ｂ】[0015]本発明のいくつかの実施形態による、領域がカスケードの第２の分類器によって分けられた、特徴空間の別の領域セットを示す図である。
【図５−Ｃ】[0016]本発明のいくつかの実施形態による、領域がカスケードの第３の訓練された分類器によって分けられた、特徴空間のまた別の領域セットを示す図である。
【図６】[0017]本発明のいくつかの実施形態による、図４のトレーナによって行われる典型的な一連のステップを示す図である。
【図７−Ａ】[0018]クライアントベースの走査を実施する本発明の実施形態における、クライアントシステムと分類器訓練システムとの間の典型的なデータ伝送を示す図である。
【図７−Ｂ】[0019]クラウドベースの走査を実施する本発明の実施形態における、クライアントシステム、セキュリティサーバ、および分類器訓練システム間の典型的なデータ交換を示す図である。
【図８】[0020]本発明のいくつかの実施形態による、クライアントシステム上で実行する典型的なセキュリティアプリケーションを示す図である。
【図９】[0021]本発明のいくつかの実施形態による、不明の対象オブジェクトの分類を示す図である。
【図１０】[0022]本発明のいくつかの実施形態による、不明の対象オブジェクトを分類するために、図８のセキュリティアプリケーションによって行われる典型的な一連のステップを示す図である。
【図１１】[0023]図１１−Ａは、カスケードの各レベルが複数の分類器を備える、本発明の実施形態における、典型的な訓練コーパス上で、分類器カスケードの第１のレベルを訓練することを示す図である。 [0024]図１１−Ｂは、レベル当たり複数の分類器を有する、分類器カスケードの第２のレベルを訓練することを示す図である。
【図１２】[0025]本発明のいくつかの実施形態による、レベル当たり複数の分類器を備えるカスケードを訓練するために遂行される、典型的な一連のステップを示す図である。
【図１３】[0026]レベル当たり複数の分類器を使用する本発明の実施形態における、不明の対象オブジェクトを分類するために行われる、典型的な一連のステップを示す図である。
【発明を実施するための形態】
【００１１】
[0027]以下の説明では、構造間の挙げられている接続のすべては、直接の動作接続か、または中間構造を通した間接の動作接続とすることができる。要素セットは、１つまたは複数の要素を含む。要素のいずれの列挙も、少なくとも１つの要素を指すと解される。複数の要素は、少なくとも２つの要素を含む。特に必要である場合を除き、いずれの説明される方法ステップも、必ずしも、特定の示された順番で行われる必要はない。第２の要素から引き出された第１の要素（例えば、データ）は、第２の要素に等しい第１の要素とともに、第２の要素、および任意選択で他のデータを処理することによって生成された第１の要素を含む。パラメータに従って判定または決定を行うことは、パラメータに従って、また任意選択で他のデータに従って、判定または決定を行うことを含む。別段の定めのない限り、ある数量／データのインジケータは、数量／データそのものか、または数量／データそのものとは異なるインジケータであり得る。第１の数が第２の数より大きいか、または少なくとも等しい場合、第１の数は、第２の数を超える。コンピュータセキュリティは、データおよび／またはハードウェアへの意図せぬまたは不正なアクセス、データおよび／またはハードウェアへの意図せぬまたは不正な改造、ならびにデータおよび／またはハードウェアの破壊に対して、ユーザおよび設備を防護することを含む。コンピュータプログラムは、タスクを遂行する一連のプロセッサ命令である。本発明のいくつかの実施形態において説明されるコンピュータプログラムは、スタンドアローンのソフトウェアエンティティかまたは他のコンピュータプログラムのサブエンティティ（例えば、サブルーチン、コードオブジェクト）であり得る。別段の定めのない限り、プロセスは、アプリケーション、またはオペレーティングシステムの一部など、コンピュータプログラムのインスタンスであり、少なくとも実行スレッド、およびそれに割り当てられた仮想メモリ空間を有することによって特徴付けられ、それぞれの仮想メモリ空間の中身は実行可能コードを含む。別段の定めがない限り、それぞれの分類器が、各グループのすべてのレコードが同一のクラスラベルを有するように、コーパスを異なるレコードグループに分けると、分類器は、レコードコーパスを完全に分類している（各レコードがクラスラベルを付けている）。コンピュータ可読媒体は、磁気媒体、光媒体、および半導体媒体などの非一時的記憶媒体（例えば、ハードドライブ、光ディスク、フラッシュメモリ、ＤＲＡＭ）とともに、導電ケーブルおよび光ファイバリンクなどの通信リンクを含む。いくつかの実施形態によれば、本発明は、とりわけ、本明細書に説明されている方法を行うようにプログラムされたハードウェアとともに、本明細書に説明されている方法を行うよう、命令を符号化するコンピュータ可読媒体を備えるコンピュータシステムを提供する。
【００１２】
[0028]以下の説明は、例として、また必ずしも限定としてではなく、本発明の実施形態を示す。
[0029]図１は、本発明のいくつかの実施形態による、典型的なコンピュータセキュリティシステム１０を示す。コンピュータセキュリティシステム１０は、すべてがネットワーク１２を介して相互接続される、分類器訓練システム２０、クライアントシステムセット３０ａ、３０ｂ、およびセキュリティサーバ１４を備える。ネットワーク１２は、企業ネットワークなどのローカルエリアネットワーク（ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）とともに、インターネットなどの広域ネットワークを含み得る。いくつかの実施形態において、クライアントシステム３０ａおよび３０ｂは、それぞれがプロセッサ、メモリ、および記憶域を有し、かつ、とりわけＷｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）またはＬｉｎｕｘ（登録商標）などのオペレーティングシステムを動かす、エンドユーザコンピュータに相当し得る。他の典型的なクライアントシステム３０ａおよび３０ｂは、モバイルコンピューティングデバイス（例えば、ラップトップ、タブレットＰＣ）、電気通信デバイス（例えば、スマートフォン）、デジタルエンターテイメント器具（ＴＶ、ゲーム機など）、ウェアラブルコンピューティングデバイス（例えば、スマートウォッチ）、または、プロセッサおよびメモリを有し、かつネットワーク１２に接続することができるその他の任意の電子デバイスを含む。クライアントシステム３０ａと３０ｂとが、個々の顧客に相当してもよく、またはいくつかのクライアントシステムが、同じ顧客に属していてもよい。
【００１３】
[0030]システム１０は、とりわけ悪意のあるソフトウェア（マルウェア）、迷惑（ｕｎｓｏｌｉｃｉｔｅｄ）通信（スパム）、および電子詐欺（例えば、フィッシング、ナイジェリア詐欺など）など、様々なコンピュータセキュリティ脅威に対して、クライアントシステム３０ａおよび３０ｂとともに、クライアントシステム３０ａおよび３０ｂのユーザを防護し得る。クライアントシステム３０ａおよび３０ｂは、以下に詳細に示されるように、分類器訓練システム２０上で訓練された分類器カスケードを使用して、このようなコンピュータセキュリティ脅威を検出し得る。
【００１４】
[0031]１つのユースケースシナリオでは、クライアントシステムは、電子メールサーバに相当し得、この場合、本発明のいくつかの実施形態は、それぞれの電子メールサーバに、電子通信に取り付けられたスパムおよび／またはマルウェアを検出すること、および、例えば、意図された受け手にそれぞれのメッセージを配信する前に、悪意のある項目を取り除くかまたは隔離して、防護動作をとること、を可能にさせ得る。別のユースケースシナリオでは、各クライアントシステム３０ａおよび３０ｂは、悪意のあるソフトウェアを検出するために、それぞれのクライアントシステムを走査するように構成されたセキュリティアプリケーションを含み得る。また別のユースケースシナリオでは、詐欺検出を目的として、各クライアントシステム３０ａおよび３０ｂは、リモートリソース（例えば、Ｗｅｂサイト）にアクセスしようとするユーザの意図を検出するように構成されたセキュリティアプリケーションを含み得る。セキュリティアプリケーションは、ＵＲＬなどのリソースのインジケータを、セキュリティサーバ１４に送信し、リソースが詐欺であるか否かを示すラベルを、取り戻し得る。このような実施形態では、セキュリティサーバ１４は、以下に詳細に示されるように、分類器訓練システム２０から受信された分類器カスケードを使用して、それぞれのラベルを判定し得る。
【００１５】
[0032]図２は、図１におけるクライアントシステム３０ａおよび３０ｂなどのクライアントシステム３０の典型的なハードウェア構成を示す。示されているクライアントシステム３０は、コンピュータシステムであるが、本説明が、タブレットＰＣ、移動電話などの他のクライアントシステムに適応され得るということを、当業者であれば理解するであろう。クライアントシステム３０は、すべてがコントローラハブ３８によって接続される、ハードウェアプロセッサ２４、メモリユニット２６、入力デバイスセット２８、出力デバイスセット３２、記憶デバイスセット３４、およびネットワークアダプタセット３６を含む、物理的デバイスセットを備える。
【００１６】
[0033]いくつかの実施形態において、プロセッサ２４は、信号セットおよび／またはデータセットで、計算演算および／または論理演算を実行するように構成された物理的デバイス（例えば、マイクロプロセッサ、半導体基板上に形成されたマルチコア集積回路）を備える。いくつかの実施形態において、このような論理演算は、一連のプロセッサ命令の形態で（例えば、機械コードまたはその他のタイプのソフトウェア）、メモリユニット２６からプロセッサ２４に伝送される。メモリユニット２６は、命令を遂行する過程で、プロセッサ２４によってアクセスされるかまたは生成されるデータ／信号を記憶する、揮発性コンピュータ可読媒体（例えば、ＲＡＭ）を備え得る。入力デバイス２８は、ユーザが、データおよび／または命令をクライアントシステム３０に導入することを可能にする、それぞれのハードウェアインターフェースおよび／またはアダプタを含む、とりわけコンピュータキーボード、マウス、およびマイクロホンを含み得る。出力デバイス３２は、とりわけモニタなどの表示デバイスおよびスピーカとともに、クライアントシステム３０がデータをユーザに伝達することを可能にする、グラフィックカードなどのハードウェアインターフェース／アダプタを含み得る。いくつかの実施形態において、入力デバイス２８と出力デバイス３２とは、タッチスクリーンデバイスの場合のように、ハードウェアの共通ピースを共有し得る。記憶デバイス３４は、プロセッサ命令および／またはデータの不揮発性記憶、読み取り、および書き込みを可能にする、コンピュータ可読媒体を含む。典型的な記憶デバイス３４は、磁気ディスク、光ディスク、およびフラッシュメモリデバイスとともに、ＣＤおよび／またはＤＶＤディスクならびにドライブなどの取り外し可能媒体を含む。ネットワークアダプタセット３６は、クライアントシステム３０に、ネットワーク１２に、かつ／または他のデバイス／コンピュータシステムに接続することを可能にさせる。コントローラハブ３８は、一般に、複数のシステム、周辺機器、および／またはチップセットバス、および／または、プロセッサ２４とデバイス２６、２８、３２、３４、および３６との間の通信を可能にする、その他のすべての回路機構に相当する。例えば、コントローラハブ３８は、プロセッサ２４をメモリ２６に接続するノースブリッジ、および／または、プロセッサ２４をデバイス２８、３２、３４、および３６に接続するサウスブリッジを備え得る。
【００１７】
[0034]図３は、本発明のいくつかの実施形態による、分類器訓練システム２０の典型的なハードウェア構成を示す。訓練システム２０は、一般に、コンピュータシステムセットに相当し、図３は、分かりやすくするために、ただ１つの機械を表す。複数のこのような機械は、ネットワーク１２の一部を介して相互接続され得る（例えば、サーバファームにおいて）。いくつかの実施形態において、訓練システム２０は、すべてがトレーナコントローラハブ１３８によって接続される、トレーナプロセッサ１２４、トレーナメモリユニット１２６、トレーナ記憶デバイスセット１３４、およびトレーナネットワークアダプタセット１３６を含む。ハードウェア構成のいくつかの詳細は、訓練システム２０とクライアントシステム３０とで異なることがあるが、デバイス１２４、１２６、１３４、１３６、１３８の動作は、上に説明されている、それぞれ、デバイス２４、２６、３４、３６、３８の動作と同様であり得る。例えば、トレーナプロセッサ１２４は、トレーナメモリユニット１２６から受信された信号／データで、論理演算および／または数学演算を行うように、かつ、このような演算の結果をユニット１２６に書き込むように構成された、ハードウェアマイクロプロセッサを含み得る。
【００１８】
[0035]図４は、本発明のいくつかの実施形態による、訓練システム２０上で実行し、かつ分類器カスケードを訓練するように構成された、トレーナ４２を示す。カスケードは、特定の順番で使用されるように構成された、複数の分類器Ｃ１、Ｃ２、．．．Ｃｎを備える。いくつかの実施形態において、カスケードの各分類器は、オブジェクトのいくつかの異なるグループを、例えば、クリーンなオブジェクトとマルウェアとを、正規の電子メールとスパムとを、またはマルウェアの様々な範疇を、区別する。このような分類器は、当技術分野においてよく知られている様々な自動化された分類器の改作物、例えば、とりわけナイーブベイズ分類器、人工ニューラルネットワーク（ＡＮＮ：Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）、サポートベクターマシン（ＳＶＭ：Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）、ｋ−近傍法（ＫＮＮ：Ｋ−Ｎｅａｒｅｓｔ  Ｎｅｉｇｈｂｏｒ）分類器、クラスタ化分類器（例えば、ｋ−平均法アルゴリズムを使用した）、多変量適応型回帰スプライン（ＭＡＲＳ：Ｍｕｌｔｉｖａｒｉａｔｅ  Ａｄａｐｔｉｖｅ  Ｒｅｇｒｅｓｓｉｏｎ  Ｓｐｌｉｎｅ）分類器、および決定木分類器を含み得る。
【００１９】
[0036]本発明の実施形態用に、このような標準分類器を適応させることは、例えば、グループ内のレコードの大部分が同じクラスに属する構成を促進するために、訓練アルゴリズムにおいて使用される、コスト関数またはペナルティ関数を修正することを含み得る（以下のさらなる考察を参照）。パーセプトロンの典型的な修正形態は、レコードコーパスを、グループ内のすべてのレコードが同じクラスラベルを有するような２つのグループに分ける、一面的な（ｏｎｅ−ｓｉｄｅｄ）パーセプトロンを生み出す。
【００２０】
[0037]分類器のタイプの選択は、訓練データの特殊性に（例えば、データがかなりのノイズを有するか否か、データが線形に分離可能であるか否か、など）、または、アプリケーション（例えば、マルウェア検出、詐欺検出、スパム検出など）のドメインに、従って行われ得る。カスケードのすべての分類器が同じタイプである必要はない。
【００２１】
[0038]分類器カスケードを訓練することは、パフォーマンス基準、および以下に詳述される方法に従って進行する。いくつかの実施形態において、トレーナ４２（図４）の出力は、複数の分類器パラメータセット４６ａ、４６ｂ、および４６ｃを含み、このようなパラメータセットのそれぞれは、カスケードの分類器Ｃ１、Ｃ２、．．．Ｃｎをインスタンス化するように使用される。人工ニューラルネットワーク分類器の一例では（例えば、パーセプトロン）、パラメータ４６ａ、４６ｂ、および４６ｃは、レイヤーのカウントおよびシナプス重みセットを含み得る。サポートベクターマシン（ＳＶＭ）の場合、パラメータ４６ａ、４６ｂ、および４６ｃは、カーネル関数の選択のインジケータ、および／または、特徴空間において２つの異なるグループのオブジェクトを分ける超曲面の係数セットを含み得る。クラスタ化分類器の場合、パラメータ４６ａ、４６ｂ、および４６ｃは、クラスタ中心セット、およびクラスタ径セットの座標を含み得る。いくつかの実施形態において、各パラメータセット４６ａ、４６ｂおよび４６ｃは、分類器タイプのインジケータを含む。
【００２２】
[0039]分類器カスケードを訓練することは、訓練コーパス４０（図４）を処理することを含む。いくつかの実施形態において、コーパス４０は、レコードの大規模なコレクション（例えば、何百万ものレコード）を含む。本発明のアプリケーションのドメインに応じて、このようなレコードのそれぞれは、ソフトウェアオブジェクト（例えば、ファイルまたはコンピュータプロセス）、電子メッセージ、ＵＲＬなどに相当し得る。訓練コーパス４０は、いくつかのクラス、例えば、クリーンと悪意のある、またはスパムと正規に事前分類される。このような事前分類は、例えば、コーパス４０の各レコードが、それぞれのレコードが属するクラスを示すラベルを付けることであって、ラベルが分類器カスケードを訓練する前に決定される、ことを含み得る。
【００２３】
[0040]いくつかの実施形態において、訓練コーパス４０の各レコードは、特徴ベクトルとして、すなわち、特徴超空間における座標セットとして表され、そこでは、各座標は、それぞれのレコードの固有の特徴の値を表す。このような特徴は、本発明のアプリケーションのドメインによって決まり得、数字特徴および／またはブール特徴を含み得る。典型的なレコード特徴は、静的属性および挙動的属性を含む。マルウェア検出の場合、例えば、レコードの典型的な静的属性は、とりわけファイル名、ファイルサイズ、メモリアドレス、レコードがパックされているか否かのインジケータ、それぞれのレコードをパックするために使用されるパッカーの識別子、レコードのタイプのインジケータ（例えば、実行可能ファイル、ダイナミックリンクライブラリなど）、レコードをコンパイルするために使用されるコンパイラのインジケータ（例えば、Ｃ＋＋、．Ｎｅｔ、Ｖｉｓｕａｌ  Ｂａｓｉｃ）、レコードによって読み込まれるライブラリのカウント、およびレコードのエントロピー測定、を含み得る。挙動的属性は、オブジェクト（例えば、プロセス）が、実行中にある挙動を行うか否かを示し得る。典型的な挙動的属性は、とりわけそれぞれのオブジェクトがディスクに書き込むか否かのインジケータ、それぞれのオブジェクトが、インターネットに接続しようとするか否かのインジケータ、それぞれのオブジェクトが遠隔位置からデータをダウンロードしようとするか否かのインジケータ、およびそれぞれのオブジェクトが、実行中にコードを他のオブジェクトに注入するか否かのインジケータを含む。詐欺検出の場合、典型的なレコード特徴は、とりわけＷｅｂページがある詐欺指標のキーワードを含んでいるか否かのインジケータ、およびＷｅｂページがＨＴＴＰ形式を公開しているか否かのインジケータを含む。スパム検出の場合、典型的なレコード特徴は、あるスパム指標のキーワードの存在、メッセージがハイパーリンクを含んでいるか否かのインジケータ、およびそれぞれのメッセージが添付物を含んでいるか否かのインジケータを含む。他の典型的なレコード特徴は、スパム指標である、あるメッセージフォーマットの特徴を含む。
【００２４】
[0041]図５−Ａ、図５−Ｂ、および図５−Ｃは、本発明のいくつかの実施形態による、カスケードの典型的な分類器セットを訓練することを示す。図５−Ａ、図５−Ｂ、および図５−Ｃは、例えば、以下にさらに示されるように、分類器カスケードを訓練する連続する段階を示し得る。一般性を失うことなく、示されているレコードコーパスは、２つのクラスを含む（例えば、マル印は、悪意のあるオブジェクトを表し得る一方、バツ印は、害のないオブジェクトを表し得る）。各レコードは、特徴ｆ１およびｆ２によって張られる２次元特徴空間における特徴ベクトルとして表される。当業者であれば、説明されているシステムおよび方法が、２つよりも多いクラスのレコードを有するコーパスに、かつ／またはより高い次元の特徴空間に及ぼされ得るということを理解するであろう。
【００２５】
[0042]本発明のいくつかの実施形態において、カスケードの各分類器は、グループのうちの１つのグループ内のかなりの割合のレコードが同一のクラスラベルを有するように、すなわち、同じクラスに属するように、その時の（ｃｕｒｒｅｎｔ；現在の）レコードコーパスを、少なくとも２つの異なるグループに分けるように訓練される。同一のクラスラベルを有するレコードは、それぞれのグループ内のこのようなレコードの割合（ｐｒｏｐｏｒｔｉｏｎ）が、所定の閾値を超える場合、かなりの割合を形成する。かなりの割合に対応する典型的な閾値は、とりわけ５０％、９０％、および９９％を含む。いくつかの実施形態において、１つのグループ内のすべてのレコードが、同じクラスラベルを有するよう要求され、このような状況は、１００％の閾値に対応する可能性がある。より高い閾値は、訓練するためにより費用がかさむが、より低い誤分類率をもたらす、分類器を生み出し得る。閾値の値は、カスケードの分類器の間で異なり得る。
【００２６】
[0043]分類器の動作および／または訓練は、図５−Ａ、図５−Ｂ、および図５−Ｃの特徴空間表現を使用してよりよく理解され得る。図５−Ａでは、分類器Ｃ１は、２つの領域に特徴空間を分ける境界４４ａを生み出すことによって、２つのレコードグループを区別するように訓練され、それぞれの異なるレコードグループが、特徴空間の異なる領域に位置を占めるようにする（例えば、境界４４ａの外側と内側）。一般性を損なうことなく、典型的な境界４４ａは、楕円である。このような境界の形状は、例えば、クラスタ化分類器によって生み出され得、別の分類器選択は、異なる形状の境界を生み出す可能性がある。分類器のいくつかの選択では（例えば、決定木）、このような境界が存在しないことがあり得るか、または引くのが不可能であり得るということを、当業者であれば理解するであろう。したがって、図５−Ａ、図５−Ｂ、および図５−Ｃにおける線描は、単に、本説明を平易にするように示され、本発明の範囲を制限することが意図されるものではない。
【００２７】
[0044]いくつかの実施形態において、分類器Ｃ１を訓練することは、分類条件が満たされるまで、境界４４ａのパラメータを調整することを含む。楕円の中心および／または直径など、境界のパラメータは、分類器パラメータ４６ａ（図４）としてエクスポートされ得る。境界４４ａ内部のかなり割合（すべて）のレコードは、１つのクラス（マル印で示される）に属する。同一のラベルを有するレコードグループによって位置が占められる特徴空間の領域は、これ以降、分類器Ｃ１の好ましい領域４５ａと見なされることになる。分類器Ｃ１、Ｃ２、Ｃ３の好ましい領域は、それぞれ、図５−Ａ、図５−Ｂ、図５−Ｃにおける斜線部分として示される。各分類器の好ましい領域内にあるレコードのクラスは、それぞれの分類器の好ましいクラスと見なされることになる。図５−Ａの例では、分類器Ｃ１の好ましいクラスは、マル印（例えば、マルウェア）である。
【００２８】
[0045]図５−Ｂは、カスケードの第２の典型的な訓練された分類器Ｃ２を表す、別の境界４４ｂによって、特徴空間において分けられた別の領域セットを示す。示されている例では、境界４４ｂは、また楕円であり、そのパラメータは、例えば、図４におけるパラメータセット４６ｂで表され得る。図５−Ｂは、分類器Ｃ２の好ましい領域４５ｂをさらに示し、好ましい領域は、同一のラベルを有するレコードを主に含んでいる。図５−Ｂの例では、分類器Ｃ２の好ましいクラスはバツ印（例えば、クリーン、悪意のない）である。
【００２９】
[0046]図５−Ｃは、別の境界４４ｃによって特徴空間において分けられたまた別の領域セットと、カスケードの第３の典型的な訓練された分類器Ｃ３の別の好ましい境界４５ｃとを示す。示されている分類器Ｃ３は、例えば、パーセプトロンであり得る。好ましい領域４５ｃは、マル印のみを含み、すなわち、分類器Ｃ３の好ましいクラスは、マル印である。図５−Ａ、図５−Ｂ、および図５−Ｃに示されているような、いくつかの実施形態において、訓練の連続する段階間で、例えば、カスケードの連続する分類器を訓練する間で、レコードセットが訓練コーパス４０から取り除かれる。コーパスから取り除かれるレコードセットは、それぞれの訓練された分類器の好ましい領域から選択される。
【００３０】
[0047]図６は、本発明のいくつかの実施形態による、分類器カスケードを訓練するために、トレーナ４２（図４）によって行われる典型的な一連のステップを示す。訓練コーパス４０を入力した後（ステップ２００）、一連のステップ２０２〜２２０が、１つのループが、カスケードの連続する分類器Ｃｉごとに実行されるようなループで繰り返される。
【００３１】
[0048]ステップ２０２は、使用可能なタイプセット（例えば、ＳＶＭ、クラスタ化分類器、パーセプトロンなど）から、訓練のための分類器のタイプを選択する。分類器の選択は、パフォーマンス要件（訓練の速さ、分類の正確さなど）に従って、かつ／またはその時の訓練コーパスの特殊性に従って、行われ得る。例えば、その時の訓練コーパスがほぼ線形に分割可能である場合、ステップ２０２は、パーセプトロンを選び得る。その時の訓練コーパスが集中したレコード島を有する場合、クラスタ化分類器が好まれ得る。いくつかの実施形態において、カスケードのすべての分類器が同じタイプである。
【００３２】
[0049]他の分類器選択シナリオが考えられる。例えば、カスケードの各段階において、いくつかの実施形態は、様々な分類器タイプを試し、基準セットに従ってよりよく行う分類器タイプを選択し得る。このような基準は、とりわけ好ましい領域内のレコードのカウント、分類の正確さ、および誤分類されたレコードのカウントを含み得る。いくつかの実施形態は、最良の分類器タイプを選択するために、交差検証テストを適用し得る。また別のシナリオでは、分類器のタイプは、カスケードの段階ごとに変えられる（例えば、交番式に）。このようなシナリオへの誘因は、訓練コーパスが、レコードセットを捨てることによって、カスケードの段階ごとに縮小していくにつれ、コーパスの性質が、カスケードの段階ごとに、主に線形に分離可能なコーパスから主に隔離したコーパスに（または、その逆に）変わることが可能である、ということである。したがって、同じタイプの分類器（例えば、パーセプトロン）は、カスケードの連続的な段階において同じようには動作し得ない。このようなシナリオでは、カスケードは、例えば、パーセプトロンとクラスタ化分類器とを、またはパーセプトロンと決定木とを、交互に繰り返し得る。
【００３３】
[0050]一連のステップ２０４、２０６、および２０８は、その時の訓練コーパスを分類するように、カスケードのその時の分類器を効果的に訓練する。いくつかの実施形態において、その時の分類器を訓練することは、訓練基準セットが満たされるまで、その時の分類器のパラメータを調整すること（ステップ２０４）を含む。調整された分類器パラメータセットは、互いから特徴空間の複数の領域を分ける超曲面などの境界を示し得る（例えば、図５−Ａ、図５−Ｂ、および図５−Ｃを参照）。
【００３４】
[0051]１つの訓練基準（ステップ２０６において施行される）は、前記領域のうちの１つの領域にあるその時の訓練コーパスのかなりの割合のレコードが同じラベルを有する、すなわち、１つのクラスに属することを要求する。いくつかの実施形態において、それぞれの好ましいクラスは、カスケードのすべての分類器に対して同じであることが要求される。このような分類器カスケードは、それぞれの好ましいクラスのレコード用のフィルタとして使用され得る。代替的な実施形態において、好ましいクラスは、それが、訓練コーパスのクラスを一巡するように選択される。例えば、２クラスのコーパス（例えば、マルウェアとクリーン）では、分類器Ｃ１、Ｃ３、Ｃ５、．．．の好ましいクラスは、マルウェアであり得る一方、分類器Ｃ２、Ｃ４、Ｃ６、．．．の好ましいクラスは、クリーンであり得る。他の実施形態において、好ましいクラスは、カスケードの分類器ごとに恣意的に変わり得るか、または、その時の訓練コーパスの特殊性に従って変わり得る。
【００３５】
[0052]ステップ２０６は、その時の分類器によって区別された１つのグループ内のレコードの割合（ｐｒｏｐｏｒｔｉｏｎ）（比率）を計算することであって、それぞれのレコードがその時の分類器の好ましいクラスに属する、ことと、比率が所定の閾値を超えるか否かをテストすることと、を含み得る。比率が閾値を超えない場合、実行がステップ２０４に戻り得る。このような訓練は、各領域が複数のクラスからの混合されたレコードをホストするような境界がある構成にペナルティを科すフィードバック機構と組み合わされた、専用の分類アルゴリズムまたはよく知られている機械学習アルゴリズムを使用して、達成され得る。
【００３６】
[0053]いくつかの実施形態において、ステップ２０８は、他の訓練基準が満たされているか否かを検証する。このような基準は、各分類器タイプに固有であり得る。典型的な基準は、分類の品質に関係し得、例えば、その時の訓練コーパスの個々のクラスが特徴空間において最適に分けられることを確実にし得る。他の典型的な基準は、訓練の速さおよび／または効率に関係し得、例えば、訓練アルゴリズムに対して、最大訓練時間および／または最大反復回数を課し得る。別の典型的な訓練基準は、同一のラベルを有し、かつ領域のうちの１つの領域内にあるレコード数が最大にされるように、境界が調整されることを要求し得る。他の訓練基準は、過剰適合のサインに対してテストを行うことと、訓練アルゴリズムが解に収束する速さを推定することと、を含み得る。
【００３７】
[0054]その時の分類器に対して訓練基準が満たされると、ステップ２１０において、トレーナ４２は、その時の分類器のパラメータ（図４における項目４６ａ、４６ｂ、および４６ｃ）を保存する。さらなるステップ２１４は、その時の分類器の好ましいクラスを保存する。
【００３８】
[0055]いくつかの実施形態において、ステップ２１６は、その時の分類器がその時のコーパスを完全に分類しているか否か、すなわち、その時の分類器が、それぞれの異なるグループ内のすべてのレコードが同一のラベルを有するように、その時のコーパスを異なるグループに分けているか否か、を判定する（例えば、図５−Ｃを参照）。イエスの場合、訓練は終了する。ノーの場合、一連のステップ２１８および２２０は、レコードセットを選択し、その時の訓練コーパスから前記セットを取り除く。いくつかの実施形態において、取り除くよう選択されるレコードセットが、その時の分類器の好ましい領域から選択される。このような例の１つでは、ステップ２２０は、その時の分類器の好ましい領域内にあるその時のコーパスのすべてのレコードを取り除く（図５−Ａ、図５−Ｂ、および図５−Ｃを参照）。
【００３９】
[0056]図６に示されるように動作するいくつかの実施形態において、カスケード内の分類器の実際のカウントは、その時のコーパスのすべてのレコードが完全に分類されている、訓練手順の終了時にのみ分かる。代替的な実施形態において、カスケードは、一定の所定の個数の分類器を備え得、訓練は、残っている訓練コーパスが完全に分類されているか否かに関係なく、すべての分類器が訓練されるまで進行し得る。
【００４０】
[0057]訓練段階が完了すると、上に説明されたように訓練された分類器カスケードは、不明の対象オブジェクト５０を分類するために使用され得る。本発明のアンチマルウェアの典型的なアプリケーションでは、このような分類は、例えば、対象オブジェクト５０がクリーンであるかまたは悪意のあるかを判定し得る。他のアプリケーションでは、このような分類は、対象オブジェクトが正規であるかまたはスパムであるか、などを判定し得る。対象オブジェクト５０の分類は、様々な機械上で、また様々な構成で、例えば、他のセキュリティ動作との組み合わせで、行われ得る。
【００４１】
[0058]いくつかの実施形態において、分類は、クライアントシステム３０（クライアントベースの走査）において、またはセキュリティサーバ１４（クラウドベースの走査）において、行われる。図７−Ａは、算出された分類器パラメータ４６ａ、４６ｂ、および４６ｃが分類器訓練システム２０から、クライアントベースの走査用のクライアントシステム３０に送信されることになる、典型的なデータ伝送を示す。図７−Ａに対して、図７−Ｂは、パラメータ４６ａ、４６ｂ、および４６ｃがセキュリティサーバ１４に送信される、クラウドベースの走査構成を示す。このような構成では、クライアントシステム３０は、対象オブジェクト５０を示す対象オブジェクトインジケータ５１を、セキュリティサーバ１４に送信し、それに応じて、対象オブジェクト５０のクラスメンバ資格を示す対象となるラベル６０を、サーバ１４から受信し得る。インジケータ５１は、対象オブジェクト自体か、または対象オブジェクト５０を特徴付けるデータのサブセットを含み得る。いくつかの実施形態において、対象オブジェクトインジケータ５１は、対象オブジェクト５０の特徴ベクトルを含む。
【００４２】
[0059]分かりやすくするために、図８、図９、および図１０は、クライアントベースの走査のみを説明することになるが（すなわち、図７−Ａの構成に従って）、当業者であれば、説明される方法がクラウドベースの走査にも適用され得るということを理解するであろう。また、以下の説明は、アンチマルウェアアプリケーションのみに焦点を合わせることになる。しかしながら、示されるシステムおよび方法は、最小限の修正で、スパム対策、詐欺防止などの他のセキュリティアプリケーションとともに、文書分類、データマイニングなどのより一般的なアプリケーションにも及ぼされ得る。
【００４３】
[0060]図８は、本発明のいくつかの実施形態による、クライアントシステム３０上で実行する典型的なセキュリティアプリケーション５２を示す。クライアントシステム３０は、パラメータ４６ａ、４６ｂ、および４６ｃでインスタンス化された分類器Ｃ１、．．．Ｃｎのカスケードを含む、セキュリティアプリケーション５２を含み得る。セキュリティアプリケーション５２は、対象オブジェクト５０を受信し、かつ、とりわけ対象オブジェクト５０のクラスメンバ資格（例えば、クリーンかまたは悪意のある）を示す対象となるラベル６０を生成するように構成される。アプリケーション５２は、例えば、コンピュータセキュリティスイートの構成要素として、ブラウザプラグインとして、メッセージングアプリケーションの構成要素（例えば、電子メールプログラム）としてなど、様々に実装され得る。
【００４４】
[0061]いくつかの実施形態において、分類器Ｃ１、．．．Ｃｎのカスケードは、図６に関して、上に説明されたように訓練されたカスケードのインスタンスである。例えば、分類器Ｃ１は、カスケードの第１の訓練された分類器（パラメータ４６ａでインスタンス化された）に相当し、分類器Ｃ２は、カスケードの第２の訓練された分類器（パラメータ４６ｂでインスタンス化された）に相当する、などである。いくつかの実施形態において、アプリケーション５２は、以下により詳細に示されるように、対象オブジェクト５０のクラス割り当てを見つけるために、所定の順番（例えば、それぞれの分類器が訓練された順番）で分類器Ｃ１、．．．Ｃｎを適用するように構成される。
【００４５】
[0062]図９および図１０は、本発明のいくつかの実施形態による、対象オブジェクト５０の典型的な分類を示す。図９は、特徴ベクトルが第２の分類器の好ましい領域内にある対象オブジェクト５０を表している、図５−Ａ、図５−Ｂ、および図５−Ｃに示されている分類器の好ましい領域を示す。
【００４６】
[0063]図１０は、本発明のいくつかの実施形態による、セキュリティアプリケーション５２によって行われる典型的な一連のステップを示す。ステップ３００では、対象オブジェクト５０は、セキュリティアプリケーション５２用の入力として選ばれる。アンチマルウェアの実施形態において、典型的な対象オブジェクト５０は、とりわけ実行可能ファイル、ダイナミックリンクライブラリ（ＤＬＬ：Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）、およびクライアントシステム３０のメモリセクションの中身を含み得る。例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）を実行するクライアントシステムでは、対象オブジェクト５０は、とりわけＷＩＮＤＩＲフォルダからの実行可能ファイル、ＷＩＮＤＩＲ／ｓｙｓｔｅｍ３２フォルダからの実行可能ファイル、その時点で実行中のプロセスの実行可能ファイル、その時点で実行中のプロセスによってインポートされたＤＬＬ、およびインストールされたシステムサービスの実行可能ファイルを含み得る。対象オブジェクトの同様のリストは、Ｌｉｎｕｘ（登録商標）などの他のオペレーティングシステムを実行するクライアント３０用にコンパイルされ得る。対象オブジェクト５０は、クライアントシステム３０によって使用されるか、またはクライアントシステム３０に通信可能に結合されたコンピュータ可読媒体（例えば、ハードドライブ、光ディスク、ＤＲＡＭとともに、フラッシュメモリデバイス、ＣＤおよび／またはＤＶＤディスクならびにドライブなどの取り外し可能な媒体）上に存在し得る。ステップ３００は、対象オブジェクト５０の特徴ベクトルを計算することであって、特徴ベクトルが特徴空間におけるオブジェクト５０を表す、ことをさらに含み得る。
【００４７】
[0064]ステップ３０２では、セキュリティアプリケーション５２は、対象オブジェクト５０を分類するために、分類器Ｃ１を使用する。いくつかの実施形態において、ステップ３０２は、例えば分類器Ｃ１のパラメータ４６ａに従って、特徴空間内の境界を定めることと、それぞれの境界のいずれの側に（すなわち、いずれの分類領域に）、対象オブジェクト５０の特徴ベクトルがあるかを判定することと、を含む。ステップ３０４では、セキュリティアプリケーション５２は、分類器Ｃ１が対象オブジェクトをＣ１の好ましいクラスに入れるか否かを判定する。いくつかの実施形態において、ステップ３０４は、対象オブジェクト５０の特徴ベクトルが、分類器Ｃ１の好ましい領域内にあるか否かを判定することを含み得る。ノーである場合、アプリケーションの動作は、以下に説明されるステップ３０８に進む。イエスである場合、ステップ３０６において、対象オブジェクト５０は、分類器Ｃ１の好ましいクラスに属するとしてラベル付けされる。図９に示されている典型的な構成では、対象オブジェクト５０は、分類器Ｃ１の好ましい領域内にない。
【００４８】
[0065]ステップ３０８において、セキュリティアプリケーション５２は、対象オブジェクト５０を分類するために、カスケードの第２の分類器Ｃ２を適用する。ステップ３１０は、分類器Ｃ２が対象オブジェクトをＣ２の好ましいクラスに入れるか否か（例えば、対象オブジェクト５０の特徴ベクトルが分類器Ｃ２の好ましい領域に含まれているか否か）を判定する。イエスの場合、ステップ３１２において、対象オブジェクト５０は、分類器Ｃ２の好ましいクラスに割り当てられている。この状況は、図９に示される。
【００４９】
[0066]セキュリティアプリケーション５２は、対象オブジェクトが、分類器のうちの１つの分類器の好ましいクラスに割り当てられるまで、カスケードの分類器Ｃｉを連続して適用する。カスケードの分類器のいずれも、対象オブジェクトを、それらのそれぞれの好ましいクラスに属するとして認識しない場合、ステップ３２０において、対象オブジェクト５０は、カスケードの最後の分類器Ｃｎの好ましいクラスと異なるクラスに割り当てられる。例えば、２クラスの実施形態では、最後の分類器の好ましいクラスが「クリーン」である場合、対象オブジェクト５０は、「悪意のある」クラスに割り当てられ得、逆もまた同様である。
【００５０】
[0067]上の説明は、カスケードがカスケードのレベルごとに１つの分類器を備える、本発明の実施形態に焦点を当てた。以下に詳細に説明される、カスケードの他の実施形態は、レベル当たり複数の分類器を含み得る。平易にするために、以下の考察では、訓練コーパスは、それぞれ、マル印、バツ印として図に示される、２つの異なるクラスＡ、クラスＢ（例えば、悪意のあると害のない）に事前分類されると考える。このようなコーパス上で訓練された、典型的な分類器カスケードは、カスケードの各レベルｉ＝１、２、．．．、ｎに対して、２つの異なる分類器、Ｃｉ（Ａ）およびＣｉ（Ｂ）を備え得る。当業者であれば、この説明を他のタイプのカスケードおよび／または訓練コーパスにどのように適応させるかを理解するであろう。例えば、カスケードが、各レベルにおいて、訓練コーパスのレコードのクラスごとに少なくとも１つの分類器を備えてもよい。別の例では、カスケードの各レベルが、訓練コーパスのクラスのカウントに関係なく、それぞれが個々のクラスのレコードを優先的に特定するように訓練される、２つの分類器を備えてもよい。また別の例では、分類器のカウントが、カスケードのレベルごとに異なってもよい。
【００５１】
[0068]図１１−Ａは、本発明のいくつかの実施形態による、２クラスの訓練コーパスと、それぞれのコーパス上で訓練された２つの分類器とを示す。例えば、図１１−Ａは、カスケードの第１のレベル（ｉ＝１）の訓練を示し得る。分類器Ｃ１（Ａ）は、グループのうちの１つのグループ（本明細では、分類器Ｃ１（Ａ）の好ましいグループと見なされる）におけるかなりの割合のレコードがクラスＡに属するように、その時のコーパスを２つのグループに分けるように訓練される。図１１−Ａの例では、分類器Ｃ１（Ａ）を訓練することは、特徴空間の好ましい領域４５ｄにおけるかなりの割合（ｐｒｏｐｏｒｔｉｏｎ）のレコードがクラスＡ（マル印）に属するように、境界４４ｄのパラメータを調整することを含む。分類器Ｃ１（Ｂ）は、それぞれのカスケードレベルの他のすべての分類器と同じコーパス、すなわち、Ｃ１（Ａ）を訓練するために使用されたコーパスと同じコーパス上で訓練される。分類器Ｃ１（Ｂ）は、分類器Ｃ１（Ｂ）の好ましいグループにおけるかなりの割合のレコードがクラスＢに属するように、その時のコーパスを別の一対のレコードグループに分けるように訓練される。分類器Ｃ１（Ｂ）を訓練することは、特徴空間の好ましい領域４５ｅにおけるかなりの割合（ｐｒｏｐｏｒｔｉｏｎ）のレコードがクラスＢ（バツ印）に属するように、境界４４ｅのパラメータを調整することを含み得る。
【００５２】
[0069]図１１−Ｂは、カスケードの後続のレベル（例えば、ｉ＝２）を訓練することを示す。第２のレベルの分類器Ｃ２（Ａ）およびＣ２（Ｂ）は、縮小化訓練コーパス上で訓練される。示されている例では、分類器Ｃ１（Ａ）およびＣ１（Ｂ）の好ましいグループ内のすべてのレコードは、分類器Ｃ２（Ａ）およびＣ２（Ｂ）を訓練するための準備に、訓練コーパスから捨てられている。一般に、分類器Ｃ１（Ａ）およびＣ１（Ｂ）の好ましいグループのサブセットが、Ｃ１（Ａ）およびＣ１（Ｂ）を訓練するために使用されたコーパスから捨てられ得る。分類器Ｃ２（Ａ）は、かなりの割合がクラスＡに属するのが、いずれの好ましいレコードグループかを特定するように訓練される。それぞれのカスケードレベルの他の分類器、Ｃ２（Ｂ）は、かなりの割合がクラスＢに属するのが、いずれの好ましいレコードグループかを特定するように訓練される。図１１−Ｂにおいて、分類器Ｃ２（Ａ）およびＣ２（Ｂ）の好ましいグループは、それぞれ、特徴空間の領域４５ｆ、４５ｇ内にある。
【００５３】
[0070]図１２は、本発明のいくつかの実施形態による、レベル当たり複数の分類器を備える分類器カスケードを訓練するために、トレーナ４２（図４）によって行われる、典型的な一連のステップを示す。訓練コーパスを入力した後（ステップ３３２）、一連のステップ３３４〜３６０が、各ループがカスケードの個々のレベルを訓練するように行われる、ループで繰り返される。また、示されている例は、レベル当たり２つの分類器を訓練することを示すが、所与の説明は、本発明の範囲から逸脱することなく、他の構成に容易に適応され得る。
【００５４】
[0071]分類器Ｃｉ（Ａ）のタイプを選択した後（ステップ３３６）、一連のステップ３３８、３４０、および３４２において、トレーナ４２は、かなりの割合（例えば、９９％を超える）がクラスＡに属するのが、いずれの好ましいレコードグループかを見分けるように、分類器Ｃｉ（Ａ）を訓練する。さらに、訓練された分類器は、いくつかの品質基準を満たすよう要求され得る。このような基準の例については、図６に関する上記を参照されたい。訓練基準が満たされると、ステップ３４４は、分類器Ｃｉ（Ａ）のパラメータを保存する。
【００５５】
[0072]一連のステップ３４６〜３５４は、分類器Ｃｉ（Ｂ）が、かなりの割合（例えば、９９％を超える）がクラスＢに属するのが、いずれの好ましいレコードグループかを見分けるように訓練されることを除き、分類器Ｃｉ（Ｂ）の同様の訓練を行う。ステップ３５６において、トレーナ４２は、カスケードのその時のレベルの分類器が、その時の訓練コーパスを完全に分類しているか否かを確認する。レベル当たり複数の分類器の場合、完全な分類は、クラスＡに属するその時の訓練コーパスのすべてのレコードが分類器Ｃｉ（Ａ）の好ましいグループにあり、クラスＢに属するその時の訓練コーパスのすべてのレコードが分類器Ｃｉ（Ｂ）の好ましいグループにあるという状況に対応し得る。イエスの場合、訓練は終了する。
【００５６】
[0073]その時のカスケードレベルが完全な分類を達成しない場合、一連のステップ３５８および３６０において、トレーナ４２は、分類器Ｃｉ（Ａ）およびＣｉ（Ｂ）の好ましいグループからレコードセットを選択し得、このようなレコードを、カスケードの次のレベルに進む前に、訓練コーパスから取り除き得る。
【００５７】
[0074]図１３は、カスケードがレベル当たり複数の訓練された分類器を備える本発明の実施形態において、訓練されたカスケードを使用して、不明の対象オブジェクトを分類するために、セキュリティアプリケーション５２によって行われる典型的な一連のステップを示す。ステップ３７２は、対象オブジェクトを選択する（図１０に関する上記の考察も参照）。対象オブジェクトの成功した分類が達成されるまで、一連のステップ３７４〜３９４が、ループの各インスタンスが、カスケードの連続するレベルに対応する、ループで繰り返される。このように、いくつかの実施形態において、カスケードの分類器は、それらが訓練された順番で、すなわち、カスケード内のそれらのそれぞれのレベルの順番に鑑みて、見つけるために使用される。
【００５８】
[0075]ステップ３７６は、対象オブジェクトに分類器Ｃｉ（Ａ）を適用する。Ｃｉ（Ａ）が対象オブジェクトをその好ましいクラス（クラスＡ）に入れると、ステップ３８２は、ステップ３４８に進む前に、クラスＡに属するとして、対象オブジェクトにラベル付けする。ステップ３８４は、レベルｉの別の分類器、例えば分類器Ｃｉ（Ｂ）を対象オブジェクトに適用する。分類器Ｃｉ（Ｂ）が対象オブジェクトをその好ましいクラス（クラスＢ）に入れると、ステップ３８８は、対象オブジェクトに、クラスＢに属するとしてラベル付けする。ノーの場合、ステップ３９２は、その時のカスケードレベルの分類器が、対象オブジェクトを、例えば、クラスＡまたはＢのいずれかに属するとして、成功裡に分類したか否かを確認する。イエスの場合、分類は終了する。ノーの場合、その時のカスケードレベルの分類器は、対象オブジェクトを成功裡に分類しており、セキュリティアプリケーション５２は、次のカスケードレベルに進む（ステップ３７４）。カスケードがさらなるレベルを何も含んでいない場合、ステップ３９４において、アプリケーション５２は、対象オブジェクトに害のないとしてラベル付けし、対象オブジェクトのフォールスポジティブの分類を回避し得る。代替的な実施形態において、ステップ３９４は、対象オブジェクトに不明としてラベル付けし得る。
【００５９】
[0076]ステップ３９０は、カスケードのその時のレベルの１つより多い分類器が、対象オブジェクトをその好ましいクラス内に置いたか否かを判定する（例えば、図１３において、ステップ３８０および３８６の両方がイエスに戻った場合）。ノーの場合、セキュリティアプリケーション５２は、上に説明されたステップ３９２に進む。イエスの場合、対象オブジェクトは、害のないまたは不明としてラベル付けされ、フォールスプポジティブの分類を回避し得る。
【００６０】
[0077]上に説明された典型的なシステムおよび方法は、コンピュータセキュリティシステムが、とりわけマルウェア検出、スパム検出、および詐欺検出を含むアプリケーションに対して、訓練された分類器のカスケードを使用して対象オブジェクトを自動的に分類することを可能にする。カスケードは、とりわけ人工ニューラルネットワーク（ＡＮＮ）、サポートベクターマシン（ＳＶＭ）、クラスタ化分類器、および決定木分類器など、様々な分類器タイプを備え得る。場合によっては多数のレコード（例えば、何百万もの）から成る、事前分類された訓練コーパスが、分類器を訓練するために使用される。いくつかの実施形態において、カスケードの個々の分類器が所定の順番で訓練される。分類段階では、カスケードの分類器は、それらが訓練されたと同じ順番で使用され得る。
【００６１】
[0078]カスケードの各分類器は、グループのうちの１つのグループ内のかなりの割合（ｐｒｏｐｏｒｔｉｏｎ）（例えば、すべて）のレコードが同一のラベルを有するように、すなわち、同じクラスに属するように、その時のレコードコーパスを少なくとも２つのクラスに分けるように構成され得る。いくつかの実施形態において、カスケードの次のレベルから分類器を訓練する前に、それぞれのグループ内のレコードのサブセットが訓練コーパスから捨てられる。
【００６２】
[0079]大きな高次元のデータセット上で分類器を訓練することに関連する困難さは、当技術分野においてうまく、文書化されている。このような訓練は、計算に関して費用がかさみ、通常、誤分類されたレコードのサブセットを生み出す。コンピュータセキュリティアプリケーションでは、フォールスポジティブ（害のないレコードが、脅威を引き起こすとして誤って特定される）は、それらが、ユーザに対する生産性の損失および／またはデータの損失につながる可能性があることから、特に望ましくない。例えば、コンピュータセキュリティアプリケーションは、悪意のあるとして間違って分類された害のないファイルへのユーザのアクセスを制限するか、またはそのファイルを削除まですることもある。誤分類を少なくする１つの従来の戦略は、訓練された分類器の精巧化を高めること、および／または、例えば、このような誤分類にペナルティを科す精巧化されたコスト関数を導入することによって、既存の訓練アルゴリズムを複雑化することである。
【００６３】
[0080]これに対し、本発明のいくつかの実施形態は、大きなデータセット上でも訓練するのが比較的速い、パーセプトロンなどの基本的な分類器を使用することを可能にする。訓練の速さは、マルウェアの速いペースの進化により、毎日、大量のデータ（例えば、何百万もの新しいサンプル）を処理する必要のあるコンピュータセキュリティアプリケーションにおいて、特に重要であり得る。さらに、１つの精巧化された分類器を使用する代わりに、いくつかの実施形態は、カスケードとして編成された（すなわち、所定の順番で使用されるように構成された）複数の分類器を使用して、誤分類を少なくする。カスケードのそれぞれの訓練された分類器は、領域がそれぞれの分類器に固有である、特徴空間のある領域にあるレコードに正しくラベル付けすることにおいて信頼でき得る。
【００６４】
[0081]いくつかの実施形態において、訓練は、カスケードの連続するレベルを訓練する間において、訓練コーパスからレコードセットを捨てることによって、さらに加速される。いくつかのタイプの分類器を訓練する費用が、コーパスのレコードのカウント（例えば、オーダーＮｌｏｇＮまたはＮ２、ここで、Ｎは、レコードのカウント）に大きく左右されることが、当技術分野においてよく知られている。この問題は、通常、非常に大きな訓練コーパスを必要とする、コンピュータセキュリティアプリケーションにおいて、特に重大である。本発明のいくつかの実施形態による、訓練コーパスのサイズを徐々に縮小させることは、コンピュータセキュリティ用の分類器を訓練する計算面での費用を劇的に縮小し得る。カスケードのレベルごとに１つより多い分類器を使用することは、訓練コーパスのさらにいっそうの効率的な枝刈りを可能にし得る。
【００６５】
[0082]一般的にブースティングとして知られている、いくつかの従来の訓練戦略も、訓練コーパスのサイズを縮小する。当技術分野において知られているこのような例の１つでは、訓練時に分類器によって繰り返し誤分類されたレコードセットは、それぞれの分類器のパフォーマンスを高めるために、訓練コーパスから捨てられる。このような従来の方法に対して、本発明のいくつかの実施形態は、訓練時に分類器によって正しく分類されたレコードセットを、訓練コーパスから取り除く。
【００６６】
[0083]上記の実施形態が、本発明の範囲から逸脱することなく多くの方法において改められ得るということが、当業者には明らかになるであろう。したがって、本発明の範囲は、以下の特許請求の範囲およびそれらの正当な対応特許によって定められるべきである。
【図１】
0006563523.tif 000002
【図２】
0006563523.tif 000003
【図３】
0006563523.tif 000004
【図４】
0006563523.tif 000005
【図５−Ａ】
0006563523.tif 000006
【図５−Ｂ】
0006563523.tif 000007
【図５−Ｃ】
0006563523.tif 000008
【図６】
0006563523.tif 000009
【図７−Ａ】
0006563523.tif 000010
【図７−Ｂ】
0006563523.tif 000011
【図８】
0006563523.tif 000012
【図９】
0006563523.tif 000013
【図１０】
0006563523.tif 000014
【図１１−Ａ】
0006563523.tif 000015
【図１１−Ｂ】
0006563523.tif 000016
【図１２】
0006563523.tif 000017
【図１３】
0006563523.tif 000018