• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

今週のSecurity Check

被害が続くSQLインジェクション攻撃,もう一度対策を見直そう

2008/05/19 日経コミュニケーション

今週のSecurity Check 第202回

 2008年3月11日,不特定多数のWebサイトに対する大規模なSQLインジェクション攻撃が発生した。本攻撃はターゲットとなるWebサイトのソースコードを改ざんし,攻撃者が用意した不正なWebサイトへのリンクを挿入するものである。セキュリティオペレーションセンター(SOC)でも,2008年3月11日~13日の間に,このSQLインジェクション攻撃を試行する通信を多数検知した。今回の攻撃はIIS(Internet Information Services),Microsoft SQL Server,ASP(Active Server Pages)を利用するWebサイトを対象としたものだった。

 大規模なSQLインジェクション攻撃は3月後半から4月後半にかけても度々発生しており,世界的な被害の発生が報告されている 。いずれも,攻撃の方法およびその対象は3月11日に発生したものと同様であり,引き続き注意が必要である。本稿では,発端となった攻撃について全体の流れを整理するとともに,WebサイトへのSQLインジェクション攻撃の対策について解説する。

不特定多数のサイトを一斉攻撃

 今回の攻撃の流れは図1のようになる。攻撃者はまず,不特定多数のWebサイトに対してSQLインジェクション攻撃を試行する。成功すると,ターゲットのWebサイトには不正なWebサイトのURLが挿入される。

図1●SQLインジェクションに始まる一連の攻撃の流れ
図1●SQLインジェクションに始まる一連の攻撃の流れ
[画像のクリックで拡大表示]

■修正履歴
当初,図1にある(5)の矢印がクライアント・パソコンからサーバーに向いたものになっていましたが,両方向の矢印に修正しました。 [2008/05/26 17:15]

 SOCでは,図2のような文字列をHTTP POST要求として送信し,SQLサーバー上のテーブルを改ざんしていたことを確認している。

図2●SQLインジェクションで送り付けられる文字列
図2●SQLインジェクションで送り付けられる文字列
*****は任意のファイル名。

 ユーザーは,改ざんされたWebサイトにアクセスすると,Webページに挿入されたURLにリダイレクト(転送)される。そして複数のぜい弱性を利用した,クライアントへのウイルスのダウンロードと感染が試行される。同時にクライアントのプラットフォームや使用言語などの情報が取得され,攻撃者が用意したサーバーへ送信される。

 図2に示した文字列のうち赤字部分を見ると,攻撃用コードがCAST関数を使って隠ぺいされている。CAST関数とは明示的に文字列を変換する関数である。CAST関数の中に記述された数列をデコードすると,不正サイトのURLを挿入するコードが現れる(図3)。Webサイト側では,このコードをEXEC関数で実行する(動的プロシージャ実行)。ここまでの攻撃が成功するとデータベース内のテーブルが書き換えられ,その書き換えられた内容を基に動的にWebページが生成される。

図3●URLを挿入するループ(デコード結果の一部)
図3●URLを挿入するループ(デコード結果の一部)

ここから先はITpro会員(無料)の登録が必要です。

次ページ 注意したいのは,データベースが以下の機能や仕組み...
  • 1
  • 2
  • 3

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

  • 【スマホ料金の勘違い】

    auのスマホ料金、「最安1GB」よりも「2GB」が得な理由

     au(KDDI)のスマートフォン向け料金プランは、新旧が混在している。ほかの携帯電話事業者と同様の、通話がかけ放題となるサービス「カケホ」「スーパーカケホ」に加えて、通話定額が導入される前から提供している「LTEプラン」も選べることが特徴だ。またNTTドコモにはない、1GBのデータ定額サービスも用…

ITpro SPECIALPR

What’s New!

経営

アプリケーション/DB/ミドルウエア

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る