(57)【要約】【課題】  スパムフィルタのリバースエンジニアリングを妨げ、かつ／またはほぼ常にスパムフィルタを通り抜けるメッセージをスパマーが見つけるのを抑えるようにするシステムおよび方法を提供すること。【解決手段】  システムは、スパムフィルタの機能を不明瞭にするために、メッセージがスパムまたは非スパムとして分類される前にメッセージの得点を無作為化する無作為化構成要素を含む。メッセージの得点の無作為化は、一部には、メッセージがスパムまたは非スパムと分類される前に、乱数または擬似乱数をメッセージの得点に加えることによって達成することができる。加えられる数字は、時間、ユーザ、メッセージの内容、メッセージの内容のハッシュ、およびメッセージの特に重要な特徴のハッシュなどいくつかの入力のタイプのうちの少なくとも１つによって変わり得る。最適な単一のスパムフィルタではなく、複数のスパムフィルタを配置することができる。【選択図】  図１
2005011326.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のスパムフィルタと、
スパムフィルタの機能を不明瞭にして、前記１つまたは複数のスパムフィルタのリバースエンジニアリングを抑える無作為化構成要素と
を含むことを特徴とするスパムフィルタリングシステム。
【請求項２】
前記無作為化構成要素は、前記フィルタの得点を無作為化して、閾値に近くかつ阻止または配信されたメッセージの一方から変化したメッセージが、メッセージへの修正および無作為化構成要素のうちのどちらにより、変わったかをスパマーが決定しにくくすることを特徴とする請求項１に記載のシステム。
【請求項３】
前記無作為化構成要素は、乱数および擬似乱数の少なくとも一方を生成する乱数ジェネレータを含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記無作為構成要素は、１つまたは複数の入力構成要素を含み、前記１つまたは複数の入力構成要素により前記乱数ジェネレータに入力を提供して、特定のメッセージのためにどの乱数を生成するかを決定するのを助けることを特徴とする請求項３に記載のシステム。
【請求項５】
前記無作為構成要素は、少なくとも一部について、１つまたは複数の入力構成要素から受信した入力に基づいて乱数を生成することを特徴とする請求項１に記載のシステム。
【請求項６】
前記１つまたは複数の入力構成要素からの前記入力は少なくとも一部において時間に基づくことを特徴とする請求項５に記載のシステム。
【請求項７】
生成された前記乱数は時刻および時間増分の少なくとも一方に応じて決まり、生成された前記数字は前記時刻および現在の時間増分のいずれか一方に従って変わることを特徴とする請求項６に記載のシステム。
【請求項８】
前記１つまたは複数の入力構成要素からの前記入力は、少なくとも一部について、ユーザ、受信者、および前記メッセージから受信するドメインの少なくとも１つに基づくことを特徴とする請求項５に記載のシステム。
【請求項９】
生成された前記乱数は、ユーザ、受信者、および前記メッセージを受信するドメインのうちの少なくとも１つに応じて決まり、生成された前記数字は、前記ユーザの識別、前記メッセージの前記受信者の識別、および前記メッセージを受信するドメインのいずれか１つに従って変わることを特徴とする請求項８に記載のシステム。
【請求項１０】
前記ユーザおよび前記受信者のいずれか一方の前記識別は、表示名および電子メールアドレスの少なくとも一部のうちの少なくとも一方を含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記１つまたは複数の入力構成要素からの前記入力は、少なくとも一部について、前記メッセージの内容に基づくことを特徴とする請求項５に記載のシステム。
【請求項１２】
生成された前記乱数は、前記メッセージの内容の少なくとも一部に応じて変わることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記メッセージの内容のハッシュを計算し、前記ハッシュ値を前記乱数として使用することにより、前記メッセージの内容へのわずかな変更でさえも、生成された前記乱数への実質的に大きな変更をもたらすことを特徴とする請求項１１に記載のシステム。
【請求項１４】
メッセージから抽出された特徴の少なくとも一部のハッシュを計算して、メッセージの得点を無作為化し、前記スパムフィルタの前記機能を無作為化するのを助けることを特徴とする請求項１１に記載のシステム。
【請求項１５】
前記ハッシュの計算に使用する前記特徴は、何らかの閾値より大きいそれぞれの個々の重みを有することを特徴とする請求項１４に記載のシステム。
【請求項１６】
送信者のＩＰアドレスのハッシュを計算してメッセージの得点を無作為化するのを助けることによって、前記スパムフィルタの前記機能を不明瞭にすることを特徴とする請求項１１に記載のシステム。
【請求項１７】
スパムと非スパムとの間の境界に接するメッセージに実質的な影響を与えて、前記メッセージの得点を無作為化することによって境界線近くのスパムであるメッセージが少なくともある時スパムとして分類されることを特徴とする請求項１に記載のシステム。
【請求項１８】
前記無作為化構成要素は、送信されるときはいつでも実質的にスパムフィルタを通り抜ける少なくとも１つのメッセージをスパマーが見つけるのを抑えることを特徴とする請求項１に記載のシステム。
【請求項１９】
前記スパムフィルタリングシステムは、
【数１】
2005011326.tif 000004
の式を有するシグモイド関数を使用し、スパマーの挙動を有効に修正し、前記フィルタリングシステムのリバースエンジニアリングを抑えるために、合計得点値および最終得点値のうちの少なくとも一方が無作為化されることを特徴とする請求項１に記載のシステム。
【請求項２０】
スパムフィルタのリバースエンジニアリングを抑え、実質的に常にスパムフィルタを通り抜ける１つのメッセージを見つけることを抑えるマルチフィルタスパムフィルタリングシステムであって、
メッセージを処理し、分類するための少なくとも第１のスパムフィルタおよび第２のスパムフィルタを含む複数のスパムフィルタと、
少なくとも第１のユーザおよび第２のユーザを含む複数のユーザと、
前記複数のユーザの少なくとも１人が使用するために配置されるように１つまたは複数のフィルタを選択するフィルタ選択構成要素と
を含むことを特徴とするマルチフィルタスパムフィルタリングシステム。
【請求項２１】
少なくとも一部について時刻および時間増分のいずれかに基づいてそれぞれのユーザのために前記複数のフィルタのうちの１つまたは複数が選択され、配置されるように、前記フィルタ選択構成要素と通信する時間入力構成要素をさらに含むことを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記時間増分は、秒、分、時間、日、週、月、および年のうちの任意の数字であることを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記フィルタ選択構成要素は、前記１つまたは複数のフィルタを無作為に選択することを特徴とする請求項２０に記載のシステム。
【請求項２４】
前記フィルタ選択構成要素は、前記１つまたは複数のフィルタを作為的に選択することを特徴とする請求項２０に記載のシステム。
【請求項２５】
前記フィルタ選択構成要素は、少なくとも一部について、前記それぞれのユーザ、前記送信者のドメイン、前記フィルタリングシステムを稼働させているドメイン、および前記メッセージを受信するドメインのうちの少なくとも１つに基づいて前記それぞれのユーザに対して配置されるように前記１つまたは複数のフィルタを選択することを特徴とする請求項２０に記載のシステム。
【請求項２６】
前記ユーザは、前記メッセージの受信者であることを特徴とする請求項２０に記載のシステム。
【請求項２７】
前記複数のスパムフィルタの少なくとも一部は、機械学習システムを介してトレーニングデータのうちの１組または複数組を使用してトレーニングされることを特徴とする請求項２０に記載のシステム。
【請求項２８】
前記トレーニングデータは、メッセージから抽出された特徴に対応することを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記メッセージから抽出された前記特徴の少なくとも一部に、強制的に特定の値を持たせるようにすることを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記メッセージから抽出された前記特徴の少なくとも一部は、前記トレーニングデータから除外されることを特徴とする請求項２８に記載のシステム。
【請求項３１】
前記メッセージから抽出された前記特徴の少なくとも一部は特徴のタイプによってクラスタ化され、個々のフィルタのトレーニングにデータの各クラスタが使用されることを特徴とする請求項２８に記載のシステム。
【請求項３２】
前記複数のユーザのうちの少なくとも一部は、前記特徴タイプのクラスタに関連するユーザタイプによってクラスタ化され、ユーザに前記ユーザタイプに対応するスパムフィルタが使用されることを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記第１のフィルタはトレーニングデータの少なくとも第１のサブセットを使用してトレーニングされ、前記第２のフィルタはトレーニングデータの少なくとも第２のサブセットを使用してトレーニングされ、トレーニングデータの前記第２のサブセットの少なくとも一部は、トレーニングデータの前記第１のサブセットの少なくとも一部と重複していないことを特徴とする請求項２０に記載のシステム。
【請求項３４】
前記メッセージをスパムまたは非スパムと分類する前に異なる複数の基準および／またはメッセージの特徴が検査されるように、前記第１のフィルタおよび前記第２のフィルタを併せて使用するように配置することを特徴とする請求項３３に記載のシステム。
【請求項３５】
メッセージをスパムフィルタに通すステップと、
前記メッセージに関連する少なくとも１つの得点を計算するステップと、
前記メッセージをスパムまたは非スパムとして分類する前に、前記メッセージの前記得点を無作為化するステップと、
前記メッセージをスパムまたは非スパムとして分類するステップと
を含むことを特徴とするスパムフィルタの不明瞭化を助ける方法。
【請求項３６】
前記メッセージに関連する前記少なくとも１つの得点は、最終得点および合計得点を含むことを特徴とする請求項３５に記載の方法。
【請求項３７】
前記合計得点は、メッセージから抽出された個々の特徴に関連するすべての得点の合計であることを特徴とする請求項３６に記載の方法。
【請求項３８】
前記最終得点は、前記合計得点のシグモイド関数であり、メッセージがスパムまたは非スパムである確率を示す０から１までの値に対応することを特徴とする請求項３６に記載の方法。
【請求項３９】
前記メッセージの前記得点を無作為化するステップは、乱数および擬似乱数のうちの少なくとも一方を前記メッセージの前記得点に加えるステップを含むことを特徴とする請求項３５に記載の方法。
【請求項４０】
前記メッセージの前記得点に加えられる前記数字は、少なくとも一部について
時刻と、
時間増分と
のうちの少なくとも一方に応じて決まることを特徴とする請求項３９に記載の方法。
【請求項４１】
前記メッセージの前記得点に加えられる前記数字は、少なくとも一部について
ユーザと、
前記メッセージの受信者と、
前記メッセージを受信するドメインと、
前記送信者のドメインと、
前記フィルタを稼働させる機械名と
のうちの少なくとも１つに応じて決まることを特徴とする請求項３９に記載の方法。
【請求項４２】
前記メッセージの前記得点に加えられる前記数字は、少なくとも一部について
前記メッセージの内容のハッシュと、
前記メッセージから抽出された特徴の少なくとも一部のハッシュと
のうちの少なくとも１つに応じて決まることを特徴とする請求項３９に記載の方法。
【請求項４３】
前記ハッシュの計算に使用する前記特徴は、０より大きい重みをそれぞれ有することを特徴とする請求項４２に記載の方法。
【請求項４４】
前記ハッシュの計算に使用する前記特徴は、時刻および時間増分の少なくとも一方に応じて無作為または作為的に変わり得ることを特徴とする請求項４２に記載の方法。
【請求項４５】
前記メッセージの前記得点に加えられる前記数字は、少なくとも一部について、送信者のＩＰアドレスのハッシュに応じて決まることを特徴とする請求項３９に記載の方法。
【請求項４６】
前記メッセージの前記得点に加えられる前記数字は、１つまたは複数の入力構成要素からの入力に応じて決まることを特徴とする請求項３９に記載の方法。
【請求項４７】
前記スパムフィルタのリバースエンジニアリングを抑え、前記フィルタを常に通り抜ける特定のメッセージをスパマーが見つけるのを抑えるように、複数のスパムフィルタを複数のユーザにわたって配置するステップを含むことを特徴とするスパムを最低限に抑えるための方法。
【請求項４８】
前記複数のスパムフィルタの少なくとも一部を配置するステップは、時刻および時間増分のうちの少なくとも一方に応じて決まることを特徴とする請求項４７に記載の方法。
【請求項４９】
前記複数のスパムフィルタの少なくとも一部を配置するステップは、前記スパムフィルタを使用する少なくとも１人または複数のユーザに応じて決まることを特徴とする請求項４７に記載の方法。
【請求項５０】
前記複数のスパムフィルタの少なくとも一部を配置するステップは、メッセージの内容のハッシュおよび前記メッセージのサイズの少なくとも一方に応じて決まることを特徴とする請求項４７に記載の方法。
【請求項５１】
前記複数のスパムフィルタのうちの少なくとも一部を選択して無作為に配置することをさらに含むことを特徴とする請求項４７に記載の方法。
【請求項５２】
前記複数のスパムフィルタのうちの少なくとも一部を選択して作為的に配置することをさらに含むことを特徴とする請求項４７に記載の方法。
【請求項５３】
前記複数のスパムフィルタは、機械学習プロセスを介してトレーニングデータの組でトレーニングされることを特徴とする請求項４７に記載の方法。
【請求項５４】
前記スパムフィルタをトレーニングするステップは、
トレーニングデータの組を作成するステップと、
トレーニングデータの少なくとも第１のサブセットを使用して少なくとも第１のスパムフィルタをトレーニングするステップと、
トレーニングデータの少なくとも第２のサブセットを使用して少なくとも第２のスパムフィルタをトレーニングして、それによって前記第２のサブセットがトレーニングデータの前記第１のサブセットと同等にならないようにするステップと
を含むことを特徴とする請求項５３に記載の方法。
【請求項５５】
前記スパムフィルタをトレーニングするステップは、
ユーザタイプのクラスタに対応するように、タイプによってトレーニングデータをクラスタ化するステップと、
少なくとも第１のフィルタをデータの第１のクラスタでトレーニングするステップと、
少なくとも第２のフィルタをデータの第２のクラスタでトレーニングするステップと
を含むことを特徴とする請求項５３に記載の方法。
【請求項５６】
前記第１のフィルタは、関連するタイプのクラスタに属するユーザに対して配置されることを特徴とする請求項５５に記載の方法。
【請求項５７】
請求項３５に記載の方法を含むことを特徴とするコンピュータ可読媒体。
【請求項５８】
請求項４７に記載の方法を含むことを特徴とするコンピュータ可読媒体。
【請求項５９】
前記１つまたは複数のスパムフィルタのリバースエンジニアリングを抑えるようにスパムフィルタの機能を不明瞭にする無作為化構成要素
のコンピュータ実行可能構成要素を格納することを特徴とするコンピュータ可読媒体。
【請求項６０】
前記無作為化構成要素は前記フィルタの得点を無作為化することを特徴とする請求項５９に記載のコンピュータ可読媒体。
【請求項６１】
前記無作為化構成要素は、乱数および擬似乱数の少なくとも一方を生成する乱数ジェネレータを含むことを特徴とする請求項５９に記載のコンピュータ可読媒体。
【請求項６２】
メッセージをスパムフィルタに通すための手段と、
前記メッセージに関連する少なくとも１つの得点を計算するための手段と、
前記メッセージをスパムまたは非スパムとして分類する前に、前記メッセージの前記得点を無作為化するための手段と、
前記メッセージをスパムまたは非スパムとして分類するための手段と
を含むことを特徴とするスパムフィルタの不明瞭化を助けるシステム。
【請求項６３】
前記スパムフィルタのリバースエンジニアリングを抑え、スパマーが常に前記フィルタを通り抜ける特定のメッセージを見つけるのを抑えるように、複数のユーザにわたって複数のスパムフィルタを配置するための手段を含むことを特徴とするスパムを最低限に抑えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スパムの送信を低減するシステムおよび方法に関し、より詳細には、スパムフィルタのリバースエンジニアリングを妨げ、かつ／またはスパムフィルタのパフォーマンスをスパマーがモデリングし、予測するのを抑えることに関する。
【背景技術】
【０００２】
インターネットなどグローバルな通信ネットワークの出現によって、膨大な数の潜在顧客を得られるビジネスチャンスが与えられている。電子メッセージ通信、および特に電子メールは、次第にネットワークユーザに不要な広告および宣伝をばらまく手段（「スパム」とも呼ぶ）として広がる傾向にある。
【０００３】
コンサルティングおよび市場調査会社であるＲａｄｉｃａｔｉ  Ｇｒｏｕｐ．Ｉｎｃ．の概算によると、２００２年８月の時点で、毎日２０億のジャンクメールメッセージが送信されている。この数字は、２年ごとに３倍になると予測されている。個人およびエンティティ（企業、政府機関など）は、次第にジャンクメッセージに迷惑し、しばしば不快に感じるようになってきている。したがってスパムは、現在または間もなく信頼できるコンピュータの使用を脅かすものとなる。
【０００４】
スパムを阻止するために使用する一般的な技術は、フィルタリングシステム／方法の利用を必要とする。実績のあるフィルタリング技術は、機械学習手法に基づくものである。機械学習フィルタは、着信メッセージに、メッセージがスパムである確率を割り当てる。この手法では、特徴は一般に２つのクラスのメッセージ例（例えばスパムメッセージおよび非スパムメッセージ）から抽出され、２つのクラスの間の差異を確率的に識別するために学習フィルタが適用される。多くのメッセージの特徴は内容（例えばメッセージの件名および／または本文の単語および句全体など）に関係するため、一般にこうしたタイプのフィルタを「内容ベースのフィルタ（ｃｏｎｔｅｎｔ−ｂａｓｅｄ  ｆｉｌｔｅｒ）」と呼ぶ。こうしたタイプの機械学習フィルタは、適切なメッセージからスパムメッセージを検出し、識別するために、一般に完全一致技術を使用する。
【０００５】
【特許文献１】米国特許第６，１６１，１３０号明細書
【特許文献２】米国特許第６，０２３，７２３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
残念ながらスパマーは、機械学習システムを使用するものを含めて、従来のスパムフィルタを回避する方法を絶えず見つけている。例えばスパマーは、数学的処理および連続的な電子メールの修正を使用して、スパムフィルタのパフォーマンスをテストし、予測する。さらに、一般の人々は、一般的なスパムフィルタがどのように動作するかを説明する多くの情報を入手可能である。中には、特定のフィルタにメッセージを通し、そうしたフィルタのそれぞれの判定を戻すことを申し出るインターネットサービスさえある。したがってスパマーは、様々な既知のスパムフィルタにスパムを通し、かつ／またはメッセージがフィルタをうまく通り抜けるまでそのメッセージを修正する機会に恵まれる。上記のことを考えると、こうした従来のフィルタが提供するスパムに対する防護は限られている。
【課題を解決するための手段】
【０００７】
本発明の一部の態様を基本的に理解できるようにするために、以下に本発明の簡単な概略を示す。この概略は、本発明の広範にわたる概要を示すものではない。本発明の鍵となる／重要な要素を識別するためのもの、または本発明の範囲を画定するためのものではない。単に、後述するより詳細な説明の前置きとして、本発明の一部の概念を簡単な形式で提示するためのものである。
【０００８】
従来の機械学習スパムフィルタは、スパマーによるリバースエンジニアリングが可能であり、それによってスパマーは、フィルタに捕らえられないメッセージを見つけることができる。さらに、スパムフィルタがユーザに関係なく常に同じメッセージを捕らえる場合、スパマーは、試行錯誤により、通り抜けるメッセージを容易に見つけることができる。そのメッセージを見つけた後、スパマーは、フィルタを活用して潜在的に何百万もの人々にメッセージを送信することができる。何らかの方法によるスパムフィルタの修正がなければ、この形式のスパマーの策略を永久に続行することができる。
【０００９】
発明主題は、スパムフィルタの不明瞭化を容易にし、それによりスパマーがリバースエンジニアリングを行うことがより難しくなり、かつ／またはフィルタを常に通り抜けるメッセージを見つけることがより難しくなるシステムおよび方法を提供する。本発明は本質的に、スパムフィルタの挙動を修正する方法を提供する。これは、一部にはスパムフィルタリングプロセスに無作為化の要素を追加することによって達成することができる。
【００１０】
従来のスパムフィルタの大部分は、メッセージを処理し、メッセージに対するある種の得点を戻す。これは、メッセージの確率、独断の得点、メッセージの確率のログ、現在のメッセージと非スパムメッセージとの間の一致の度合い、または他の任意の数字とすることができる。ある閾値を上回る得点は、何らかの方法でスパムとしてラベル付けされる。こうしたラベルには、それだけには限定されないが、削除、特殊フォルダへの移動、チャレンジ（ｃｈａｌｌｅｎｇｅ）、および／またはマークなどがある。したがって、スパムフィルタリングプロセスの挙動を修正する手法の１つは、メッセージの得点の無作為化を含む。無作為化は、それだけには限定されないが、得点に何らかの数字を加える、および／または得点に例えば１．１や０．９など何らかの因数を掛けることを含む。
【００１１】
無作為化の実行の第２の手法は、時間の使用を含む。より具体的には、メッセージの得点に加えられる乱数が現在の時刻または現在の時間増分とともに変わる、かつ／またはそれに応じて決まる。例えば、１５分ごと、または所望の他の任意の時間増分ごとに異なる乱数を使用するように無作為化をプログラムすることができる。あるいは、時刻の変化とともに乱数を変えることもできる。その結果、スパマーは、例えば（スパムと見なされるか非スパムと見なされるかの）閾値付近にあるもので、通り抜けるのを阻止されていたが、わずかな（例えばマイナーな）修正を加えた後フィルタを通り抜けるようになったメッセージが修正によって変わったのか、任意の要因によって変わったのかを決定するのが難しいことがわかる。
【００１２】
フィルタの無作為化の第３の手法は、一部には、メッセージを受信するユーザおよび／またはドメインに応じて決まる。例えば、ユーザに応じて決まる乱数を使用することによって、スパマーは、他のユーザではなく、テストユーザにしか届かないメッセージを見つけることになる。したがってスパマーは、メッセージをテストするためにより負担がかかることになる。
【００１３】
メッセージの内容は、本発明による無作為化の別の態様である。例えば、乱数を、少なくとも一部メッセージの内容に基づいて算出することができる。関連の技術はハッシュ法である。メッセージのハッシュは、内容から確定的に生成される擬似乱数であり、したがって内容へのわずかな変更によってハッシュに大きな変更がもたらされるようになる。スパマーがメッセージをリバースエンジニアリングしようと試みる場合、メッセージの内容のわずかな変更によって、メッセージの得点に相対的に大きな変更がもたらされる。あるいは、またはそれに加えて、メッセージの得点へのその寄与（ｃｏｎｔｒｉｂｕｔｉｏｎｓ）が閾値を上回るメッセージの特定の特徴を抽出し、ハッシュすることができる。次いでこのハッシュを、乱数ジェネレータに入力として使用し、それによって最も重要な特徴の寄与をより見つけにくくすることができる。
【００１４】
無作為化をスパムフィルタリングのプロセスに追加することはできるが、制御されたやり方で行うことが重要であることにさらに注意されたい。特に、スパムフィルタがたまに明らかにスパムであるメッセージを通過させると、道理にかなったユーザは憤慨することになる。逆に、明らかに適切なメッセージがたまにスパムとしてタグ付けされると、道理にかなったユーザは再度憤慨することになる。したがって、発明主題は、スパムまたは非スパムの境界に「近い」メッセージに影響を与えるのを助ける。言い換えれば、フィルタリングプロセスの無作為化は、明らかにスパムである、または明らかに非スパムであるメッセージには本質的に影響を与えない。代わりに、非スパムとスパムの間の閾値付近および／または閾値のメッセージのフィルタリングに影響を与える。
【００１５】
最後に、最適な単一のスパムフィルタを使用する代わりに、複数のスパムフィルタを使用して、スパマーによるスパムフィルタのパフォーマンスのモデリングおよび予測を妨げることができる。複数のスパムフィルタを使用することによって、メッセージをスパムまたは非スパムとして分類する前に、メッセージの異なる側面が強制的に検査される。したがって、あるフィルタをリバースエンジニアリングしたり、あるフィルタを通り抜けるメッセージを見つけたりするスパマーが必ずしも異なるフィルタを通り抜けられるとは限らない。さらに、メッセージを処理し、分類するのにどのフィルタを使用するかの選択は、本明細書で上述した無作為化の技術のいずれか、またはその組合せを含み得る。
【００１６】
上記および関連の目的を達成するために、本発明のいくつかの態様の例を、上記の説明および添付の図面との関連で本明細書に記載している。しかし、これらの態様は、本発明の原理を使用し得る様々な方法の極一部を示しているにすぎず、本発明は、こうしたすべての態様およびその均等物を含む。本発明の他の利点および新規の特徴は、本発明の以下の詳細な説明を図面と併せ読めば明らかになる。
【発明を実施するための最良の形態】
【００１７】
次に、本発明を図面との関連で説明する。図中、図面を通じて同様の要素には同様の参照番号を付す。以下の説明では、説明上、本発明を完全に理解できるようにするために様々な特定の詳細を記載している。しかし、こうした特定の詳細なしに本発明を実施できることは明らかである。他の例では、本発明を説明しやすくするために、よく知られている構造および装置をブロック図の形式で示している。
【００１８】
本出願で使用する場合、「構成要素」および「システム」という用語は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すものとする。例えば、構成要素は、それだけには限定されないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができる。例として、サーバ上で動作するアプリケーションおよびサーバはいずれも構成要素である。１つまたは複数の構成要素がプロセスおよび／または実行スレッド内に存在していてもよく、１つの構成要素を１つのコンピュータ上に配置する、および／または２つ以上のコンピュータ間に分散することもできる。
【００１９】
発明主題は、機械学習したスパムフィルタリングのためのトレーニングデータの生成に関連して、様々な推論方式および／または技術を組み込む。本明細書で使用する場合、「推論」という用語は一般に、イベントおよび／またはデータを介して捕捉された１組の観察結果からシステム、環境、および／またはユーザの状態について推理または推論する過程を指す。例えば、推論を使用して特定の内容または動作を識別する、または状態にわたる確率分布を生成することができる。推論は、確率的、つまりデータおよびイベントの考慮に基づいた対象の状態にわたる確率分布の算出とすることができる。また推論は、１組のイベントおよび／またはデータから上位レベルのイベントを作り上げるために使用する技術を指す。こうした推論によって、複数のイベントが時間的にごく近接して相関していようといまいと、またイベントおよびデータが派生したイベントおよびデータソースが１つであろうと複数であろうと、１組の観察されたイベントおよび／または格納されたイベントデータから新しいイベントまたは動作が構築される。
【００２０】
メッセージという用語は、本明細書を通じて広範に使用されているが、こうした用語は、電子メール自体に限定されるものではなく、適切に変更して、適した任意の通信アーキテクチャにわたって配信することができる任意の形式の電子メッセージ通信を含むようにすることができることを理解されたい。例えば、２人以上の間の会議を助ける会議アプリケーション（対話式チャットプログラム、インスタントメッセージ用プログラムなど）でも、本明細書に開示したフィルタリングの利点を利用することができる。というのは、ユーザがメッセージを交換するときに不要なテキストが通常のチャットメッセージに電子的に挿入される、かつ／または開始メッセージ、終了メッセージ、または上記のすべてとして挿入される可能性があるからである。この特定のアプリケーションでは、特定のメッセージ内容（テキストおよび画像）を自動的にフィルタするようにフィルタをトレーニングして、不要な内容（コマーシャル、宣伝、広告など）を捕捉し、ジャンクとしてタグ付けするようにすることができる。別のアプリケーション例には、セル方式の電話または同様の装置上のＳＭＳメッセージがある。
【００２１】
スパムフィルタの内部の仕組みを不明瞭にする多くの目的の１つは、フィルタがどのように動作するかの知識なしに、ほぼ常に通り抜けることを保証されているメッセージをスパマーが見つけるのを防ぐことである。別の目的は、スパマーがスパムフィルタの仕組みを理解するのを抑えて、スパマーがフィルタのリバースエンジニアリングを試みるのを妨げることである。これは特に、メッセージへのこうしたわずかな変更（メッセージのいくつかの単語または特徴の追加や削除など）が、フィルタがメッセージをスパムとして「見る」かどうかに影響を与えるような、スパムとの境界付近にあるメッセージに適用可能である。例えばスパマーは、「バイアグラ（登録商標）」などある単語を含むメッセージが常にスパムとして分類されることがわかると、メッセージをこの単語なしに巧みに作るだけでよい。したがって、本質的にリバースエンジニアリングの試行を妨げるスパムフィルタまたはスパムフィルタリングシステムを構築することが有利となる。
【００２２】
多くのスパムフィルタは、線形モデルを使用する。線形モデルでは、メッセージ内の単語などメッセージの特徴、およびメッセージが真夜中に送信されたかどうかなどの特殊な特徴が抽出される。各特徴に重みまたは得点が関連付けられる。メッセージに関連付けられたすべての重みの合計が計算されて、重みの合計（合計得点など）が得られる。重みの合計がある閾値を超える場合、特定のメッセージは、通り抜けられず、配信されない。逆に、重みの合計がある閾値を下回る場合、メッセージは受信者に到達し得る。
【００２３】
得点を次の式を有するシグモイド関数に通すなど、他のタイプのモデルをスパムフィルタに使用することができる。
【００２４】
【数１】
2005011326.tif 000003
【００２５】
これによって得点が０から１までのある数字に変換される（例えば最終得点と呼ぶ）。この数字をさらに、メッセージがスパムであるかどうかの決定を助けることができる確率に変換することができる。
【００２６】
しかし、スパムフィルタに使用するモデルまたは戦略に関わらず、スパマーは、メッセージから抽出された少なくとも１つの特徴に関連する採点方式の決定を試みることがある。スパマーは、異なる特徴を含む大量のメッセージを作成して、どのメッセージがスパムとして分類される（例えば配信を阻止される）か、どのメッセージがスパムとして分類されない（例えば受信者に配信される）かを調べることによってこれを決定することができる。最後にスパマーは、どの特徴の得点がこうした分類をもたらすことになるかを推定しようとする。
【００２７】
このタイプのスパマーの挙動を抑える１つの手法は、メッセージに関連付けられている実際の得点にノイズを有効に加えるための何らかのわずかな方法でメッセージに関連付けられている様々な得点のうちの少なくとも１つを修正することを含む。スコアの修正は、一部には、合計得点または最終得点またはその両方を無作為化することによって達成することができる。例えば一般のスパムフィルタでは、メッセージの最終得点をある（確率）閾値と比較して、そのメッセージがスパムであるか、非スパムよりスパム的であるかを決定することができる。したがって、それに乱数または疑似乱数を加えるまたは掛けることにより最終得点を修正することによって、ある閾値と比較したときに、以前は閾値内であったが、現時点では閾値を超えるように、最終得点値をあるわずかな量だけ有効に増減する。したがって、この時点で、総合得点のわずかな変更によりメッセージにスパムまたはスパム候補としてタグ付けすることができる。
【００２８】
あるいは、合計得点値は最終得点が閾値を超えるかどうかに影響を与えるため、それに対して同様の形式の修正を行うことができる。したがって、合計得点閾値または最終得点閾値に到達すると、メッセージは通り抜けられない可能性が大きい。さらに、スパムまたは非スパムの閾値付近のメッセージの得点にノイズを加えることによって、スパマーは、メッセージの現在の状況（スパム／非スパム、阻止／配信など）が何らかの無作為化の特徴によるものか、メッセージの内容の何らかの変更によるものかを決定するのが難しくなる。
【００２９】
次に図１を参照すると、本発明の一態様によるスパムフィルタの機能の不明瞭化を助けるスパムフィルタリングシステム１００の概略ブロック図を示している。システム１００は、スパムフィルタ１１０を含み、それによってメッセージ１２０を処理して、最終的にメッセージをスパム（またはスパム的）として分類するか、非スパム（または非スパム的）として分類するかを決定するメッセージの得点１３０が得られる。
【００３０】
より具体的には、スパムフィルタ１１０は、フィルタスコアリング構成要素１４０およびそれに動作可能に結合されている無作為化構成要素１５０を含む。フィルタスコアリング構成要素１４０は、メッセージ１２０がスパムであるかどうかの確率を評価する機械学習システムを使用することができる。フィルタは、メッセージの特定の特徴を調べて、メッセージのその評価を提供することができる。例えば、任意の発信情報に関連する特徴、およびメッセージの特定の内容に関連する特徴（埋め込み画像、ＵＲＬ、スパムの単語および／または句の特性など）を抽出し、分析することができる。結果として得られた得点は、次いで少なくとも一部について無作為化構成要素１５０によって変更することができる。
【００３１】
無作為化構成要素１５０は、１つまたは複数の入力構成要素１７０（例えば入力構成要素１１７２、入力構成要素２１７４から入力構成要素Ｎ１７６まで。この場合Ｎは１以上の整数）から入力を受信して、結果として得られた得点の値（例えばシグモイド関数が使用されている場合は合計得点および／または最終得点）の小さいまたはわずかな増減を引き起こすことができる乱数ジェネレータ１６０を含む。
【００３２】
入力構成要素１７０からの入力は、メッセージをスパムまたは非スパムとして分類する前の各得点へのある乱数または疑似乱数の加える形式とすることができる。このように、メッセージの得点が変更され、フィルタを通り抜けるメッセージを見つけたスパマーは、好ましい乱数により一時通り抜けるメッセージを見つけたにすぎない。例えば、特定のスパムメッセージに加えられた乱数が０．７であると想定する。この特定のメッセージの場合、０．７を加えることは、スパムメッセージの分類にわずかな影響しか与えない。したがって、メッセージは通り抜けることができる。次いでスパマーは、このメッセージを模して将来のスパムを作成することができる。しかし、それに加えられた乱数は常に変わり得るため、こうした将来のスパムメッセージは、スパマーには気づかれずに通り抜けられないことになる。さらに、スパマーは、前のメッセージは通り抜けたのに、最近のスパムメッセージはなぜ通り抜けられないのかを決定するのが難しい。
【００３３】
一方、乱数が１であると想定する。この乱数は、特定のスパムメッセージに不利に働くほど大きい。言い換えれば、数字１をスパムメッセージの得点に加えることによって、メッセージの合計得点または総合得点は、この時点である閾値を超える可能性がある。その結果、メッセージはスパムとして分類され、フィルタを通り抜けることができない。したがって乱数または疑似乱数を加えることによって、フィルタのリバースエンジニアリングが困難になる。というのは、メッセージの得点、またはメッセージがスパムとして分類されるかどうかは、メッセージへの軽微な修正と同時に変わるかもしれないし、変わらないかもしれないからである。したがって、送信者にとっては、メッセージが今回通り抜けたのは、メッセージへのマイナーな修正によるものか、好ましい乱数によるものかを断定できないままである。
【００３４】
別の形式の入力は、時間の使用を含み得る。例えば、日にちまたは時間に応じて決まる乱数を計算することによって、スパマーは、フィルタのリバースエンジニアリングのために長期間にわたって分類を行う必要がある。場合によっては、毎日など定期的に自動でフィルタを更新することができるため、例えば４時間ごとに変わる無作為化構成要素１５０を含むフィルタ自体は、スパマーがフィルタへのリバースエンジニアリングを行う前に変わり得る。つまり、例えば５分、１０分、１時間、および／または４時間の増分など、様々な時間増分で異なる乱数を使用するように乱数ジェネレータ１６０をプログラムすることができる。
【００３５】
さらにスパマーは、メッセージが最初の時間増分で現在通り抜けつつあることを見つけることがある。その直後、スパマーは、そのメッセージの２、３のコピーを送出して、さらにフィルタを「テスト」することができる。これらのメッセージが通り抜けたことがわかると、スパマーは、次いでそのメッセージを何百万も送信する。しかし、それを行うまでに、無作為化構成要素１６０は、別の入力構成要素１７０まで、したがって別の時間増分（例えば第２の時間増分）まで移動している。したがって、第２の時間増分で異なる乱数が加えられ、それによってスパムの境界付近のメッセージ、あるいはそれどころか前の乱数によりいったん非スパムとして分類されたメッセージに悪影響を及ぼす。その結果、ほんのわずかな割合のメッセージがフィルタの通り抜けに成功したスパマーは、メッセージへのわずかな変更によってメッセージがフィルタを通り抜けたのか、乱数が変わったのかを容易に決定することができない。
【００３６】
無作為化構成要素１５０によって生成された乱数に影響を与え得るさらに別のタイプの入力は、メッセージを受信するユーザおよび／またはドメイン、および／またはスパムフィルタが稼働しているドメインを含む。特に、生成される乱数は、少なくとも一部について、メッセージの受信者に応じて決まり得る。例えばスパマーのテストユーザは、その電子メールアドレス、その表示名、および／またはそのドメインなど、その識別情報の少なくとも一部によって認識することができる。したがって、スパマーのテストユーザのために生成された乱数は、スパムメッセージがほぼいつでもテストユーザに到達できるほど低い可能性がある。
【００３７】
これに対して、メッセージを受信するように指定された他のドメイン名および／または他のユーザは、生成された乱数を、スパマーのメッセージが通り抜けられないほど高くすることができる。したがってスパマーは、テストユーザには届き、しかし他のユーザには届かないメッセージを見つけ得る。スパマーは、テストユーザのみがそのスパムを受信していることに気づいていない場合、だまされて、テストユーザのみに届くメッセージを模して将来のスパムメッセージを作成する。その結果、テストユーザ以外の他のユーザに送信されるスパムの量は低減する。しかし、生成された乱数が少なくとも一部についてメッセージの受信者のある側面に応じて決まるようにすることによって、スパマーがスパムフィルタをテストするのにより負担がかかるようになる。
【００３８】
あるいは、またはそれに加えて、入力は、少なくとも一部メッセージの内容を基にすることができる。これは、スパマーがスパムフィルタの内部の仕組みをリバースエンジニアリングするのを抑えるのに有用となり得る。より具体的には、乱数は、メッセージの内容に基づいて計算される。つまり、メッセージの内容のハッシュが得られる。ハッシュ法とは、文字列を元の文字列を表す通常のより短い固定長値またはキーに変換することである。この例では、メッセージごとに計算されたハッシュ値が乱数である。
【００３９】
スパマーは、スパムフィルタを回避するために、しばしばメッセージの内容をわずかに修正しようと試みる。したがって、スパマーがメッセージをリバースエンジニアリングしようとすると、メッセージの内容の少しの変更によって、メッセージの得点が相対的に大きく変わる可能性がある。例えば、メッセージ「Ｘ」がスパムとして分類されることを想定する。スパマーは、メッセージを有効によりスパム的にする「ＦＲＥＥ！！！」などの単語を追加する。しかし、本発明による無作為化の態様のため、スパマーは、メッセージは現時点で非スパムに分類されると確信する。残念ながらスパマーは、「ＦＲＥＥ！！！」という単語ではメッセージはそれほどスパム的にはならないと誤って判断するが、実際にはその逆が真である。
【００４０】
メッセージの内容に基づく無作為化を考慮して、メッセージの潜在的に不利な扱いに対抗するために、スパマーは、例えば「ｔｈｅ」や「ｏｎ」など、メッセージに影響を与えそうにないと確信する任意の単語を追加しようと試みる。その結果、スパマーは、これらの単語のみを変更した後多くのメッセージを分類し、次いで平均を計算してメッセージに対するどのタイプの修正によってフィルタの通り抜けに最も成功するかを決定することができる。
【００４１】
こうしたスパマーの挙動を見越して、本質的にメッセージの得点に寄与する特徴のハッシュを計算することができる。より具体的には、特徴をメッセージから抽出できることを想起されたい。抽出された多くの特徴から、その寄与が所与の閾値（例えば閾値０．０１）を超える特徴を選択することができる。次いで選択された特徴のハッシュを計算し、そのハッシュを乱数ジェネレータ１６０への入力として使用することができる。スパマーは、メッセージのどの特徴がメッセージの得点に最も寄与しているかを見つけるのが比較的難しいため、このタイプのスパムフィルタの機能のリバースエンジニアリングは非常に難しい。
【００４２】
あるいは、またはそれに加えて、送信者が主張したＩＰアドレスのハッシュを計算して、そのメッセージのためにどの乱数が生成されるかを決定することができる。したがって、この場合もまた、スパマーは、メッセージのどの特徴を使用してハッシュを決定し、次いでどの乱数がハッシュに対応しているかを決定することは特に難しい。
【００４３】
無作為化構成要素１５０が特定のメッセージのための乱数を出力すると、乱数を、例えばフィルタスコアリング構成要素１４０が評価した得点または重みに加えることができる。最終的に、メッセージの合計得点または最終得点１３０を取得して、メッセージのスパムまたは非スパムの分類を容易に行うことができる。
【００４４】
スパムフィルタの機能を不明瞭にするために、メッセージ得点に加えられる確率関数を有するのではなく、複数のスパムフィルタを複数のドメインにわたって、かつ／または複数のユーザのために配置することができる。特に、ユーザは、１つまたは複数のスパムフィルタを無作為に、または作為的に選択して、メッセージの分類に使用することができる。フィルタ自体は、異なるタイプのスパムフィルタとしてもよく、かつ／または異なる組のトレーニングデータを使用してトレーニングすることもできる。したがってスパマーは、そのスパムメッセージの特定の受信者によってどのフィルタが使用されるかを解読するのがほぼ間違いなく非常に難しくなる。さらに、一度に複数のフィルタをメッセージの分類に関与させることができ、それによってほぼ毎回フィルタを通り抜けるメッセージを見つけることがほぼ不可能になる。
【００４５】
図２は、本発明の一態様によるマルチフィルタスパムフィルタリングシステム（ｍｕｌｔｉ−ｆｉｌｔｅｒ  ｓｐａｍ  ｆｉｌｔｅｒｉｎｇ  ｓｙｓｔｅｍ）２００の例を示すブロック図である。システム２００は、複数のユーザ２１０を含む（例えばユーザ１２１２、ユーザ２２１４、および／またはユーザＹ２１６まで。この場合Ｙは１以上の整数）。ユーザ２１０は一般に、スパムメッセージを含む任意の着信メッセージの受信者である。システム２００は、複数のスパムフィルタ２２０（例えばスパムフィルタ１２２２、スパムフィルタ２２２４、および／またはスパムフィルタＷ２２６まで。この場合Ｗは１以上の整数である）も含む。
【００４６】
各スパムフィルタ２２０は、少なくとも一部、異なる組のトレーニングデータに基づいてトレーニングすることができる。より具体的には、第１のフィルタ２２２は、第１のサブセットのトレーニングデータを使用して機械学習システムを介してトレーニングすることができる。同様に第２のフィルタ２２４は、同じように第２のサブセットのトレーニングデータを使用してトレーニングすることができる。第２のサブセットのトレーニングデータは、第１のサブセットのデータと部分的に重なっていても、重なっていなくてもよい。例えば、第１のフィルタ２２２は一般的な用語を含み、第２のフィルタ２２４はまれな単語を含む。両方のフィルタの使用は、フィルタがメッセージをスパムまたは非スパムと分類する前に異なる基準またはメッセージ内の特徴または内容を検査することを意味する。
【００４７】
同じように、ユーザの要望通りに、あるデータを１つまたは複数のフィルタ２１０のトレーニングから除外することができる。除外されたデータは、乱数ジェネレータに従って除外することができる。さらに、抽出され、トレーニングデータの作成に使用されたメッセージのいくつかの特徴に、特定の値を割り当てることができる。したがって、スパムフィルタ２２０をユーザ専用または個人専用にして、一部にはユーザの選好および指示に応じて様々な度合いまでカスタマイズすることができる。
【００４８】
その後、複数のユーザ２１０および複数のスパムフィルタ２２０に動作可能に結合されたフィルタ選択構成要素２３０は、少なくとも一部において特定のユーザおよび／またはユーザの選択に基づいて１つまたは複数のフィルタ２２０を選択するために、ユーザ２１０と通信することができる。あるいは、フィルタ選択は無作為とする、または少なくとも一部についてメッセージの内容のハッシュまたはメッセージのサイズに基づいていてもよい。
【００４９】
図に示すように、フィルタ選択は、一部には時間入力構成要素２４０から受信した入力を基にすることもできる。つまり、異なるフィルタをその日の異なる時刻に動作可能とすることができる。例えば、メッセージが午後２時に送信された場合、複数のフィルタ２２０を使用することができる。しかし、メッセージが午前３時に送信されると、例えば第１、第２、第４および第６のフィルタなど、フィルタ２２０のサブセットのみが使用可能である。あるいは、時刻に応じてフィルタを選択して単一のフィルタのみを使用する。
【００５０】
上記に加えて、ユーザ２１０を、クラスタ化構成要素２５０によって、いくつかの同様の質または特性あるいはタイプに基づいてサブグループにクラスタ化することができる。同様に、トレーニングデータを同じようにクラスタ化し、それによって少なくとも１つのデータのクラスタまたはタイプに対してトレーニングされたフィルタが得られる。したがってフィルタ選択構成要素２３０は、ユーザの特定のクラスタに対応して１つまたは複数のスパムフィルタ２２０を選択することができる。本明細書に記載したような無作為または作為的なやり方で複数のフィルタを使用することは、最適な単一のスパムフィルタに依存する代わりに、一般にスパムフィルタリングにとってより有利となり得る。あるメッセージが今回は通り抜けても、異なるフィルタが無作為または作為的に選択されると、次回同一または類似のメッセージが必ずしも通り抜けるとは限らないため、リバースエンジニアリング、スパムフィルタパフォーマンスの予測、および毎回通り抜ける単一メッセージの発見は、スパマーにとってはより難しくなる。しかし、メッセージが毎回または次回送信されるときになぜ通り抜けられないかを決定することは、スパマーにとって、不可能とはいえないまでもかなり難しい。フィルタの内部の仕組みを容易にリバースエンジニアリングし、かつ／または予測することができないからである。さらに、スパムの境界付近の少量のメッセージは通り抜けるかもしれないが、ほぼ「スパム」メッセージの大部分の配信は、スパムフィルタリングプロセスを不明瞭にすることによって、有効に阻止することができる。
【００５１】
次に、図３〜８に示すように、一連の動作を介して発明主題による様々な方法について説明する。本発明は、動作の順序によって限定されるものではなく、本発明による一部の動作は、本明細書に示し、説明したものと異なる順序で、かつ／または他の動作と同時に行うことができることを理解されたい。例えば、代わりに方法を状態図など相互に関係する一連の状態またはイベントとして表すことができることを当分野の技術者であれば理解されよう。さらに、本発明による方法を実施するのに示したすべての動作が必要であるとは限らない。
【００５２】
次に図３を参照すると、本発明の一態様によるスパムフィルタで生成されたメッセージの得点の無作為化を行うプロセス３００の例のフロー図を示している。プロセス３００は、３１０で開始し、メッセージをスパムフィルタに通す。３２０で、スパムフィルタは、得点をメッセージに割り当てる。得点は、１つまたは複数のメッセージの特徴を抽出し、それによって各特徴がそれに関連する重みを有するようになるものなど、一般のスパムフィルタリングシステムおよび方法を基にすることができる。重みの合計が計算され、メッセージの得点が得られる。しかし、メッセージがスパムまたは非スパムとして分類される前に、３３０で乱数または疑似乱数を得点に加え、スパムフィルタリングプロセスのリバースエンジニアリングを抑えることができる。
【００５３】
３４０でメッセージの最終得点を取得し、その後３５０でメッセージをスパムまたは非スパムとして分類する。スパムフィルタによって与えられた元の得点に加えられた乱数または疑似乱数は、ノイズを元の得点に有効に加え、スパマーがスパムフィルタのリバースエンジニアリングを行う、かつ／またはスパムフィルタを常に通り抜けることができるメッセージを発見するのを抑えるようにする。いずれの場合も、スパマーは、スパムフィルタがどのように動作するかを知っている場合、またはスパムフィルタの応答を予測できる場合、実質的に毎回スパムフィルタを通り抜けるメッセージを容易に作成できることになる。しかし、無作為化構成要素をスパムフィルタに組み込むことによって、スパマーは、メッセージへの外見上軽微な変更、またはフィルタの何らかの特徴のいずれかによってメッセージが「スパム」状態から「非スパム」状態（またはその逆）に変わったかを定義することは難しくなり、それによってスパムフィルタのリバースエンジニアリングがほぼ不可能になる。
【００５４】
乱数または任意の要因によって、スパムの境界付近のメッセージに影響を与えるのにちょうど十分なほどメッセージの得点が変わる。つまり、この無作為化手法によって、スパムメッセージと非スパムメッセージの間のラインに沿ったメッセージが最も影響を受ける。明らかにスパムである（得点または確率が非常に高い）または明らかに非スパムである（得点または確率が非常に低い）他のメッセージは、実質的に得点の無作為化によって影響を受けない。さらに、毎回メッセージの得点に加えられる純然たる乱数は、本発明ほど有効ではない。スパマーは最終的に、そのメッセージがフィルタを通り抜ける確率または平均確率を突きとめることができ、したがって、フィルタのリバースエンジニアリング、または常にフィルタを通り抜けるメッセージの発見、および／またはその両方を行うことができるからである。
【００５５】
得点の無作為化は、図４を参照する図３の３６０に示した１つまたは複数の入力のタイプに応じて決まり得る。図４には、どの乱数を使用するかを決定するプロセス４００の例のフロー図を示している。４１０で、プロセス４００は、乱数がそれに応じて決まる入力のタイプ、時間４２０、ユーザ４３０、および／またはメッセージの内容４４０のうちの少なくとも１つを選択することを含む。
【００５６】
時間４２０は、時間増分または時刻を指す。より具体的には、使用する乱数は、例えば５分、１０分、３０分、２時間など使用する時間増分、または時刻に応じて変わり得る。例えば、乱数の値は、真夜中に変わり、次いで再度午前５時、午前７時半、午前１１時、午後４時１３分などに変わる。
【００５７】
ユーザ４３０の識別（表示名、電子メールアドレスなど）および／またはユーザのドメインおよび／またはメッセージを送受信するドメインを使用してどの乱数を使用するかに影響を与えることもできる。この方策が実施されると、スパマーは、スパムフィルタをテストしてどのメッセージがどのユーザに届くかを決定するのがより難しくなる。最後に、メッセージの内容４４０または少なくともその一部分は、どの乱数が元の（基本）得点に加えられるかを決定することができる。
【００５８】
次に図５を参照すると、本発明に従ってメッセージの内容を使用してメッセージの基本得点に加えられる乱数を決定するプロセス５００の例のフロー図を示している。特に、プロセス５００は、５１０でメッセージの少なくとも一部のハッシュを計算することによって開始する。例えば、乱数は、メッセージの本文に基づいて計算することができる。したがって、このメッセージと同一の別のメッセージが現れると、それには同じ乱数またはハッシュ値が割り当てられる。しかし、メッセージ本文へのわずかな変更によって、メッセージの得点に大幅な変更を与えることができる。例えば、スパマーは、スパムメッセージがそれほどスパム的に見えないようにするために、外見上無意味な単語をメッセージに追加する、またはそこから削除するように試みる。スパムメッセージの比率が比較的小さい場合、これは真となり得る。しかし、どのタイプの単語が乱数および／またはメッセージの総合得点を増減させるかはわからないため、スパムメッセージの大部分については、そのスパムは配信が阻止される。
【００５９】
メッセージの内容のハッシュに代わる方法は、実質的にメッセージの得点に寄与するメッセージから抽出されたいくつかの特徴のハッシュを計算することである。実質的にメッセージの得点に寄与する特徴は、無作為または作為的に変更することもできる。このようにスパマーは、平均がわからず、大量のメッセージを通して平均を見つけ、したがってメッセージのどんな特徴がハッシュされても通り抜けるメッセージを見つけることができない。さらに、ハッシュは送信者のＩＰアドレス上で計算される。したがってメッセージの分類は、少なくとも一部において送信者の発信情報に直接依存することができる。
【００６０】
５２０で、無作為化に関係なくスパムフィルタによって前もって決定された元の得点または基本得点に乱数が加えられる。次いで５３０でメッセージの合計得点が取得され、次いで５４０でメッセージをスパムまたは非スパムと分類することができる。
【００６１】
本明細書の図３〜５で上述した無作為化手法は、スパマーによるスパムフィルタのリバースエンジニアリングを妨げ、かつ／またはスパムフィルタパフォーマンスのモデリングを妨げるために使用する１つの戦略にすぎない。別の戦略は、複数のユーザおよび／またはドメインにわたって複数のフィルタを配置することを含む。最初に、何らかの方法で重複していてもしていなくてもよいトレーニングデータの様々なサブセットを使用して、複数のフィルタを個々にトレーニングすることができる。複数のフィルタを使用してメッセージを検査し、分析することによって、フィルタリングシステムは、メッセージの特定の１つの側面に焦点を当てるだけではなく、本質的に同時にメッセージ内の異なる基準を調べるようになる。したがって、複数のフィルタを使用すると、メッセージのより正確な分類の提供、およびフィルタリングシステムのリバースエンジニアリングの軽減が促進される。というのは、どのフィルタを使用したか、およびメッセージのどの側面が分類に考慮されたかを決定するのが困難となるからである。
【００６２】
図６は、ユーザタイプのクラスタに基づいてカスタマイズされた方式で複数のスパムフィルタをトレーニングし、使用するプロセス６００の例のフロー図を示している。プロセス６００は、６１０で、例えばユーザタイプに従って１つまたは複数のグループにユーザをクラスタ化することによって開始することができる。６２０で、トレーニングデータを同様のやり方でクラスタ化して、ユーザタイプのクラスタに対応させることができる。６３０で、複数のフィルタをトレーニングデータのクラスタごとに個々にトレーニングすることができる。次いで６４０で複数のフィルタを使用する準備ができており、それによってユーザタイプの特定のクラスタに対応するフィルタを使用して、そのクラスタのメッセージを分類することができる。これをさらに説明するために、フィルタＲをクラスタＲトレーニングデータでトレーニングすると想定する。クラスタユーザタイプＲ内のユーザは、次いでフィルタＲを使用してメッセージを分類することができる。トレーニングデータは、ユーザがクラスタ化されたのと同様のやり方でクラスタ化されることを理解されたい。
【００６３】
あるいは、図７のプロセス７００の例に示すように、７１０でトレーニングデータの様々なサブセットを使用して複数のフィルタをトレーニングすることができる。任意選択で、７２０で、１つまたは複数の特徴または関連のデータを、トレーニングデータの１つまたは複数のサブセットから抽出することができる。図示していないが、メッセージから抽出したいくつかの特徴に、強制的にいくつかの値または重みを持たせるようにすることができる。７３０で、１つまたは複数のスパムフィルタは、トレーニングデータのそれぞれのサブセットを使用してトレーニングされ、その後、７４０でそれを使用してメッセージを処理する。本明細書で上述したように、７５０で、メッセージをスパムまたは非スパムとして分類することができる。図示していないが、時間もどのスパムフィルタを使用してメッセージを分類するかを決定する１つの要因とすることができる。言い換えれば、特定のフィルタは、その日のいくつかの時間帯のみ使用可能とすることができる。したがって、フィルタ選択は、一部にはメッセージの受信ユーザ、および／または時刻に基づいて無作為、または作為的に行うことができる。
【００６４】
本発明の様々な態様に関する状況をさらに提供するために、図８および以下の説明は、本発明の様々な態様の実施に適した動作環境８１０の概略説明を提供するものである。本発明は、１つまたは複数のコンピュータまたは他の装置が実行するプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明しているが、本発明を他のプログラムモジュールとの組合せで実施する、かつ／またはハードウェアおよびソフトウェアの組合せとして実施することもできることを当分野の技術者であれば理解されよう。
【００６５】
しかし、一般にプログラムモジュールは、特定のタスクを実行する、または特定のデータ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作環境８１０は、適した動作環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。本発明とともに使用するのに適したよく知られている他のコンピュータシステム、環境、および／または構成の例には、それだけには限定されないが、パーソナルコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置を含む分散コンピューティング環境などがある。
【００６６】
図８を参照すると、本発明の様々な態様を実施する環境８１０の例はコンピュータ８１２を含む。コンピュータ８１２は、処理ユニット８１４、システムメモリ８１６、およびシステムバス８１８を含む。システムバス８１８は、それだけには限定されないが、システムメモリ８１６を含むシステム構成要素を処理ユニット８１４に結合する。処理ユニット８１４は、使用可能な様々なプロセッサのうちのどんなものでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを処理ユニット８１４として使用することもできる。
【００６７】
システムバス８１８は、使用可能な様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バスまたは外部バス、および／またはローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが、８ビットバス、業界標準アーキテクチャ（Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ：ＩＳＡ）、ＭＳＡ（Ｍｉｃｒｏ−Ｃｈａｎｎｅｌ  Ａｒｃｈｔｅｃｔｕｒｅ）、拡張ＩＳＡ（Ｅｘｔｅｎｄｅｄ  ＩＳＡ）、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＶＥＳＡローカルバス（ＶＬＢ）、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）バス、およびＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などがある。
【００６８】
システムメモリ８１６は、揮発性メモリ８２０および不揮発性メモリ８２２を含む。基本入出力システム（ＢＩＯＳ）は、例えば起動中など、コンピュータ８１２内の要素間で情報を転送する基本ルーチンを含み、不揮発性メモリ８２２に格納されている。不揮発性メモリ８２２には、それだけには限定されないが一例として、読取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリなどがある。揮発性メモリ８２０には、ランダムアクセスメモリ（ＲＡＭ）などがあり、これは外部キャッシュメモリとして働く。ＲＡＭは、それだけには限定されないが一例として、シンクロナスＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレートＳＤＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、拡張ＳＤＲＡＭ（ＥＳＤＲＡＭ）、シンクリンクＤＲＡＭ（ＳＬＤＲＡＭ）、およびＤＲＤＲＡＭ（Ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ＤＲＡＭ）など多くの形態で使用可能である。
【００６９】
コンピュータ８１２は、リムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体も含む。図８は、例えばディスク記憶装置８２４を含む。ディスク記憶装置８２４には、それだけには限定されないが、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、メモリスティックなどの装置がある。さらに、ディスク記憶装置８２４は、記憶媒体を別個に含む、または、それだけには限定されないが、コンパクトディスクＲＯＭ装置（ＣＤ−ＲＯＭ）、ＣＤレコーダブルドライブ（ＣＤ−Ｒ  Ｄｒｉｖｅ）、ＣＤリライタブルドライブ（ＣＤ−ＲＷ  Ｄｒｉｖｅ）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスクドライブなど他の記憶媒体と組み合わせて含むことができる。ディスク記憶装置８２４のシステムバス８１８への接続を容易にするために、一般にインターフェース８２６などリムーバブルまたは非リムーバブルインターフェースが使用される。
【００７０】
図８は、ユーザと適した動作環境８１０で説明した基本的なコンピュータリソースとの間の媒介として働くソフトウェアを説明していることを理解されたい。こうしたソフトウェアには、オペレーティングシステム８２８などがある。オペレーティングシステム８２８は、ディスク記憶装置８２４に格納することができ、コンピュータシステム８１２のリソースを制御し、割り振るよう働く。システムアプリケーション８３０は、システムメモリ８１６またはディスク記憶装置８２４のいずれかに格納されているプログラムモジュール８３２およびプログラムデータ８３４を介してオペレーティングシステム８２８によるリソースの管理を利用する。本発明は、様々なオペレーティングシステムまたはオペレーティングシステムの組合せとともに実施できることを理解されたい。
【００７１】
ユーザは、入力装置８３６を介してコマンドまたは情報をコンピュータ８１２に入力する。入力装置８３６には、それだけには限定されないが、マウスなどのポインティング装置、トラックボール、スタイラス、タッチパッド、キーボード、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、ＴＶチューナカード、デジタルカメラ、デジタルビデオカメラ、Ｗｅｂカメラなどがある。これらおよび他の入力装置は、インターフェースポート８３８を経由してシステムバス８１８によって処理ユニット８１４に接続される。インターフェースポート８３８には、例えば、シリアルポート、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）などがある。出力装置８４０は、入力装置８３６と同じタイプの何らかのポートを使用する。したがって、例えばＵＳＢポートを使用して、コンピュータ８１２への入力を提供し、コンピュータ８１２から出力装置８４０に情報を出力することができる。出力アダプタ８４２は、出力装置８４０の中でも一部の出力装置８４０にはモニタ、スピーカー、プリンタなど特殊なアダプタを必要とするものがあることを示すために提供されている。出力アダプタ８４２には、それだけには限定されないが一例として、出力装置８４０とシステムバス８１８の間の接続手段を提供するビデオカードおよびサウンドカードなどがある。リモートコンピュータ８４４など、他の装置および／または装置のシステムは、入力および出力の機能を提供することに注意されたい。
【００７２】
コンピュータ８１２は、リモートコンピュータ８４４など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ８４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの装置、ピア装置、または他の一般のネットワークノードなどでよく、一般にコンピュータ８１２に関連して記載した多くまたはすべての要素を含む。簡潔にするために、リモートコンピュータ８４４とともにメモリ記憶装置８４６のみを示している。リモートコンピュータ８４４は、ネットワークインターフェース８４８を介してコンピュータ８１２に論理的に接続され、次いで通信接続８５０を介して物理的に接続される。ネットワークインターフェース８４８は、ローカルエリアネットワーク（ＬＡＮ）および広域エリアネットワーク（ＷＡＮ）などの通信ネットワークを含む。ＬＡＮ技術は、光ファイバ分散データインターフェース（ＦＤＤＩ）、銅線分散データインターフェース（Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ：ＣＤＤＩ）、Ｅｔｈｅｒｎｅｔ（登録商標）／ＩＥＥＥ８０２．３、トークンリング／ＩＥＥＥ８０２．５などがある。ＷＡＮ技術には、それだけには限定されないが、ポイントツーポイントリンク、サービス総合デジタル網（ＩＳＤＮ）およびそのバリエーションなどの回線交換ネットワーク、パケット交換ネットワーク、デジタル加入者回線（ＤＳＬ）などがある。
【００７３】
通信接続８５０は、ネットワークインターフェース８４８をバス８１８に接続するために使用されるハードウェア／ソフトウェアを指す。通信接続８５０は、説明上わかりやすくするために、コンピュータ８１２内に示しているが、コンピュータ８１２の外部にあってもよい。ネットワークインターフェース８４８への接続に必要なハードウェア／ソフトウェアには、一例にすぎないが、通常の電話用モデム、ケーブルモデム、ＤＳＬモデムなどのモデム、ＩＳＤＮアダプタ、Ｅｔｈｅｒｎｅｔ（登録商標）カードなど内部技術および外部技術がある。
【００７４】
上記で説明してきたことは、本発明の例を含む。当然、本発明を説明するために構成要素または方法の予想されるすべての組合せについて説明することは不可能であるが、本発明の他の多くの組合せおよび置換えが可能であることを当分野の技術者であれば理解できよう。したがって、本発明は、添付の特許請求の範囲の要旨および範囲内のこうしたすべての代替形態、変更形態、および変形形態を含むものとする。さらに、「含む」という用語が詳細な説明または特許請求の範囲で使用されている限り、こうした用語は、請求項で移行語として使用されるときに「備える」が解釈される「備える」という用語と同じように包含的であるものとする。
【図面の簡単な説明】
【００７５】
【図１】本発明の一態様によるスパムフィルタリングプロセスの不明瞭化を助けるシステムを示す概略ブロック図である。
【図２】本発明の一態様によるスパムフィルタリングプロセスの不明瞭化を助けるために複数のフィルタを使用するシステムを示す概略ブロック図である。
【図３】本発明の一態様によるスパムフィルタリングプロセスの不明瞭化を助ける方法例を示すフロー図である。
【図４】本発明の一態様による乱数または擬似乱数の決定を助ける方法例を示すフロー図である。
【図５】本発明の一態様による一部メッセージの内容に基づく無作為化の実行を助ける方法例を示すフロー図である。
【図６】本発明の一態様による複数のスパムフィルタをトレーニングし、使用することによってスパムフィルタリングプロセスの不明瞭化を助ける方法例を示すフロー図である。
【図７】本発明の一態様による複数のスパムフィルタをトレーニングし、使用することによってスパムフィルタリングプロセスの不明瞭化を助ける方法例を示すフロー図である。
【図８】本発明による通信環境例を示す概略ブロック図である。
【符号の説明】
【００７６】
１００  スパムフィルタリングシステム
１１０  スパムフィルタ
１２０  メッセージ
１３０  メッセージの合計得点
１４０  フィルタスコアリング構成要素
１５０  無作為化構成要素
１６０  乱数ジェネレータ
１７２  入力構成要素１
１７４  入力構成要素２
１７６  入力構成要素Ｎ
２００  マルチフィルタスパムフィルタリングシステム
２１０  複数のユーザ
２１２  ユーザ１
２１４  ユーザ２
２１６  ユーザＹ
２２２  スパムフィルタ１
２２４  スパムフィルタ２
２２６  スパムフィルタＷ
２３０  フィルタ選択構成要素
２４０  時間入力構成要素
２５０  クラスタ化構成要素
【図１】
2005011326.tif 000005
【図２】
2005011326.tif 000006
【図３】
2005011326.tif 000007
【図４】
2005011326.tif 000008
【図５】
2005011326.tif 000009
【図６】
2005011326.tif 000010
【図７】
2005011326.tif 000011
【図８】
2005011326.tif 000012
【外国語明細書】
2005011326000001.pdf