【Webアプリケーションのセキュリティ 8】〜 データベースのセキュリティ 〜 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2017.11.19(日)

【Webアプリケーションのセキュリティ 8】〜 データベースのセキュリティ 〜

特集 特集

 業務用Webアプリケーションは、多量のデータを扱うことが多く、データベースとの連携がなされることが多い。データベースと連携したWebアプリケーションには、他のWebアプリケーションにはない特有のセキュリティ問題がある。データベースと連携したWebアプリケーションのセキュリティ問題のキーワードは「SQLコマンドインジェクション」である。

 前回記事ではOSコマンドインジェクションについて取り上げた。cgiを通して外部からシステムOSのコマンドを直接入力されてしまう問題である。今回話題にするのはSQLコマンドインジェクションである。

 多くのデータベースでは、SQL(Structured Query Language:構造化問い合せ言語)を用いてデータベースの内容を処理する。このSQLコマンドをcgiを通して外部から直接送り込まれる、つまりデータベース内容の不正操作のことがSQLコマンドインジェクションである。

 SQLコマンドインジェクションの原理を、可能な限り簡単にして説明しよう。データベースのデータ形式として、次のような形式でデータの並ぶのユーザIDとパスワードの対照表を考える。

ID, password

つまり、最初の欄はユーザID、次の欄はパスワードである。実際のデータベースの内容は

satoh, sukoshinagipassword
suzuki, kaidokudekinaipassword

という具合になっている。もう少し詳しくこのデータベースファイルの形式を説明すると、IDとpasswordの区切りはコンマと半角スペース、passwordと次のデータのIDとの区切りは改行コードである。ここで改行コードを仮に↓で表すと、このデータベースの内容は

satoh, sukoshinagipassword↓suzuki, kaidokudekinaipassword↓

と表すこともできる。

 このデータベースに新たにデータを加えるcgiがあったとしよう。WebからユーザIDとして「yamamoto」、パスワードとして「$&*%password」が入力された場合にはデータベースの内容は、

satoh, sukoshinagipassword↓suzuki, kaidokudekinaipassword↓yamamoto, $&*%password↓

という具合に、入力されたデータが最後尾に付け加えられる。

 ところがこのcgiに、ユーザIDとして「akechi」、パスワードとして「pass1↓itoh, pass2」というデータが入力されると、これを最後尾に付け加えたデータベースの内容は、

satoh, sukoshinagipassword↓suzuki, kaidokudekinaipassword↓yamamoto, $&*%password↓akechi, pass1↓itoh, pass2↓

となる。記号「↓」を、本来通り改行に直して表記すると

satoh, sukoshinagipassword
suzuki, kaidokudekinaipassword
yamamoto, $&*%password
akechi, pass1
itoh, pass2

となる。

office
office@ukky.net
http://www.office.ac/

(詳しくはScan本誌をご覧ください)
http://shop.vagabond.co.jp/m-ssw01.shtml
《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

Scan BASIC 会員限定記事

もっと見る

Scan BASIC 会員限定記事特集をもっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)

もっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)特集をもっと見る

カテゴリ別新着記事

特集 カテゴリの人気記事 MONTHLY ランキング

  1. グローバルで活躍するプロフェッショナル - EYのサイバーセキュリティ部隊に仕事とキャリアを聞く

    グローバルで活躍するプロフェッショナル - EYのサイバーセキュリティ部隊に仕事とキャリアを聞く

  2. ここが変だよ日本のセキュリティ 第30回「ダメンズ・オーディット! 上場企業なら避けて通れない監査対応に監査感激!」

    ここが変だよ日本のセキュリティ 第30回「ダメンズ・オーディット! 上場企業なら避けて通れない監査対応に監査感激!」

  3. クラウドセキュリティ認証「ISO 27017」「ISO 27018」の違いとは? ~クラウドのよさを活かす認証コンサル LRM 社 幸松 哲也 社長に聞く

    クラウドセキュリティ認証「ISO 27017」「ISO 27018」の違いとは? ~クラウドのよさを活かす認証コンサル LRM 社 幸松 哲也 社長に聞く

  4. 工藤伸治のセキュリティ事件簿 シーズン 7 「アリバイの通信密室」 第8回 「はした金」

  5. [対談] 人工知能は重要経営課題となったサイバーリスクに対抗できるか

  6. 工藤伸治のセキュリティ事件簿 シーズン 7 「アリバイの通信密室」 第7回 「三人の容疑者」

  7. 工藤伸治のセキュリティ事件簿 シーズン 7 「アリバイの通信密室」 第9回「勤怠簿」

  8. 工藤伸治のセキュリティ事件簿 シーズン 7 「アリバイの通信密室」 第1回 「プロローグ:身代金再び」

  9. マンガで実感 !! サイバーセキュリティ 第1話「静かなる目撃者」

  10. 工藤伸治のセキュリティ事件簿 シーズン6 「誤算」 第1回「プロローグ:七月十日 夕方 犯人」

全カテゴリランキング

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×