SQLインジェクションで情報がダダ漏れ!?

この記事をtweetする このエントリーをはてなブックマークに追加

また失敗したの?と言われる前に セキュリティ登龍門50

SQLインジェクションで情報がダダ漏れ!?

2009/02/03


 近ごろ急増している不正行為がSQLインジェクション。いたずらや嫌がらせにとどまらず、金銭的な利益をもくろむ攻撃者が、社内データベースと連携するWebアプリケーションを狙い、個人情報や機密情報を盗みだそうと狙っている。不正の手口は自動化され、無差別にWebサーバに襲いかかり、たまたま見つけた脆弱性のあるアプリケーションが餌食になる。SQLインジェクション攻撃はどのように行われるのか、またその対策はどうすればよいのか、SQLインジェクションの現状と対策について考える。

SQLインジェクション

#001

仕込まれたバックドアから個人情報が漏洩!SQLインジェクションの恐怖

  「あなたの会社の顧客のクレジットカードが不正利用されている」……2008年3月、ショッピングサイトを運営するA社はクレジット会社から突然こんな指摘を受けた。寝耳に水の事態に驚いたA社は、クレジットカードを利用した購買を即座にストップし、警察およびクレジット会社と連携しながら事態の把握と原因の調査に動いた。その結果、明らかになったのは、驚くべき不正アクセスとサイト改ざんの手口だった。
 セキュリティの専門会社に依頼した調査で明らかになったのは、Webサーバに悪性のプログラムがいつの間にか仕込まれていたことだった。このプログラムは、顧客データベースからデータを20件ずつ抽出する機能を持ち、3月中の約10日間にわたり、合計4875回もの頻度でプログラムが起動されていた。
 いったいなぜそれが可能だったのか?あくまで推測の域を出ないが、A社は攻撃の種子は2006年に仕込まれたとみている。その頃にSQLインジェクションによりデータベースサーバを外部から直接操作できるバックドアが仕込まれた。そのバックドアを利用して社内の他のサーバにさらにバックドアを仕込み、その上でWebサーバに攻撃用のプログラムを埋め込む手段がとられた可能性があるという。A社は2006年12月にデータベースサーバをアップグレードしており、不用意なコマンドをSQLインジェクションでは実行できなくしていたことと、2006年6月にA社サイトを名指しした不正アクセス手法が中国のとあるブログに掲載されていたことがわかったのが、この推測の根拠である。
 2008年3月に集中攻撃が起こったのは、Webサーバに埋め込まれた攻撃用プログラムを利用する攻撃法が2月18日に中国のホームページ改ざんをテーマにするサイトに掲載されたことによる。その結果、実際のデータ抽出に利用された悪性プログラムが生成されたと見られる。このプログラムは、「select * from ○○○○ where ○○○○ like ' %2008%'」といったSQLクエリ(実際には難読化されていた)を送信していた。
 この集中攻撃によって流出した顧客データは最大9万7500件にのぼると推定されたが、実際の流出件数は定かでない。同社はある程度の流出範囲と原因がわかった時点(4月初め)で事実を公表、個人情報が流出した可能性のある顧客すべてに向け、同社製品購入に利用できる1000円相当のクレジットを提供する対応をとった。また不正アクセス監視強化やDBからのカード情報の削除、システム構成や社内管理体制の見直しまでを含む対策をただちにとり、現在ではかつてよりはるかに堅固なセキュリティ体制を構築している。

                                                                                 (以上、事例はA社発表資料によりキーマンズネット編集部作成)




1

