前回は、クロスサイトスクリプティング(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版」を販売開始
- テクマトリックス
「セキュリティ」 の新着情報
-
日本IBM、ICカードや生体認証デバイスに対応したアクセス管理製品の新バージョン
日本IBMは、アクセス管理ソフトウェアの最新版である「IBM Tivoli Access Manager for Enterprise Single Sign-On V8.1」を発... - IE 7のゼロデイ脆弱性に攻撃コードが公開される
- Operaにセキュリティパッチ--「極めて重大」な脆弱性を修正
- 「iPhone」と「iPod touch」を狙う危険なワームが出現
- マイクロソフト、「IE」のCSS処理に関する脆弱性を調査中と発表
- セキュリティ 一覧へ »
「サイト脆弱性をチェックしよう!」 のバックナンバー
-
サイト脆弱性をチェックしよう!--第9回:AppScanによるアプリ脆弱性の自動検査
前回まで、主な脆弱性の検査方法について説明してきた。今回は、「IBM Rational AppScan」を例として、自動検査ツールについて説明しよう。 -
サイト脆弱性をチェックしよう!--第8回:セッション管理における脆弱性
-
サイト脆弱性をチェックしよう!--第7回:「ディレクトリトラバーサル」と「強制ブラウジング」
-
サイト脆弱性をチェックしよう!--第5回:XSSの脆弱性を検査する方法
-
サイト脆弱性をチェックしよう!--第4回:開発工程におけるレビューやテストのコツ(その2)
- サイト脆弱性をチェックしよう! 一覧へ »
-
日本モバイルインターネット端末市場分析 〜2008〜2012年のMID及びスマートフォン...
- POSデータを活用し、売上アップを導く「分析力」とは?
- BIベンダーの選び方 −BIベンダー選定のための評価フレームワーク
- 【導入事例集】多業種から評価されているWeb会議システム、24社の導入事例をご紹介
- CRMの限界を超える!「顧客経験価値マネジメント」実現の5段階
- 企業コスト削減の傾向と対策 〜最新アプローチのトレンド〜
- 【日産自動車:BI導入事例】連結対象の36社からの情報を元に車種別損益管理を実現
- ストレージ問題の課題に対する解決方法
- iPhoneをビジネスで活用する時代へ〜ビジネス&モバイルのミライ〜
- 中堅企業におけるテクノロジーと成長
企画特集
-
マネジメントの「コラム」と「コネタ」
今日のキーパーソンは誰? -
電力に"ふた"をする独自の省エネ機能とは!?
動的に電力割り当ても可能なHPの最新鋭ブレードに迫る -
100万円で実現!中小企業の情報漏えい対策
中小企業の課題!?セキュリティ管理者不在でも大丈夫 -
企業ITシステムの企画、構築、運用のイロハ
戦略的なITシステムのために、今考えるべきポイント -
高まるiSCSIストレージへの注目度
ストレージシステムの4つの課題とiSCSI導入のメリット -
―エン・ジャパン厳選求人☆毎週更新―
ハンゲームの社長が語る・人材とサービスの在り方 -
【最終警告】パンデミック対策特集
サービス品質を保証するためのリスクマネジメントとは -
グリー、3人のエンジニアが語る仕事への想い
連載第2話、元SIerに聞くリニューアルと開発の舞台裏 -
大丈夫?あなたの会社のセキュリティ対策
中堅・中小企業のネットワーク・セキュリティを考える -
容量制限によるメール消去は一切無し!
全てを保存するメールセキュリティSaaSが登場 -
急増するオンライン犯罪への解決策!
オンラインサービス保護ソリューション -
J-SOX法制定により内部統制の整備が急務に
重要性高まるActive Directoryの課題と対処法を公開中
-
9. 出荷準備はOK?
この3分間のビデオは、あなたがソフトウェアを出荷する前に、データレー... -
10. Parallel Debugging Extensions
この3分間のビデオは、並列アプリケーション内のそうでなければ発見しが...
