今回は、Quid Pro Quoを使って古いマックでウェブサーバーを立ててみることにする。かつて、WebSTAR互換のフリーWeb Serverとして期待の星だったQuid Pro Quo(QPQ)。製品版も出てた(る?)のだがメーカーがやる気をなくして、いつの間にやら忘れ去られていた。
ところが、ここ最近、MicrosoftのIISに寄生するCode Redワームが大流行りした影響で、あちこちで話題に上ることになった。(Code Redからの不正アクセスでQPQがエラーを起こして死んでしまうので、QPQを使っているサイト管理者は困っているらしい)
なにもQPQは昨日今日に突然クラッシュするようになったわけではなく、作られた時から、ひじょ〜に長いリクエストを送ることで簡単に(Code Redでなくても)クラッシュする弱点(バッファオーバーフロー)があった。
Code Redからの攻撃は、前薗 健一さんが作成された、Code Red Killer Plug-inを用いると防ぐことができるという話を聞きつけ、それならプラグインモジュールでバッファオーバーフローそのものを防げるはずじゃんと考えて、私もQPQをクラッシュから守るプラグインを作成してみた。(Web Scripter's Meetingで同じような要望があって、Code Red Killer v1.1.3からは指定したバイト数以上のリクエストを拒否できるオプションが付いているので、ほとんど無駄骨だったが)
→ダウンロード(qpqcgpluginv2.sit 約12KB)
クラッシュをまねきそうな長いリクエストをフィルターして、/qpqcg.htmlへのリクエストにすり替えるプラグインである。ドキュメントルートに、qpqcg.htmlというHTML書類を置いておけば不正な要求に対してそれを返信する。WebSTAR API SDKをななめ読みして、てきと〜に作った(^^;ものなので、ログを取ったり、細かい設定が必要な方はCode Red Killer Plug-inを使った方がいいだろう。
※なお、このソフトウェアを使用もしくは使用できないことによって生じたいかなる損害についても、筆者は一切責任を持たないので自己責任で使用してもらいたい。配付・使用条件は、営利を目的としない限り自由とする。
さあ、これで、あなたの古いマックもWeb Serverとして大活躍! ブロードバンド接続サービスとダイナミックDNSサービスを組み合わせて自宅で隠れサーバーなど運用するにはもってこいである。
(2001-08-20/2004-11-23)
Copyright© 2001-2004 TAKAHASHI,Ryoji