続・玩式草子 ―戯れせんとや生まれけん―

第41回SpamAssasinと最近の迷惑メール事情

あっと言う間に2022年も半分が過ぎ、昨年末のHDDのクラッシュとサーバ回りの更新、それに合わせた最新版のSpamAssasinの導入からも約半年が経ったことになります。今回はこの間に得られた知見と最近の迷惑メールについて考えてみましょう。

MewとSpamAssasin

手元では、届いたメールを一覧したり、ざっと流し読みする時はGmailやプロバイダの提供するウェブメールを使っているものの、新たにメールを書いたり返信する際には、未だにEmacsで動くメーラ"Mew(みゅう)"を使っています。Mewで手元に届いた迷惑メールのフォルダを開くと、こんな感じの表示になります。

Mewで開いた迷惑メールフォルダ
Mewで開いた迷惑メールフォルダ

ご覧のように、Mewのsummary modeでは1行が1つのメールを示し、左から「マーク」⁠日付」⁠送信者」⁠サブジェクト」⁠メール本文の冒頭行」が並んでいます。このうち、一番左の「マーク」はMewが独自に付ける記号で、何もない空白は通常のテキストメール、 "M"はマルチパートを持ったMIME形式のメール、"-"はマルチパート混合(multipart/alternative)形式のメールを意味します。

本文の冒頭行を見比べれば気づくように、SpamAssasinは迷惑メールにチェック結果のレポートを付けてマルチパート化するので、"M"が付いているのはSpamAssasinが迷惑メールと判定したメール付いていないのは手動で迷惑メールフォルダに移動したメールとなります。

どれくらいの割合でSpamAssasinが迷惑メールをチェックできるのかを確認するため、2022年5月分の迷惑メールを調べたところ、総数183通のうちSpamAssasinが迷惑メールと判定したのが132件、SpamAssasinの判定をすり抜けたため、手動で迷惑メールフォルダに移したのが41件でした。迷惑メールの検出率は7割強、と言ったところでしょうか。

SpamAssasinの迷惑メール判定

さて、これら迷惑メールをじっくりと眺めてみると「えきねっとアカウント自動退会」「ETC利用照会⁠⁠、各種クレジットカードを名乗った「サービス停止警告」など、同じ内容のメールが何度も届いています。ところが同じ内容のメールでも、SpamAssasinが迷惑メールと判定する場合もあれば、判定からすり抜ける場合もあるようです。

たとえば「えきねっとアカウント自動退会処理について」というサブジェクトの迷惑メールが6/20から6/25の間に9通届き、そのうち5通は迷惑メールと判定されたものの、残りの4通はチェックをすり抜けていました。

SpamAssasinをすり抜けた迷惑メール
SpamAssasinをすり抜けた迷惑メール

これらのメールを調べると、サブジェクトには多少バラつきがあるものの、メール本文は同じ内容で、⁠えきねっと」サービスから自動退会処理されるので、利用を継続したい場合は指定したURLからログインせよ、というものでした。

どうして同じ内容なのにチェックをすり抜ける迷惑メールがあるのだろうと、SpamAssasinのチェックレポートを調べてみたところ、迷惑メールではこのような項目がチェックされていました。

