SQL インジェクション攻撃とその対策
(マイクロソフト, 2008/4/30)
SQL インジェクション攻撃による Web 改ざんが多発しているようです。
主に、IIS, ASP, ASP.NET, SQL Server で構築された Web システムがターゲットとなっています。
Web 改ざんが発生した場合、Web サイトを閲覧した方のコンピュータがウィルスに感染する可能性があります。
マイクロソフトをはじめ、セキュリティ関連団体が注意喚起を行っていますが、改ざんは増え続けているようです。
開発者、技術者の方々は、早急に関連情報を確認されることをお勧めします。
【最初に注意】
改ざんされた Web を、参照するなら、感染してもいいマシンで行うこと。
SQL インジェクションに関連する情報を読むと、感染しているサイトを特定のキーワードで検索できることがわかります。
しかし、感染している可能性がある Web サイトを見にいくことはお勧めしません。
見に行くのであれば、感染してもいいコンピュータを用意した上で、見に行ってください。
攻撃側は、あなたの防御対策の上を行っているかもしれないためです。
ここでは、それぞれの立場の方々に向けて、注意を整理させていただきます。
【経営者の方々】
自社の Web サイトにて改ざんが発生した場合、自社の顧客の PC がウィルスに感染することになります。
もちろん、お客様がそれぞれ十分なセキュリティ対策をしていれば感染しない場合もありますが、すこしでも対策が漏れたお客様が被害にあわれる可能性があります。
さらに、改ざんされた場合、自社の Web サイトが、Live Search, Google, Yahoo などの検索から除外される可能性があります。
検索サービスを提供する各社は、利用者保護のため、改ざんされている Web サイトを検索から除外しているようです。このため、御社のサイトが検索されなくなる可能性があります。
次に、自社Web サイトへの攻撃の有無の確認、自社の Web アプリケーションの対策状況の確認をされるとともに、ご利用のファイアウォール製品などで本当に防ぐことができるのか、確認されることをお勧めします。
【運用管理者の方々】
まず、攻撃の状況を確認されることをお勧めします。
たとえば、IPA から iLogScanner により Web アクセスログから攻撃の状況を確認することができます。
ただし、iLogScanner で検出されなかったとしても、攻撃がなかったことにはなりません。
次に、現在の Web アプリケーションの対策状況、データベース内の改ざんの状況の確認をお勧めします。
あわせて、ご利用のファイアウォール製品などで本当に検出、防御できるのかメーカーに確認されることをお勧めします。
なお、ASP と VBScript で開発した Web サイトは、エラー処理があまい場合が多く、危険性が高くなります。
【Web アプリケーションを運用される方々】
市販の Web アプリケーションを利用されている方々、オープンソースやフリーのものも含みます。
こうした Web アプリケーションを自社サーバや、ホスティング上で利用されている方は、開発元、販売元に確認し、適切なバージョンを利用しているかを確認します。
次に、攻撃の状況を確認されることをお勧めします。
【開発者の方々】
まず、攻撃の状況を運用管理者に確認されることをお勧めします。
すでに提供済みの Web サイトについても、保守範囲であれば確認されることをお勧めします。
次に Web アプリケーションの対策状況の確認をお勧めします。
次に、利用しているフレームワーク、コントロールなどのライブラリが適切に対応されているか提供元に確認されることをお勧めします。適切な保守が行われていないものは、脆弱性が存在する可能性があります。
【ホスティング利用者の方々】
まず、攻撃の状況を確認されることをお勧めします。
たとえば、IPA から iLogScanner により Web アクセスログから攻撃の状況を確認することができます。
ただし、iLogScanner で検出されなかったとしても、攻撃がなかったことにはなりません。
攻撃の可能性があった場合は、Web サイトを構築した方と相談されることをお勧めします。
次に、データベースが改ざんされていないかを確認します。
【開発者で、セキュリティについて自身がない方】
Web サイトを公開する前に、マイクロソフト, IPA などで提供される対策情報の確認をお勧めします。
下記のオンライントレーニングもお勧めします。
「開発者向け セキュリティ オンライン セミナー」
https://www.microsoft.com/japan/msdn/security/seminars/default.aspx
【一般の方】
まず、今回の攻撃では、問題のある Web サイトを表示しただけで、感染する場合があります。
さらに、感染したことに、特に気付かない場合があります。
ふつうに Web を見れる場合もあります。
このため、通常の PC 利用で、なにかいつもと違うと感じられる場合は、ウィルス対策ソフトで、PC を完全にスキャンするなどの確認や、運用管理者に確認を行うことをお勧めします。
次に、Windows Update を確実に行い、セキュリティ対策製品の更新を確実に行ってください。
Firefox, Safari などのブウラザ、Acrobat, Flash, Java ランタイム, Google ツールバー, Yahoo ツールバー, QuickTime などブラウザのアドイン製品もすべて、確実に最新版にしてください。
最新版にできない場合、感染する可能性があると考えてください。
攻撃側は、複数のウィルスをまとめて送りこんでくるためです。
次に、いつも利用している Web サイトや、絶対に安全そうな企業や政府の Web サイトであっても、改ざんされている可能性があることを認識してください。
もし、Web サイトのおかしな動きを確認した場合は、運用管理者や、Web サイトのサポートに問い合わせることをお勧めします。
以上です。
また、今回の SQL インジェクション関連の情報を確認される方への注意点もまとめておきます。
【SQL インジェクション注意点】
1. Windows, IIS, ASP, ASP.NET, SQL Server そのものの脆弱性が問題ではない
SQL インジェクションの Web サーバへの攻撃は、SQL Server に脆弱性があるためではありません。
ASP などで構築した Web アプリケーションそのものに問題があります。
2. Windows, IIS, ASP, ASP.NET, SQL Server のシステムだけが問題ではない
攻撃は、Linux, Apache, PHP, MySQL などを利用したシステムでも、行われる可能性があります。
3. クエリー引数だけが対象ではない
攻撃は、http://localhost/test.asp?value=xxxxxx の value= の部分のようにクエリー引数を改ざんして行う場合が、はっきりと Web アクセスログに残りますが、これだけではありません。
POST の値、Referer や User-Agent などHTTP ヘッダーの値、Cookies の値など、すべてが対象となります。
4.ファイルは改ざんされていない
Web サーバ上のファイルは改ざんされない場合があります。
攻撃によって、データベース上のテーブルのレコードの一部に文字列が埋め込まれる場合があります。
この場合、ファイルは一切変更されません。
このため、既存のファイル改ざんを検知するソフトウェアでは、検知できません。
5.攻撃の状況は変化している
攻撃は、数年前から行われてきましたが、2007年末から一気に多くなり、どんどん攻撃対象が拡大しているようです。
6.改ざんされていなくても、漏えいしている可能性がある
改ざんが成功していない場合も、データベースの情報の漏えいが発生している可能性があります。
7.改ざんされたサイトの総数はわからない
検索サイトでは、改ざんされた Web サイトを検索から除外しているようです。
このため、実際に改ざんされた Web サイト数は、専門の調査会社でないとわからないようです。
以上です。
ご注意いただければと思います。