【SecureIIS Web(2)】〜IISへの攻撃を自動的にシャットアウト〜(執筆:Port139 伊原秀明) | ScanNetSecurity
2024.04.23(火)

【SecureIIS Web(2)】〜IISへの攻撃を自動的にシャットアウト〜(執筆:Port139 伊原秀明)

▽編集部より
 膨大な被害を及ぼしたNimdaやCodeRedなど、マイクロソフトのIISをター
ゲットとしたワームが多く発生している。これらのワームへの対策としてはIISのセキュリティホールへのパッチあてが必須となってくるが、そのためには頻繁な情報チェックなどの作業が

特集 特集
▽編集部より
 膨大な被害を及ぼしたNimdaやCodeRedなど、マイクロソフトのIISをター
ゲットとしたワームが多く発生している。これらのワームへの対策としてはIISのセキュリティホールへのパッチあてが必須となってくるが、そのためには頻繁な情報チェックなどの作業が必要となり、その作業は管理者に大きな負担となる。
 今回、CodeRedを世界で初めて発見した事で有名なeEye Digital Security社が開発した「SecureIIS Web」はIISの既知および未知のセキュリティホールを狙った攻撃に対応可能であるとのこと。はたしてこのソフトがどこまでの対応が可能であるのかを、WindowsNTに関するセキュリティでは定評のあるPort139の伊原秀明 氏に検証していただいた。
 なお、SecureIIS Webの販売に関しては、下記URLをご覧下さい。
http://vagabond.co.jp/cgi-bin/order/mpid01.cgi?siis_scan
―――――――――――――――――――――――――――――――――――(前回よりの続き)

<バッファオーバーフローへの対処>

 SecureIISでは、IISへ渡されるリクエストの長さを制限することができる。
SecureIISでは単純にURLとして渡される文字列の長さによる制限を行うだけでなく、クエリー毎に許可する長さを変更することができるようになっている。
 デフォルトではURLの長さとしてデフォルトでは1024が指定されており、これより長い文字列がURLに含まれる場合にはリクエストを拒否し警告ページを表示することができる。
 例えば、CodeRedでは1024よりは短いが、以下のように長い文字列を送信してくる。

GET /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00c3%u0003%
u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0

 例にあげたCodeRedのリクエストは全体としては1024より短いが、SecureIISのデフォルトではクエリー文字列の最大値として128バイトに制限されてい
る。この為、CodeRedのリクエストはこの最大値により制限を受け拒否されることになる。

 実際に上記リクエストをSecureIISのインストールされたIIS 5.0に送信した場合に記録されるSecureIISのログは以下のようになり拒否されていることが確認できる。

Failed in VerifyBufferSize(QUERY - querysize-lastvar:360 /
allowedsize: 128): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%U9090%U6858%UCBD3%U7801%U9090%U6858%UCBD3%U7801%U9090%U6858%UCBD3%U7801%U9090%U9090%U8190%U00C3%U0003%
U8B00%U531B%U53FF%U0078%U0000%U00=A

 さらにSecureIISでは、CodeRedのように文字列全体としてはそれほど長くない場合でもバッファオーバーフローが発生してしまうようなケースへも、シェルコード保護などにより対処できるようになっている。

 特に文字列の長さについては、利用するCGIなどのアプリケーションによっては1024より長くなるケースも考えられるが、必要となる文字列の長さがデフォルト値より短いとわかっている場合などはあらかじめその値まで制限しておいた方がより安全である。

 バッファオーバーフローへの対策の為に文字列長を制限できる項目は多岐に渡るが、例えばクエーリーとして許可する文字列の長さや、CookieやUser-
Agent、Hostなどのヘッダ値についても最大値を設定することができる。


<シェルコード保護>

 SecureIISではCodeRedのように設定された値より短い長さでバッファオーバーフローが発生するようなケースでも、リクエストに含まれる文字列にシェルコードが含まれていないかをチェックすることで、IISを保護することができるようになっている。

Port139 伊原 秀明
http://www.port139.co.jp/

(詳しくはScan本誌をご覧ください)
http:/www.vagabond.co.jp/vv/m-sc.htm


《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×