Content analysis details:   (7.7 points, 5.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
 1.7 URIBL_BLACK            Contains an URL listed in the URIBL blacklist
                            [URIs: 3obnhi386.ga]
 2.5 URIBL_DBL_SPAM         Contains a spam URL listed in the Spamhaus DBL
                            blocklist
                            [URIs: 3obnhi386.ga]
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                            [193.233.252.15 listed in zen.spamhaus.org]
 0.1 URIBL_CSS_A            Contains URL's A record listed in the Spamhaus CSS
                            blocklist
                            [URIs: v41u9hec.ga]
-0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 HTML_FONT_LOW_CONTRAST BODY: HTML font color similar or
                            identical to background
 0.0 HTML_MESSAGE           BODY: HTML included in message
-0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from
                            author's domain
 0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily
                            valid
-0.1 DKIM_VALID_EF          Message has a valid DKIM or DK signature from
                            envelope-from domain
-0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
-0.0 T_SCC_BODY_TEXT_LINE   No description available.

一方、チェックをすり抜けたメールのヘッダはこうなっていました。

X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pl74b2.linet.jp
X-Spam-Level: 
X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
   DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,HTTPS_HTTP_MISMATCH,
   SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham    autolearn_force=no version=3.4.6

両者を比べて検討すると、SpamAssasinの迷惑メール判定には、DKIMやSPFといったメール自身の認証情報よりも、メールの送信や中継時に使われたURIやドメイン名がSpamhausデータベースのブラックリストに載っているかどうかが重視されているようです。実際、Spamhausのデータベースをチェックしてみると、確かに"3obnhi386.ga"というドメインはブラックリストに載っていました。

spamhaus.orgのドメインチェッカー
spamhaus.orgのドメインチェッカー

他の例もあれこれ調べた結果、最近の迷惑メール判定はSpamhaus等のブラックリストに基づくことがほとんどで、メールのサブジェクトや本文に出てくる単語でチェックされた例はごく僅かでした。

最近の迷惑メール

このあたりの状況は、迷惑メールのあり方が従来から変ってきたことに起因するのでしょう。というのも、かつての迷惑メールはいわゆるSPAM(スパム)と呼ばれ、⁠ヘタな鉄砲も数撃ちゃ当たる」的に同じ内容のメールを多数のメールアドレスにバラまくスタイルでした。

このようなタイプの迷惑メールには統計に基づくベイジアンフィルタが有効です。⁠ベイジアンフィルタ」では、あらかじめ「スパム(迷惑メール⁠⁠」と「ハム(受け取りたいメール⁠⁠」それぞれに現われる単語の頻度をデータベース化しておき、このデータベースに基づいて新たに届いたメールに含まれる単語群のスパムらしさを数値化します。従来のスパムタイプの迷惑メールは、このベイジアンフィルタによって簡単に見つかりブロックできたため、次第に使われなくなりました。

スパムタイプの迷惑メールに代わり、最近ではフィッシング(phising)と呼ばれるタイプの迷惑メールが主流です。このタイプの迷惑メールは、今回の「えきねっと」の例のように、実在する企業や団体からの警告メールになりすまし、一見、公式のように見えるウェブページに誘導して各種個人情報を盗み取るようになっています。

この「フィッシング」タイプの迷惑メールは、警告メールに偽装するため、実際にその組織から送信されたメールの文言を流用し、画像等も実際に使われているデータを埋め込むなど、工夫を凝らしています。

このタイプの迷惑メールは、本物の警告メールの文言を利用するため、メール中に出現する単語の頻度からの判定は困難で、送信元やリレー元、あるいは誘導しようとしているURIでチェックするしかありません。そのような情勢を踏まえSpamAsassinもドメイン名やURIのブラックリストチェックに軸足を移しているようです。


実のところ、"Mew"ではメール本文を少し上にスクロールすればメールのヘッダ部が表示され、送信元や中継ドメインが一目でわかります。メール本文で発信者を示すFrom:行はメーラ(MUA)でいくらでも詐称できるのに対し、メールサーバ(MTA)が記録するヘッダのReceived:行は実際のドメイン名やIPアドレスが記録されるので簡単には偽装できません。

たとえばこれはAmazonを騙っているフィッシングメールのヘッダ部で、DKIMも付けて、一見amazon.co.jpからのメールに偽装しているものの、Received:行の逆引き結果を見ると、さくらインターネットのVPSから送られていることがわかります。

Received: from annex.linet.gr.jp [182.163.76.19]
        by pl74b2.linet.jp with POP3 (fetchmail-6.4.25)
        for <kojima@localhost> (single-drop); Thu, 16 Jun 2022 09:21:47 +0900 (JST)
Received: from sdfsdg0.amazon.co.jp (ik1-421-42882.vs.sakura.ne.jp [153.127.47.136])
        by mail.linet.jp (Postfix) with ESMTP id D14561E78003
        for <kojima@linet.gr.jp>; Sat, 11 Jun 2022 00:25:10 +0900 (JST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=default; d=amazon.co.jp;
 h=Message-ID:From:To:Subject:Date:MIME-Version:Content-Type;
 i=contact@amazon.co.jp;
 bh=fLww8pwlxZBa+twLq888fCvdyMMPr7T5p/93G+eYDfE=;
 b=eD/ULEsxHaeAPtJO1OM14oOeZBm0ClDgQYtnSsmBBsVMJClHuoiwMwZBzKv/anVV4AaKuKxPaYTo
   eQY4/wlFjgQ7QAv2/7tjnmlLfh7MF4od/dUPxnRNdg6z8GR8I3b1erl3EbtOnbvuJK1Ln5tPf2Pi
   7WQ3GcCPdqvPhSo7Mb0=

もっとも、Mewのようなテキストベースのメーラでは、埋め込まれたURLから、ワンクリックでフィッシング用サイトへ飛ぶようなことはできないため、わざわざヘッダ部を調べなくてもフィッシングに引っかかる可能性はまずありません。このような「便利になりすぎて不便」とか「不便な分、便利」といった逆説は、現実世界でもあちこちで目にする気がします。

おすすめ記事

記事・ニュース一覧