なぜ、SQLインジェクションの対応が遅れるのか?
SQLインジェクション攻撃に利用されるWEBサイトの脆弱性と対策方法が明らかになっているにも関わらず、なぜいまだその攻撃が主流となっているのか?攻撃方法が進化し複雑になっているというのも理由に挙げられるが、多くのケースはWEBサイトを運営する側の対応が間に合っていないということがいえる。ほとんどの企業ではB to B、B to C向けのWEBサイトを持っており、そのサイトのページ数は数千から数万ページに上っている。そのサイトは最近構築したものもあれば、数年前に構築したものもある。日々、WEBサイトが構築、更新されている中で、すべてのWEBサイトを等しいレベルでセキュアに管理、維持できているかというと疑問が残るのは事実だろう。それら全てのページを確実にチェックし、セキュアな状態を維持するためには相当のコストがかかるのである。
そして対策が漏れてしまった脆弱なWEBサイトを日々、SQLインジェクションのツールが虎視眈々と探し回っているのだ。
Oracle Database Firewallの登場
SQLインジェクション攻撃はアプリケーションのコーディングの問題であり、今までオラクルでは、データベース側で対策としてできることは非常に限られていた。バインド変数やDBMS_ASSERTの使用を進めることぐらいしかできなかった。
しかし、2011年Oracle Database Firewallというデータベース・セキュリティに新しい製品が加わったことにより、新たな対策の手段が増えたのである。このOracle Database Firewallはその名の通り、Firewallである。アプリケーションとデータベース間は、SQLを使用してデータのやり取りを行うが、このSQLに対して通過の許可・不許可のポリシーを設定することができる。

Oracle Database Firewallは、アプリケーションとデータベース間のネットワーク上に配置し、ネットワークトラフィックをキャプチャし、その中に含まれるSQLに対してポリシーを設定することができる。機能としては、ブロッキング、モニタリングの2つの機能に大別される。ブロッキングは、SQL単位にPass、Blockの設定を行うことができ、SQLインジェクションのような外部からの不正アクセス、開発者や管理者といった内部からの不必要なアクセスを遮断することができる。モニタリングは、データベースへのすべてのSQLをキャプチャして記録し、ログ分析やレポーティング、不正なアクセスがあった場合のリアルタイムアラートなどを実現する。そして、この二つの機能が両輪となって、SQLインジェクションからの攻撃を防ぐ。つまり、脆弱なアプリケーションから組み立てられたSQLをOracle Database Firewallで的確にブロックすればデータベースへはSQLが届かない。脆弱なWEBサイトのパッチとしてOracle Database Firewallがデータベースを保護するのである。対象となるデータベースは、Oracle Databaseだけでなく、SQL Server、DB2、Sybase等に対応している。
では、どういった仕組みで動作するのか、そのアーキテクチャをご紹介しよう。
この記事は参考になりましたか?
- oracletechアーカイブス!連載記事一覧
-
- データベース・セキュリティの実装 第4回 最前線の防御を可能にするOracle Datab...
- データベース・セキュリティの実装 第3回 データベースの暗号化とパフォーマンスの両立
- データベース・セキュリティの実装 第2回 ログの取得と監査設計のポイント
- この記事の著者
-
oracletech.jp編集部(オラクルテックジェイピーヘンシュウブ)
oracletech.jpは、オラクル・データベースと関連製品をお使いいただいている皆様、開発に携わっているエンジニアの皆様、オラクル製品を販売いただいている皆様すべてにとって有益な情報源となることを目指しています。エンタープライズ系ITを中心に、製品情報や技術情報からテクノロジー・トレンド、キャンペーンやイベント/セミナー情報まで多岐にわたります。日本オラクルの社員だけでなく...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア