Database Firewall

止まらないSQLインジェクション

SQLインジェクションによってWEBサイトへのHTTPアクセスからSQLを操作し、任意のSQLを実行し、実際にサイト改ざんやクレジットカード情報を含む個人情報を抜き取られてしまった事件などが多く発生しています。
このSQLインジェクション攻撃が成功するには、以下の二つの条件を満たす必要があります。

・WEBサイトにアプリケーションの脆弱性がある
・データベースに格納したデータを用いてWEBページを動的に生成するWEBサイトである。

安全なWebアプリケーションの構築については、IPAが公開している「安全なSQLの呼び出し方」などが参考になります。

なぜ、SQLインジェクションの対応が遅れるのか?

いっぽうSQLインジェクション攻撃に利用されるWEBサイトの脆弱性と対策方法が明らかになっているにも関わらず、なぜいまだその攻撃が主流となっているのでしょうか?攻撃方法が進化し複雑になっているというのも理由に挙げられますが、多くのケースではWEBサイトを運営する側の対応が間に合っていないというのが現状です。

ほとんどの企業ではB to B、B to C向けのWEBサイトを持っており、そのサイトのページ数は数千から数万ページに上っています。それらのサイトは最近構築したものもあれば、数年前に構築したものもあり、日々、WEBサイトが構築、更新されている中で、すべてのWEBサイトを等しいレベルでセキュアに管理・維持するのが難しくなっているのです。また、それら全てのページを確実にチェックし、セキュアな状態を維持するためには相当のコストがかかることになります。

そして対策が漏れてしまった脆弱なWEBサイトを日々、SQLインジェクションのツールが虎視眈々と探し回っているのです。

Oracle Database Firewallの登場

SQLインジェクション攻撃はアプリケーションのコーディングの問題であり、今までオラクルでは、データベース側で対策としてできることは非常に限られていました。

しかし、2011年Oracle Database Firewallというデータベース・セキュリティに新しい製品が加わったことにより、新たな対策の手段が増えました。このOracle Database Firewallはアプリケーションとデータベース間のSQLに対して通過の許可・不許可のポリシーを設定することができます。

【 Oracle Database Fireawall 】

Oracle Database Firewall
<図をクリックすると拡大できます>

Oracle Database Firewallは、アプリケーションとデータベース間のネットワーク上に配置し、ネットワークトラフィックをキャプチャし、その中に含まれるSQLに対してポリシーを設定することができます。機能としては、ブロッキング、モニタリングの2つの機能に大別されます。ブロッキングは、SQL単位にPass、Blockの設定を行うことができ、SQLインジェクションのような外部からの不正アクセス、開発者や管理者といった内部からの不必要なアクセスを遮断することができます。

モニタリングは、データベースへのすべてのSQLをキャプチャして記録し、ログ分析やレポーティング、不正なアクセスがあった場合のリアルタイムアラートなどを実現します。のこ二つの機能が両輪となり、脆弱なアプリケーションから組み立てられたSQLをOracle Database Firewallで的確にブロックすればデータベースへはSQLが届きません。

このように、脆弱なWEBサイトのパッチとしてOracle Database Firewallがデータベースを保護することができます。また対象となるデータベースは、Oracle Databaseだけでなく、SQL Server、DB2、Sybase等に対応しています。

2つの利用パターン

Oracle Database Firewallをインストールするサーバをブリッジとして、ネットワーク上を流れるすべてのネットワークトラフィックがOracle Database Firewallによって監視され、ポリシーの設定に応じてブロックされる構成が「インライン方式」です。

インライン方式

不正なSQLを遮断する、「ブロッキング」を行う際には、必ずインラインの方式が必要になります。

モニタリングのみ行う場合は、スイッチのSPANポート(ミラーリングポート)に接続し、そのポート経由でネットワークトラフィックに流れるすべてのSQLを受信し記録する「アウトオブバンド方式」の構成にすることができます。

アウトオブバンド方式

正確な検知の重要性

SQLをBlockする、Passさせるという処理を行うには当然正確に検知して判断する必要があります。IDSやIPSといったネットワークの侵入検知システム、WAF (Web Application Firewall)等 検知して動作するシステムは、その検知の精度が非常に重要となりますが、Database Firewallについても同様ことがいえます。

SQL文法を理解した正確な検知

SQLには、約400のキーワードや厳格な文法のルール(ISO/IEC 9075)が定義されているためOracle Database Firewallでは、従来の製品がよく使用している「パターンマッチング」ではなくそれらの定義されているSQL文法を理解した上での検知を行っています。

【SQLの文法構造】
SQLの文法構造

Oracle Database Firewallは、Oracle Database, SQL Server, DB2といったそれぞれのデータベースごとの高精度のSQL文法解析エンジンを搭載しており、正確にSQL文法構造を理解し、検知することを可能にしています。これによって不正なSQLがポリシーに反して通過してしまったり、アプリケーションが送出する通常のSQLを誤って遮断してしまったりという誤動作を防ぐことができるようになります。

Oracle Database FirewallによるSQLモニタリング

Oracle Database Firewallをモニタリング用途としてのご利用頂くことも可能です。すでに稼働しているデータベースに対して、新たに監査設定をすることがパフォーマンス等の観点から難しい場合(Oracle Databaseでは、10gR2からXML監査という監査設定やファイングレイン監査といった監査の絞り込みによって性能への影響は極小化できますが、それ以前のバージョンのOracle Databaseの監査ログを取得しなければならない時やOracle Database以外のデータベースで十分に監査ログを取ることができない場合など)には、Oracle Database Firewallのモニタリング機能が非常に有効です。

アウトオブバンド方式の構成であれば、既存のトランザクションへの影響はありません。さらに、Oracle Database Firewallはログを圧縮して保存しているため、ログを保存しておくのに必要となるストレージサイズを大幅に縮小することが可能です。

お問い合わせ Oracle Direct

Oracle Direct

0120-155-096 月~金 9:00~12:00/13:00~18:00(祝日及び年末年始休業日を除きます)

お問い合わせフォーム

お問い合わせフォーム

こんな時にはOracle Directへ 製品・導入に関するご相談 導入前の技術的なご質問 ハードウエア構成のお見積り 移行支援サービス パフォーマンス診断サービス バージョンアップ無償支援

詳細はこちら

Comments:

Post a Comment:
Comments are closed for this entry.
About

Twitter
Facebook

Search

Recent Posts
Archives
« 4月 2014
  
1
2
3
4
5
6
7
9
10
11
12
13
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today