3月11日頃から突然、中国からのSQLインジェクションが急増した( http://www.lac.co.jp/news/press20080312.html )ことは記憶に新しい。この一連の攻撃の目的は定かではないが、世界中の多くのサイトのコンテンツが改竄された。興味深いのは、従来のiframeタグの挿入ではなく、スクリプトタグの挿入であることや、誘導サイトで利用されているツールキットが、中国産の攻撃ツールであったこと、悪意あるJavaScriptにfuckjpとしていることなど、中国ハッカーの独自色が出ていることが挙げられる。これに対し、これほど改竄されるサイトが存在したことにも驚きが隠せない。攻撃手法の傾向が、OSやサーバアプリケーションの脆弱性を狙ったものから、Webアプリケーションの脆弱性を狙ったものへと変化したことに、未だ世界中が対応出来ていないことが露呈したのだ。先日、公開されたWhiteHat Securityのレポート(http://www.whitehatsec.com/home/news/08presssarchives/NR_stats032408.html)によると、10サイト中のうち9サイトは攻撃者がExploit可能な脆弱性を保有しているという。中でも、XSSは全体の約70%で、SQLインジェクションにおいては、6サイト中1つだという。このデータは診断サービスを受けるようなセキュリティ意識の高い企業のものであることを考えると、世の中が標準的にセキュアなWebサイトを構築されることはまだまだ先なのかもしれない。そこで、本稿ではなぜWebアプリケーションが、中々セキュアにならないのかを考えてみた。■改善されない理由Webアプリケーションへの攻撃に対しての対策が、一向に進まないのには様々な理由がある。(1) コンサルタント/プロジェクトマネージャの罪Webアプリケーションの根本的対策として、コードの改修作業があげられる。しかし、これは一方的にプログラマのみに依存することになり、リスク分散が出来ない点で危険と云わざるを得ない。通常、事業や開発計画を立てるうえで、セキュリティ対策はシステムの設計段階から含めておく。ところが、この点を理解していないコンサルタントやプロジェクトマネージャは開発のみのスケジュールを提示してしまうと、プログラムに対してセキュリティチェック無しに、リリースされてしまう。その結果、セキュリティ対策を実施していないことが分かるのは、サイバー事件発覚後となる。勿論、ユーザとのコスト面が折り合いが合わず、仕方無しにセキュリティチェックが出来ない境遇の者もいる。しかし、この場合は開発費用とは別に何らかの対策案を提示すべきだ。物の良し悪しは別とし、Webアプリケーションファイアウォールの利用や、mod_securityなどのセキュリティソフトウェアなど、コードのセキュア化の他にも手立てはある。これらの提案がユーザにされていないのであれば、提案者に問題ありであると考えざるを得ないだろう。よくガイドラインが無いことを理由にしているSIerを見かけるが、せめてIPAの資料( http://www.ipa.go.jp/security/sysad/index.html )くらいは目を通しておいて欲しいところだ。(2) 国内の独自開発環境上述でセキュアコーディングを行うと、プログラマへの負荷が大きくなる旨を記載した。これは、日本の開発環境にも問題があるようだ。国内の多くの開発ベンダーは、欧米とは異なり、異なる場所で開発していることが多い。例えば、グループ会社への発注や、アウトソースをするなど、プロジェクトマネージャが目の届く場所に開発主要メンバーが揃っていないなどである。この場合、プログラムの開発スピードと、プログラムの回収やチェックのスピードが、同期しないことが多い。開発ステップが5段階あるとすると、開発側がステップ3を行っているのに、プログラムのチェックはステップ1が終わったばかりであるなどだ。物理的距離が短ければ、すぐにチェックへ回せるが、物理的距離が離れれば離れる程に全てのプログラムを回収するまでの時間を要してしまう。その最たる例が、中国やインドへの業務委託が挙げられる。この問題は、欧米と日本国内でのソースコード・チェックツールの普及率の差からも分かる。フォーティファイ( http://www.fortifysoftware.co.jp/ )などのソースコード・チェックツールの有効性は高いと思うが、現在のところ国内で満足に活用している企業を見たことがない。勿論、問題はそれ以外にもあるのだが。(3) 中途半端な対策解説3月より急増したSQLインジェクション事件の際に、少々微妙な内容の対策が載せられていた。SQLインジェクションに限らず、インターネットからの攻撃は日々発生している。それにも関わらず…【執筆:二根太】──※ この記事は Scan購読会員向け記事をダイジェスト掲載しました購読会員登録案内 http://www.ns-research.jp/cgi-bin/ct/p.cgi?w02_ssw