SQLインジェクションの対策

2009年2月20日(金)
近藤 伸明

運用時の対策

 SQLインジェクションに限らず、Webアプリケーションの防御にはIDS(Intrusion Detection System;侵入検知システム)、IPS(Intrusion Prevention System;侵入防止システム)、WAF(Web Application Firewall;Webアプリケーションファイアーウォール)の導入が検討できる。具体的には、図3-1のような効果が期待できる。しかし、導入しただけで安全という訳ではない。導入にあたっては図3-2に示す項目に注意が必要だ。導入例を図3-3に示す。

 また、SQLインジェクションなどの攻撃を早期に察知し対策するには、ログの監視/解析が有効である。

 データベースサーバーのログの監視/解析の方法を示す。

・データベースサーバーに不自然なSQLが送信されていないかどうか、データベースサーバーのクエリーログを監視し、通常は使われない形式のSQL文が使用されていないか監視を行う方法で、攻撃を検知することができる。
・データベースサーバーのユーザーが行ったSQL文送信以外の操作ログを記録し、監視/解析する。これによって、権限昇格によるシステムカタログなどへの攻撃を検知することができる。

 そのほかのアクセスログの解析として、以下のようなものがある。

・WebサーバーへのアクセスログもSQLインジェクションを検知する上では有力な手掛かりとなる。IPAからWebサーバーのアクセスログを解析し、SQLインジェクションの有無をチェックするツールも配布されている。これらを有効に活用してほしい。
・WAF/IDS/IPSなどのログも有用である。Webサーバー単独でログを採取するよりもより多くの情報が得られる。ログは必ず採取し、監視してほしい。

 なお、ログの解析にはそのWebサイト、Webシステムのアクセス数に比例した記憶容量を持つ記憶装置が必要である。ログの1日当たりの発生量を適切に見積もり、いつまで保存するのかによって必要なコストは変動する。それぞれに見合った製品やシステムを検討の上導入するべきである。

 ここまで紹介したように、SQLインジェクションの対策は基本的な事柄をしっかりやっておくことが重要である。しかし、どうしても対策の漏れが生じてしまうこともあるだろう。よくあるSQLインジェクションの対策の漏れと、その対応方法を図3-4にまとめているので、チェックしてみてほしい。

次回は攻撃手法を紹介

 今回紹介した通り、SQLインジェクション攻撃の対策は技術的に特別なことをする訳ではない。にもかかわらず、いまだに診断でSQLインジェクション脆弱性がなくならないのは、やはり問題の根底にセキュリティーに対する認識の低さがあると思われる。次回は、実際のSQLインジェクション攻撃の手法を紹介する。

【参考文献】

IPA「安全なウェブサイトの作り方 改訂第3版」
http://www.ipa.go.jp/security/vuln/documents/website_security.pdf)(アクセス:2009/2)

IPA「ソフトウエア等の脆弱性関連情報に関する届出状況[2008年第4四半期(10月~12月)]」
http://www.ipa.go.jp/security/vuln/report/vuln2008q4.html)(アクセス:2009/2)
 

株式会社神戸デジタル・ラボ

2003年神戸デジタル・ラボに入社。
2007年からWebセキュリティ診断業務を事業化し、現在に至る。
2008年4月に経済産業省から発表された「モデル取引・契約書(追補版)」のセキュリティガイドライン ワーキング・グループ委員として「Web アプリケーションセキュリティ」を担当。
2010年10月、CSS2010にてセキュリティ関連論文を発表するなど、診断業務のかたわらセキュリティ基盤研究開発業務に活躍中。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています