SQLインジェクション攻撃に対処できるようにする3つセキュリティツール from Microsoft

| | コメント(0) | トラックバック(1)

・Microsoft、SQLインジェクション深刻化に警告 - ITmedia エンタープライズ
http://www.itmedia.co.jp/enterprise/articles/0806/25/news032.html
ネタ元はこの記事。

1つは、Internet Information Services(IIS)が処理するHTTPリクエストの種類を制限する「UrlScan 3.0β」。特定のHTTPリクエストを遮断することで、危険なリクエストを防ぐという。2つ目はSQLインジェクション攻撃を受けやすいASPコードを検出する「Microsoft Source Code Analyzer for SQL Injection Community Technology Preview」。3つ目はHewlett-Packard(HP)と共同開発したスキャンツール「Scrawlr」で、WebサイトがSQLインジェクション攻撃を受けやすいかどうかを確認できる。
Microsoft、SQLインジェクション深刻化に警告 - ITmedia エンタープライズ

・Microsoft Security Advisory (954462): Rise in SQL Injection Attacks Exploiting Unverified User Data Input
http://www.microsoft.com/technet/security/advisory/954462.mspx
発表したというセキュリティアドバイザリ。

・マイクロソフト セキュリティ アドバイザリ (954462): ユーザー データ入力の未検証を悪用した SQL インジェクション攻撃の増加
http://www.microsoft.com/japan/technet/security/advisory/954462.mspx
それの日本語版。

3つのツールは、「推奨するアクション」の項目に書かれています。

・SQL インジェクション攻撃とその対策
http://www.microsoft.com/japan/technet/security/guidance/sqlinjection.mspx
SQL インジェクション攻撃の簡単な説明。

・日本のセキュリティチーム (Japan Security Team) : IIS &\1 ASP 向け検査・対策ツールを公開
http://blogs.technet.com/jpsecurity/archive/2008/06/25/3077537.aspx

未使用ですが。。。

検出 - HP Scrawlr

Microsoftのサイトの説明 をまとめると、HP Scrawlr の動作は「最初にURLを入力する。URLのハイパーリンクを再帰的にクロールし、フォーム フィールド、クエリ文字列のパラメータおよび Cookie の値を使って SQL インジェクション攻撃を試みる。問題があった場合はレポートする」という事らしい。

でも、URL のハイパーリンクを再帰的にクロールすると言ってるし、フォームのPOSTパラメーターはダメ(後述)みたいなので、フォームフィールドの値は対象にならないんじゃないかなぁ? action が GET のフォームなら フォームフィールドに適切な文字列を入れてクロールしてくれるって事?(違いそう)。

The HP Security Laboratory によると、Scrawlr は HPのSQL Injector tool (HP WebInspect のこと?) と比べて、幾つかの制限があるらしい。

  • Will only crawls up to 1500 pages
  • Does not support sites requiring authentication
  • Does not perform Blind SQL injection
  • Cannot retrieve database contents
  • Does not support JavaScript or flash parsing
  • Will not test forms for SQL Injection (POST Parameters)

認証サイト不可、JavaScript不可、フォーム(POSTのみ?GETなら行ける?)不可なのは、かなり痛い。
無料だから仕方ないけど。
それで困る人は、有償の HP WebInspect の SQL Injector ツールを使ってくださいという事っぽい。

防御 - URLScan バージョン 3.0 ベータ版

・IIS.net : Learn IIS7: Using UrlScan: Configuring Security: Installing and Configuring IIS 7.0
http://learn.iis.net/page.aspx/473/using-urlscan

