TCPプロトコルの脆弱性について(CVE-2008-4609)
[対象となる製品のバージョン]
MIRACLE LINUX V4.0 の全バージョン及び全アーキテクチャ
Asianux Server 3 ==MIRACLE LINUX V5 の全バージョン及び全アーキテクチャ
[問題詳細]
この問題は不正なTCP接続を確立してしまい、サーバ側の資源枯渇を狙う攻撃に利用されてしまいます。この問題はTCPプロトコルのデザインに起因するため、現在の対処patch等の提供は行っておりません。
現在のところ、Linuxアップストリーム側において、本問題に対する修正は行われておらず、ミラクル・リナックスでは修正の予定はございません。
本問題を軽減するため、不正なTCP接続を試みるアクセスをiptablesで防ぐルールを策定して頂くことが有効な対策となります。
[対処方法]
以下のiptablesの例のように設定することで、異常なアクセスを試みる同じIPアドレスからのリクエストを拒否することが可能となります。ご使用の環境に合わせて、適宜変更をお願いいたします。
1. iptables -A INPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
2. iptables -A INPUT -p tcp --tcp-flags FIN FIN -m recent --remove
3. iptables -A INPUT -p tcp -m recent --set
4. iptables -A INPUT -p tcp -m recent --update --seconds 300 --hitcount 10 -j DROP
上記設定の説明については、以下のとおりです。
- 通信が確立されているコネクション(ESTABLISHED)や関連する新規コネクション(RELATED)からのパケットを許可し、その接続情報を conntrack に記録します。その情報は /proc/net/ip_conntrack で確認することができます。
- FINフラグを送信した送信元アドレスをrecentリストから削除します。
- 送信元アドレスを recent リストに追加します。既にリストに送信元アドレスが登録されていた場合は、その情報が更新されます。
- recent リストを参照し、同一アドレスから5分以内(--seconds 300)に10回以上(--hitcount 10)のTCPリクエストがあった場合は、その接続は拒否されます。
[注意事項]
本ドキュメントの内容は、予告なしに変更される場合があります。
本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、全ての環境での動作を保証するものではありません。
本ドキュメントの内容に基づき、導入、設定、運用を行ったことにより損害が生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。
[更新履歴]
2009年 10月 2日 新規作成