これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド spamoracle です。
プログラム:
NAME
spamoracle - スパム分類ツール
SYNOPSIS
スパムオラクル [-config confに] [-f データベース] マーク [ メールボックス ... ]
スパムオラクル [-config confに] [-f データベース] 加えます [-v] -スパム スパムボックス ... -良い グッドボックス ...
スパムオラクル [-config confに] [-f データベース] test [-分 PROB] [-最大 PROB] [ メールボックス ... ]
スパムオラクル [-config confに] [-f データベース] STAT [ メールボックス ... ]
スパムオラクル [-config confに] [-f データベース] リスト 正規表現 ...
スパムオラクル [-config confに] [-f データベース] バックアップ > バックアップファイル
スパムオラクル [-config confに] [-f データベース] リストア < バックアップファイル
スパムオラクル [-config confに] [-f データベース] 言葉 [ メールボックス ... ]
DESCRIPTION
SpamOracle は、「スパム」 (迷惑な商用電子メール) を検出して除去するのに役立つツールです。
郵便)。 メール内に出現する単語を統計的に分析していきます。
単語の頻度を、ユーザーが提供した既知のコーパスで見つかった頻度と比較します。
スパムおよび既知の正規の電子メール。 分類アルゴリズムはベイズのアルゴリズムに基づいています。
式であり、Paul Graham の論文で説明されています。 A 計画 の スパム,
http://www.paulgraham.com/spam.html.
このプログラムは以下と連携して動作するように設計されています。 プロメール(1)。 の結果
分析は追加のメッセージ ヘッダーとして出力されます X-スパム: 続い はい, いいえ or 未知の,
さらに追加の詳細。 procmail ルールはこれをテストできます X-スパム: ヘッダーを付けて配信する
電子メールを適切なメールボックスに送信します。
さらに、SpamOracle は MIME 添付ファイルも分析し、関連情報を抽出します。
MIMEタイプ、文字エンコード、添付ファイル名などをまとめて、
追加の X 添付ファイル: ヘッダ。 これにより、procmail が電子メールを簡単に拒否できるようになります。
疑わしい添付ファイル (ウイルスを示すことが多い Windows 実行ファイルなど) が含まれています。
募集要項 そして 制限
SpamOracle を使用するには、シェルがインストールされている Unix マシンにメールが配信される必要があります。
アカウント。 このマシンには次のものが必要です プロメール(1)(を参照 http://www.procmail.org/)がインストールされています。
あなたの ~/.forward すべての受信電子メールを実行するようにファイルを設定する必要があります プロメール(1)。 もしも
メールサーバーが POP または IMAP プロトコルをサポートしている場合は、次を使用することもできます。 フェッチメール(1)〜
サーバーからメールを取得し、ローカル マシンに配信します。
SpamOracle が「学習」するメッセージのコーパスを提供するために、約 1000 のアーカイブが提供されます。
あなたの電子メールの数が必要です。 アーカイブは手動または半自動で次のように分割する必要があります。
既知のスパムと既知の正常なメッセージ。 コーパス内で誤って分類されたメッセージ (スパムなど)
正常なメッセージの中に誤って保存されると、メッセージの効率が低下します。
分類。 アーカイブは Unix メールボックス形式、または「ファイルごとに XNUMX つのメッセージ」である必要があります。
形式 (MH のようなもの)。 Emacs の Babyl などの他の形式はサポートされていません。
SpamOracle が使用する「単語」の概念は西ヨーロッパ言語に傾いています。
つまり、ISO Latin-1 および Latin-9 文字セットです。 JIS エンコードの暫定サポート
コンパイル時に日本語を選択できます。 Spamを受信するとOracleは正常に動作しません。
中国語や韓国語セットなど、他の文字セットで書かれた多くの正規の電子メール。
初期化
コーパスから単語の出現頻度のデータベースを構築するには、次の手順を実行します。
rm ~/.spamoracle.db
スパムオラクル 加えます -v -良い グッドメール -スパム スパムメール
デフォルトでは、データベースはファイルに保存されます。 .spamoracle.db あなたのホームディレクトリにあります。
これは次のコマンドでオーバーライドできます。 -f オプション: スパムオラクル -f 私のデータベース 加えます ... 当学校区の -v オプション
コーパスの処理中の進行状況情報を出力します。
これは、コーパスからのスパムではない正常なメッセージがファイルに保存されていることを前提としています。
グッドメール、およびファイル内の既知のスパム メッセージ スパムメール。 コーパスを取得することもできます
複数のファイルからのメッセージを受信したり、SpamOracle を複数回呼び出してメッセージを処理したりできます。
スパムオラクル 加えます -良い グッドメール1 ... グッドメールN
スパムオラクル 加えます -スパム スパムメール1 ... スパムメール P
TESTING 、 DATABASE
データベースが正しく構築されたことを確認し、
SpamOracle によって実行される統計分析では、メールボックスに対して「テスト」モードが呼び出されます。
コーパスの構築に使用したばかりです:
スパムオラクル test グッドメール | よ
スパムオラクル test スパムメール | よ
指定されたメールボックス内のメッセージごとに、次のような概要が表示されます。
から: ボボ <[メール保護]>
件名: チェック この でる
スコア: 1.00 -- 15
詳細: 参照番号:98 $$$$:98 サーフィン:98 asp:95 クリック:93 ケーブル:92
瞬時に:90 https:88 インターネット:87 www:86 U4:85 ではありません:14 月:81
com:75 サーフィン:75
添付ファイル: cset="GB2312" type="アプリケーション/オクテットストリーム"
name="Guangwen4.zip"
ファイル: 受信箱/314
最初の XNUMX 行はまさに から: 件名: 元のメッセージのフィールド。
当学校区の スコア: 行は分析結果を要約します。 最初の数値 (0.0 から XNUMX までの間)
1.0) は、メッセージが実際にスパムである確率、または同等の程度です。
コーパス内のスパム メッセージとのメッセージの類似性。 XNUMX 番目の数字 (
0 ~ 15 の整数) は、メッセージ内で見つかった「興味深い」単語の数です。
「興味深い」単語とは、コーパス内に少なくとも 5 回出現する単語です。 例では、
興味深い単語が 15 個 (最大) あり、スコアは 1.00 で、スパムであることを示しています。
高い確実性。
当学校区の 詳細: 行にはスコアの説明が表示されます。 最も興味深い 15 件がリストされています
メッセージ内で見つかった単語、つまり、その可能性が高い 15 個の興味深い単語
スパムが中立値の 0.5 から最も遠いことを示します。 それぞれの単語にはその意味が与えられています
確率ではなくパーセンテージ (01 から 99 の間) で書かれた個々のスコア
スペースを節約するために。 ここでは、次のような非常に「スパム的な」単語が多数見られます。 $ $ $ $ or
クリック、それぞれ確率 0.98 と 0.93、および次のようないくつかの「無害な」単語
ない (確率 0.14)。 の U4 確率 0.85 の単語は実際には擬似単語です
4 文字の単語をすべて大文字で表します。これはスパマーが好むものです。
当学校区の 添付ファイル: 行には、このメッセージの MIME 添付ファイルに関する情報が要約されています。
ここには、次のタイプの添付ファイルが XNUMX つあります。 アプリケーション/octect-stream、 ファイル名 Guangwen4.zip,
そして文字セット GB2312 (中国語のエンコード)。
当学校区の ファイル: 行はテストされているファイルを示します。
通常、走行中は スパムオラクル test グッドメール、ほとんどのメッセージは低い値で出力されるはずです。
スコア(0.2以下)、走行時 スパムオラクル test スパムメール、ほとんどのメッセージが届くはずです
高スコア(0.8以上)でアウト。 そうでない場合は、コーパスがあまり良くないか、良くありません。
スパムと非スパムに分類されます。 外れ値をすぐに確認するには、次の値を減らすことができます。
メッセージの概要が表示されるスコアの間隔は次のようになります。
スパムオラクル test -分 0.2 グッドメール | よ
# 作品 の 良い メール スコア >= 0.2
スパムオラクル test -最大 0.8 スパムメール | よ
# 作品 の スパム メール スコア <= 0.8
ここで、より難しいテストとして、フィルタされていない電子メールが含まれるメールボックスを取り上げます。
スパムと正規の電子メールが混在している場合は、SpamOracle を通じて実行します。
スパムオラクル test 私のメールボックス | less
オラクルが他のスパムからのスパムをいかにうまく認識しているかに驚かされます。 結果がそうでなかったら
すばらしいことですが、特定のスパムは短すぎて認識できないということを覚えておいてください(そうではありません)
重要な単語は十分あります)。 また、コーパスが小さすぎるか、適切ではなかった可能性があります
分類された...
マーキング そして フィルタリング 入ってくる Eメール
データベースが構築されたら、SpamOracle を介して受信メールを実行する準備が整います。 の
command スパムオラクル マーク 標準入力から XNUMX つの電子メールを読み取り、それを標準入力にコピーします
XNUMX つのヘッダーが挿入された出力: X-スパム: X 添付ファイル:を選択します。 X-スパム: ヘッダーには XNUMX つあります
次の形式:
X-スパム: はい; スコア; details
or
X-スパム: 番号; スコア; details
or
X-スパム: わからない; スコア; details
当学校区の スコア details について説明したとおりです スパムオラクル test.
当学校区の はい/いいえ/未知の タグは分析結果を合成します。 はい スコアを意味します
>= 0.8 で、少なくとも 5 つの興味深い単語が見つかりました。 いいえ スコアが <= 0.2 であることを意味します
少なくとも 5 つの興味深い単語が見つかりました。 未知の それ以外の場合は返されます。 の 未知の
このケースは通常、非常に短いメッセージで発生し、興味深い単語が十分に含まれていない場合に発生します。
発見した。
当学校区の X 添付ファイル: ヘッダーには、 添付ファイル: の出力
スパムオラクル test、つまり、メッセージ添付ファイルの概要です。
SpamOracle を通じて受信電子メールを自動的に処理し、結果に応じて対処するため
分析を行うには、次の「レシピ」をファイルに挿入するだけです。 ~/.procmailrc:
:0fw
| /usr/local/bin/spamoracle マーク
:0
* ^X-スパム: はい;
スパムボックス
これらの不可解なコマンドの意味は次のとおりです。
- すべてのメールを スパムオラクル マーク 指図。 (spamoracle がインストールされていない場合
/ usr / local / bin必要に応じてパスを調整します。)これにより、メッセージに XNUMX つのヘッダーが追加されます。 X-
スパム: X 添付ファイル:、スパム分析の結果と添付ファイルを説明します。
解析。
- 持っている場合 X-スパム: はい ヘッダー、メッセージをファイルに配信します スパムボックス むしろ
通常のメールボックス。 おそらく、あなたは読むでしょう スパムボックス 時々ですが、それほど頻繁ではありません
通常のメールボックスよりも。 大胆なユーザーは、 / dev / null スパムボックス ちょうど
メッセージは破棄してください。ただし、SpamOracle をしばらく使用するまでは破棄しないでください。
そしてその結果に満足しています。 SpamOracle の誤検知率 (つまり、正規のメール)
スパムとして分類される) は低い (0.1%) が、null ではありません。 したがって、スパムと思われるメールは保存しておいたほうがよいでしょう。
どこかに置いておいて、時々素早くスキャンしてください。
添付ファイルベースのフィルタリングを少し楽しみたい場合は、ここに procmail ルールをいくつか示します。
そのため:
:0
* ^X-添付ファイル:.*name=".*\.(pif|scr|exe|bat|com)"
スパムボックス
:0
* ^X-添付ファイル:.*type="audio/(x-wav|x-midi)
スパムボックス
:0
* ^(コンテンツ タイプ:.*|X-添付ファイル:.*cset="|^件名:.*=\?)(ks_c|gb2312|iso-2|euc-|big5|windows-1251)
スパムボックス
最初のルールは、Windows 実行可能ファイルが添付ファイルとして含まれるすべてのメールをスパムとして扱います。
これらのメールは通常、ウイルスによって送信されます。 XNUMX 番目のルールは添付ファイルに対しても同じことを行います
x-wav または x-midi タイプ。 私は普段電子メールで音楽を受け取ることはありませんが、人気のあるもの
電子メール ウイルスは、これらの種類の添付ファイルを好むようです。 XNUMX 番目のルールは、次の間隔でスパムとして扱います。
韓国語、中国語、日本語、および日本語に対応した文字コードを使用したメール
キリル。
更新中 、 DATABASE
次の方法でいつでも、既知のスパムまたは既知の正当なメッセージをデータベースに追加できます。
スパムオラクル 加えます
たとえば、そのように分類されていないスパム メッセージを見つけた場合は、次の手順を実行します。
スパムオラクル 加えます -スパム、SpamOracle がその間違いから学ぶことができるようにします。 (追加なし
引数を指定すると、このコマンドは標準入力から単一のメッセージを読み取り、それを次のように記録します。
スパム。)以下 突然(1) たとえば、スパムメッセージを強調表示して次のように入力します。
|スパモラクル 加えます -スパム
同様に、スパムボックスをチェックしているときに正当なメッセージを見つけた場合は、それを実行してください
スパムオラクル 加えます -良い.
別のオプションは、より多くの既知のスパムまたはより多くの既知の良好なメッセージをメールボックスに収集することです。
ファイル、そして時々そうする スパムオラクル 加えます -良い new_good_mails or スパムオラクル 加えます -スパム
new_spam_mails.
問い合わせ中 、 DATABASE
啓発と娯楽のために、データベースの内容を次の方法でクエリできます。
正規表現。 の スパムオラクル リスト 正規表現 コマンドはデータベース内のすべての単語をリストします。
その一致 正規表現 (Emacs スタイルの正規表現) とその数
スパムメールと正常なメールの両方で発生します。 例えば:
スパムオラクル リスト 「.*」 # 表示する を 言葉 -- ビッグ リスト!
スパムオラクル リスト 「セックス。*」
スパムオラクル リスト 「linux.*」
DATABASE バックアップ
SpamOracle が使用するデータベースは、人為的ではないコンパクトなバイナリ形式で保存されます。
読める。 さらに、この形式は SpamOracle の今後のバージョンでは変更される可能性があります。 に
バックアップとアップグレードが容易になり、データベースの内容を操作することもできます。
ポータブルなテキスト形式。
当学校区の スパムオラクル バックアップ このコマンドは、データベースの内容を標準出力にダンプします。
テキスト形式、ポータブル形式。
当学校区の スパムオラクル リストア コマンドはそのようなダンプを標準入力から読み取り、
このデータを含むデータベース。
SpamOracle の新しいバージョンにアップグレードするための推奨手順は次のとおりです。
# 前 アップグレード:
スパムオラクル バックアップ > バックアップファイル
# アップグレード スパムオラクル
# リストア データベース
スパムオラクル リストア < バックアップファイル
構成 フィルタリング パラメーター
メッセージ分類を制御するパラメータの多くは、
設定ファイル。 デフォルトでは、設定はファイルから読み取られます。 .spamoracle.conf
ユーザーのホームディレクトリにあります。 別の構成ファイルを指定できます。
を使用したコマンドライン -config オプション: スパムオラクル -config myconfigファイル ...
設定可能なパラメータのリストと設定ファイルの形式について説明します。
in spamoracle.confとします。
すべてのパラメータには適切なデフォルト値がありますが、品質の向上を試みることができます。
微調整してさらに分類します。 変更の影響を判断するには、次を使用します。
どちらか test or STAT にコマンド スパムオラクルを選択します。 スパムオラクル STAT コマンドは XNUMX を出力します。
メールボックス内で見つかったスパム、非スパム、および不明なメッセージの数を示す行の概要
引数として与えられます。
テクニカル 詳細
SpamOracle の「単語」の概念は、文字、文字、
一重引用符とダッシュ (-)。 英語以外のヨーロッパ言語のサポートがコンパイルされている場合
では、単語の文字には、言語に関連するアクセント付き文字も含まれます。
質問。 すべての単語は小文字にマッピングされ、アクセント付き文字は
対応するアクセントのない文字。
次の文字の 3 ~ 12 個の連続も単語を構成します: 数字、ドット、
カンマ、ドル、ユーロ、パーセント記号。
さらに、XNUMX つ以上の大文字の連続により擬似単語が生成されます。 Un コラボレー n
ランの長さです。 同様に、XNUMX つ以上の非 ASCII 文字の連続 (コード >=
128) 擬似ワードを生成します Wn コラボレー n ランの長さです。
たとえば、次のようなテキストです。
SUMMER in 英語 is 書かれた 「エテ」 in フランス語
コンパイル時にフランス語のサポートが選択されたと仮定すると、次の単語に処理されます。
時間:
U5 夏 英語 書かれた ETE フランス語 W3
フランス語のサポートが選択されていない場合:
U5 夏 英語 書かれた フランス語 W3
メッセージから抽出された単語を確認するには、 スパムオラクル 言葉
標準入力から XNUMX つのメッセージを読み取るか、メールボックスからすべてのメッセージを読み取ります。
引数として指定されたファイルは、メッセージを単語に分解し、その単語を出力します。
RANDOM 注意事項
データベース ファイルは次の方法で圧縮できます。 gzip(1) ディスク容量を節約するために、
遅い スパムオラクル オペレーション。 で指定されたデータベース ファイルの場合、 -f オプションには
.gz, スパムオラクル 起動時に自動的に解凍され、再圧縮されます
アップデート後。
メールが MH 形式で保存されている場合、実行中に「コマンド ラインが長すぎます」というエラーが発生する可能性があります。
たくさんの小さなファイルを処理しようとしています スパムオラクル 加えます コマンド、たとえば実行するとき
スパムオラクル 加えます -良い アーカイブ/*/* -スパム スパム/*
代わりに、次のようなことを行います。
find アーカイブ 型 f -印刷 | xargs スパムオラクル 加えます -良い
find スパム 型 f -印刷 | xargs スパムオラクル 加えます -スパム
onworks.net サービスを使用してオンラインで spamoracle を使用する