• お問い合わせ
  • ユーザー登録
ドキュメント
サポート案内
ユーザー登録
サポートセンター
ドキュメント
ダウンロード
セキュリティ
よくある質問とその回答
製品マニュアル
カタログ
収録パッケージ一覧


カーネル No. 829

TCP プロトコルの脆弱性について (CVE-2008-4609)


【概要】
Linux kernel の TCP プロトコル処理の実装(2009/09/16 現在)には、
ウインドウサイズを細工したパケットの処理に脆弱性が存在します。

その為、本脆弱性を利用されると外部に公開しているサーバ等は、
DoS 攻撃を受け可能性があります。

本問題は、昨年(2008)公開されましたが TCP の仕様の問題であり、
kernel アップストリームでの修正もなされないため Turbolinux 
でもアップデートパッケージのリリースを行う予定はありません。

しかし、iptables を用いて、この攻撃を緩和させる方法があります
ので、システムに環境に応じ設定を行ってください。


【対策】
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

5. # /etc/init.d/iptables save
   Saving firewall rules to /etc/sysconfig/iptables:                         OK

6. # /etc/init.d/iptables restart
   Flushing firewall rules:  OK
   Setting chains to policy ACCEPT: filter   OK
   Unloading iptables modules:   OK
   Applying iptables firewall rules:   OK

7. # /etc/init.d/iptables status
   Table: filter
   Chain INPUT (policy ACCEPT)
   target     prot opt source               destination
   ACCEPT     tcp  --  anywhere             anywhere            ctstate RELATED,ESTABLISHED
              tcp  --  anywhere             anywhere            tcp flags:FIN/FIN recent: REMOVE name: DEFAULT side: source
              tcp  --  anywhere             anywhere            recent: SET name: DEFAULT side: source
   DROP       tcp  --  anywhere             anywhere            recent: UPDATE seconds: 300 hit_count: 10 name: DEFAULT side: source
  
   Chain FORWARD (policy ACCEPT)
   target     prot opt source               destination
 
   Chain OUTPUT (policy ACCEPT)
   target     prot opt source               destination

8. # chkconfig iptables on


【説明】
1. 既に確立されたコネクション(ESTABLISHED)もしくは、それに関連した
   新規コネクション(RELATED)のパケットを許可し、さらに接続情報を 
   /proc/net/ip_conntrack リストにロギングします。

2. FIN フラグを送信した送信元アドレスを recent リストから削除します。
   --tcp-flags の 第1引数は評価対象とするフラグ、第2引数はこのうち
   設定されていなければならないフラグです。

3. 送信元アドレスを recent リストに追加します。

4. recent リストを参照して、同一アドレスから 5 分以内に 10 回以上の
   TCP リクエストがあった場合、 そのパケットを捨てます。

5. 設定を保存します。

6. iptables のサービスをリスタートします。

7. iptables の設定確認をします。

8. システム起動時に iptables が起動されるように設定します。


【注意】
なお、この設定は例であり Web サーバなどの同一ホストより複数の
リクエストがあるサイトでは、4. の --seconds 300 の値を小さく 
--hitcount 10 の値を高く設定してください。


【関連文章】
Redhat
[レッドハット ナレッジベース]
http://kbase.redhat.com/faq/docs/DOC-18964

JPCERT
[JPCERT/CC Alert 2009-09-09]
http://www.jpcert.or.jp/at/2009/at090019.txt

CVE
[CVE-2008-4609]
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4609

Turbolinux
[Turbolinux 11 Server: ユーザーガイド]
http://www.turbolinux.co.jp/products/server/11s/user_guide/iptables.html

キーワード
kernel iptables tcp

関連文書
(none)

対象製品
  • Turbolinux Client 2008
  • Turbolinux Appliance Server 3.0
  • Turbolinux 11 Server
  • Turbolinux Appliance Server 2.0
  • Turbolinux FUJI
  • Turbolinux 10 Server x64
  • Turbolinux 10 Server
    Last modified : Wed Sep 16 JST 2009 # 3