SQLインジェクションの仕組み

 上記のケースのような危険を引き起こす「SQLインジェクション」とはなにか。SQLとはStructured Query Languageの略で、データベースに問い合わせするときの標準的な書式であり、その書式で書いた問い合わせをSQL文という。SQL文では、例えば「SELECT * FROM user WHERE id='keyman'」と書けば、keymanさんというユーザに関する情報がデータベースにより検索され、SQL文を送信したユーザのもとに届く。データベースがWebシステムで利用可能になっている場合は、WebサーバがSQL文やその返答としての情報を仲介することになる。
 図1をみてみよう。書式で「keyman」を囲んでいる「'」(シングルクォート)はその囲まれている部分が文字であることを表す記号だが、「'」に続けて本来行われないはずの操作により特殊な文を追加して「'keyman' or 'a'='A'」とすると、「' or 'a'='A」の部分が「すべて」を意味するため、データベースのユーザ情報がすべて送信者のもとに送られてしまうのだ。このように、正常なSQL文に悪意ある文を差し込む(インジェクションする)のがSQLインジェクションだ。A社の場合は、この例とは違うだろうが、同じようなやり方でSQLインジェクションが当初行われたものと推定される。
 ここではSQLインジェクションの仕組みを説明するためにSQL文例を示した。しかし、こうした行為を自分の管理外に向けて行うと、不正アクセス禁止法や業務威力妨害で訴えられる可能性がある。また、自分で管理しているサーバに対して行った場合も、データが破壊してしまう可能性があるので、注意が必要だ。

図1 SQLインジェクションの仕組み
図1 SQLインジェクションの仕組み

セキュリティ情報局にご登録頂いた方限定で「SQLインジェクションで情報がダダ漏れ!?」の続きがご覧いただけます。

「セキュリティ情報局」とは、週1回のメールとサイト上で、セキュリティの基礎知識や最新情報などの記事をご希望の方にのみご提供する登録制のサービスです。「セキュリティ登龍門50」では、実際に起こったセキュリティに関する被害例やその対策、統計データなどを紹介します。また「セキュリティWatchers」では、最新事情や海外の状況などを専門家がレポートします。


SQLインジェクション/SQLインジェクションで情報がダダ漏れ!?」関連の情報を、チョイスしてお届けします

※キーマンズネット内の「SQLインジェクション」関連情報をランダムに表示しています。

SQLインジェクション」関連の製品

Barracuda Load Balancer ADC 【バラクーダネットワークスジャパン】 Barracuda Web Application Firewall 【バラクーダネットワークスジャパン】 クラウド型(SaaS型)WAFサービス Scutum(スキュータム) 【セキュアスカイ・テクノロジー】
ADC/ロードバランサ WAF WAF
トラフィックを複数のサーバーへ負荷分散する機能やフェールオーバ機能などに加え、本格的なWAF(Web Application Firewall)機能を標準搭載した高機能なADC製品 ファイアウォールやIDS/IPSで保護できない、Webサイトへの外部からの不正アクセスを防御。SQLインジェクションやXSSなどによる顧客情報流出やWebサービス停止を確実に防止 顧客情報流出や改ざんの防止、リスト型攻撃などユーザ認証や新たな脅威も適切に防御するクラウド型WAFサービス。導入後に必要な運用もすべてお任せ。

SQLインジェクション」関連の特集


 人生一度。不倫をしましょう。をキーフレーズにした既婚者向け出会いサイト「アシュレイ・マディソン」が…



 前回は、Webサーバの脅威とその背景について紹介した。攻撃者の関心が自己顕示から金銭目的に移行した…



前回は、脆弱性対策が必要な現状と「AppGoat」の概要と特徴について紹介した。今回は実際にAppG…


「ネットワークセキュリティ」関連 製品レポート一覧

このページの先頭へ

Myリストへ 印刷用ページへ

この記事をtweetする このエントリーをはてなブックマークに追加


この記事に掲載している情報は、掲載日時点のものです。変更となる場合がございますのでご了承下さい。


ページ: 1 | 2


30003065


IT・IT製品TOP > ネットワークセキュリティ > ファイアウォール > ファイアウォールのIT特集 > 特集詳細

このページの先頭へ

キーマンズネットとは

ページトップへ