« サンレッド、アレだ(笑) | Main | TREKの2009年カタログもらてきたー »

2008.10.07

ASP/ASP.NETアプリケーションの不備を狙う新型SQLインジェクション

スラッシュドットをチェックしていて気がついたのですが、LACが「【CSL】CSL緊急注意喚起レポート ~新手のSQLインジェクションを行使するボットの確認~」を公開しています。

  • ASPの仕様で、Requestオブジェクトから明示的にフォーム、QueryStringの情報を取得しない場合Cookieのパラメータを取得する
    ※ ASP.NETではRequest.Params()を使用した場合に同様の結果になる
  • ASPでは不適切な%エンコード文字列から%を除去してコードを渡すため、SQLインジェクションの攻撃コードがすり抜けることがある
    ※ ASP.NETではこの問題は該当しない
  • Cookieはログに残らないケースが多いため、攻撃コードに気付かないことが多い

ということで、Cookie上の攻撃パラメータでSQLインジェクションを起こせる、というものです。
もちろん、Webアプリケーション上にSQLインジェクションがなければこういったケースでも問題はありません。
ただ、SQLインジェクションの対策はどうしても抜けが出る可能性があるので、予防策としてSQLインジェクション対策をWebアプリケーションファイアーウォール(WAF)、IDS、IPSに任せている場合は、Cookieの内容をチェックしていないことが多い上に攻撃コードがすり抜けるケースがある、ということになります。

ちなみに、日経BPの記事では

Webサイトでの対策は,IISのWebアプリケーションでのクッキー取得方法を変更すること。具体的には,Requestオブジェクトでクッキーを取得するのではなく,GETの場合は,「QueryString」,POSTの場合は「Form」を使ってクッキーを操作するようにすべきだという。
となっていますが、Cookieを操作するのではなく、ページの要求データがフォームならフォーム、QueryStringならQueryStringを取得するようにコードを正しく書くことでCookie上の攻撃コードを受け取らずに済む、ということですね。
いずれにしても、あちこちにバラまかれたコードを修正するのが面倒なのはSQLインジェクションと変わらないわけですが。

ということで、ASP/ASP.NET組の人は要見直しですね。

|

« サンレッド、アレだ(笑) | Main | TREKの2009年カタログもらてきたー »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/27186/42709763

Listed below are links to weblogs that reference ASP/ASP.NETアプリケーションの不備を狙う新型SQLインジェクション:

« サンレッド、アレだ(笑) | Main | TREKの2009年カタログもらてきたー »