targreyでコストを掛けずにスパム削減
DESCRIPTION
2010/10/23にインフラエンジニア勉強会(hbstudy)と2010/12/4に長野ソフトウェア技術者グループ(NSEG)勉強会でお話させていただいた際のプレゼン資料です。 taRgreyというスパム対策手法と、その背景にあるスパムの現状や対策手法について説明しています。 NSEGでの発表時に一部修正と追加いれたものに置き換えています。 この時のustは http://www.ustream.tv/recorded/10369319 と http://www.ustream.tv/recorded/11240729 で見ることが出来ます。TRANSCRIPT
taRgreytaRgrey で手間をかけずにスパム削減で手間をかけずにスパム削減
2010/12/4長野ソフトウェア技術者グループ NSEG
第 10 回 勉強会
有限会社ジーワークス
佐藤 潔
taRgrey とは?
● 85% のスパムを
● ほぼ誤検出の心配せずに
● コストをかけず削減
といった特徴をもつスパム対策手法
誤検出の心配をしなくて良いことが最大の特徴
自己紹介
● 有限会社ジーワークス
● 長野県白馬村
● スキーしたかったから :)
● taRgrey/Rgrey/Starpit
今やってる仕事
● 8 年ほど前から地方中規模 ISP 様から外注
● サーバの管理やユーザサポート業務のアウトソース
● 小規模ですが自社のサーバサービスも
なぜスパム対策を考え始めたか
● スパム対策についての要望が非常に多い
● メールアドレスへの愛着が既存ユーザをつなぎとめている
● 古くからのユーザほど…
– メールアドレスを変えたくない
– スパムが多い
こんなことを話します
● スパムの現状
● taRgrey の手法説明
● 運用実績と実際の設定
● まとめ
スパムの現状
スパムの数
● 海外だと 90% 以上という報告が多い
● 日本だと 70% ~ 80% 程度という実感
● 年々増えている
– 5 年前のアメリカで 70% ~ 80%
スパムは bot から出されるのが主流
● スパムの大半は海外の動的 IP から
● bot 化してリモートコントロールされた PC から出す
● 97% 前後が bot によるスパム
● 日本発のスパムは OP25B により激減
● bot は直接送信先メールサーバへ SMTP 接続してくる
普通のメール送信の流れ
bot からのスパム送信の流れ
botnet は寡占
● bot 総数は不明だが何 100 万台という単位
● 少数の botnet 種が大半のスパムを送信
日本語スパムはスパム 1.0
● 中国、フィリピン、タイ等の半固定的 IP から
● レンタルサーバか、事務所にサーバを何台も置いて
qmail や postfix から
● Windows PC を多数置いて専用のスパム送信ソフトから
スパム対策はすでにセキュリティ対策の一環
● スパムでWebサイトへ誘導
● 誘導したページで各種脆弱性を突いて感染
● bot化
● そのbotを使ってスパムを撒く
…無限ループ
taRgreyはbot狙い
taRgreyはbotからのスパムのみを狙ったフィルタ
taRgreyの手法説明
スパム対策手法は大きく3種に分類
● メールの内容で判断
● SMTPセッション情報で判断
● スパム送信時の制限
メールの内容で判断
● 主に本文の内容を解析して判定
● 主な例:ベイジアンフィルタ
● キーワードとその「スパムらしさ」をメールから自動学習
→「バイアグラ」が含まれているメールなら99%スパム
「出会い」「お金」が含まれているメールなら95%スパム
● 他に… コラボレーションフィルタなど
語句 バイアグラ 出会い お金
語句が含まれていてスパムだった確率
99% 90% 50%
SMTPセッション情報で判断
● SMTPセッション時の相手の「クセ」で判定
● 主な例: greylisting
● 一時拒否して再送してきたら受け取る
→ スパムは到達性は求めないからわざわざ再送しない
● 他に… tarpitting (返答の遅延)など
スパム送信時の制限
● スパムを受け取らないのではなく、出させない対策
● 主な例:OP25B (Outbound Port 25 Blocking)
● 自ネットワークから外へ SMTP 接続をさせない
● 他に… throttling (送信数制限 ) など
OP25B での送信制限
taRgreyで利用するフィルタ
taRgreyはSMTPセッション情報でのフィルタを
複数組み合わせたフィルタ
● S25R
● greylisting
● tarpitting
S25R
● 「動的 IP っぽい」逆引き名を拒否
● 逆引き名とのパターンマッチング
– evrtwa1-ar3-4-65-157-048.evrtwa1.dsl-verizon.net
– pcp04083532pcs.levtwn01.pa.comcast.net
● 誤検出はホワイトリストで対処
● 再送をログで確認して救済
● 95% 以上のスパムがマッチ
● 検出率も高いが誤検出も多い
greylisting
● 一時拒否して再送してきたら受け取る
● 一時拒否(4xx)で返すと正しいMTAは30分後とかに再送
● スパムbotは再送しない
● とても強力でこの種の中では一番メジャーな手法
● 95%以上のスパムを排除できる
greylisting によるスパムフィルタ
tarpitting
● SMTPセッションの返答を何10秒か待たせる
● スパムbotは応答時間を少ししか待たない
● 向こうから接続を切ってくる
● postfixやsendmailなら設定だけで簡単に利用できる
● 90%以上のスパムを排除できる
tarpittingによるスパムフィルタ
これら手法の良いところ
● 基本的にどれも軽い
● 判定の「揺れ」が無い
● スパム排除率は85~95%程度と軽いわりにそこそこ良い
S25Rの問題点
● 誤検出が結構多い
● ログの確認で誤検出対応するのは大規模サービスでは
手間が掛かりすぎ
● 大きくメールが遅延する
greylistingの問題点
● メールの遅延(30分など)
● 再送しない「正しい」サーバや違うIPから再送される場合
● ユーザ登録の確認メールなどで直接SMTPしゃべる場合
● DBのクリーンアップが意外に重かったり
tarpittingの問題点
● 待ち時間を極端に短くしている「正しい」サーバがある
● メールマガジンなどの大量メール配信サービスに多い
● プロセス数の増大(経験的に90秒遅延で2~3倍)
誤検出が無いことを重視すべき
● 検出率に目が行くが運用上重要なるのは誤検出率
● 重大な誤検出が起こるとユーザは使ってくれない
● 逆に仕事が増える
● 人が判定する場合より誤検出が少なくなるのが最低ライン
誤検出や遅延が無くなるよう組み合わせる
● 多重に重ね合わせるのではなく条件を絞ることに使う
● 一つの仕組みでシンプルなシステムにこだわると
逆に誤検出や負荷の問題がおこりやすい
Rgrey
● S25R + greylisting
● 怪しい接続に対してのみgreylistingを掛ける
● selective greylistingという名で手法として一般化
● S25R(の補集合)は汎用ホワイトリストという考え方
● S25RはDNSBLと比べ結果が揺れないという利点が大きい
● 95%弱のスパムを排除
Starpit
● S25R + tarpitting
● 怪しい接続に対してのみtarpitを掛ける
● S25Rに引っかかった時の遅延が無くなる
● メールマガジン配信などが引っかかりやすい
● 中規模ISPで実際に運用しているもの
● 85%程度のスパムを排除
taRgrey
● S25R + tarpitting + greylisting
● 怪しい接続に対してのみtarpitting
● S25Rに引っかかった時の遅延が無い
● 再送で救済する
● メールマガジンなども自動救済
● ほぼ誤検出はない
● 85%弱のスパムを排除
taRgreyの目的
誤検出や遅延、負荷増なく
大部分のスパムを削減すること
● taRgreyだけで全スパムを削除することは求めていない
● スパム/ハム比のベースを下げられればよい
– 10分の1になるだけでも満足するユーザは多い
– 2次フィルタの精度を10倍に出来る
– 2次フィルタの閾値を下げて誤検出を減らせる
– 「ゴミ漁り」が楽になる
SpamAssassin で閾値による誤検出・検出抜けの変化グラフ
http://www.slideshare.net/ttkzw/hbstudy20100821-spamassassin 滝澤隆史氏
閾値を 5→7 まで上げれば誤検出はほぼ無くなる
(0.04→0.00)
閾値を 5→7 まで上げても検出抜けは 2倍強程度
(1.6→3.5)
運用実績と実際の設定
検出率実績
● 69% スパム比率
● 93% S25Rのスパムマッチ率
● 91% tarpitingでの駆除率
● 85% taRgreyでの駆除率
● 64% S25Rにマッチせずに
抜けたスパム率
2010/2時点
SA での判定を 100% と仮定して算出
tarpitting時間に対する排除率
● 10秒や60秒など区切りとなる時間で落ちていく
● botの種類や運営者の数はそれほど多くないと予想できる
※tarpitting で排除できる全スパムを 100% としたときの時間による排除率
中規模での長期運用実績
● 運用条件
– Starpit
– 2006/2月より運用開始(約4年半)
– 約 36,000アカウント 30メールサーバ
● 総誤検出数
– 延べ35ドメイン (ホワイトリスト追加数)
– ユーザからの問い合わせ数はその半数程度
– 全て再送有り (taRgreyでは救済可能)
Starpitでの誤検出例
● ポイントがもらえるとかの怪しいメールマガジン
● 中国や東南アジアのメールサーバ
● Barracudaのセキュリティアプライアンスが60秒しか待たない
● ファイアーウォールが60秒以上の無通信で切ってしまう
他での採用実績
● アプライアンス
– HDE tapirus
– A.T.WORKS Sentinel Beagle● 教育機関
– 大東文化大学
– 和歌山大学システム情報学センター
– 佐世保高専
– 尚絅学院大学
– 宇部工業高等専門学校
– 一橋大学 情報基盤センター
– 中央大学
等々… 公開されていて自分の知る限り
現時点でのtaRgrey実装
● postfixのアクセスポリシーから
postgrey + taRgreyパッチ
● sendmailやpostfixのmilterから
milter-greylist, milter managerを利用
● qmail + tarpit before qgreylistパッチ
運用の実際
● 詳しくはtaRgreyとStarpitの解説ページを参照http://k2net.hakuba.jp/targrey/ http://d.hatena.ne.jp/stealthinu/20060706/p5
● 弊社: taRgrey 125secの遅延、30分後以降に再送で救済95sec遅延、10分後以降に再送で救済とかで十分
● warnでフィルタ対象となる接続のIP/From/Toのログを残す
● check_recipient_access等のアクセス制御でユーザ毎に
フィルタを掛けることも可
● postfixにsleepパッチを当ててプロセス数増大を抑制する
(2~3倍のプロセス数増が1.5倍ほどで収まる)
日本語スパム用個別フィルタ
● 素のpostfixやqmailで送られてくるものを防ぐ
● 対象は特に日本語スパム
● HELOのブラックリスト
– MTA自身のIPアドレス
– m20.mailyes.net
– SPK02
● NSのブラックリスト
– ドメインを大量に取って送ってくるもの
● taRgreyと個別フィルタで90%強くらいになる
法的問題
● 電気通信事業者がフィルタを掛けることは大抵、電気通
信事業法(通信の秘密保護、利用の公平)に抵触します
● 運用にあたり総務省に確認を取りました
● Starpit/taRgreyは利用者の同意をとらなくても利用可能
2010/4から、ぷららがselective greylistingを導入しているのでもっとき
ついフィルタも許可されつつある
総務省見解要約
● 電気通信事業者が、利用者の同意なく、発信者情報に基づいて通信を遅延させることは電気通信事業法に抵触する可能性が高い
● ゆえにStarpit/taRgreyは電気通信事業法に抵触する可能性がある
● しかし、サーバ負荷などによるメールの送受信時の支障を解消する目的で必要最小限の方法で遅延させる場合には、正当業務行為として許される
● よって選択的な遅延によるフィルタは
– 大量の迷惑メールによるサーバ負荷のためにメール送受信の遅延が生じることがないよう、迷惑メールが増えるのにあわせて、サーバの増強等を強いられていること
– この問題を解消するために必要かつ相当な方法を採用していること
から、電気通信事業法上の問題はない
まとめ
taRgreyは…
● 誤検出や遅延が無いことを重視した設計
● 複数の手法を弱点をカバーし合うよう組み合わせている
● 検出率はそこそこ、だがそれで十分な場合も多い
● 2次フィルタと組み合わせて利用してもおいしい
taRgrey ぜひ試してみてください