<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>日本のセキュリティチーム (Japan Security Team) : Web アプリケーション</title><link>http://blogs.technet.com/jpsecurity/archive/tags/Web+_A230D730EA30B130FC30B730E730F330_/default.aspx</link><description>Tags: Web アプリケーション</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>IIS &amp; ASP 向け検査・対策ツールを公開</title><link>http://blogs.technet.com/jpsecurity/archive/2008/06/25/3077537.aspx</link><pubDate>Wed, 25 Jun 2008 04:43:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3077537</guid><dc:creator>JSECTEAM</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/jpsecurity/comments/3077537.aspx</comments><wfw:commentRss>http://blogs.technet.com/jpsecurity/commentrss.aspx?PostID=3077537</wfw:commentRss><description>&lt;P&gt;小野寺です。&lt;/P&gt;
&lt;P&gt;ニュースとしては、比較的下火になっているかもしれない、SQL インジェクションの対策が済んでいないサイトが、まだまだ、残っています。 しかし、実際に対策を進めてみると「検査方法が分からない」「開発元がもうすでに・・・」「色々有ってコードが変更できない」といった様々なフィードバックというか悩みがでてきます。&lt;/P&gt;
&lt;P&gt;現在のSQL インジェクションの問題の怖いところは、侵害されたサイトが、そのサイトの利用者にも被害を伝播させるところです。そして利用者側で自衛するのは大変難しいと言えます。現在発見されている多くのパターンは、セキュリティ更新を適用しておけば被害を受ける可能性は低くなりますが、ゼロではありません。&lt;BR&gt;将来、もしも未知の脆弱性が発見された場合、この多数のSQL インジェクションに耐性のないサイト群が犯罪者にとって都合のよい犯罪のプラットフォームになってしまう事も考えられます。&lt;/P&gt;
&lt;P&gt;ということで、少なくとも先ずは、自分のところから何とかしようということになりまして、Internet Information Services (IIS) と ASP の&lt;A class="" href="http://www.microsoft.com/japan/technet/security/advisory/954462.mspx" mce_href="http://www.microsoft.com/japan/technet/security/advisory/954462.mspx"&gt;対策・検査ツールを新たに提供することにしました&lt;/A&gt;。 (前置きが長かったです。)&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;1. Microsoft Source Code Analyzer for SQL Injection (SQLインジェクションに関するソースコード分析ツール)&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; このツールは、ASP のソースコードを静的に分析して、SQL インジェクションの原因となるような未検証の外部入力や、外部入力を直接使った SQL コマンド/ステートメントの構築等々を検出します。&lt;BR&gt;ツールでは、以下の6種類の点について検査し、警告を出力します。 &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;80400 – Possible SQL Injection vulnerability through data that is read from the Request object without any input validation.&amp;nbsp; These warnings are very likely bugs that must be fixed. &lt;/LI&gt;
&lt;LI&gt;80406 – Possible SQL Injection vulnerability through data that is read from the Request object where the input is passed through some unknown function calls that might perform data validation. If there is no data validation done inside the function call, then these are likely bugs else these are likely false positives. &lt;/LI&gt;
&lt;LI&gt;80403 – Possible SQL Injection vulnerability through data that comes from a backend server. If the data is controlled by an end user through some other web page then these are likely bugs. But if the data is well trusted then these may not be bugs. It is still a good practice to parameterize these queries as a defense in depth. &lt;/LI&gt;
&lt;LI&gt;80407 - Possible SQL Injection vulnerability through data that comes from a backend server and is passed through some unknown function calls. If the data is controlled by an end user through some other web pages and if there is no data validation performed on this data, then these are likely bugs. &lt;/LI&gt;
&lt;LI&gt;80420 – Possible SQL Injection vulnerability through function parameters. These warnings are generated at function scope, so if the function parameter values come from trusted sources then these are false positives. If the parameter values are controlled by end users then these are very likely bugs. You can use __sql_pre_validated annotation on the function parameters to detect if end users can reach this code. &lt;/LI&gt;
&lt;LI&gt;80421 – Possible SQL Injection vulnerability through function parameters and the function parameters are passed through some unknown function calls that might perform data validation. You can use __sql_pre_validated annotation on the function parameters and __sql_validate on validation function to detect if end users can reach this code. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;既存の ASP で一度、どんな項目が検出されるかチェックしてみてもよいかもしれません。&lt;BR&gt;使い方は、以下の様な感じで、検査対象の ASP ソースを指定するだけです。 ツールは、自動的にページ遷移を追いかけませんので、複数の ASP ファイルが有る場合は、個別に検査する必要が有ります。&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;msscasi_asp.exe&lt;/STRONG&gt; /input="default.asp"&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;2. URLScan の新バージョン (3.0 ベータ)&lt;/STRONG&gt;&lt;BR&gt;&amp;nbsp; 今までも、URLScan で不正なリクエストをある程度拒否する事が出来たのですが、最近のSQL インジェクション攻撃を防ぐののに便利なオプションを追加しました。&lt;BR&gt;&amp;nbsp; まだ、ベータという扱いですが、既存のコードに一切手を入れることなくリスクを減らすことが可能です。 とはいえ、脆弱なコード、このツールを導入しても脆弱なままですし、すべてのケースで防げるとは限りません。 URLScanは、本来は「コードが対策済みで、もし、脆弱性が見つかっても」不正なリクエストを拒否する事で、実際の被害にはつながらない様にするためのリスク要因緩和ツールです。&lt;BR&gt;&amp;nbsp;決して、コード上の脆弱性対策の恒久的な代替え手段ではありません。&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3077537" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jpsecurity/archive/tags/_0681315F2760_/default.aspx">脆弱性</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/Web+_A230D730EA30B130FC30B730E730F330_/default.aspx">Web アプリケーション</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/SQL+Injection/default.aspx">SQL Injection</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/_1C69FB67_/default.aspx">検査</category></item><item><title>セキュリティ デベロップメント “ライフサイクル”：裏側と表側</title><link>http://blogs.technet.com/jpsecurity/archive/2008/06/19/3074088.aspx</link><pubDate>Thu, 19 Jun 2008 06:41:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3074088</guid><dc:creator>JSECTEAM</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/jpsecurity/comments/3074088.aspx</comments><wfw:commentRss>http://blogs.technet.com/jpsecurity/commentrss.aspx?PostID=3074088</wfw:commentRss><description>&lt;P&gt;小野寺です。&lt;/P&gt;
&lt;P&gt;セキュリティ デベロップメント （SDL: Security Development Lifecycle) って本当にやってるの？&lt;BR&gt;ということを、聞かれることがあるが、実は結構真面目にやっていたりします。 この辺りの現場の声を Web &lt;A class="" href="http://wasforum.jp/conf2008/74-cio-ct-day/" mce_href="http://wasforum.jp/conf2008/74-cio-ct-day/"&gt;Application Security Forum&lt;/A&gt; の2日目 (&lt;A class="" href="http://wasforum.jp/conf2008/75-developers-day/" mce_href="http://wasforum.jp/conf2008/75-developers-day/"&gt;7/5&lt;/A&gt;) で話すことになりました。&lt;BR&gt;といっても、話すのは私ではなく、ソニーの松並氏 とマイクロソフト最高技術責任者の加治佐が、開発の現場経験から話していきます。きっと、生々しい話になるのだろうと思っています。&lt;/P&gt;
&lt;P&gt;私もその場で聞いてみたいのですが、その日はMicrosoft Security Response Alliance Conference に出席するために、シアトルに居る予定なのです。&lt;/P&gt;
&lt;P&gt;そのほかにも、過去の事例から多くを学んだ企業がその経験を話すようなプログラムが組まれていたり、開発者向けのセッションも内容が濃くなっているようです。 &lt;/P&gt;
&lt;P&gt;最近の事件・事故やセキュリティの動向をみていると聞いておくべき内容になっているのではないでしょうか。&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3074088" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jpsecurity/archive/tags/_42668B4ECD30BF30_/default.aspx">時事ネタ</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/_0681315F2760_/default.aspx">脆弱性</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/Targeted+Attack/default.aspx">Targeted Attack</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/_8B957A76D730ED30BB30B930_/default.aspx">開発プロセス</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/Web+_A230D730EA30B130FC30B730E730F330_/default.aspx">Web アプリケーション</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/SQL+Injection/default.aspx">SQL Injection</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/_1C69FB67_/default.aspx">検査</category></item><item><title>最近のWeb改ざんとかSQLインジェクションとか</title><link>http://blogs.technet.com/jpsecurity/archive/2008/04/30/3047334.aspx</link><pubDate>Wed, 30 Apr 2008 06:56:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3047334</guid><dc:creator>JSECTEAM</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/jpsecurity/comments/3047334.aspx</comments><wfw:commentRss>http://blogs.technet.com/jpsecurity/commentrss.aspx?PostID=3047334</wfw:commentRss><description>&lt;P&gt;小野寺です。&lt;/P&gt;
&lt;P&gt;3月頃からSQLインジェクションが原因となるWebサイトの改ざんが報告されているのは皆さまご存じの通りです。&lt;BR&gt;4月に入って被害がさらに広がっているように感じています。まず、SQLインジェクションに対して殆ど認知されていないですし、その対策方法も知られていないのではないでしょうか。各方面ですでに啓発告知がなされてはいますが、その様な告知を受けている人は、ある程度セキュリティに興味があるか詳しい人である可能性が高く既に対策済みという場合が多いのではないかと思っています。 この点は、マイクロソフトも例外ではなく、前々から悩ましく思っています。とはいえ、届くところには伝えなければなりませんので、マイクロソフトからも管理者・開発者を含め我々から直接連絡の取れるお客様に広く注意喚起することにしました。&lt;/P&gt;
&lt;P&gt;SQL インジェクション攻撃とその対策&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/technet/security/guidance/sqlinjection.mspx"&gt;http://www.microsoft.com/japan/technet/security/guidance/sqlinjection.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;実際に、SQL インジェクション攻撃を受けているかは、Webサーバーの”適切に設定された”ログに現れてきます。&lt;BR&gt;最近広く行われている攻撃は、自動化ツールによるものとみられており、ログに以下のような文字列の断片が見られた場合は、攻撃を受けている可能性があります。&lt;BR&gt;&amp;nbsp; ;DECLARE%20@S%20NVARCHAR(4000);SET%20@S=CAST(0x4400450043004C0041005200450020004 (以下略)&lt;/P&gt;
&lt;P&gt;そのほか、特殊記号 (' ; --等)がログに残っている場合も同様に注意が必要でしょう。&lt;/P&gt;
&lt;P&gt;問題は、実際に不正なコードをインジェクション(注入)されているかどうかの確認ですが・・・&amp;lt;iframe&amp;gt;や&amp;lt;script&amp;gt;タグをうまく使っているため目視による検証はあまり意味を持ちません、また、コンテンツファイル (*.htmlとか*.asp等)を検索しててもだめです。 問題のコードはデータベース側に埋め込まれることになりますので、関連するテーブルで文字列を格納可能な型の列を其々チェックすることをお勧めします。&lt;/P&gt;
&lt;P&gt;最後に根本的な対処については、少なからずWebアプリケーションや、データベースロジックを変更することになりますので、サイトで紹介している資料等を参考に、早めの対応が肝要です。&lt;/P&gt;
&lt;P&gt;すでに、Webが改ざんされてしまっている場合は、アプリケーション改修ももちろんですが、利用者保護も忘れずに。&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3047334" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/jpsecurity/archive/tags/_42668B4ECD30BF30_/default.aspx">時事ネタ</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/Malware/default.aspx">Malware</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/Web+_A230D730EA30B130FC30B730E730F330_/default.aspx">Web アプリケーション</category><category domain="http://blogs.technet.com/jpsecurity/archive/tags/SQL+Injection/default.aspx">SQL Injection</category></item></channel></rss>