・Download details: UrlScan v3.0 Beta (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=ee41818f-3363-4e24-9940-321603531989&DisplayLang=en
x86版のダウンロード

・Download details: UrlScan v3.0 Beta (x64)
http://www.microsoft.com/downloads/details.aspx?FamilyID=361e5598-c1bd-46b8-b3e7-3980e8bdf0de&DisplayLang=en
x64版のダウンロード

私が使った事あるのは、URLScan 2.5 (だったと思う) 。

・3.0 Betaの新機能

  • Deny rules can now be independently applied to query string, all headers, a particular header, URL or a combination of these.
  • A global DenyQueryString section in configuration lest you add deny rules for query strings with the option of checking the un-escaped version of the query string as well.
  • Using escape sequences (like %0A%0D) can now be used in deny rules so it is possible to deny CRLF and other sequences involving non-printable characters.
  • Multiple UrlScan instances can now be installed as site filters, each with its own configuration and rules (urlscan.ini).
  • Configuration (urlscan.ini) change notifications will be propagated to IIS worker processes so you won't have to recycle your worker processes after making a configuration change. Logging settings are the only exception to this.
  • Enhanced logging to give descriptive configuration errors.
IIS.net : Learn IIS7: Using UrlScan: Configuring Security: Installing and Configuring IIS 7.0

あ、セキュリティ アドバイザリ内に日本語訳ありました。

  • 適用される拒否ルールを URL、クエリ文字列、すべてのヘッダー、特定のヘッダーまたはこれらの組み合わせごとに実装します。
  • グローバルな DenyQueryString セクションは、クエリ文字列に拒否ルールを追加し、クエリ文字列のエスケープされないバージョンを確認するオプションがあります。
  • 拒否ルールのエスケープ シーケンスを使用して、CRLF および構成の印刷可能範囲外の文字を拒否します。
  • 複数の URLScan のインスタンスは、独自の構成およびログ オプション (urlscan.ini) が含まれるサイト フィルタとして、それぞれインストール可能です。
  • 構成 (urlscan.ini) の変更通知は、リサイクルせずにワーカ プロセスに伝達されます。 ログの設定はこれに当てはまりません。
  • 構成のエラーの具体的な説明を提供するため、強化されたログが含まれています。
マイクロソフト セキュリティ アドバイザリ (954462): ユーザー データ入力の未検証を悪用した SQL インジェクション攻撃の増加

特定 - Microsoft Source Code Analyzer for SQL Injection

スタティックなソースコードを解析するツール。
ASP コード内のSQL インジェクション脆弱性を発見するツール。

・The Microsoft Source Code Analyzer for SQL Injection tool is available to find SQL injection vulnerabilities in ASP code
http://support.microsoft.com/kb/954476

・Download details: Source Code Analyzer for SQL Injection
http://www.microsoft.com/downloads/details.aspx?FamilyID=58a7c46e-a599-4fcb-9ab4-a4334146b6ba&DisplayLang=en
ダウンロードサイト

ぼそぼそ

SQLインジェクション攻撃に関してのみ言えば、「Prepared SQL (準備済みSQL) で回避するのが楽ですよ」ってのはもう通用しないんでしょうか?
識者の意見を聞きたいです・・・。

(2008/12/30 追記 ここから)

PreparedStatementを使ってもダメって話を聞いたのでちょっと追記。

JavaとMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性
なるほど。この問題は初耳だったので驚いた。

しかも、PreparedStatementを使っても解決されないという。この部分に非常に驚いたのでどういうことなのか少し調べてみた。
(略)
そして実は現在のConnector/Jの最新版(5.1.7)ではデフォルトでは「サーバーサイドprepared statement」を使っていないのである。そしてクライアントサイドのprepared statementは結局のところエスケープ関連のセキュリティ脆弱性を潜在的に抱えてしまう存在なのである。
へぼへぼCTO日記 - useServerPrepStmtsを使うのが根本解決だとはおもう。けど...?

ちなみに、Connector/JでサーバーサイドのPreparedStatementを使うには jdbc のURLにuseServerPrepStmts=trueをつけるだけだそうだ。(へぼへぼCTO日記より)

  Connection con = DriverManager.getConnection(
    "jdbc:mysql://localhost/tokumaru?user=xxx&password=xxxx&useUnicode=true&useServerPrepStmts=true&characterEncoding=" + charEncoding)

ただし、こんな事も書かれていた。

これにはuseServerPrepStmtsの登場時(Connector/J 3.1.0)にはデフォルトがtrueだったが、5.0.55.1.0においてfalseに変更されたという経緯があるためのようだ。そしてなぜfalseにされたかということの背景を察すると、trueにすることの弊害もありそうで、手放しでこれをtrueにすることを勧めることが少しはばかられる。
へぼへぼCTO日記 - useServerPrepStmtsを使うのが根本解決だとはおもう。けど...?

やっぱり、PreparedStatement が正しく(?)機能するように使っていれば、基本的にSQLインジェクションは防げるという事だろうか。
だけど、ややこしい事もあるという事ですね。多分。
(2008/12/30 追記 ここまで)

あ、でも今回の話は、既に作ってあるものに対して、対処するためのツールですね。

トラックバック(1)

このブログ記事を参照しているブログ一覧: SQLインジェクション攻撃に対処できるようにする3つセキュリティツール from Microsoft

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/495

» Xxx free video clips.(Jay s xxx links free porn pictures and videos.)~のトラックバック

Free xxx stories. Free xxx webcams. Free hardcore xxx porn. Free xxx mpegs. F... 続きを読む

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2008年6月25日 20:07に書いたブログ記事です。

ひとつ前のブログ記事は「ケータイのユーザエージェント (改定)」です。

次のブログ記事は「Malware City (セキュリティ情報サイト)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261