※ 本記事は、Vipin Samarによる”SQL Firewall now built into Oracle Database 23c“を翻訳したものです。
2023年9月13日
SQLインジェクション攻撃と侵害されたアカウントは、データベースに格納されている機密データへのフル・アクセスを敵が得るために最も一般的な2つの手法です。ユーザーおよび開発者の教育は役に立ちますが、成功は依然として限られています。場合によっては、アプリケーション・コードの修正が、特にパッケージ化されたアプリケーションやレガシー・アプリケーションに対して実行できないことがあります。Webアプリケーション・ファイアウォール(WAF)は、SQLインジェクション攻撃を軽減すると主張していますが、攻撃者はこれらのパターンマッチング・アプローチをバイパスできます。許可リストベースおよびネットワークベースのSQLファイアウォールは、ローカルおよび暗号化トラフィックのためではなく、より強力な軽減を提供します。さらに、SQL問合せを完全に分析するために必要なフル・ランタイム・コンテキストはありません。
データベースに格納されたデータの高い価値を考慮するには、SQLファイアウォールが必要です。SQLファイアウォールは、例外が発生した場所に関係なく、すべてのSQLトラフィックを包括的にスキャンします。SQLをフル・コンテキストで理解できるファイアウォールの機能に左右されます。このコンテキストは、シノニム、オブジェクト名または動的に生成された名前、現在のユーザー・コンテキストを解決するステップなど、SQL文の実行中にデータベースが構築するものです。セキュリティを実践するには、ファイアウォールをワイヤ・スピードで実行し、1つのデータベースのみでなくデータベースのフリートを簡単に管理および監視できるようにする必要があります。
Oracle Database 23cのSQL Firewall統合
Oracleデータベース・セキュリティ・チームが対応できないというのは、まさにこの課題でした。強力なSQL FirewallのOracle Database 23cへの直接的な統合を発表し、SQLインジェクション攻撃と侵害されたアカウントの問題の両方に効果的に対処できることを嬉しく思います。同じくエキサイティングなのは、パフォーマンスへの影響を最小限に抑えることができる簡単なソリューションを提供することです。
新しいOracle SQL Firewallには、次の機能と利点があります。:
- Oracle SQL Firewallは、PL/SQL (OracleのSQLプロシージャ拡張)からの接続およびSQL文を含むすべての受信データベース接続およびSQL文を、ローカルかネットワーク経由かに関係なく、暗号化されたテキストまたはクリア・テキストで検査します。明示的に認可されたSQLのみが許可されます。その他すべてのSQLでは、問題のある文がログに記録され、違反が発生します。この文は、認可ユーザーがまだ実行していないSQLインジェクション攻撃または新しいSQL文である可能性があります。
- お客様は、不正なSQLをブロックするか、ログのみを記録するかを決定できるため、攻撃の処理方法を柔軟に行うことができます。
- Oracle SQL Firewallは、完全なSQLおよび処理コンテキストを評価します。Oracleデータベース・サーバー内で実行することで、ファイアウォールでは、SQL文のエンコーディング、シノニム、動的に生成されたオブジェクト名、およびPL/SQLユニットで動的に生成されたSQL文を簡単に処理できます。
- Oracle SQL Firewallは、認可されたSQL文および関連する信頼できるデータベース接続パスの許可リストを利用し、残りをブロックします。SQL Firewallをトレーニングするには、アプリケーション・アカウントの認可されたSQL文を取得するだけです。その後、ファイアウォールは、認可されていないSQLおよび潜在的なSQLインジェクション攻撃を検出して防止します。
- Oracle SQL Firewallは、信頼できる IPアドレス、オペレーティング・システムのユーザー名、またはプログラム名からの接続以外の接続をブロックすることもできます。この関数は、アプリケーションの許可リストを作成しているときに、保護をすぐに実施する場合に便利です。この機能により、データベースへの直接アクセスが、信頼できるエンドポイントからのみ許可されます。
Oracle SQL Firewallをデータベース内に構築し、その実装を合理化することで、Oracle SQL Firewallのパフォーマンス・オーバーヘッドは無視できるので、すべての本番ワークロードに適しています。Oracle SQL Firewallはデータベース内にあるため、外部コンポーネントのデプロイや管理が不要になり、デプロイメントが大幅に簡素化されます。
図1は、Oracle SQL FirewallがOracle Database 23cカーネル内でインラインで動作し、受信するすべてのSQL文をオリジンに関係なく評価する方法を示しています。Oracle SQL Firewallは、ルール違反を検出すると、常に違反ログを生成します。ただし、SQL文の違反を許可またはブロックするようにSQL Firewallを構成できます。
Oracle SQL Firewallの管理
Oracle SQL Firewallポリシーは、アプリケーション・アカウントか直接データベース・ユーザー(レポート・ユーザーやデータベース管理者など)かに関係なく、データベース・アカウント・レベルで機能します。この柔軟性により、データベース管理者またはアプリケーション・アカウントのどちらかから、データベースの保護レベルを段階的に構築できます。
Oracle SQL Firewallは複数の方法で管理できます。スタンドアロン実装があり、コマンドによる管理に精通している場合は、SYS.DBMS_SQL_FIREWALLパッケージのPL/SQLプロシージャをお薦めします。
UIベースの管理または複数のOracle SQLファイアウォールを一元的に管理する場合は、Oracle Data Safeが回答となります。ユーザーおよびセキュリティ評価、アクティビティ監査、機密データ検出およびデータ・マスキングでOracle Data Safeを使用しているお客様の場合は、同じData Safeクラウド・サービスをOracle SQL Firewallの管理に使用し、投資を維持できるようになりました。
Data Safe統合コンソールが、SQL Firewallを管理するために拡張されました。管理者はコンソールを使用して、アプリケーション・アカウントのSQLアクティビティの収集、収集の進捗のモニター、取得したSQLアクティビティからの許可リスト・ルール(許可されたコンテキスト、許可されたSQL文)を含むOracle SQL Firewallポリシーの作成、およびSQL Firewallポリシーの有効化を行うことができます。ファイアウォール・ポリシーが有効になっている場合、Data Safeはデータベースからファイアウォール違反ログを自動的に収集し、それらをData Safeに格納します。これらのログは、図2に示すように、データベース・フリート全体のオンライン分析およびレポートに使用できます。
Data Safe REST API、ソフトウェア開発者キット(SDK)、CLI、およびTerraformを使用して、さらなる自動化と統合を行うことができます。より大規模なOracle Cloud Infrastructure (OCI)エコシステムを使用して、Oracle SQL Firewallの違反とそのアラートおよび通知を統合することもできます。
Oracle SQL Firewallは、認証、アクセス制御、暗号化および監査のために、業界をリードするデータベース・セキュリティ機能をOracleデータベース内で補完し、すべての着信SQL文を検査し、認可されたSQL文のみを許可します。Oracle SQL Firewallソリューションは、Data Safeを介して比類のないセキュリティと管理の利便性を提供します。
今すぐ始めましょう
Oracle Database 23cでOracle SQL Firewallを管理するためのOracle Data Safeの制限使用プログラムにご参加いただけます。一般公開前に試してみるには、「Oracle SQL Firewall Limited Availability Program」というタイトルのOracle Data Safeでサービス・リクエストを開きます。
Oracle Database 23cのOracle SQL Firewallのデモは、『Oracle Database 23c FreeでのSQL Firewallの使用』を参照してください。PL/SQLまたはOracle Data Safeを使用してSQL Firewallを管理することもできます。Data Safeを使用したSQL Firewallの管理のデモは、『SQL Firewall概要 – Oracle Database 23cの新しいセキュリティ機能』を参照してください。
詳細は、次の資料を参照してください。:
- GitHub SQL Firewallのサンプル・デモ・スクリプト
- Oracle Database 23cセキュリティ・ガイドの第13章 SQL Firewallの使用
- Oracle Database Free – Developer Releaseフォーラム
