[画像のクリックで拡大表示]
[画像のクリックで拡大表示]
[画像のクリックで拡大表示]

 「最近注目されている『SQLインジェクション攻撃』だが,決して新しいものではない。3~4年前から行われているので,『何をいまさら』というのが専門家の見方だ。ただし,2004年9~10月ごろから“使いやすい”攻撃ツールが公開されているために,SQLインジェクション攻撃が急増しているのは確かだ」――。ラックの代表取締役社長である三輪信雄氏などは7月25日,データベース・セキュリティ・コンソーシアム(DBSC)のセミナーにおいて,SQLインジェクション攻撃やデータベース・セキュリティについて解説した。

ラックの三輪信雄氏
写真1 ラックの三輪信雄氏
日本オラクルの北野晴人
写真2 日本オラクルの北野晴人
富士通大分ソフトウェアラボラトリの三河尻浩泰氏
写真3 富士通大分ソフトウェアラボラトリの三河尻浩泰氏
 DBSCとは,データベースに関するセキュリティの議論や研究,情報発信を行うためのコンソーシアム。2005年2月に設立された。ラックの三輪氏が事務局長を務める。設立目的は,「データベース・セキュリティにかかわるさまざまな人々が集まれる場所を提供するため」(三輪氏)。

 一口に“データベース・セキュリティ”といっても,データベース技術者やセキュリティ専門家だけではなく,ネットワーク技術者や開発者,ユーザー,そして法律の専門家といった,さまざまな分野の技術者/研究者がかかわる必要がある。そういった広い分野の技術者/研究者が情報交換や研究活動などを行い,ユーザーに情報提供するような組織を目指す。

 セミナーでは,三輪氏はインターネットに出回っているツールを使って,いかに容易に攻撃できるのかをデモを交えて解説した(写真1)。「データベースの情報を盗むだけではなく,サーバー上で任意のコマンドを実行することもできる」(三輪氏)

 また,SQLインジェクション攻撃を許すようなサイトは,Webアプリケーションのファイル名やデータベースが出力するエラー・メッセージなどをキーワードにすれば検索できるという。実際に検索すると多数のサイトがヒットする。それらのサイトすべてが攻撃を許すわけではないが,「攻撃が“成功”する可能性は高い」(三輪氏)。

 日本オラクル システム事業推進本部 営業推進部の担当シニアマネージャーである北野晴人氏は,SQLインジェクション対策として次の5点を挙げる(写真2)。

(1)アプリケーションの権限を最小限にする
(2)アプリケーションのパスワードを秘匿する
(3)エラー・メッセージを見せない
(4)Prepared Statement(準備済みSQL文)を利用する
(5)監査ログを取得および解析する

 例えば(1)については,「Webアプリケーションがデータベース内で持つ権限を必要最小限にする。検索するだけのアプリケーションならSELECT権限だけで十分なはず」(北野氏)という。加えて,「重要な情報が格納されているテーブルは,アプリケーションとは別のスキーマ内に構築する」(同氏)。可能ならば,重要情報が格納されたテーブルの値はストアド・プロシージャを使って操作するようにし,アプリケーションにはプロシージャの実行権限だけを与えておくよう同氏は勧める。

 (2)では,暗号化したID/パスワードあるいはID/パスワードのハッシュ値を保存するよう勧める。「ID/パスワードを盗まれた場合でも,なりすませないようにするため」(北野氏)である。ただし同氏は,データベースに格納したID/パスワードをWebアプリケーションでマッチングさせるような認証のロジック自体をみなすべきだとアドバイスする。「ディレクトリ・サーバーといった別の場所にユーザーIDなどを格納することが望ましい」(同氏)

 「いずれの対策も“当たり前”の対策である。しかし,その当たり前が実施されていないのが現状である。改めて見直してほしい」(北野氏)

 富士通大分ソフトウェアラボラトリのOSLセキュリティセンター 三河尻浩泰氏は事例などを基に,データベース・セキュリティ対策を解説した(写真3)。

 三河尻氏は「セキュリティ対策は,有効な対策を有効な“場所(ネットワーク/OS・ミドルウエア/アプリケーション/データベース)”で施すことが重要。すべての脅威(攻撃)をデータベースだけで守ることはできない」と強調する。

 「データベース・セキュリティは,ネットワークやOS・ミドルウエア,アプリケーションでの対策が施されていて意味がある。にもかかわらず,『他の部分の対策ができていないので,データベースだけで何とか守れないか』と要求してくるユーザーがいる。本末転倒だ」(三河尻氏)

 三河尻は,データベース・セキュリティ対策の構造的な課題として,以下の3つを挙げる。(1)「歴史が浅いので実装事例が少ない。ガイドラインがない」,(2)「データベースはシステムの中枢なので,対策を施した場合,システム全体への影響が大きい」,(3)「人材不足。適切な対策には,システム構築とセキュリティ,およびデータベースのスキルが要求されるが,これらを兼ね備えた技術者はそうそういない」。

 (1)の「データベース・セキュリティ対策のガイドラインがない」という課題については,ほとんどの講演者が言及した。このガイドライン作りとその公表も,DBSCの重要な目的の一つとされている。

◎参考資料
データベース・セキュリティ・コンソーシアム

(勝村 幸博=IT Pro)