Webサイトから個人情報が盗まれたり,Webページを改竄(かいざん)される事件が後を絶たない。2008年には,サウンドハウスやナチュラムなどのECサイトから個人情報が漏れたり,ゴルフダイジェスト・オンラインのWebサイトが改竄されたりした。いずれもWebアプリケーションの脆弱(ぜいじゃく)性を突く「SQLインジェクション」という攻撃が使われた。
これだけ事件が続くのは,Webアプリケーションの脆弱性を根絶することが極めて困難だからだ。常に機能を拡張したり,改良したりしているWebサイトでは,どうしても対応漏れが発生しやすい。そうしたWebアプリケーションの脆弱性を外側からふさいでくれるのが,WAF(Web Application Firewall)である。
今回,そのWAFが実際のSQLインジェクションの攻撃をどれだけ防げるのか,主要な5製品を使って徹底検証した。WAFが防いでくれる脆弱性には,悪意のあるスクリプトを実行させる「クロスサイト・スクリプティング」など多様なものがあるが,今回は,実際の被害が相次いでいるSQLインジェクションに焦点を当てた。
検知漏れ,過剰検知が判明
それぞれの製品について「検知漏れの有無(検証1)」「過剰検知の有無(検証2)」「攻撃ツールの防御(検証3)」の大きく三つの検証を実施した(図1)。
検知漏れの検証では,文字列型や数値型などさまざまな攻撃パターンを試し,WAFが遮断できるかを確かめた。過剰検知の検証では,攻撃なのかどうか紛らわしい文字列を入力し,WAFが誤って遮断しないかをチェックした。
三つ目は,実際の攻撃で用いられている中国製などのツールを使った検証である。Webサイトからクレジットカード情報を盗むような犯罪者は,ほとんどが攻撃ツールを使っていると見られている。検索サイトを利用して脆弱性がありそうなWebサイトを自動的に見つけ出し,無差別に攻撃する。そうした攻撃ツールの実物を入手し,WAFが防いでくれるかを調べた。