モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

taRgrey - S25R + tarpitting + greylisting

あー、すでにセキュリティホールメモさんに補足されてる…
MLに書くまえにブログでエントリー上げておくべきだった orz
これまでRgreyやStarpitのことで連絡いただいてた方にテスト運用お願いしていたり、postgrey-MLのほうに書いたりしてたので、もう公開してる気持ちでいたんで失敗しました。


taRgreyについて、このエントリーでぼちぼちと情報を追加したり、ご質問やコメントがあれば、ここで答えたいと思います。


taRgreyはスパム対策の手法で、tarpitting(遅延)とgreylisting(再送)を組み合わせることで、それぞれを個別に使ったときより、より誤検出(false positive)を減らすために考案しました。

taRgrey - S25R + tarpitting + greylisting


元々、Rgreyという、S25Rを用いて動的IPっぽいものについてだけgreylistingを掛ける手法を考案したのですが、それでも逆引き出来ない接続先からのメールが遅延するなどの副作用があり、そこでgreylistingの代りにtarpittingを利用したStarpitという手法を考案しました。
しかしStarpitでも、懸賞付きメールマガジンなどが逆引き出来ないIPから出されている場合など、あまり到達性は求めていないようなメールで、false positiveがありました。
また、Starpitではポリシーサーバを利用していなかったため、オートホワイトリストなどが実装されておらず、S25Rにマッチする接続元からのメールは、毎回遅延させられるという問題もありました。
taRgreyでは、それらの問題点を全て解決しています。


これらの流れは下記URLを順に追っていただけるとつかめると思います。

Rgrey - S25R + greylisting
Starpitでほぼ誤検出無く98%のスパムを排除 (S25R+tarpittingによるスパム対策)
Postfix-2.3でsleep中に切断されたらすぐに終了するパッチ
RgreyとStarpitの比較
Starpitの課題
taRgrey(S25R+tarpitting+greylisting)というスパム対策のアイデア


targreyパッチでは、大きく二つの利用方法があります。

  • greylistのフィルタにtarpitのフィルタを追加して使い、false negative(スパムメールを誤って通してしまう)を減らす tarpit & greylist モード
  • 上記で説明している、tarpitをさらにgreylistを使ってfalse positive(正しいメールを誤まってスパムと判断する)を減らすtaRgreyモードです。

それぞれの動作は、下記の図を見ていただくとわかりやすいかと思います。


Cookieさんのところでは、taRgrey導入方法についてのレポートをいただいています。
インストール方法の参考になると思います。
Birds Of a Feather | taRgreyポリシーサーバ評価中


Lukeさんところでは、"--tarpit=65 --retry-count=2"というオプション指定で、tarpittinggreylistingどちらも掛け、かつ再送は2回以上行わないと通れない、というfalse negativeを減らす方の運用での結果をレポートしていただいてます。
現在、postgreyでgreylistingの運用されているようなところでは特に参考になると思います。
-Luke's Admin ネタ帳-(2006-12-05)


まっちゃさんところで構成図を書いていただいており、どういう動きをするのか理解しやすくなると思います。
[セキュリティ]taRgrey - S25R + tarpitting + greylisting - まっちゃだいふくの日記★とれんどふりーく★ - 姉の日
まっちゃさんと話して、自分も構成図を書いてみました。


あと、mixiのコミュニティ内のトピックになってしまいますが、
[mixi] SLUG - 信州 Linux Users Group | taRgrey
でフォローしている情報がありますので、参考にどうぞ。


佐世保高専の中原さんからは、各種フィルタでのスパム排除率についてレポートをいただきました。
false positiveの可能性とスパムの排除率とのバランスを考えて、どちらの手法を採用するか決める際に、とても参考になる情報だと思います。

taRgrey*1 96.5%程度
Rgrey 97.0%程度 (retry-count=2でもほぼ同じ)
tarpit&greylist*2 98.5%程度

この拒否率は、Starpitの説明やtaRgreyの設定例ファイルで利用されている、HELOやNSのブラックリストも併用した場合とのことです。
自分の環境では、以前計測したときにはStarpit≒taRgreyで98%程度の排除率で、それが最近は少し落ちてる感じ(最近増えた画像スパムが、tarpittingを抜けてくるものが多いため)ですから、だいたい同じぐらいの結果になってると思います。
2%のfalse negative減というと少なく感じますが、逆に見るとtarpit&greylistのfalse negative率は1.5%、taRgreyは3.5%と、約2.3倍のスパムがすり抜けてくることになります。
その分でfalse positiveの不安を無くすか、という選択になるでしょう。


(追記)

モーグルとカバとパウダーの日記 - taRgreyのtarpitting時間について
にて、2007/7現在の、遅延時間とその拒否率についてのグラフを公開しています。
この結果から、taRgreyでは現時点で125秒くらいが最適な設定のようです。


(参考)

taRgrey - S25R + tarpitting + greylisting - セキュリティホール memo
[セキュリティ]taRgrey - S25R + tarpitting + greylisting - まっちゃだいふくの日記★とれんどふりーく★ - 姉の日
-Luke's Admin ネタ帳-(2006-12-05)
Birds Of a Feather | taRgreyポリシーサーバ評価中

*1:--tarpit=65 --targrey --delay=3600 --retry-count=2

*2:--tarpit=65