データベース・ファイアウォール導入への不安を解消する、5つの選定ポイントとは

2012年12月6日(木)
小河 昭一(オガワ ショウイチ)

「データベースへのアクセスの分類」で求められること

選定ポイント4:完全性を求めるならホワイト・リストでデータベースへのアクセスを分類

何が正規のアクセスなのかを把握せずして、不正なアクセスを把握することはできません。データベースへのアクセスが正規なのか不正なのかを判断するためには、まずどのようなアクセスがあり、それは、いつ、誰が、どこから、どのデータを、どのようにアクセスするのか把握しておくことが重要です。

どのようなアクセスが正規なのかを定義したものを「ホワイト・リスト」、不正なアクセスを定義したものを「ブラック・リスト」と呼びます。データベース・ファイアウォール製品では、正規、不正規を分類するために「ホワイト・リスト」または「ブラック・リスト」を定義します。

ホワイト・リスト(注1)
SQL、ユーザ、オブジェクト、日時、曜日、ネットワーク、アプリケーション等の複数の要素を組み合わせて実行を許可するアクセスを定義したリスト
ブラック・リスト(注1)
SQL、ユーザ、オブジェクト、日時、曜日、ネットワーク、アプリケーション等の複数の要素を組み合わせて実行を許可しないアクセスを定義したリスト

注1:製品により組み合わせできる要素は異なります。また製品によってはブラック・リストしか定義できないものもあります。

ホワイト・リストの場合、「定義されていないものはすべて不正アクセス」と見なしますが、ブラック・リストの場合は「定義されていないものはすべて正規アクセス」と見なすのが特徴です。つまりブラック・リストでは、網の目が粗ければ魚が逃げるように、定義が甘ければ不正を見逃すことになります。逆に定義の仕方によって正規のアクセスが不正と見なされる危険性もあります。また、ホワイト・リストでも同様に、正規アクセスがすべて定義されていなければ正規のアクセスであっても不正と見なされるので注意が必要です。

このようにホワイト・リストとブラック・リストのどちらを選択すべきかは非常に難しい問題であり、データベース・ファイアウォール製品ごとのポリシーの特徴が一番現れる部分です。「データベースへのアクセスの分類」という観点であえて選定ポイントを挙げるなら、「完全性を求めるのであればホワイト・リストを定義できる製品を選択すべき」です。データベース・ファイアウォール製品の中には、ブラック・リストしか定義できないものもあります。また、ホワイト・リストの生成をより簡単に行えるよう、データベースへのアクセス・ログからホワイト・リストを自動生成する機能が備わった製品も存在します。

「不正アクセスの検知とブロック」で求められること

選定ポイント5:高速かつ高度なSQL文法分析機能を備えているか

データベースへの不正アクセスによる被害を未然に防いだり、被害に遭ったとしても規模を最小限に留めるためには、不正アクセスを速やかに検知して管理者へ通報する、場合によっては不正なアクセスをブロックして切断するといった対処が必要です。

データベース・ファイアウォール製品では、前述の「データベースへのアクセスの分類」での定義に基づき、不正なアクセスであると判断した場合には管理者へ通報したり、不正アクセスのブロックや切断といった対処が可能です。ここで重要なのは、誤検知や検出漏れなく、いかに正確に実施できるかということです。特にホワイト・リストやブラック・リストの定義の中で、SQLの誤検知や検出漏れを発生させる可能性が最も高く、このSQLをいかに正確に把握できるかが重要なポイントとなります。

誤検知と検出漏れが与える影響

  • 検出漏れがあるとセキュリティ事故になりかねない。
  • 誤検知ばかりで監視が追いつかない、最悪の場合、業務停止状態となる。

しかし、「SQLをいかに正確に把握できるか」は非常に難しい問題です。以下のSQLを参照してください。これらのSQL文は記述方法は様々ですが、データベースではすべて同じものとして処理されます。同じものとして処理されるであろうパターンを漏れなく洗い出すには限界があります。

select  empno,ename  from  emp
SELECT  empno,ename  FROM  emp
select  empno,ename  from  /* dept */  emp
select  empno,ename  /* select  custno,cname  from  customer */  from  emp
sel/* */ect  empno,ename  fr/* */om emp

つまり、SQL文を正確に把握するためには、上記のようなパターン・マッチング方式ではなく、データベースと同様のSQL文法解析機能が必要となります。また、文法解析処理がいかに正確であったとしても、データベースへのアクセスにパフォーマンス面で影響が大きければ業務への影響も大きくなってしまうため、極力パフォーマンスに影響を与えず高速に処理することが求められます。

図1:SQL文法解析イメージ(クリックで拡大)

データベース・ファイアウォール製品の選定に必要なポイント

このように、データベース・ファイアウォール製品の選定には以下の5つのポイントが挙げられます。

  • 選定ポイント1:データベースへのすべてのアクセスを漏れなくログとして記録できるか。
  • 選定ポイント2:データベースへのアクセス・ログ取得でパフォーマンス劣化しないか。
  • 選定ポイント3:データベースへのアクセス・ログを高圧縮して保管できるか。
  • 選定ポイント4:完全性を求めるならホワイト・リストでデータベースへのアクセスを分類
  • 選定ポイント5:高速かつ高度なSQL文法分析機能を備えているか

この他にも、取得したアクセス・ログを有効活用するためのレポーティング機能の充実など、選定のポイントとなるものはありますが、データベース・ファイアウォール製品として最低限必要なポイントは上記5点です。

著者
小河 昭一(オガワ ショウイチ)
株式会社アシスト

株式会社アシスト 情報基盤事業部データベース製品統括部 技術部長
業務アプリケーションのプログラマー、プロジェクト・マネージャを経てアシストへ入社。アシスト入社後は、メインフレーム上のデータベースからOracleデータベースへのダウンサイジング案件を多数手がける。2005年 データベース・セキュリティ・コンソーシアムにおいて、「データベースセキュリティガイドライン」の作成に参画、2012年からは同コンソーシアムの運営委員として活動を行っている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています