>>前回

 GumblerではFTPアカウントの情報搾取でWebサイトを改ざんしたが、実際にはもっと古典的な手法で改ざんされるケースが多い。

 ラックが顧客のサーバーや自社サーバーへの攻撃を調査したところ、サーバーに重大な被害を及ぼす攻撃の内訳は、7月末時点でSQLインジェクションが38%、クロスサイトスクリプティングが25%、OpenSSLへの攻撃が21%だった(図1)。OpenSSLはオープンソースのSSLライブラリである。10年近く使われるような古典的な攻撃手法だけで8割を超えるのだ。

図1●サーバーへの攻撃の8割以上は古典的な手法
図1●サーバーへの攻撃の8割以上は古典的な手法
[画像のクリックで拡大表示]

 最も一般的なサーバーへの攻撃手法であるSQLインジェクションとは、Webサイトのフォームなどを使ってSQL文を含む文字列を入力するものだ。SQLインジェクションに対する脆弱性があると、SQL文がWebサーバーにつながるデータベースサーバーに送られ、データベースサーバーがそれに応答してしまう。最近のWebサイトの多くは、コンテンツの部品をデータベースに格納して動的にページを生成している。そのため、SQLインジェクションでデータベースサーバーの内容を書き換えるとWebページを改ざんできてしまう。

 通販サイトなどで個人情報を保存するサーバーとつながるWebサイトでは、さらに被害が大きくなる。攻撃者はSQLインジェクションを使って、データベースサーバーからクレジットカード情報などを直接盗み出してしまえるからだ。

 日本マイクロソフトの高橋正和 チーフセキュリティアドバイザーは「サーバーの守り方は確立されているが、実際にそれを順守できているところは少ない」とする。日本IBMの大西克美 ICP-エグゼクティブ・アーキテクト セキュリティ・エヴァンジェリストは「自社の調査ではインターネット上のサーバーのうち55%は脆弱性が残った状態になっている」という。

 脆弱性の放置は極めて危険だ。サイバーディフェンス研究所の名和利男上級分析官によると「実際に攻撃者にインタビューしたところ、まず脆弱性のあるサイトを見つけるところから始める。脆弱性が見つかったサイトは、犯罪者にとって攻撃先候補の一つと捉えられる」のだ。

 「全く脆弱性がない」ことを証明するのは難しいが、「脆弱性が一つでもある」ことを発見するのは簡単だという。攻撃が可能かどうかを判定するコードはインターネット上にある。それを利用すれば、あまり技術力のない攻撃者でも簡単に脆弱性の有無を見つけられる。「会員制サイトで登録番号を順番に割り当てている場合は、番号を一つ変えてみたりして攻撃の可能性を簡単に探ることができる」(日本IBMの大西セキュリティ・エヴァンジェリスト)。