Security Advisoryが数個出てます。

まっちゃさんとこ(id:ripjyr)経由。)
dev2dev本家サイト
で書かれている内容を纏めようかなぁ?って思ってたら、
dev2dev日本サイト
にちゃんと日本語された状態で公開されていましたよ。


今回からの新しい試みとして、『影響およびCVSS評価』がAdvisoryの本文中に記載されるようになったことかな?


で、まっちゃさんが一番気になっているBEA07-87.02についてですが、
■攻撃内容と影響について
COM通信、IIOP通信、HTTP通信、T3通信において、クライアントからサーバへの送信が延々と続くようなメッセージを送信する。
これにより各通信毎にWebLogic上のスレッドが占有されるため、通信の本数がWebLogicのサービス用に設定されているスレッド数の上限値に達した場合に、それ以外の処理を実行できなくなり、他のクライアントからはサーバ自体がHANG-UPした様に見える。
ちなみに、既定値では実行スレッドの数は25スレッドだったはずなので、25本の送信完了までのTATが恐ろしく長いメッセージを送信するとHANG-UPすることになります。


WebLogic Serverの問題点
COM通信、IIOP通信、HTTP通信、T3通信それぞれの送信完了までにどれだけ待つかというタイムアウト値が既定で無制限(-1)に設定されていたりで、WebLogic Server利用者が意識的に設定を全て変更しなければ、DoS攻撃の影響をもろに受ける状態で曝されていたこと。


■Advisoryの内容
COM通信、IIOP通信、HTTP通信、T3通信という個別のタイムアウト設定は非推奨とし、全てを纏めてタイムアウト設定を行う新パラメータ『CompleteMessageTimeout』を作成した上で、既定値を60秒に設定することにより、WebLogic Server利用者が意識的に設定を変更しなくても、DoS攻撃の影響を受けにくくした、というもの。

WebLogic Server 8.1SP5以降(WLS9.x以降では既に対処済み)であれば、[完全メッセージ タイムアウト]が最初から利用出来るので、この値をWebLogicの管理コンソール上から変更することで、更に短く設定すること長く設定することも可能になる。

WebLogic Server 7.0未満では、Javaの起動オプションで『-Dweblogic.http.enablewritetimeout=true』を設定することで、HTTPのメッセージ受信に掛かる最大受容時間として、メッセージタイムアウトの値を設定できるようになっている。




って感じでしょうかね?
あまり短くしすぎるとファイルのアップロードなどの様に、POSTデータででっかいのを送信してたりすると、この値に抵触して強制的に切断される(タイムアウト扱いされる)ので、用途毎にサーバインスタンスを分けるなどして、サーバ毎にどういった値が適当であるかを調査(チューニング)する必要があります。




ちなみに、WebLogic Server8.1以前の製品は、Listenスレッド3つに実行スレッドへの振り分け用スレッド1つに実行スレッド25だったりしたはず(うろ覚え)なので、Acceptタイムアウトなどをちゃんと設定しないサーバに対して、SYN Flood攻撃とかしてListenスレッドを全て掴ませた方がよっぽどDoS攻撃っぽいとか思ったりするのですが、気のせいでしょうか?*1

*1:直ぐに実行スレッドへの振り分けまで完了させてたから、問題ないとは思いますがw