前回は、クロスサイトスクリプティング(XSS)について説明したが、今回はXSSと並び、話題となっているSQLインジェクションについて説明する。
2年前に立て続けにSQLインジェクションの脆弱性を攻撃された事件が発生したため、この言葉を聞いたことがある人は多いことだろう。それ以前は、SQLインジェクションの脆弱性を攻撃するには、SQLやプログラミングの知識が必要とされていた。
しかし、ちょうど3年ほど前に、SQLインジェクションの脆弱性を攻撃するためのツールが作成されたため、このツールさえ使えれば、誰でも簡単にアプリケーションを攻撃することができるようになった。その結果、2年前よりSQLインジェクションを利用した情報漏えいがたびたび発生することとなった。
SQLインジェクションとは、データベースを使用する場合に、任意のSQL文を実行させてしまう攻撃だ。このため、情報漏えいやデータの削除といった大きな被害をもたらしてしまう。
実際、独立行政法人 情報処理推進機構(IPA)の「ウェブアプリケーションに関する脆弱性届出件数」を見ても、XSSに次いで2番目に挙げられている。
SQLインジェクションの仕組み
この脆弱性の検査方法を説明する前に、SQLインジェクションの仕組みについて説明しよう。
多くのアプリケーションでは、データをデータベースで管理し、SQL言語を用いて、管理しているデータを、検索、追加、更新、削除している。たとえば、検索を行うSQL文は以下のようになる。
この例では、userTableというテーブルから、userIDが「20070001」でかつ、passwordが「passwd」であると言う条件を満たすデータを検索し、userIDとuserNameの値を取得する。一般にアプリケーションでは、任意の条件で検索を実施するため、「20070001」や「passwd」といった条件として、入力データを使用する。
このとき、入力データをそのまま検索条件として使用していると、任意のSQL文が実行できてしまう。先の例であれば、検索条件として、userIDに「1 or 1=1 or 1=1」やpasswordに「' or 'a'='a」といった検索条件を入れることで、以下のようなSQL文が作成され、すべてのデータを取得することが可能となってしまう。
このように、入力データをそのままSQL文の検索条件や、追加/更新データなどに使用していると、本来の意図とは違うSQL文が実行されてしまう。先の例では、本来数値項目であるuserIDの検索条件に数値以外の文字が含まれていたり、SQL文で文字列定数の区切りを示す「'」をエスケープ処理せずに使用しているために意図しないSQL文の実行が可能となる。
関連情報
-
IBM、小規模ビジネス市場向け製品群を発表
IBMは米国時間10月5日、小規模企業向けに規模を縮小したソフトウェア製品群を発表した。これらには、ソフトウェア配布および自動化向けの「Rational Build Forge」や「Tivoli Network Manager」の小規模企業向けに特化させたバージョンが含まれる。 - ウォッチファイア、 ウェブアプリ脆弱性検査ソフトの試用ダウンロード提供開始
- Google Desktopの穴も見つけたウォッチファイア、ぜい弱性検査ソフト最新版を発表
- 国立情報学研究所、ウォッチファイアのウェブアプリ脆弱性検査ツールを採用
- ウォッチファイア、ウェブアプリ脆弱性検査ツール「AppScan QA Single Server版」を販売開始
- テクマトリックス
「セキュリティ」 の新着情報
-
複数のデータセンターを分散させたままでBCP/DRを展開:山武
業務に必要なシステムをデータセンターで稼働させている企業は多いと思うが、災害復旧(DR)を中心とした事業継続計画(BCP)... - アップル、「iPhone」のSMS脆弱性を修正へ--IDG News Service報道
- シマンテック、アジア太平洋地域における中小企業のセキュリティ課題をレポート
- ATMのセキュリティに関する講演が中止に--米セキュリティカンファレンス
- スパムの83.2%がボットネットから--シマンテック調査
- セキュリティ 一覧へ »
「サイト脆弱性をチェックしよう!」 のバックナンバー
-
サイト脆弱性をチェックしよう!--第9回:AppScanによるアプリ脆弱性の自動検査
前回まで、主な脆弱性の検査方法について説明してきた。今回は、「IBM Rational AppScan」を例として、自動検査ツールについて説明しよう。 -
サイト脆弱性をチェックしよう!--第8回:セッション管理における脆弱性
-
サイト脆弱性をチェックしよう!--第7回:「ディレクトリトラバーサル」と「強制ブラウジング」
-
サイト脆弱性をチェックしよう!--第5回:XSSの脆弱性を検査する方法
-
サイト脆弱性をチェックしよう!--第4回:開発工程におけるレビューやテストのコツ(その2)
- サイト脆弱性をチェックしよう! 一覧へ »
ZDNet Japan Essential Topic
-
ストレージ、イチから勉強しませんか?
ネットワークに仮想化、ストレージの流行も教えます -
企業が幸せになるための3つの視点とは?
アプリケーション導入に迷われている方はこちらへ
企画特集
-
【徹底対談】運用管理ツールの賢い使い方
市場背景〜仮想化管理までアナリストが解説! -
◆エン・ジャパン厳選求人☆毎週更新◆
不況下でも急成長の秘訣とは?注目企業の取組みも公開! -
SOA、BPM、SaaS −今、企業に必要なこと
ビジネス・アプリケーションの今を網羅する特設サイト -
セキュリティ&ユーザ事例【SIer Club】
最新のセキュリティ情報と提案事例が満載 -
そのストレージで仮想化に対応できますか?
メリット盛りだくさんのサンのオープンストレージ製品 -
マネジメントの「コラム」と「コネタ」
今日のキーパーソンは誰? -
今注目の「サジェスト検索」−デモ掲載中
システムのユーザビリティに革命を起こす技術とは -
ESBでIT投資の無駄を劇的に解消する
IBM IMPACT 2009を徹底レポート! -
仮想環境を実現するソリューション特集
仮想化導入時、こんなところ気にしてますか? -
集積度も性能も、業界最高水準のブレードPC
サーバの実装技術を、シン・クライアントへ応用 -
ロリポップ!がリニューアル
【第1回】創業者の家入一真氏が語る誕生秘話!! -
インターネット上の悪意を未然に防ぐには?
ブラウザに備わったセキュリティ機能を徹底解説 -
ストレージメディア特設サイト開設
仮想化環境において最適なソリューションを! -
パンデミック対策特集
2009年のパンデミック発生から再考する事業継続計画 -
中小企業のセキュリティリスクとは?
導入する側・される側 得するセキュリティ製品 -
エンタープライズにおけるSUSEの強み
次世代データセンターの基盤は11だ。 -
サービス・ドリヴン・データセンター
コスト効果の高いデータセンター構築には? -
サーバー監視・運用のコストを削減するには
エージェントレス方式を用いたパトロールクラリスで -
■ストレージ容量50%削減保証■
ネットアップによる削減保証キャンペーン実施中
ZDNet Japanからのお知らせ
- ご回答にはCNET_IDご登録が必要です。
-
15. プラグマフリー構文
この4分間のビデオは、プラグマ構文を知らなくてもOpenMPディレクティブ... -
16. 並列性の用語定義
この6分間のビデオでは、このシリーズのビデオを通じて使用される用語を...
新着企業動向
-
動画を部屋に飾るという発想の新サービス「ムビフレ」を公開
sus4 -
〜企業内の情報をより活性化させたい方向け〜 検索エンジンの導入効果を最大化する情報活用...
NECソフト -
ラピッドサイト VPS 新プランリリース(月額7,350円〜)
GMOホスティング&セキュリティ -
ファイアウォールネットワークセンター(FNC)
NRIセキュアテクノロジーズ - 企業動向一覧へ»
サーバやOS、アプリケーションなどの世界ではオープンソーススタンダードが市場を牽引する現在、ストレージの世界でもオープン化の流れが始まっている。
幸い今回は弱毒性で大事には至らなかったが、まだ油断はできない。企業活動を停止すると、大きな経済的損害や社会的信用の低下を招いてしまう。 
