IPAは、毎月発表するコンピュータウイルスや不正プログラムの状況分析から、「今月の呼びかけ」を発表している。6月は、SQLインジェクションによる不正アクセスへの注意を呼びかけている。まずは、報告された事例を紹介しよう。

データベースの改竄

本来、httpsによる暗号化通信で閲覧するように設定されていたサイトであるが、同サイトにアクセスした際、「セキュリティで保護されていない項目があります。表示しますか?」と警告が出た。これは、暗号化されていない通信(httpによる通信)が行われていたことを示すものである。調査の結果、管理しているWebサイトへのhttpsによるアクセス時、同時に他の外部サイトへのhttpによるアクセスも発生していたことが判明した。

原因は、WebアプリーケーションにSQLインジェクションの脆弱性があり、データベース内のデータに悪意のあるサイトへのリンクが埋め込まれていた。改竄されたデータは、400万件以上にも及ぶという。

一般的なWebサイト同様に、データベースのデータをベースにコンテンツを構成し、それをユーザーに提供する仕組みになっていたため、閲覧したユーザー3,000人ほどが、悪意のあるサイトへ誘導されてしまった。具体的な被害として、この悪意のあるサイトに誘導されたウイルス感染などが報告されている。

これまで、SQLインジェクション攻撃の目的は「侵入」や「情報奪取」が多かった。しかし、この事例のように、悪意あるサイトへの誘導のために「データを改竄」することも多く見られるようになってきている。

ネットオークションにおけるなりすまし

この事例では、身に覚えのない「オークション出品確認メール」が届いたことで、発見されたものである。実際に、オークションにログインして確認すると、何も出品をしていないもかかわらず、本人の名前でオークションに出品がなされていた。

幸いなことに、すばやくオークション運営者に通報して対処し、出品を削除した。結果、具体的な被害は発生しなかった。このような事例では、早い段階でなりすましなどの行為を発見することが必要である。実際に、契約などの成立に至ってしまった場合には、トラブルも発生しかねない。また、オークションなどでは、出品や入札などの際に、確認メールを受け取れる設定ができるサービスがあるかを確認し、利用することが望ましいといえる。

増加するSQLインジェクションと対策の困難さ

SQLインジェクションとは、アプリーケーションの脆弱性を突き、想定しないようなSQL文を実行させ、データベースシステムを不正に操作することである。最近の多くのWebサイトでは、背後にデータベースが動作し連携している。Webページを表示するにも、ユーザー入力した内容を基にWebアプリーケーションがデータベースにリクエストし、その結果から動的にページを表示する。そこでの脆弱性を狙うものが、SQLインジェクションである。

SQLインジェクションが成功すると、悪意ある者がデータベース内の情報を自由に操作することが可能となる。Webサイトのデータベース情報の改竄や情報漏洩などの被害が発生する。IPAの呼びかけでは、2008年3月頃より、SQLインジェクション悪用した被害が多発しているとのことである。対策は、SQLインジェクションができないように、Webアプリーケーションの脆弱性やセキュリティホールをつぶしていくしかない。

しかし、Webアプリケーションの場合、24時間連続運用されていることが多く、Webサイトを停止して、脆弱性を修正するといった対応が必要になる。しかし、そのコストがかかることなどから、脆弱性を放置したままのWebサイトが、少なからず存在していることを、IPAは警告している。また、IPAは呼びかけのなかで、運用中における脆弱性の修正は困難なことが多いので、Webサイトの立ち上げの際に、十分なチェックを行うように推奨している。

上述のように、単なるデータベースの改竄や消去といった行為だけでなく、閲覧者を悪意のあるサイトに誘導するといった事例が報告されてきている。多くの利用者が訪れるサイトなどでは、一気に被害が拡大する。Webサイトだけの問題にとどまらず、多くの利用者を巻き込み、社会問題にもなりかねない。

Webアプリーケーション開発者は、脆弱性をまず作り込まないことである。テストを十二分に行う必要がある。Webサイト管理者は、不正アクセスの監視をし、少しでも早く不正アクセスを把握し、被害の発生を食い止めることが必要となるであろう。一方、利用者は使用するPCで、ウイルス対策などを確実に行うことが求められる。