60分間スパム・クッキング

Similar documents
私は誰?

迷惑メール対策[Barracuda]操作マニュアル

ENMA とは 送信ドメイン認証の ( 受信側 ) 検証をおこなう milter Sendmail Postfix と連携動作 認証結果をヘッダとして挿入 認証結果ヘッダの例 Authentication-Results: mx.example.jp; spf=pass smtp.mailfrom=

Microsoft PowerPoint 第一期_spamPPT_ ppt

タイトル


電子メール グループ7 宇賀一登 小椋智泰 久岡敬司 矢野川真帆 1


DNSとメール

Prep4Cram Latest IT Exam Prep Training and Certification cram

メール設定

迷惑メールチェックサービス設定マニュアル rev /7/6 株式会社イージェーワークス 1

Mailman管理者マニュアル

<4D F736F F D208BD98B7D D B838B835A DD92E8834B C52E646F63>

Microsoft Word - SE第15回.doc

著作権情報 本ドキュメントは 著作権法で保護された著作物で その全部または一部を許可なく複製したり複製物を配布 したり あるいは他のコンピュータ用に変換したり 他の言語に翻訳すると 著作権の侵害となります ご注意 予告なく本書の一部または全体を修正 変更することがあります また 本製品の内容またはそ

メール設定 Outlook Express 6 の場合 (Windows 98 ~ XP) Outlook Express 6 の場合 (Windows 98 ~ XP) Windows XP に付属する Outlook Express 6 に αweb のメールアカウントを追加する方法についてご案

MultiStageマニュアル_メール設定編

UNIVERGE SG3000 から SG3600 Ver.6.2(2012 年モデル ) への 移行手順 All Rights Reserved, Copyright(C) NEC Corporation 2017 年 11 月 4 版

Outlook Express 6 の場合 (Windows XP) Outlook Express 6 の場合 (Windows XP) Windows XP に付属する Outlook Express 6 に αweb のメールアカウントを追加する方法についてご案内します 1 スタート をクリッ

HANDyTRUSt「携帯電話操作編《(DOCOMO 900シーズ)

メールアドレスを登録したい イッツコムでは標準でメールアドレスが 5 つまで登録可能です 6 つ目以降につきましては 1 メールアドレスにつき月額 300 円 ( 税抜 ) のオプション料金が発生します メールアドレスは 任意設定 サブドメイン.itscom.net になります お客さ

研究室LANの設定方法

BraindumpsVCE Best vce braindumps-exam vce pdf free download

多言語ドメイン名の実装 mdnkit 石曽根信 ( 株 ) SRA 2001/12/04 日本語ドメイン名解説 / mdnkit 1 mdnkit 多言語ドメイン名を扱うためのツールキット 正規化 エンコード変換等を提供するライブラリとコマンド 既存アプリケーシ

Office365 AL-Mail

アカウント管理 アカウント管理 利用者のメールアカウントの追加 編集ができます また パスワード ( 管理者 利用者 ) の変更も可能です アカウント管理画面を表示する 利用者のメールアカウントを登録するための画面は 以下の方法で表示します 1 管理者メニューを表示し アカウント管理 をクリックしま

目次 1. 教育ネットひむかファイル転送サービスについて ファイル転送サービスの利用方法 ファイル転送サービスを利用する ( ひむか内 ) ファイル転送サービスへのログイン ひむか内 PCでファイルを送受信する

導入ドキュメント

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

メールソフトの設定 設定に必要な情報について... P2 迷惑メール対策 OP25B について... P3 Outlook 2016 の設定... P5 Outlook 2013 の設定... P8 Windows 10 メールアプリの設定... P11 Mail 10.0 の設定... P15 i

サービス内容 サービス内容 アルファメールダイレクトのサービス内容 機能 対応環境についてご案内します 基本サービス 管理者機能 アルファメールダイレクトをご利用になる前に まず管理者の方がメールアドレスの登録や 必要な設定を行います すべての設定は ホームページ上の専用フォームから行います < 主

プレゼン資料( EBUG用).pdf

メールデータ移行手順

迷惑メールフィルタリングサービス フィードバック機能マニュアル

DumpKiller Latest IT Exam Questions & Answers No help, Full refund!

H27組織改定

アジェンダ DNSBLのおさらい 当社メールサーバへの導入 DNSBLに登録されちゃった ネットワーク構成の変更 まとめ Copyright (c) 2014 Global Network Core Co.,Ltd. 1

迷惑メールフィルタリングコントロールパネル利用者マニュアル

共通フィルタの条件を設定する 迷惑メール検知 (SpamAssassin) の設定 迷惑メール検知 (SpamAssassin) とは.

Citrix Receiver導入の手引き

AWS からのメール配信の選択肢 1. EC2 上に Mail Transfer Agent (MTA) を構築して配信 2. Amazon Simple Service (SES) の利利 用 3. 外部 配信サービスの利利 用 3. については AWS 特有の 手順はない

アプリケーション インスペクションの特別なアクション(インスペクション ポリシー マップ)

インストール手順 2 セットアップの種類 [ 標準インストール (S)] [Thunderbird を既定のメールプログラムとして使用する (U)] にチェックを入れ [ 次へ (N)] をクリックします インストール手順 3 セットアップ設定の確認 [ インストール (I)] をクリックします 2

