メールに対する正しいウィルススキャンの方法とは?

えーと最近の fw とか anti-spy とかそういう系統のことは何も考えていません。あとサーバ側で動作するアンチウィルスのことも考えてません。とりあえず MUA 限定。

メールについてウィルススキャンするタイミングって、

  1. 受信時
  2. 送信時
  3. メールボックス操作時
  4. メールをプレビュー、あるいは開くとき
  5. 添付ファイルを開くとき

くらいかなと思う。

で、いま個人的にいちばん問題だなと感じているのは 3 のメールボックスを操作した瞬間のスキャン。多くのメールソフトでメールボックスは「1フォルダ
1ファイル方式」であり、つまりフォルダが数百MB とか GB クラスのオーダーに達している場合、メールボックスの操作をするたびにそれだけの巨大なファイルを常にスキャンしている状態になるはずである1

それって使いものになるの?

普通に考えてただでさえ重たい巨大なファイルの操作なのに、そこにウィルススキャンが常に割り込んでくるという状態で、果たしてメールソフトをまともに使えるのだろうか? というか、実際に全然使いものにならなかったんで、メールボックスの入っているフォルダをリアルタイムスキャンの除外対象にしたところ、信じられないくらいに軽くなったんだけど、

この対処ってやっちゃダメ?

なのかどうかがイマイチ判断できないのが困ったところ。

上のリストで「メールボックスの操作」を、「メールをプレビュー、あるいは開くとき」とわざわざ分けているのは、メールボックスの操作には例えばフィルタによってメールを自動的に振り分けるとか迷惑メールを判定してジャンクフォルダに振り分けるなどの操作も含まれるからであり、またこれはユーザーが毎回手で操作するものではないので、「うっかり感染」の可能性の低い動作だと思うからである。可能性が低いと思っているからリアルタイムスキャンの対象から外したわけだけど、これを外しちゃった場合にどこまで影響が出るのかイマイチつかめていないので不安だ、というのがこのエントリの趣旨なわけ2

基本的にメールとウィルスの関係は

  1. メールソフトそのものの脆弱性を利用したウィルス
  2. 添付ファイルにウィルスを付加して他のアプリから感染
  3. URLハンドラ周りの脆弱性を利用したウィルス

の3パターンだと思うんだけど、恐らく上の対処をした場合、1 のメールソフトそのものの脆弱性によるウィルス感染を防ぐことが難しくなると思う。

ただし、その場合も「受信時とメールボックスへの保存時の間」でスキャンを掛けてくれれば問題ないような気がするんだな。要するにアンチウィルスソフトがメールソフトのプラグインのような形で動作するか、あるいは pop proxy として動作していれば、超巨大なメールボックスファイルを毎回相手にしなくても安全性を確保できるんじゃないかと。

だから、メールソフトのプラグインや pop proxy, smtp proxy として動作するアンチウィルスソフトであれば、メールボックスのファイルを他のアプリの使うファイルと同じようにリアルタイムスキャンしておかなくても、安全性はあまり損なわれないと言えるかなと思うんだけど、どうだろう?

どうでしょうか?

教えてエロい人!

というか、重いのとは別に「1フォルダ : 1ファイル方式」のメールボックスに対してリアルタイムスキャンを掛けるのって、

誤作動した場合のダメージがでかすぎる

と思う。それだけ考えてもメールボックスファイルそのものへのリアルタイムスキャンは外した方がいいように思うんだけど、どうでしょうか。いやね、メールソフト以外でも開くかもしれないじゃんという反論はすぐに自分でも思いつきましたよ。でもねぇ、現実に全然まともな速度で動かないんだもの。多くのメールソフトの実装が「1フォルダ
1ファイル方式」なんだから、こういう工夫ってアンチウィルスソフト側で考えるべきことじゃないの? なんでユーザーが悩まなきゃいけないんだ。
  1. 基本的にウィルススキャンてのはファイルの I/O に対して行われるから。 

  2. もちろん影響範囲がメールソフトの作りによって変わるのは分かってるんだけど。 

More