Wietse Venema は自分自身の MTA を宣伝するため、 誹謗キャンペーンを行っています。1997年 6月に、かれは qmail が「システムを、メモリ使い果たし攻撃に対して脆弱にする」と主張しました。
間違いです。 本当のところは、システムは qmail を走らせる 前から 脆弱だったのです。
つぎに Venema は、 qmail-smtpd がメモリを rlimits あるいは物理的リミットまで動的に割り当てる UNIX 唯一のネットワークサービスであるとほのめかそうとしました。
間違いです。 たとえば、sendmail や bind、そして inetd はどれもネットワークからの入力によって メモリを限界まで使わせるようにできます。
Venema はそのようなプログラムが沢山存在することを無言で認めた後、 任意大きさのメモリを割り当てることは「バグとみなされる」と主張しはじめました。
間違いです。 この問題はカーネルが何年も前に解決しています: UNIX システムには、変更可能で、簡単に使える、 プロセス毎のメモリ制限 rlimits があります。 システム管理者には 自分のリソースを割り当てる 巨大な権限があります。
どうやら Vename は、 すべてのネットワークデータ用に動的に割り当てられる構造体に対して、 変更可能な制限を人工的に課すようなコードをすべてのアプリケーションに別個に含めるのが よいデザインだと思っているようです。 私には、これはひどくまずいエンジニアリングに思えます。
最終的には、 よく管理されたシステムは、qmail を走らせていようといまいと、 メモリ使い果たし攻撃にやられることはありません。
まずいエンジニアリングに関する私の指摘を証明するニュース: 2001年 11月にある人が、Postfix の動的に割り当てられた SMTP セッションログで、 Venema が人工的な制限を課すのに失敗していることを見つけました。 したがって、リソースに制限をかけていない、管理のまずいシステムでは、 攻撃側はいとも簡単に Postfix の smtpd にすべての利用可能な メモリを使わせることができるわけです。 Venema が「exploit」をポストして、脆弱性データベースに エントリを追加しようとしたでしょうか? Venema のアプローチのほうがシステムのリソース制限よりも ずっと複雑になっていて、ミスを起こしやすいものであると彼は認めたでしょうか? No.
Venema は 1997年 8月に、 このことが彼の MTA をセキュリティ的に有利にしていると主張しました。
間違いです。 qmail の環境変数は安全かつ簡単に使うことができ、 それを使わないプログラムには何の影響もありません。
間違いです。 qmail-1*/FAQ, question 5.5 で詳しく説明されているように、 qmail はネットワークからくるメッセージも、システム管理者が ローカルメッセージと同じ機構で書き換えられるようにしています。
間違いです。 もし qmail がメッセージを配送できない場合、その理由が何であれ、 そのメッセージは送り手に返されます。
Venema はのちにこれを以下のような主張に変えています: 「qmail は送り手または受け手のアドレスを解析中に問題が生じると、 メッセージ全体を拒否してしまう」
間違いです。 qmail は、ヘッダを書き換えるよう指示されてないかぎり、 まったくメッセージの中身を解析しようとしません。 もし qmail を走らせていて、完全には RFC 822 互換でない メッセージを誰かが送りつけてきたとしても、qmail は喜んでそれを配送します。
Venema はこれは「失敗するに決まって」いて、qmail は「固まって」、 巨大な未処理の山とともにクラッシュする、と主張しています。
間違いです。 Venema はメッセージの数はキューに使われるディスクの iノードによって 制限されることを忘れてしまっています。 最大メモリ消費は小さいので、たとえ非常に小さいメモリしか 積んでいないマシンでも、ばかでかいキューのための充分なディスク容量があれば、 Venema の妄想は単に起こりません。 (当然ながら、この問題は目新しいものではありません -- qmail がリリースされるたびにドキュメント中で分析されています)
例: あるマシンのキューには 2日間のネットワーク停止のあいだに 100,000 以上のメッセージがたまりました。 qmail はこの未処理のメッセージをうまく処理できたのです。
間違いです。 qmail は sendmail が使っているのと同じ配送プログラムを使って /var/spool/mail への配送 をおこなえます。 また、dot-forward プログラムを介して、これは .forward ファイルも サポートしています。ユーザは .qmail ファイルや ezmlm などの 恩恵を受けることができますが、これらの新機能を知らない ユーザはその違いに気づかないでしょう。