SQLインジェクション攻撃の「最新傾向と対策」
世界規模で多発する脅威に対して、ITマネジャーがとりうる防御策とは?最近、データベースと連動したWebサイトを改竄し、不正に情報を搾取する、いわゆる「SQLインジェクション攻撃」が世界規模で多発している。SQLインジェクション攻撃自体は昔から存在するものだが、その対策方法をきちんと把握している企業は案外少ないのではないだろうか。そこで本稿では、SQLインジェクション攻撃の現状を報告するとともに、企業が講じるべき対策のポイントを紹介することにしたい。
攻撃対象は「無差別」 もはや対岸の火事ではない
昨年末から今年にかけて、SQLインジェクション攻撃による世界規模のWebサイト改竄事件が発生している。2007年11月には海外のWebサイトのうち、4万ページ以上がSQLインジェクション攻撃により改竄されたと米国SANS Instituteが報告している。その後も攻撃は続き、国内では2008年5月に独立行政法人の情報処理推進機構(IPA)が「SQLインジェクション攻撃に関する注意喚起」を発表するまでに至った。
しかし、SQLインジェクションという攻撃手法は古くから知られており、それ自体は新しいものではない。では、ここにきてなぜSQLインジェクション攻撃による事件が多発しているのか。その原因はSQLインジェクション攻撃の「攻撃対象の変化」とSQLインジェクション攻撃を自動化したツールによる「攻撃の簡易化」によるものであると考えられる。以前のように、機密情報を持っている特定の企業や官公庁が攻撃対象となるのではなく、検索エンジンなどで見つかったWebサイトが無差別に攻撃対象にされているのである。このような背景から、SQLインジェクション攻撃はWebサイトを守るシステム管理者にとっては、すでに対岸の火事ではなくなっている。
では、どのようにしてSQLインジェクション攻撃を防げばよいのか。SQLインジェクション攻撃の対象となる“Webアプリケーション”は人間(プログラマー)が開発するものであり、その品質(セキュリティ・レベル)は不変ではない。そのため、アプリケーション・レベルの対策だけでは、どこかで対策漏れが発生する可能性が残る。
SQLインジェクション対策をより完全に近づけ、SQLインジェクション攻撃によるリスクを排除するためには、“アプリケーション・レベルでの対策漏れは必ずある”という前提のうえで、Webシステム(注1)全般において多層防御という考えに基づいた対策を実施する必要がある。ここでは、インターネットに公開しているWebシステム全般で実施するSQLインジェクション対策について解説する。
SQLインジェクション攻撃の基本的な手口
まず、SQLインジェクション攻撃の仕組みについて解説するが、これについてはさまざまな書籍やインターネット上などで詳しく解説されているため、ここでは簡単な説明程度にとどめておく。
注1:ここでは、Webアプリケーション、Webサーバ、データベース、ネットワークを「Webシステム」と表現とする



























