2008年05月01日(木) 17時19分
セキュアにならないWebサイト(2) Webアプリケーションの攻撃への対策とは(Scan)
3月11日頃から突然、中国からのSQLインジェクションが急増したことは記憶に新しい。この一連の攻撃の目的は定かではないが、世界中の多くのサイトのコンテンツが改竄された。興味深いのは、従来のiframeタグの挿入ではなく、スクリプトタグの挿入であることや、誘導サイトで利用されているツールキットが、中国産の攻撃ツールであったこと、悪意あるJavaScriptにfuckjpとしていることなど、中国ハッカーの独自色が出ていることが挙げられる。
これに対し、これほど改竄されるサイトが存在したことにも驚きが隠せない。攻撃手法の傾向が、OSやサーバアプリケーションの脆弱性を狙ったものから、Webアプリケーションの脆弱性を狙ったものへと変化したことに、未だ世界中が対応出来ていないことが露呈したのだ。
先日、公開されたWhiteHat Securityのレポートによると、10サイト中のうち9サイトは攻撃者がExploit可能な脆弱性を保有しているという。中でも、XSSは全体の約70%で、SQLインジェクションにおいては、6サイト中1つだという。このデータは診断サービスを受けるようなセキュリティ意識の高い企業のものであることを考えると、世の中が標準的にセキュアなWebサイトを構築されることはまだまだ先なのかもしれない。そこで、本稿ではWebアプリケーションの攻撃への対策を考えてみた。
■負荷分散のススメ
プログラマ依存の対策は、人的リソースやスピードなどに限界がある。つまり、ミスは必ず発生するものと考えるべきだ。
(1) WAF
安定度や攻撃検知精度が疑問なWAFだが、決して悪いわけではない。これらの製品には、スクリプトキディからの7割〜8割程度の攻撃が遮断されれば良いと考えるべきだ。これだけでもコード修正を行うプログラマからすると、負荷が軽減されるはずだ。IDS/IPSでも良いのだが、最近の攻撃はURLエンコードなどの回避技術が取り込まれていることや、Webのトラフィックを処理する際のパフォーマンス面を考慮すると適切ではない。
(2) ホスト型セキュリティツール
Apache対応のmod_securityや、「FORTIFY Defender」のようなホスト型セキュリティツールなども有効だ。ホワイトリストを作成するタイプや、ある程度の安全性を確保するタイプのツールが殆どだ。運用が少々面倒であるが、コードを常にチェックすることに比べれば、自動的に攻撃のダメージを軽減してくれるため、効果は大きい。
(3) サーバ設定
Webアプリケーションばかりに目がいってしまうが、SQL Serverなどの場合は設定も重要な要素だ。例えば、エラーメッセージを出力設定だ。この設定は、デバッグ用にオンにされていることが多いが、攻撃者はこの設定を悪用して重要情報を出力することが多い。そのため、エラーメッセージを出力しないだけでも、根本的ではないがリスクを軽減することが可能だ。さらに、SQL Serverの自由度の高さを示す代表的な機能といえば、システム拡張ストアドプロシージャなどの問題が挙げられる。これらの使用を停止するだけでも有効だ。
(4) 楽天等の利用
全く話が異なるが、開発を諦めて楽天等に運用を任せてしまうのも手段のひとつだ。個人情報の取り扱いやサーバの運用等、一括でアウトソースすることで、コスト面を含めて大幅にリスクを軽減させることが可能だ。但し、決まった仕様で管理が可能な、小中規模のWebサイトに限られてしまうため、大規模サイトの運用は少々難があるとは思う。
最近の事件を見ていると、別の傾向が見えてきた。それは…
【執筆:二根太】
【関連記事】
セキュアにならないWebサイト(1) 改善されない理由とは
https://www.netsecurity.ne.jp/3_11450.html
【関連リンク】
日本をターゲットとしたSQLインジェクションによるホームページ改ざん行為と、同行為により改ざんされたページへのアクセスによるマルウェア感染について
http://www.lac.co.jp/news/press20080312.html
WhiteHat Securityレポート
http://www.whitehatsec.com/home/news/08presssarchives/NR_stats032408.html
この記事は有料会員制セキュリティ情報サービス Scan のニュースの一部を抜粋し掲載しています。
http://headlines.yahoo.co.jp/hl?a=20080501-00000004-vgb-secu