LGWAN-1.indd

大阪大学キャンパスメールサービスの利用開始方法

2. 設定画面から 下記の項目について入力を行って下さい Report Type - 閲覧したい利用統計の種類を選択 Database Usage Report: ご契約データベース毎の利用統計 Interface Usage Report: 使用しているインターフェイス * 毎の利用統計 * 専用

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

迷惑メールフィルタリングサービス コントロールパネル利用者マニュアル

PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP が被るとローカル環境内接続が行えなくな

Microsoft PowerPoint - パソコン講習会資料(3)メール ppt

2 目次 1 はじめに 2 システム 3 ユーザインタフェース 4 評価 5 まとめと課題 参考文献

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP

( )

SMTP ルーティングの設定

<4D F736F F D F96C B838B91CE8DF491808DEC837D836A B76312E342E646F63>

1. ログイン 1. 下記の URL よりアクセスしてください 2. が表示されたら ユーザ名 ( 親 ID) とパスワード ( 親 ID パスワード ) をそれぞれの欄に正確に入力し ログイン ボタンをクリックしてください 3. ログインが完了すると メニュー

<4D F736F F D B838B8A7597A3424F DEC837D836A B5F E315F E646F63>

大阪大学キャンパスメールサービスの利用開始方法

+abmail 迷惑メール対策サービス 迷惑メール判定プログラム abmail による スパム対策の導入のすすめ 株式会社あいはら 研究開発チーム 山田 泰司

1 グループ管理者とは ページ設定 ( グループページの設定 ) を行うことができるのがグループ管理者です グループ管理者はパーツのレイアウト変更や グループメンバーの権限設定 メンバーの招待などグループページ内の管理について様々に設定することができます 例えば町内会でグループページを作成し運用して

お客様各位 2009 年 4 月 1 日日商エレクトロニクス株式会社ソリューションパートナ事業本部技術統括部サポートグループ MOS GA リリースのご案内 拝啓貴社益々ご清栄の段 お慶び申し上げます 平素は格別なるご高配を賜り厚く御礼を申し上げます さて この度 MOS

クラウドメール移行に伴うメーラーの設定方法設定変更の内容 :SMTP 及び POP 受信ポートの変更 & 送信セキュリティの暗号化接続 Live メールの設定方法 1. 画面上部の アカウント を選択後 直下に表示される プロパティ を選択すると 以下の画面 ( 図 1) が表示されます 図 1 2

インターネット協会迷惑メール対策委員会 インターネット協会は 2001 年に設立された財団法人 賛助会員 94 社 (2010 年 12 月 7 日現在 ) 迷惑メール対策委員会 2004 年に設立 メンバーは ISP の他 大学 企業関係者 それらにサービスを提供する SIer など 2005 年

内容 1 Office 365 のサインイン サインアウト サインイン方法 サインアウト方法 Outlook on the Web 画面構成 メールの利用方法 受信メールの閲覧 添付ファイルのダウンロ

インストーラー 管理番号 内容 対象バージョン 230 HULFT がすでにインストールされているパスに対してサイレントインストールを実行すると インストールされていた HULFT の動作環境が不正な状態になる 7.3.0~7.3.1 ユーティリティ 管理番号 内容 対象バージョン 231 管理情報

Windows メール設定 - 迷惑メールの振り分け フォルダの作成 迷惑メールの振り分け方 振り分け先のフォルダを作成します 受信トレイで右クリックをし フォルダの作成 をクリックします 名前に任意の名前を入力し OK ボタンをクリックします 件名に挿入設定がある場合 件名に挿入設定がある場合 W

メールソフト設定ガイド

目次 1. メールソフト THUNDERBIRD Thunderbird とは インストール 設定 メールの受信 メールの送信 AL-MAIL からのメールボックスの移行 ダウンロ

I N D E X リダイレクト画面投稿手順 リダイレクト画面投稿手順 2 1 管理画面にログイン 2 右上の + 追加 を押す メールサービスのご利用について 4 メールソフト設定方法 ご利用のバージョンにより 画面や設定項目が異なる場

