web-dev-qa-db-ja.com

ベイジアン中毒はどのように機能しますか?

この回答はベイジアン中毒について言及しています ついでに私は wikipedia page を読みましたが、完全に把握しているとは思いません。

最初のケースでは、スパマーがペイロード(リンク、悪意のあるファイルなど)を含むスパムを送信し、スパムではない「安全な」単語がたくさん含まれていることは十分明白です。目的は、スパムフィルターがそれを「スパムではない」として分類できるように、個々の電子メールの評価を上げることです。

2番目のケースは、より微妙で(私には)混乱します。

スパム送信者はまた、ベイジアンデータベースで以前は無害だった単語をスパムのような単語に変換することで、スパムフィルターの誤検知率を高くすることを望んでいます(統計的なタイプIエラー)。スパマーによって追加された単語がスパムの良い兆候であることをフィルタリングします。

これはスパマーをどのように助けますか?もちろん、誤検知(正当なメールが誤ってスパムとして分類されることを意味していると私が正しく理解している場合)は迷惑ですが、スパムフィルターを完全に無効にすることは非常に一般的です。これは実際のスパム行為のある単語の評価を変更するようには見えませんか、それともそれらのrelative評価に影響を与えるだけですか?

最後に、これまたは他のアプローチは、フィルターをこっそり通したい特定のいくつかのスパムワードを持つ個々のスパマーに役立ちますか、それともすべてのスパマーに役立つ可能性がありますか?

誰かが例に基づいた説明を提供またはリンクできますか?

25
James Bradbury

Martijn Sprengersにより、 Bachelor thesis:The Effects of Different Bayesian Poison Methods on the Quality of the Bayesian Spam Filter 'SpamBayes' という名前の優れた論文が発行されました。

TL; DRを作成してみます。

ベイジアンスパムフィルターは、電子メール内のキーワードを調べて、電子メールがスパムかどうかを判断しようとします。これは、通常のメールとスパムメールに存在する単語を確認し、各単語のスコアを更新することです。これらのスコアは、電子メールに存在する単語の総合スコアに基づいてスコアを作成することにより、電子メールがスパムかどうかを推定するために使用されます。

単語のスコアが付け直されます。つまり、「バイアグラ」がいくつかの通常のメールに表示される場合、時間の経過とともにスコアが低くなります。これは、正当な電子メールで一般的に見られるスコアの低いいくつかの単語を含む電子メールを生成し、1つの悪い単語を追加することにより、スパマーによって悪用されます。電子メールのスコアは全体的に良いと見なされるため、「バイアグラ」は時間とともにスコアが低くなり、正当な単語になり、スパムメールがスパムフィルターを通過するようになります。

この論文では、3つの攻撃について説明しています。

ランダムな単語:この攻撃方法は、Gregoryらの研究に基づいています。 [6]。純粋にランダム化されたデータを使用してスパム電子メールに追加するため、弱い統計的攻撃と見なすことができます。

一般的な単語:この攻撃方法は、Sternらの研究に基づいています。 [7]。彼らはスパムフィルターを混乱させるためにスパムメールに一般的な英語の単語を追加しました。この攻撃はランダムな単語の方法よりも強力な統計的攻撃と見なすことができます。これは、使用されるデータがランダムではなく、前の攻撃で追加された単語よりも電子メールに含まれる可能性が高い単語が含まれているためです。

ハムフレーズ:この攻撃はこの調査で開発され、他の2つに対してテストされています。これは、ハムの電子メールの膨大なコレクションに基づいています。そのコレクションから、組み合わされた確率が最も低いハムの電子メールのみが毒として使用されます。ハムの電子メールは、元のスパム電子メールの最後に追加されます。ほとんどの人は下向きに読むので、メッセージの効果は維持されます。これは強力な統計的攻撃でもあり、単語がランダム化されていないため、一般的な単語の攻撃よりも強力かもしれません。

論文の結論の要点:

スパマーの観点からは、「HamPhrases」手法が最も効果的に機能するようです。スパムフィルターのパフォーマンスは低下します。 …「ランダム」および「一般的な単語」の手法は、スパマーの観点から見るとスコアが悪いようです。 …これらの有害メソッドでスパムフィルターをトレーニングすると、パフォーマンスは通常よりもさらに向上します。 …

ただし、この研究で使用されているHamPhrasesメソッドは少し不正行為です。これは、スパムフィルターがテストとトレーニングに使用するハムメールとスパムメールの両方がアルゴリズムで使用できるためです。実際のスパマーは、実際のユーザーのハムの電子メールを持っていません。

22
Lucas Kauffman

ルーカス・カウフマンの回答は、その理由について、どのように非常によく説明しています:

ユーザーが重要なメールを受信できず、スパムフィルターに巻き込まれた場合、管理者に腹を立てます。誤検知は非常に高コストになる可能性があります。

多くのユーザーが管理者に腹を立てている場合、管理者は状況を変更する可能性が高いため、スパムフィルターの許容度が高くなり、結果として、より多くのスパムを通過させてスパマーに役立つ可能性があります。

17
Murphy

古いブログ投稿 にベイジアンポイズニングを含むスパムメッセージの良い例があります。

ベイジアンスパムフィルターは、基本的に各メッセージで使用される各Wordを追跡します。メッセージがスパムとしてマークされると、フィルターはメッセージ内の単語をスパムの代表として扱います。この情報を使用することにより、フィルターは特定のメッセージがスパムであるかどうかを正確に判断できます。

ただし、ベイジアンフィルターは各メッセージの単語を使用してメッセージがスパムかどうかを判断するため、このプロセスを回避する手法の影響を受けやすくなっています。

スパムメッセージは意味のない単語を挿入したり、人間が読み取れる(ただし機械が読み取れない)方法で単語を分解したり(たとえば、スパム行為のある単語の各文字の間に「見えない」小さな文字を挿入したり)、アクセント記号やHTMLエンティティを使用してフィルターで区別したり、リンクの代わりにHTMLフォームを使用したりすることは困難です。これが本質的にベイジアン中毒であり、これらのテクニックはすべて、私のブログ投稿で実証および説明されています。

特に、「無意味な単語」は、通常のメッセージでよく見られる単語になるように慎重に選択できます。これらの単語を含むスパムメッセージをスパムとしてマークするユーザーは、基本的にフィルターにそれらをスパムの兆候として扱うように指示しています。このようなメッセージが十分にある場合、フィルターはこれらの単語がスパムを表すと見なし、これらの単語を含む正当なメッセージをそのようにマークし始めます。

ブログ投稿の最初の画像は、これがどのように行われるかを示しています。

Spam message in Firefox page inspector: "Nonsense" words
フルサイズで表示

完全な文はあまり意味がありませんが、いくぶんまとまりがあります。 「微笑む」、「神は彼が待っていたことを知っていた」、「ベッドの後ろ」は、通常のメッセージに表示されるすべてのフレーズと単語です。これらの種類のフレーズがスパムメッセージに頻繁に出現し、ユーザーがそれらをスパムとしてマークした場合、これらのフレーズを含む正当なメッセージがスパムであるとフィルターが判断する可能性があります。

4
bwDraco