ラックは2008年8月6日,SQLインジェクション攻撃の現状と,その対策をまとめたレポートを同社のWebサイトで公開した。SQLインジェクション攻撃の被害を受けたWebサイトを分析した結果,Webアプリケーションやデータベースの基本的な対策を怠っているケースが多いとして,警告を発している。

 「緊急対応から見たWebサイト用データベースセキュリティ対策~継続するSQLインジェクションの脅威~」と題されたこのレポートは,ラックのデータベースセキュリティ研究所が,同社の個人情報漏えい緊急対応サービス「個人情報119」を通して得た情報を基にまとめられている。

 レポートによれば,SQLインジェクション攻撃は2008年3月から急増した。ラックのセキュリティ監視センターであるJSOCの観測では,2008年5月にはSQLインジェクション攻撃の件数が過去最高の月間15万件以上にも達している。攻撃急増の原因は,中国のWebサイトでSQLインジェクション攻撃を自動で行うツールや,詳細な攻撃手順が公開されたためだ。攻撃者は自動化ツールやボットを使って効率的に攻撃を仕掛け,ぜい弱性のあるWebサイトから短時間のうちに大量の情報を盗み出すという。

 レポート内では代表的なSQLインジェクション攻撃の具体例として,「古典的なエラー・メッセージを利用した情報詐取」「データベースの文字列フィールドにタグを埋め込む」「コマンド実行により,データベース・サーバーにバックドアを作成する」といった手口を紹介。同社の簡易Webサーバー・ログ解析ツール「SecureSite Checker Free」などを使って,攻撃の痕跡を確認する方法なども説明されている。

 被害を受けたWebアプリケーションに共通するぜい弱性は,いずれも基本的なセキュリティ対策漏れであるという。具体的には,「入力データのチェック処理やエスケープ処理漏れ」「推測されやすいセッションIDの利用」「Cookieに重要な情報を保存する」「IIS標準エラーページを使用している」などが挙げられている。また,データベース側に,「アプリケーション用のデータベースのユーザーに対して,過剰なアクセス権限を与えている」「クレジットカード情報など,重要な情報が暗号化されていない」「データベース側でアクセス・ログを取得していない」といった不備を抱えるケースが多いという。こうした不備があると,SQLインジェクション攻撃が成功した場合に,個人情報漏えいなどの被害規模が大きくなる危険性が高いとしている。

 対策としては,「データベースのユーザーに対して,管理者権限の利用を禁止する」「データベースにおける主要操作のログを取得しておく」「データベース・トリガー機能(ある事象をトリガーに,あらかじめ設定した必要な処理を実行する機能)を利用する」「エラー・ページをカスタマイズする」といった内容が挙げられている。

 ラックでは2006年にも「SQLインジェクションとデータベースセキュリティ ~情報漏洩と犯人特定の最後の砦~」というレポートを出しているが,「その頃と比べても対策状況が進んでいるとは言えない印象」(レポートより)だとして,改めて安全なWebアプリケーション開発と,データベース・セキュリティ対策の徹底を呼びかけている。

[ラックのレポート掲載ページへ]