Linux勧告ウォッチ - 2006年1月6日(金)

今週は、tkdiff、scponly、XnView、pineentry、KPdf、libgphoto、printer-filters-utils、nss_ldap、mdkonline、tkcvs、etherealに関する勧告が公開された。配布元には、Debian、Gentoo、Mandrivaが含まれる。

IPv6のVoIP向けTCP SYNフラッド攻撃対策(パートIII)
著者:Suhas Desai

5. SYNフラッド攻撃

通常のTCP接続の開始時には、接続先のホストは接続元のホストからのSYN(同期/開始)パケットを受け取り、SYN ACK(接続確認応答)を送り返す。次に、接続先ホストがSYN ACKのACK(確認応答)を受け取り、そこで接続は確立される。これは、”TCPスリーウェイ・ハンドシェイク”と呼ばれている。

接続先ホストでは、SYN ACKに対するACKを待つ間、有限サイズの接続キューで確立前の接続をトラックする。SYN ACKから数ミリ秒以内にACKを受け取ることになるため、このキューは通常、すぐに空になる。

TCP SYNフラッド攻撃はこの仕組みを悪用し、ランダムな発信元アドレスで接続元ホストから標的のホストへのTCP SYNパケットを生成させる。標的の接続先ホストはそのランダムな発信元アドレスへSYN ACKを送り返し、接続キューにエントリを追加する。そのSYN ACKは、正しくないまたは存在しないホストに送信されることになるので、”スリーウェイ・ハンドシェイク”の最後の部分は完了せず、接続キューのエントリはタイムアウトになるまで残ったままになる。タイムアウトまでは通常1分ほどかかる。

偽のTCP SYNパケットをランダムなIPアドレスから短時間に大量に生成すれば、接続キューがいっぱいになって、電子メール、ファイル転送、WWWなどのTCPサービスが正当なユーザに対して拒否されることになる。

発信元のIPアドレスが偽装されているため、この攻撃の犯人を突き止めることは容易ではない。

5.1 TCP SYNフラッド

TCP SYNフラッド攻撃は偽のTCP接続要求を使った攻撃で、偽の接続要求は偽装された発信元IPアドレスで作成され、標的のシステムへ送信される。接続要求は完了しないので、標的となったシステムの接続要求テーブルはすぐにいっぱいになってしまい、それ以降の正当な接続要求を受け付けることができなくなる。

攻撃に使用される接続元のホストからは、標的のホストへSYNパケットが送信される。標的のホストはこれに応答して、偽装された発信元IPアドレスの正当なユーザへSYN/ACKを送り返す。

発信元IPアドレスが偽装されているのでSYN/ACKは到達せず、標的のシステムにはこれに応答するACKパケットが来ない。標的のシステムの接続要求テーブルはこうしていっぱいになってしまう。

この攻撃は、標的のシステムから偽装発信元IPアドレスに到達できない場合に成功する。標的となったシステムから偽装発信元IPアドレスに到達でき、その発信元IPアドレスの正しいユーザがRSTパケットで標的のホストに応答すれば、接続は終了され、攻撃は失敗する。

TCP SYNフラッド攻撃はDenial of Service攻撃の1つであり、プロトコル実装で処理可能なTCP SYNパケット数を超えるパケットをホストに送信する。

これは、接続テーブルをいっぱいにしてサーバが正当な要求へサービスできなくするという、リソース枯渇DoS攻撃である。

5.2 TCP SYNフラッド対策

5.2.1 オペレーティングシステムの修正の適用

システムで不完全な接続要求を定期的にチェックし、スリーウェイ・ハンドシェイクを完了していない接続をランダムにクリアする。こうすることで、SYN攻撃の成功によって完全にブロックされる確率が減り、正当なクライアント接続を続行できるようになる。

  • TCP SYNトラフィックレート制限を設定する
  • TCP SYNフラッド攻撃を検出できるIDS(侵入検出システム)をインストールする
5.2.2 ネットワークトラフィックのフィルタリング

回線レベルのファイアウォール(ステートフル検査)を使用して、新しい各接続のハンドシェイクを監視し、確立されたTCP接続の状態を管理する。フィルタリングシステムによって、ネットワークサービスの不正使用と正当な使用を見分けることが必要だ。

静的パケットフィルタリング(ステートレス)では、TCP SYNフラッド攻撃は防止できない。

記事全文:
http://www.linuxsecurity.com/content/view/121169/49/


Debian
Debian:tkdiffパッケージの安全でない一時ファイル作成の修正
2005年12月29日

パッケージが更新された。

Gentoo
Gentoo:scponlyの権限昇格の複数の問題
2005年12月29日

ローカルユーザがscponlyの欠陥を悪用してroot権限を取得でき、また、scponlyの制限付きユーザが別の弱点を悪用してshell制限を迂回できる。

Gentoo:XnViewの権限昇格
2005年12月30日

XnViewは信頼されない場所で共有ライブラリを検索する可能性があり、それによってローカルユーザが別のユーザの権限を使用して任意のコードを実行できる可能性がある。

Gentoo:pinentryのローカル権限の昇格
2006年1月3日

pinentryに権限昇格の弱点がある。

Gentoo:KPdf、KWordのXpdfコードの複数のオーバーフロー
2006年1月4日

KPdfおよびKWordはPDFファイルを処理するためのXpdfコードを含んでおり、Xpdfコードの弱点により、任意のコード実行に対して脆弱である。

Mandriva
Mandriva:libgphotoパッケージの一部のカメラでの問題の修正
2005年12月29日

ホットプラグ・ユーザマップがこのパッケージで復元された。これは、USBマス・ストレージを使用しないデジタルカメラ(Canonのすべてのデジタルカメラ、Nikonの一部のカメラ、PTPのすべてのカメラなど)の検出にHALで使用するためだ。これによって、カメラのプラグイン時にgnome-volume-managerから自動的に”Do you want to import photos?”ダイアログが表示されるようになる。

Mandriva:printer-filters-utilsパッケージのローカルの弱点の修正
2005年12月30日

“newbug”は、mtinkバイナリのローカルrootの弱点を発見した。HOME環境変数の処理にバッファ・オーバーフローがあり、ローカルユーザがroot権限を取得できる可能性がある。

Mandriva:nss_ldapパッケージの多数メンバを持つグループのバグの修正
2006年1月2日

nss_ldapで、グループが多数のメンバを持つ場合のバグが発見された。この場合、グループにユーザを追加しようとすると、’ls -la’のSIGABRTが発生する。最新パッケージでは、この問題が修正されている。

Mandriva:mdkonlineパッケージの複数のバグの修正
2006年1月2日

mdkupdateのcronジョブのバグ(自動更新モードが有効な場合)により、$ENV{USER}を定義できず、更新が実行される前にmdkupdateが強制終了される。

Mandriva:tkcvsパッケージの安全でない一時ファイルの弱点の修正
2006年1月4日

Javier Fernandez-Sanguino Penaは、tkdiffが安全でない方法で一時ファイルを作成することを発見した。最新パッケージでは、これらの問題が修正されている。

Mandriva:etherealパッケージの弱点の修正
2006年1月4日

Ethereal 0.10.13で3つの弱点が発見された。IRCディセクタとGTPディセクタが無限ループになる。また、OSPFディセクタのバッファ・オーバーフローをiDefenseが発見した。Etherealは、これらの問題を修正した0.10.14にアップグレードされた。

原文