「新手のSQLインジェクション攻撃を実行するボット」と 「SiteGuard」の対応

SQLインジェクション攻撃を実行する新手のボットによる被害が報告されています。大変重要な内容であり、ウェブアプリケーション・セキュリティに関わる上で、必ず確認しておきたい内容です。 本件に関して、攻撃の具体的内容、および弊社ウェブアプリケーションファイアウォール(以下、WAF)製品「SiteGuard」の対応状況をご紹介いたします。

【CSL】CSL緊急注意喚起レポート
~新手のSQLインジェクションを行使するボットの確認~ (出典:株式会社ラック)

(以下、CSLのレポート)
CSLのレポートで詳述されている新手のボットは下記の特徴を持っています。

  • Cookieを使用してSQLインジェクションを行う。
  • インジェクションされる攻撃コード(SQL文)が、IDS/IPS/WAFなどの防御システムによって検知されないようにされている。

Cookieを悪用する新手のSQLインジェクション攻撃を実行するボットについて、SiteGuardではVer3.00以前より搭載している「Cookie暗号化機能」を利用することで、対処可能です。
しかしながら、後者では挿入するSQL文に無効な%を含むことで、IDS/IPS/WAFなどの防御システムの検知を回避する試みが確認されており、この点がCSLの注意喚起レポートにおいても問題視されています。それは、今回のSQLインジェクションに止まらず、以下のようなクロスサイトスクリプトにおいても同様の問題が生じるためです。

検知回避の例)CSLのレポートをもとに記載

http://サイト/xss.asp?tanjun=xxx”><script>alert(document.cookie)</script>
の代わりに、
http://サイト//xss.asp?tanjun=xxx”><sc%ript>al%ert(docu%ment.coo%kie)</scr%ipt>

と書いた場合においても、IIS/ASPでは無効な「%」を除去するため、両リクエストは同じ意味を持つことになります。
CSLのレポートによると、多くのIDS/IPSはこの手法について検出が困難とされています。WAFにおいても、上述したIIS/ASPの仕様が考慮されていない場合、IDS/IPSと同様に検出できない可能性があるとのことです。現時点で、この手法の影響を受けるシステムはIIS/ASPとされていますが、今後その他のシステムが攻撃の対象となる可能性も考えられます。

本脅威に対して、2008年10月6日リリースの「SiteGuard Ver3.00 Update1」では、不正なURLエンコードを検出するための機能改善を図っています。最新の「SiteGuard」をご利用いただくことで、無効な%を含むことによる「攻撃検知の回避」を防ぐことができます。