安全な実装方法を解説、IPAが「安全なSQLの呼び出し方」公開


SQLインジェクションの概要

 独立行政法人情報処理推進機構(以下、IPA)は3月18日、SQLインジェクション攻撃が継続していることから、Webアプリケーションの安全な実装方法を解説した資料「安全なSQLの呼び出し方」(全40ページ)を公開した。

 近年、Webサイトを狙った攻撃が後を絶たない。IPAが公開しているSQLインジェクション検出ツール「iLogScanner」で、脆弱性対策情報データベース「JVN iPedia」のアクセスログを解析しても、全体の45%がSQLインジェクション攻撃、38%がディレクトリ・トラバーサル攻撃によるトラフィックなのだという。

 中でもSQLインジェクションは深刻な被害が発生することから、今回、具体的な対策を解説した資料を制作。IPAのWebサイト上で公開した。

 データベースと連動するWebアプリケーションの多くは、Webサイト利用者からの入力情報を基にデータベースへの命令文(SQL文)を組み立てている。この組み立て方法に問題がある場合に、SQLインジェクションによる不正利用を招く可能性がある。

 IPAでは「オープンソースソフトの中には、十分な安全性が検証されずに使用されているものがある。プログラミング言語やデータベースエンジンの種類によっては、一般的なSQLインジェクション対策が効かない場合がある」としており、「安全なSQLの呼び出し方」では、SQLインジェクション対策が安全であるための要件を掘り下げて検討。どの製品をどのように使えば安全なSQL呼び出しを実現できるか、その考え方を整理しながら、いくつかの具体的なケースについて調査結果を示している。

 全5章から構成され、第1章では、既存資料「安全なウェブサイトの作り方」との関連性を記載。第2章で「SQLインジェクションが発生する原因」、第3章で「アプリケーションがSQL文を組み立てる方法について」、第4章で「安全なSQL呼び出しのためには何が必要か」を説明。最後の第5章では、5種類のプログラミング言語とデータベースの組み合わせ(Java+Oracle、PHP+PostgreSQL、Perl+MySQL、Java+MySQL、ASP.NET+SQL Server)を取り上げ、SQLインジェクションに対して安全な実装方法を調査し、具体的なソースコードの書き方を解説している。




(川島 弘之)

2010/3/18 12:56