パスワードを忘れた? アカウント作成
494780 journal

twadaの日記: NNIPFのちゃんとした?バージョン作りました

日記 by twada
NNIPF0.09をリリースしました.これは根本的に書き直したバージョンで, strict でワーニングも出ないようにしてあります. まだアルパカ本は買ってませんが,ある程度の水準には達していると思いま す.詳しくはhttp://vrl.sys.wakayama-u.ac.jp/~twada/NNIPF.htmlへ.
496286 journal

twadaの日記: NNIPF0.06-releaseを作りました. 10

日記 by twada
NNIPFのリリース版ができました.

* MTAOBの評価方法を変え,by偽造の影響を受けないようにした.
* マスターBIP,GIPを導入し,ユーザは個人のBIP/GIPが持てるようにした.これで,大規模ユーザを対象とした運用が行なえる筈です.
* MTAOBやBIP,GIPの登録や削除,IPアドレスの弁別度計算,などがWEB上で行なえるようにした.
* WEB経由でメイルの内容を表示する際にMTAOBや識別に用いたIPアドレスが分かるようにした.また,そこからIPアドレスのチェックや,MTAOBの変更などが行なえるようにした.

NNIPFのWEBページにアクセスしたIPアドレスをhttpdのログから拾い,弁別度を計算したところ,少なくとも約4%がほぼ確実にスパマーという結果でした.ある意味で,大変感心しました.
既に使われている人は分かっていると思いますが,このスパムフィルタはちょっとトレーニン グするだけで,絶大な効果を発揮し,あとは放っておいてもフィルタリングをしながら自動的に ある程度の学習もします. ですが,より精度を高めるには1日に1度以上WEB経由でチェックをして下さい. よろしくお願いします.
追伸:23日の23時以前にダウンロードされた1名の方,Makefileに問題のあるバージョンでした.もう一度ダウンロードして下さい.

496814 journal

twadaの日記: NNIPF後日談

日記 by twada
批判,コメントをベースに,明らかな説明上の間違いや,現在のプログラムの問題点などについて私的なまとめを書いておきます.

*プログラムがきたない,バグがあるんじゃないか.
-全般的に汚いと思う.=>書き直しは chk.cgi以外は大体やった.chk.cgiは前よりもきたなくなった.動作チェックは一通りしたので,ご安心を.
-最初のMTAOBを評価するか,最後のMTAOBを評価するか?=>MTAOBを使って見つけたIPアドレスの弁別度を全部計算し,その最大値で識別する.これによって偽造の影響を受けなくなる.
-DBMを使ったほうがいい.=>Exact Matchではないので,専用のアルゴリズムが必要.
*BIPのディレクトリがでかい.=>JFS,XFS,ReiserFSでの使用を!それと,マスターBIP/GIPと各ユーザの小規模なBIP/GIPを分離することにより,デッドコピーを持たなくて済むようにした.
*最近傍識別って何?=>参考http://vrl.sys.wakayama-u.ac.jp/PRA/WPR-6.pdf
*IPアドレスを4次元ベクトルとして扱っているか=>スカラーの間違いでした.
*procmailと相性のいいように書き直すべき.=>これはexitで0か1を返すということで簡単に書ける.けれど,procmail内のフィルタでは弁別度に応じて曖昧な判断を行なう部分が実現しづらい.
*TRASHは,~/Maildir/trashに変更した.
*効果がない=>今のうちは効果は十分あるはず.少なくとも私は100%ミスなし.
*ヘッダー情報が分かり難いので,素人が使いにくい.=>ヘッダ情報が分かりやすくなるように工夫した.

これらの対処を施したリリース版を公開しました.

497249 journal

twadaの日記: IPアドレスの最近傍識別を行うSPAM Filter 101

日記 by twada
今まで,約5年間本業の画像の研究の傍ら,spamフィルタの研究と開発を行なってきました.コンテンツ内のURLなどのフィンガープリントを用いた方法,ベイジアンフィルタ,など色々作ってみては,精度が十分高くないことに満足が行かず,何度も試行錯誤を繰り返しました.

そして,最終的に行き着いたのが,このNNIPFと名づけたフィルタです.説明とソースへのリンクは
http://vrl.sys.wakayama-u.ac.jp/~twada/NNIPF.html
にあります.

このフィルタの特殊性は,1)自分が外部からメイルを受けるときに使っている信頼できるMTAを登録しておき,そのMTAが生成したReceived:行から送信元のIPアドレスを割り出すという点,2)IPアドレスを最近傍識別することによってSPAM検出を行うという点,です.これが妥当性を持つ理由は,Received行の改竄に対応でき,しかもIPアドレスは,組織の種別によって番号の偏りがあるので,まっとうなメイルの送信元と,SPAMメイルの送信元にはかなりの偏りがあるためです.現在登録しているSPAM-IPは1万8千以上,HAM-IPは千数百程度ですが,最近傍識別は木探索を用いて一瞬で終わります.

ABUSEされたマシンから送ったまっとうなメイルがブロックされるという問題はあるかもしれませんが,私が使ってみた限りそういうケースは0でした.また,SMTP強制切断を行いRFC2821準拠でないものを落とすあるいは,SMTPターピットでSPAMを受けないという対処で十分ではないかという話もありますが,これを用いても一旦他のMTAで中継されたメイルは通り抜けます.また,最近は専用SPAM送信マシンからまっとうに送られてくるSPAMもあるようです.こういったわけで,うちの組織も入り口で上記のチェックをしてますが,私個人の場合は毎日10通以上は楽に通り抜けてきます.

そこでやっぱりフィルターは必要になるのですが,コンテンツを見て識別するフィルターはミスをしますし,学習がいつどのように行なわれるのかがよく分からず,うまく御すことが難しいと思っておられる方は多いと思います.NNIPFは最近傍識別を用いたことで,これまで我々が開発してきたどんなフィルタよりも,精度が高く,学習も一瞬で終わるという性質をもちます.また,MTA上でSPAM検出をしますので,検出されたメイルはダウンロードされません.つまり,出張先のPHS接続で,SPAMばかりダウンロードするといったことが起きません.また,誤識別や,検出漏れなどがあった場合には,WEBインタフェースから修正を行なうことができます.このフィルタの長所はこういったところですが,逆に短所はというと,
*MTA+POP/IMAPサーバ+WEBサーバという3つの機能の揃ったLinux上でしか動かない
*メイルのメカニズムが分かっていない素人には設定や運用が難しい
の2点です.ですから,素人が利用するよりもメイルの管理者が導入してユーザに利用法を教えるという形が取られると思います.

Perlで書かれたフリーソフトですので,ご自由にお使いください.

typodupeerror

アレゲはアレゲを呼ぶ -- ある傍観者

読み込み中...