IntraWebへのDoS(Denial of Services)攻撃に関する対処法 by Olaf Monien

By: Tomohiro Takahashi

Abstract: 2007年1月23日、コンピュータソフトウェアのセキュリティ問題(脆弱性)に関して情報公開を行っているメーリングリスト「Bugtraq」において、IntraWebに対するアナウンスがありました。そこで言及されているIntraWebの問題の原因は究明されており、対処法があります。

Bugtraqにて、IntraWebを使用しているアプリケーションにDoS(Denial of Services)攻撃の可能性があることが報告されました(私のブログを参照してください)。この問題はすでに検証済みです。その原因は、Delphiのルーチンにある「やっかいな動作」にあり、特定の状況下でIntraWebアプリケーションに無限ループを生じさせます。

この攻撃を再現させる方法をこの場で披露するつもりはありません。自分でアプリケーションをテストしようという好奇心旺盛な方もいらっしゃるかもしれませんが...。

このDoS攻撃からアプリケーションを保護するには、次の手順に従ってください。

  1. ServerController.pasユニットを開き、OnBeforeDispatchイベントハンドラを追加します。
  2. 手順1で作成したイベントハンドラに、次に示す太字の行を追加します。
  3. もし既にOnBeforeDispatchイベントハンドラを作成済みであれば、自身で作成したコードの前にそれらの行を追加してください。
procedure TIWServerController.IWServerControllerBaseBeforeDispatch(Sender:
    TObject; Request: TWebRequest; Response: TWebResponse; var Handled:
    Boolean);
begin
  if pos(#$26#$26, Request.Content) > 0 then
    Request.ContentFields.Text := '';

end;

IntraWeb 9.0 の次のビルド 9.0.12 では、IntraWeb内部でこの修正を行う予定です。

私たちは、お客様のことを第一に考え、このような状況に対する解決法を提供するよう努めています。もし、直ちに解決すべき問題を発見された場合には、真っ先に私たちに連絡してくださいBugtraq」やAtozed社によって管理されていないメーリングリストに報告することは、問題解決への無用な遅れをもたらしかねません。私たちは、Bugtraqにリストアップされたことを知った数時間後には解決法を提供してきました。



Server Response from: ETNASC03