木曜日, 7月 12, 2007

ルール3はこれでよかったんだっけ…?

 6月のスパム阻止率の統計のために、拒否されたホストから一般規則に引っかかるものを抽出しようと、一般規則と等価な正規表現でegrepをかけた時のこと。「214.ultraflex.com」というホストが抽出されなかったことに気付いた。末端ホスト名は、IPアドレスの第4オクテットを反映したものである。ドジなおいらは、「末端ホスト名が数字で始まるのに、なぜ見逃されるんだ?」と考え込んでしまった。
 一般規則のルール3は「逆引きFQDNの上位3階層を除き、最下位または下位から2番目の名前が数字で始まる」という条件。最下位の名前が数字で始まっても、全体で3階層だけなら見逃されてしまうのである。当たり前のことだった。
 ルール3を作った理由は、「398pkj.cm.chello.no」のように最下位の名前が数字で始まるものや、「host.101.169.23.62.rev.coltfrance.com」のように、最下位の名前は英字で始まっても下位から2番目の名前が数字で始まるエンドユーザー回線がたくさん見つかったことだった。
 ところが、「246.ne.jp」のように、数字だけから成るサイトドメイン名がある。そこで、「smtp.246.ne.jp」のような名前のメールサーバを引っかけないように、上位3階層を検査から除外することにしたのである。
 そうすると、「214.ultraflex.com」のような、上位から2階層目がサイトドメイン名で末端ホスト名が数字で始まる3階層のFQDNを見逃してしまう。私は、考えに考え抜いて、それでもかまわないと結論付けたはずである。なぜだったんだっけ…。
 思い出した。「007.co.jp」(架空の例)のように、上位から3階層目が数字だけから成るサイトドメイン名で、しかも末端ホスト名を省略した逆引き名がありうると予想したからである。サイトのサーバが1台しかなくて、ことさらDNSで末端ホスト名をアナウンスする必要はないと思ったドメイン管理者は、末端ホスト名を省略した逆引き名を設定するかもしれない。もちろん、そのような設定は可能である。
 「007.co.jp」に類するメールサーバの逆引き名を発見したことはない。あるとしてもまれだろう。しかし、「214.ultraflex.com」のようなエンドユーザーコンピュータの逆引き名もまれである。このようなFQDNを持つサイトが収容するエンドユーザーコンピュータは少ないから(ultraflex.comに割り当てられているIPアドレスは64個ブロックだとわかった)、そこのエンドユーザーコンピュータがボットに感染してスパムを送ってくる確率は低い。もしたくさんのエンドユーザーコンピュータを収容しているなら、末端ホスト名は、分断された複数の数字列を含むか、数字列がもっと長いだろう。そういうものならルール1かルール2で引っかけることができる。
 「007.co.jp」のようなケースの偽陽性判定を避けるように決めたルールを見直して、「214.ultraflex.com」のようなケースの偽陰性判定を避けるようにした方がよいか?いや、そんな必要はないだろう。ただでさえS25Rの一般規則による偽陽性判定率は低くない。ごくごくわずかとはいえ、これ以上偽陽性判定の確率を増やすようなルール改訂を提案することはないだろう。もしultraflex.comのエンドユーザーコンピュータからのスパムを阻止したいなら、ブラックリストに

/^[0-9]+\.ultraflex\.com$/ 450 domain check, be patient

と書き加えればよい。
 というわけで、ルール3の見直しは必要ないと、改めて結論付けたのでありました。

# 健忘症かな?

0 件のコメント: