木曜日にDoSの問題TomcatがTomcatメーリングリストで発表されました( "[SECURITY] CVE-2014-005 Apache CommonsFileUploadおよびApacheTomcat DoS " )。
メッセージを一目で理解できる限り、攻撃者はファイルのアップロード時に長すぎるcontent-type
ヘッダーを送信することで無限ループを引き起こす可能性があるようです(サーブレット3.0以降のアップロード機能がWebアプリケーションで使用されている場合)。 。
誰かが(AJPとmod_jkを使用して)Apache httpdサーバーの背後でTomcatサーバーを操作している場合、推奨事項「Content-Typeヘッダーのサイズを4091バイト未満に制限する」?
もちろん、バグ修正リリースが(ダウンロードページまたはLinuxディストリビューション固有のパッケージリポジトリから)利用可能になり次第、更新する必要があります。質問なし。しかし、現時点では 現在利用可能なTomcatバージョン7.0.5 はまだ影響を受けているようです。
しかし、固定リリースが利用可能になるまで、迅速な防御策として何ができるでしょうか?
(する必要なしに...
apt-get
またはaptitude
なしで)、このトピックの一時的な回避策に似た方法はありますか: http://wiki.Apache.org/httpd/CVE-2011-3192 ?
当時は、mod_headers、mod_setenvifまたはmod_rewriteを使用して問題に対処できました。不正な形式のmultipartアップロード要求をダウンストリームのTomcatサーバーから遠ざけるための同様のApache httpdトリックはありますか?
Apache(Shaneからの変更バージョンを含む; rfc を読むとContent-String
の長さが常に<129であることに賭けません
RewriteEngine On
RewriteCond %{HTTP:Content-Type} "multipart\/form-data;(\s*)boundary=[a-zA-Z0-9_-]{3000}"
RewriteRule ^/(.*)$ /405.html [R=301,L]
# modified
SetEnvIf Content-Type ^.{3000,}$ bad-content-type=1
RequestHeader unset Content-Type env=bad-content-type
nginx(if()を回避する方法が見つかりませんでした)
server {
...
if ($http_content_type ~* "multipart\/form-data;(\s*)boundary=[a-zA-Z0-9_-]{3000}" ) {
return 403;
}
...
}
はい、うまくいくはずです。 CVEアナウンスは4091バイトと言っていますが、 偶発的な開示 電子メールは開発者が制限として70-128バイトに傾いているようです。 128で行きましょうが、必要に応じて調整できます。
SetEnvIf Content-Type ^.{129,}$ bad-content-type=1
RequestHeader unset Content-Type env=bad-content-type
(リクエストを完全に403するのではなく)ヘッダーの設定を解除するだけで、見かけの攻撃リクエストに対して不必要に穏やかになりますが、これでうまくいくはずです。