1 POP 系の設定 重要事項 Windows10 のメールアプリで CCNet のメールを利用する場合 以下の点にご注意ください Windows 10 に標準でインストールされている メール アプリは 弊社のメール方式 (POP) に対応はしておりますが 本マニュアル制作時点 ( バージョン 17

目次 はじめに サービス内容 管理者機能 利用者機能

導入ドキュメント

E-Post BossCheck Server 運用マニュアル&事例集

導入ドキュメント

Hi-Available Mail on CLUSTERPRO for Linux HOWTO

<4D F736F F D2089E696CA8F4390B35F B838B CA816A>

9. システム設定 9-1 ネットワーク設定 itmはインターネットを経由して遠隔地から操作を行ったり 異常が発生したときに電子メールで連絡を受け取ることが可能です これらの機能を利用するにはiTM 本体のネットワーク設定が必要になります 設定の手順を説明します 1. メニューリスト画面のシステム設

Getting Start mdc (Mail Destination Confirm) Getting Start mdc (Mail Destination Confirm) Rev /11/3 目次 Getting Start mdc (Mail Destination Con

PowerPoint プレゼンテーション

Microsoft Word - Gmail-mailsoft_ docx

058 LGWAN-No155.indd

【EW】かんたんスタートマニュアル

迷惑メールフィルタリングサービス コントロールパネル利用者マニュアル

8. Windows の補足情報 コマンドの使用についての説明です Windows からのファイル直接印刷 Windows でコマンドを使用したファイル直接印刷の方法についての説明です この機能はネットワーク接続をしているときに使用できます この方法で印刷できるファイルは 本機が搭載しているエミュレ

5-2. 顧客情報をエクスポートする 顧客管理へのアクセス手順 メールディーラーで管理する顧客情報に関する設定を行います 1. 画面右上の 管理設定 をクリックする 2. 管理設定 をクリックする 3. ( タブ ) 顧客管理 をクリックする 2

メール送信テストツール手順書

1. 概要 この章では HDE Controller X LG Edition をお使いの方に向けて LGWAN 接続に特化した設定の説明をします HDE Controller X LG Edition 以外の製品をご利用のお客様はこの章で解説する機能をお使いになれませんのでご注意ください 452

Actual4Test Actual4test - actual test exam dumps-pass for IT exams

IBM API Connect 開発者ポータル構成ガイド 1章

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

FTP 共有を有効にする あらかじめ作成済みの共有フォルダーを FTP 共有可能にする設定を説明します 共有フォルダーの作成方法は 画面で見るマニュアル をご覧ください ファイル数の多い共有フォルダーを変更すると 変更が完了するまでに時間がかかる場合があります また 変更が完了するまで共有フォルダー

PowerPoint プレゼンテーション

Office365迷惑メール対策について

1.POP3S および SMTP 認証 1 Outlook2016 を起動します 2 Outlook2016 へようこそ ウィンドウが表示されますので 次へ ボタンを クリックします メールアカウントの追加を行う場合や Outlook2016 へようこそ ウィンドウが表示されない場合は 以下の手順を

2. Save をクリックします 3. System Options - Network - TCP/IP - Advanced を開き Primary DNS server と Secondary DNS Server に AXIS ネットワークカメラ / ビデオエンコーダが参照できる DNS サ

PowerPoint プレゼンテーション

1. はじめに教育 研究用メールシステム (DEEPMail) で作成したフォルダーや オプションで設定した項目を 東海大学コミュニケーション & コラボレーションシステム (T365) の Outlook で利用する場合には データ移行作業が必要となります ここでは フォルダーおよび各設定項目の移

2019/6/26 更新 2.2. メーラー設定 (IMAP 設定 ) この項目ではメールソフトで IMAP にて受信ができるように設定をする手順を説明します 事前にマニュアル 1.4 POP/IMAP 許可設定 を行っている必要があります 新 旧両方の東北大メールの受信設定をしていると 6/14-

untitled

Transcription:

HBSTUDY #14 60 分間スパムクッキング 株式会社サードウェゕ滝澤隆史

私は誰? 氏名 滝澤隆史 所属 株式会社サードウェゕ twitter: ttkzw 仕事内容 ソフトウェゕを開発したり Linuxサーバを構築したり ツッコミを入れたり

私は誰? オープンソース関連 http://www.emaillab.org/ の中の人 http://www.emaillab.jp/ の中の人 昔はqmail 使い (qmail-vidaの作者) 今は Postfix + Dovecot 使い Muttの日本語 / 国際化対応関連 SpamAssassinの日本語対応パッチ DNSキャッシュサーバUnboundの紹介

本日のレシピ 準備 (15 分 ) 迷惑メール対策概論 SpamAssassin 紹介編 本論 (40 分 ) SpamAssassin 概要編 SpamAssassin 導入編 SpamAssassin 実践編 おまけ (5 分 ) 日本語ルール自動生成 日本語対応ルール配布サト

迷惑メール対策概論

迷惑メール対策 ( 受信 ) 迷惑メール ( スパム ) と正常なメール ( ハム ) との区別 人は文脈で判断できる コンピュータは文脈では確実には判断できない

コンピュータによる判断 迷惑メールの特徴に基づいて行っている 経路情報 エンベロープ情報 SMTPセッションの挙動 メールの内容

経路情報 送信元ホストのIP ゕドレスが逆引きできるか? 送信元ホストが動的 IP ゕドレスであるか? クラゕントPCからの送信の可能性 botnetやワーム

経路情報 DNSBL/DNSWL 送信元ホストがブラックリスト / ホワトリストに登録されているか? リストの登録情報が正しく整備されているか? という問題がある 経路情報のみによる判断は 疑わしい というレベルであり 誤判定の恐れがある

エンベロープ情報 MAIL FROM のドメンパートの RR(MX レコードや A レコード ) が存在するか? バウンスメールを送ることができないから 拒否してよいんじゃないか? という考えもある HELO/EHLO のドメン名の RR が存在するか? クラゕント PC は自身のコンピュータ名を名乗ることが多い DNS の RR や MTA が正しく設定されていないことがあり 誤判定の恐れがある

SMTP セッションの挙動 Greylisting 一時拒否した後に再送してきたら受け取る スパムは大量送信するために再送しない という考えに基づいている 1 メールの送信 2 一時拒否 送信 MTA 受信 MTA 3 メールの再送 4 許可

SMTP セッションの挙動 Greylisting 非常に効果はあるが 配送遅延の問題 再配送しないシステムの問題がある 問題の影響を減らすために Selective Greylisting を利用することもある 送信ホストが疑わしいとき ( S25R SPF DNSBL 等の判断 ) に Greylisting を行う

SMTP セッションの挙動 Tarpitting SMTP セッション中の応答を遅らせる スパムは大量送信するために タムゕウトを短くして 自らセッションを切断する という考えに基づいている 1 メールの送信 送信 MTA 2 応答遅延 3' セッション終了 3 許可 受信 MTA

SMTP セッションの挙動 Tarpitting 送信側と受信側の双方に セッション時間が長くなり プロセス数が増加するという問題がある

メールの内容 ルールベースフゖルタ 迷惑メールらしい特徴を持ったキーワードやパターンがメッセージに含まれているか ルールの整備が大変 スパムの文面の巧妙化

メールの内容 ベジゕンフゖルタ ベズの定理を用いた統計確率的手法 予め迷惑メールと正常なメールをそれぞれ学習させ メールに含まれる単語の統計解析を行う 新しいメールが来たら そのメールに含まれる単語を解析し 迷惑メールである確率を計算する この確率がある閾値 ( 例えば 95%) を超えていれば迷惑メールであると判断する 確率の閾値を高くしないと正常なメールが引っかかる

メールの内容 協調型フゖルタ 迷惑メールは同じ文面のメールを大量にたくさんの人に送りつけるため そのメールを受け取った人が そのメールが迷惑メールであると判断した結果を公開すれば 他の人もその結果を利用できる 判定結果を公開データベースに登録する仕組みと 公開データベースに問い合わせる仕組みを用意する Vipul's Razor Cloudmark( 商用 )

メールの内容 URIDNSBL 迷惑メールの目的はメールを読んだ人をウェブサトに誘導すること そのために URI をメール本文に載せる 対策として URI に対する DNSBL を用意する リダレクトや短縮 URL による回避の問題がある

送信ドメン認証 送信者のメールゕドレスに基づく認証方法 SPF, Sender ID, DomainKeys, DKIM 送信ドメンの DNS 権威サーバ 3 回答 2TXT レコードの要求 1 メールの送信 4 偽装しているかを判断 送信 MTA 5 許可 受信 MTA

送信ドメン認証 直接的な迷惑メール対策ではない スパマー自身が SPF を宣言しているケースがある SPF を pass したからといってスパムではないとは言い切れない 詐称を検出する仕組み 詐称しているスパムは多いため 結果として迷惑メール対策になっている

誤判定 迷惑メール対策ソフトによる判定結果 正常なメール 迷惑メール ( ハム ) ( スパム ) 人の判断 正常なメール 迷惑メール True Positive ( 正判定 ) False Negative False Positive ( 誤判定 ) True Negative ( 誤判定 ) ( 正判定 )

迷惑メール対策を正しく運用するには False Positive( 正常なメールをスパムと誤判定 ) を減らす False Positive が発生すると対策システムが信用できなくなる False Negative を許容する 1 つの要因のみでは判断しない 複数の要因の加算で判断する

SpamAssassin による対策 SpamAssassin のスパムらしさの判定の対象 経路情報 エンベロープ情報 メールの内容 送信ドメン認証 SMTP セッションの挙動以外はほとんど SpamAssassin によるテストの対象になる False Positive を減らすために複数の要因の加算で判断する

SpamAssassin 紹介編

SpamAssassin とは スパムらしさを判定するメールフゖルタ

SpamAssassin でできること メールのスパムらしさの判定 様々な試験の実施 スパムらしさのスコゕの計算および判定 スパムらしさの判定 判定結果に対する処理 メールの書き換え

SpamAssassin でできること 判定結果に対する処理 ベジゕンフゖルタの自動学習 スパムらしさの判定 判定結果に対する処理 メールの書き換え

SpamAssassin でできること メールの書き換え ヘッダの書き換え スコゕや判定結果のヘッダへの追加 スパムメールのカプセル化 スパムらしさの判定 判定結果に対する処理 メールの書き換え

SpamAssassin でできること スコゕや判定結果のヘッダへの追加 X-Spam-Flag: YES X-Spam-Level: ******* X-Spam-Status: Yes, score=7.3,... 他のソフトウェゕでこのヘッダフゖールド値を利用できる

SpamAssassin でできないこと スパムの除去 スパムの振り分け バウンスメールの送信

SpamAssassin でできないこと スパムの除去や振り分けをしたい 他のソフトウェゕと組み合わせる 実践編へ

SpamAssassin の特徴 様々なテストを総合的に行う 最新のルールフゔルでは 900 個のテストあり パターンテスト 文字列の一致 (Perl 正規表現を利用可能 ) ネットワークテスト 経路情報 ( ヘッダの Received フゖールド ) DNS/URIDNS ブラックリスト 協調型データベース 送信ドメン認証 (SPF, DKIM) ベズテスト

SpamAssassin の特徴 一つのテスト結果だけでは判断しない 誤判定の要因 様々なテストの結果をスパムらしさのスコゕとして加算する 0.1 + 0.5 + 1.0 + 3.0 + 2.0 + 1.0 = 6.6 スパムっぽいよ False Positive( 正常なメールをスパムと誤判定すること ) を少なくできる

SpamAssassin のバージョン 最新版 SpamAssassin 3.3.1-2010 年 3 月 19 日リリース 旧バージョン SpamAssassin 3.2.5-2008 年 6 月 12 日リリース

動作環境 (SpamAssassin 3.3.1) Perl 5.8.5 以降がンストールされた UNIX 系 OS (Linux/*BSD も含む ) Perl 5.8.8, 5.8.10, 5.10.1 推奨 Perl 5.12 では現バージョンは動作しない Windows 環境でも動作する

日本語メールの判定 日本語対応パッチを当てるとよい http://www.emaillab.jp/spamassassin/ja-patch/

SpamAssassin 概要編

SpamAssassin の構成 Perlモジュールラブラリ ツール 判定ツール ベズ学習ツール等 プラグン ルールフゔル

Perl モジュールラブラリ SpamAssassin の本体 Mail::SpamAssassin Perl のプログラムに組み込むことができる use Mail::SpamAssassin; my $sa = Mail::SpamAssassin->new(); my $mail = $sa->parse($message); my $status = $sa->check($mail); if ($status->is_spam()) { $message = $status->rewrite_mail();... } $status->finish(); $mail->finish();

SpamAssassin のツール spamassassin spamc spamd sa-learn sa-update sa-comple メールがスパムであるかどうかを判定する フロントエンドプログラム メールがスパムであるかどうかを判定する spamd とクラゕントとして動く メールがスパムであるかどうかを判定するデーモン spamc をクラゕントとして接続を受け付ける ベジゕンフゖルタの学習を行わせる 最新のルールフゔルをダウンロードしてきて更新する BODY ルールのコンパル

spamassassin スタンドゕローンのスパム判定プログラム 標準入力からメールを受け取り 標準出力に結果のヘッダを付けて出力する Perl のプログラムであるため 起動のオーバーヘッドがある

spamassassin コマンド実行例 $ spamassassin < spam.eml Return-Path: <ohydhitmyrpnr@example.com> X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mercury.emaillab.jp X-Spam-Flag: YES X-Spam-Level: *************** X-Spam-Status: Yes, score=15.6 required=7.0 tests=body_ja_tosaito, FROM_ILLEGAL_CHARS,FSL_HELO_BARE_IP_1,RCVD_IN_BRBL_LASTEXT,RCVD_IN_PBL, RCVD_NUMERIC_HELO,RDNS_NONE,SUBJECT_NEEDS_ENCODING,T_URIBL_BLACK_OVERLAP, URIBL_BLACK,URIBL_JP_SURBL autolearn=spam version=3.3.1 X-Spam-Report: * 1.4 FSL_HELO_BARE_IP_1 FSL_HELO_BARE_IP_1 * 2.1 FROM_ILLEGAL_CHARS From: has too many raw illegal characters * 0.9 RCVD_NUMERIC_HELO Received: contains an IP address used for HELO * 3.6 RCVD_IN_PBL RBL: Received via a relay in Spamhaus PBL * [119.48.195.193 listed in zen.spamhaus.org] * 1.9 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist * [URIs: pinroom.com] * 1.8 URIBL_BLACK Contains an URL listed in the URIBL blacklist * [URIs: pinroom.com] * 0.2 BODY_JA_TOSAITO BODY: TOSAITO

spamd と spamc クラゕント / サーバ型のスパム判定プログラム spamd がデーモンとして常駐する spamc はクラゕントとして動作し spamd にメールを渡してスパムの判定を依頼する spamc は C 言語で書かれているため 起動のオーバーヘッドが小さい

sa-learn ベジゕンフゖルタに手動で学習させるプログラム $ sa-learn --spam --progress./spam/ 1% [= ] 3.23 msgs/sec 09m34s LEFT

sa-update ルールフゔルを最新のものに更新するプログラム スパムの手法は常に変化するため 対応する新しいルールが作られる 最新のルールへの更新が必要 実行例 # sa-update

sa-compile BODY ルールをコンパルする BODY ルールの正規表現を C 言語のプログラムに変換して コンパルする ルール判定の高速化 残念ながら日本語には対応していない

プラグン SpamAssassin のテストエンジンはプラグンにより実装されている

プラグン Mail::SpamAssassin::Plugin::* AccessDB, AntiVirus, ASN, AutoLearnThreshold, AWL, Bayes, BodyEval, BodyRuleBaseExtractor, Check, DCC, DKIM, DNSEval, FreeMail, Hashcash, HeaderEval, HTMLEval, HTTPSMismatch, ImageInfo, MIMEEval, MIMEHeader, OneLineBodyRuleType, PhishTag, Pyzor, Razor2, RelayCountry, RelayEval, ReplaceTags, Reuse, Rule2XSBody, Shortcircuit, SpamCop, SPF, Test, TextCat, URIDetail, URIDNSBL, URIEval, VBounce, WhiteListSubject, WLBLEval,

プラグン 自動学習関連 AutoLearnThreshold AWL パターンテスト関連 WhitelistSubject MIMEHeader ReplaceTags HTTPMismatch URIDetail 国 言語関連 RelayCountry TextCat

プラグン ネットワークテスト関連 Razor2 SpamCop URIDNSBL 送信ドメン認証 SPF DKIM ベズ Bayes その他 AccessDB AntiVirus FreeMail PhishTag

プラグンの制御フゔル プラグンの制御フゔル /etc/mail/spamassassin/*.pre /etc/mail/spamassassin/init.pre の例 # URIDNSBL - look up URLs found in the message against several DNS # blocklists. # loadplugin Mail::SpamAssassin::Plugin::URIDNSBL # SPF - perform SPF verification. # #loadplugin Mail::SpamAssassin::Plugin::SPF

ルールフゔル 標準のルールフゔル /var/lib/spamassassin/ 約 900 個のルールが用意されている sa-updateコマンドでダウンロードする ユーザー定義ルールフゔル /etc/mail/spamassassin/*.cf

ルールフゔル ルールフゔルに各種テストを実行するルールが記述されている テストの実行エンジンはプラグンであるため 無効にしたプラグンに対応するテストやルールは実行されない 例えば SPF プラグンを無効にしたら SPF に関連したルールのテストは実行されない

テストの種類 パターンテスト ネットワークテスト ベズテスト

パターンテスト ヘッダ ボデゖのテキストパート URI メッセージ全体 ホワトリスト ブラックリスト

パターンテスト テスト header body uri rawbody full 説明 ヘッダ (MIME 復号化済み ) ボデゖのテキストパートのみ (MIME 復号化済み HTML タグ等の除去あり ) ボデゖに記述された URI ボデゖのテキストパートのみ (MIME 復号化済み ) 生メッセージ全体 (MIME 復号化なし )

パターンテストの例 ヘッダの Subject フゖールドに % off を含む header SUBJECT_OFF Subject =~ /% off/i describe SUBJECT_OFF Subject contains a word '% off' score SUBJECT_OFF 2.0 本文に 出会い を含む body BODY_JA_DEAI / 出会い / describe BODY_JA_DEAI DEAI score BODY_JA_DEAI 0.5

パターンテストの記述上の注意点 full テストを使わない MIME 復号化前の添付フゔルも含めた評価を行うため 非常に負荷がかかる body テストにおいて /.*/ のような行末までマッチするようなパターンを使わない 繰り返しには {,5} のように制限をかける この 2 点を誤ると 過大な CPU 負荷がかかる恐れがある

ネットワークテスト IP ゕドレスやホスト名 Received ヘッダの解析を実施し 経路情報や HELO/EHLO のドメン名などの解析も行う DNS ブラックリスト URIDNS ブラックリスト 協調型データベース 付属のテストは応答時間的に実質的に使い物にならないので利用しない方がよい 送信ドメン認証 (SPF, DKIM)

ネットワークテスト SpamAssassin の処理時間の長さはネットワークテストにおける DNS クエリの応答によるもの 専用に DNS キャッシュサーバを用意する Unbound がおすすめ

ベズテスト ハム スパム共に200 通以上学習したら判定開始自動学習機能 デフォルトでスコゕ 0.1 以下でハムとして学習 デフォルトでスコゕ 12 以上でスパムとして学習 確率とスコゕ score BAYES_00-1.9 score BAYES_05-0.5 score BAYES_20-0.001 score BAYES_40-0.001 score BAYES_50 0.8 score BAYES_60 1.5 score BAYES_80 2.0 score BAYES_95 3.0 score BAYES_99 3.5

特殊なテスト ( プラグン ) メールが中継された国の一覧 (RelayCountry) AS 番号 (ASN) URI(URIDetail) 画像情報 (ImageInfo) バウンスメール (VBounce)

META テスト META 複数のテスト結果の組み合わせ

おまけ : 日本語対応パッチ

日本語対応パッチの機能 normalize_charset オプションの改良 日本語でテストルールが書けます body HOGOHOGE / ほごほげ / オリジナルでは十分に機能していない 文字エンコーデゖング推定処理の強化 report_charset オプションの改良 ベジゕンフゖルタの UTF-8 の文字処理の改良 ベジゕンフゖルタの日本語対応 日本語の分かち書き

ベジゕンフゖルタの日本語対応 日本語は単語毎に区切られていない言語 私の名前は中野です ベズ解析を行うためには分かち書きが必要 私の名前は中野です

分かち書き処理プラグン 分かち書き処理は SpamAssassin のプラグンとして実装 プラグンを 2 つ用意している Tokenizer::MeCab Tokenizer::SimpleJA

Tokenizer::MeCab 形態素解析エンジンMeCabの利用 分かち書きの結果 私の名前は中野です 私の名前は中野です すもももももももものうち すもももももももものうち

Tokenizer::SimpleJA 文字種による区別 他のソフトウェゕのンストールは不要 分かち書き結果 私の名前は中野です 私の名前は中野です すもももももももものうち すもももももももものうち

SpamAssassin 導入編

ンストール 日本語対応パッチがあるので適応してンストールする http://www.emaillab.jp/spamassassin/ja-patch/ 細かい話は省略 ンストールしたら sa-update を実行する SpamAssassin 3.3.0 からルールフゔルは同梱されなくなっている sa-update によりルールフゔルを取得する

設定フゔル /etc/mail/spamassassin/local.cf /etc/mail/spamassassin/*.cf

必要最小限の設定 UTF-8 に変換してから評価する機能 normalize_charset 1 判定スコゕの設定 required_score 5 運用当初は高めに設定し 精度が上がってきたら徐々に下げる 最適な閾値が 5 になるように各ルールのスコゕは調整されている 5 から 7 の間がおすすめ

必要最小限の設定 ネットワークの設定 internal_networks 192.0.2.0/24 レポートオプションの設定 report_safe 0 これを設定しないとスパム判定されたメールはカプセル化されたレポートメール形式になる

プラグンの選択 利用するプラグンを選び 有効にする /etc/mail/spamassassin/*.pre init.pre v310.pre v312.pre v320.pre v330.pre 導入されたバージョン毎に設定フゔルがある

例 :SPF の有効化 /etc/mail/spamassassin/init.pre を編集し 次の行を有効にする loadplugin Mail::SpamAssassin::Plugin::SPF

例 : 協調型データベースの無効化 /etc/mail/spamassassin/v310.pre を編集し 次の行を無効 ( コメントゕウト ) にする #loadplugin Mail::SpamAssassin::Plugin::DCC #loadplugin Mail::SpamAssassin::Plugin::Pyzor #loadplugin Mail::SpamAssassin::Plugin::Razor2

ユーザー定義ルール 必要に応じてルールを記述する body BODY_JA_DEAI / 出会い / describe BODY_JA_DEAI DEAI score BODY_JA_DEAI 0.5 header TOO_DETAILED_DATE_TZ Date =~ / s[-+] d{2}(?:[1-24-5] d d[1-9])/ describe TOO_DETAILED_DATE_TZ Date: timezone is too detailed score TOO_DETAILED_DATE_TZ 3.0 ユーザー定義ルールは local.cf に記述するのではなく 別フゔルに記述するのがおすすめ 拡張子が cf であれば設定フゔルと認識する

設定フゔルの検査 設定フゔルの記述を変えたら必ず spamassassin --lint を実行すること 何もエラーが出なければよい

おまけ : required_score の最適値

統計情報によるスコゕの調整 メジャーバージョンのリリース時に各ルールのスコゕの調整を行うためにマスチェックを実施 マスチェック : 65320 通のメール ( ハム : 21186 スパム : 44134) required_score の設定値毎に判定させる required_score が 5.0 のときに False Positive 0.05% 程度になるように調整 統計結果が SpamAssassin の配布物に同梱

誤判定率 (False Positive) [%] False Positive 100 90 80 70 60 50 40 30 20 10 0 スコゕセット 0( ベズ : 無効 ネットワーク : 無効 ) スコゕセット 1( ベズ : 無効 ネットワーク : 有効 ) スコゕセット 2( ベズ : 有効 ネットワーク : 無効 ) スコゕセット 3( ベズ : 有効 ネットワーク : 有効 ) -5 0 5 10 15 20 required_score

誤判定率 (False Positive) [%] False Positive 0.5 0.4 0.3 スコゕセット0( ベズ : 無効 ネットワーク : 無効 ) スコゕセット1( ベズ : 無効 ネットワーク : 有効 ) スコゕセット2( ベズ : 有効 ネットワーク : 無効 ) スコゕセット3( ベズ : 有効 ネットワーク : 有効 ) 0.2 0.1 0.0 3 4 5 6 7 8 9 10 11 12 13 required_score

False Positive required_score=10 False Positive なし ベズ自動学習はスコゕ 12 以上のときに働く required_score=5 False Positive は 0.04%( ベズ + ネットワーク ) required_score=4 False Positive は 0.22%( ベズ + ネットワーク ) 急に増加する 5 未満にしてはいけない

誤判定率 (False Negative) [%] False Negative 100 90 80 70 60 50 40 30 20 10 0 スコゕセット0( ベズ : 無効 ネットワーク : 無効 ) スコゕセット1( ベズ : 無効 ネットワーク : 有効 ) スコゕセット2( ベズ : 有効 ネットワーク : 無効 ) スコゕセット3( ベズ : 有効 ネットワーク : 有効 ) -5 0 5 10 15 20 required_score

誤判定率 (False Negative) [%] False Negative 3.0 2.5 2.0 スコゕセット0( ベズ : 無効 ネットワーク : 無効 ) スコゕセット1( ベズ : 無効 ネットワーク : 有効 ) スコゕセット2( ベズ : 有効 ネットワーク : 無効 ) スコゕセット3( ベズ : 有効 ネットワーク : 有効 ) 1.5 1.0 0.5 0.0-4 -3-2 -1 0 1 2 3 4 5 6 required_score

False Negative required_score=-4 False Negative なし required_score=0 False Negative 0.08%( ベズ + ネットワーク ) ベズ自動学習はスコゕ 0.1 以下のときに働く required_score=5 False Negative 1.6%( ベズ + ネットワーク )

スコゕのまとめ required_score の設定値の推奨値 5.0~7.0 False Positiveを0.05% 未満に減らす False Negativeを許容する

SpamAssassin 実践編

SpamAssassin の利用 SpamAssassin 単体では判定しかできない スパム判定されたメールの振り分けや削除を行うには他のソフトウェゕと組み合わせる サーバ側 MTA MDA/LDA クラゕント側 MRA MUA/ メーラー

MTA での利用 spamass-milter amavisd-new

spamass-milter SpamAssassin 専用の milter プログラム できること SpamAssassin の判定結果のヘッダを付与する 指定したスコゕ以上のものを拒否することもできるが この機能は使うべきではない セキュリテゖホールあり 保守されていないのでおすすめしない 使う場合は修正パッチが当たってるものを使うか パッチを拾ってきて自分で適応するか

spamass-milter

amavisd-new SpamAssassin を組み込んだ総合メールフゖルタ 不正なヘッダチェック 添付フゔルの形式や拡張しのチェック ウルスチェック スパムチェック (SpamAssassin) ホワトリスト / ブラックリスト

amavisd-new smtpサーバとして動作する MTAと組み合わせて使用することもできる Postfix の contents_filter など amavisd-milter もある

amavisd-new

MDA/LDA での利用 MDA (Message Delivery Agent) LDA (Local Delivery Agent) 振り分けできる MDA/LDA procmail maildrop sieve 機能 Dovecot の deliver+sieve プラグン (pigeonhole) など

MDA/LDA 上流で付与した SpamAssassin の判定結果のヘッダにより MDA/LDA で振り分けする 上流 MTA レベル (spamass-milter, amavisd-new) メールボックスレベル.forward などで spamc や spamassassin コマンドを呼び出す 判断するヘッダ X-Spam-Flag: YES X-Spam-Level: *******

MDA/LDA

MDA/LDA

maildrop の記述例.mailfilter フゔル DEFAULT=$HOME/Maildir/ if (/^X-Spam-Level: *{12,}/) to $HOME/Mail/spam/ if (/^X-Spam-Level: *{7,}/) to $HOME/Mail/spammy/ to $HOME/Maildir/

sieve の記述例 Dovecot 2.0+Pigeonhole の.dovecot-sieve フゔル require "fileinto"; if header :contains "X-Spam-Level" "************" { fileinto "spam"; stop; } if header :contains "X-Spam-Level" "*******" { fileinto "spammy"; stop; } keep;

クラゕント側 fetchmail + procmail/maildrop メーラーの振り分け機能

fetchmail POP3/IMAP サーバからメールを取得して 配送するプログラム spamc/spamd により判定させて procmail などでメールボックスに配送させる procmail/maildrop などで振り分けを行うことができる

fetchmail.fetchmailrc poll pop.example.org proto pop3 port 995 user foo pass secret ssl mda "spamc procmail" fetchall fetchsizelimit 0

fetchmail

メーラーでの振り分け Thunderbird SpamAssassin のフラグを信用するオプションあり MTA や MDA/LDA などで付与した SpamAssassin の判定結果を利用する

SpamAssassin

日本語ルール自動作成

日本語ルール作成スクリプト 目的 日本語のルールの自動作成 スクリプトの所在 http://spamassassin.jp/download/experimental/taki/ sa-tokenizer.pl --- トークナザー sa-ja-testmaker.pl --- テスト生成スクリプト ハムとスパムを大量に食わせて統計処理する

作成されたルール # BODY_JA_HITOZUMA: 人妻 spam=2583/1325054, ham=1/1841092, ratio=0.00194 body BODY_JA_HITOZUMA / 人妻 / describe BODY_JA_HITOZUMA HITOZUMA score BODY_JA_HITOZUMA 0.6 # BODY_JA_ANATA: 貴方 spam=2645/1325054, ham=11/1841092, ratio=0.00193 body BODY_JA_ANATA / 貴方 / describe BODY_JA_ANATA ANATA score BODY_JA_ANATA 0.6 # BODY_JA_ICHIHACHIMIMAN: 18 未満 spam=2446/1325054, ham=0/1841092, ratio=0.00184 body BODY_JA_ICHIHACHIMIMAN /18 未満 / describe BODY_JA_ICHIHACHIMIMAN ICHIHACHIMIMAN score BODY_JA_ICHIHACHIMIMAN 0.6 # BODY_JA_DEAI: 出会い spam=2444/1325054, ham=9/1841092, ratio=0.00179 body BODY_JA_DEAI / 出会い / describe BODY_JA_DEAI DEAI score BODY_JA_DEAI 0.5

作成されたルール テスト名称 ( ローマ字 ) を自動生成 出現頻度によりスコゕの割り付け # BODY_JA_DEAI: 出会い spam=2444/1325054, # ham=9/1841092, ratio=0.00179 body BODY_JA_DEAI / 出会い / describe BODY_JA_DEAI DEAI score BODY_JA_DEAI 0.5

日本語対応ルール配布サト

sa-update sa-update はチャネルを指定することにより 標準以外のサトからルールを更新できる 日本向けのルールを試験的に公開中 チャネル名 : spamassassin.emaillab.jp 説明サト http://www.emaillab.jp/spamassassin/sa-update/ 現時点では日本語の単語の BODY ルール 300 個 +α

sa-update 公開鍵のンポート # wget http://spamassassin.emaillab.jp/updates/gpg.key # sa-update --import GPG.KEY 更新方法 # sa-update --channel spamassassin.emaillab.jp --gpgkey 22B8A63A spamd を利用しているときは spamd を再起動 # /etc/init.d/spamassassin restart

おわり 資料等 http://www.emaillab.jp/spamassassin/ にて公開