ここでのトピック
このトピックでは、Oracle Audit Vault and Database FirewallとF5 BIG-IP Application Security Manager (BIG-IP ASM)の統合に関するシステム要件について説明します。
統合には次の製品が必要です。
Oracle Audit Vault and Database Firewall。
F5®BIG-IP® Application Security Manager™ (BIG-IP ASM)バージョン9.4.5、10または11。FirePass®、BIG-IP Local Traffic Manager™ (LTM)、BIG-IP Global Traffic Manager™ (GTM)、WebAccelerator™、WANJet®など他のF5製品は、現在サポートされていません。
F5 BIG-IP Application Security Manager (BIG-IP ASM)の最新情報については、F5のWebサイトにアクセスしてください。
このトピックでは、Oracle Audit Vault and Database Firewall、F5 BIG-IP Application Security Manager (BIG-IP ASM)、WebクライアントおよびWebアプリケーション・サーバーの統合について説明し、統合による動作とその主な利点についても説明します。
F5 Networks社のBIG-IP Application Security Manager (ASM)は高度なWebアプリケーション・ファイアウォール(WAF)で、Webベースの様々な攻撃に対してネットワークのエッジで包括的な保護を実現します。
図9-1に示すように、F5 BIG-IP Application Security Manager (BIG-IP ASM)はWebクライアントとWebアプリケーション・サーバーの間にデプロイされます。これによって、各HTTPおよびHTTPSリクエストが分析され、攻撃がWebアプリケーション・サーバーに達する前に潜在的な攻撃をブロックします。F5 BIG-IP Application Security Manager (BIG-IP ASM)は、様々なBIG-IPプラットフォームにインストールできます。
図9-1 Oracle Audit Vault and Database FirewallとF5 BIG-IP ASMのデータ・フロー・ユニット
Database FirewallはWebアプリケーション・サーバーとデータベースの間にデプロイされます。これによって、データベースに送信されたSQL文の目的が分析され、ネットワーク内外からの攻撃に対してデータベースが保護されます。セキュリティ上の既知の脅威の構文を認識するだけでなく、それまで認知されていなかった攻撃(組織を標的にした攻撃を含む)もブロックします。
F5 BIG-IP Application Security Manager (BIG-IP ASM)とDatabase Firewallの両方を含むデプロイメントによって、両方の製品が持つセキュリティ機能の利点をすべて利用でき、2つのシステムが連携して機能して比類なきレベルのデータ・セキュリティを実現します。
この統合の主な利点は、F5 BIG-IP Application Security Manager (BIG-IP ASM)からDatabase Firewallに、データベースに送信されたSQL文に関する追加情報(SQL文を送信したWebユーザーの名前やIPアドレスを含む)を渡すことができることです。この情報は、Webアプリケーション・サーバーで生成されたSQL文からは通常取得できません。
F5 BIG-IP Application Security Manager (BIG-IP ASM)およびDatabase Firewallシステム自体から取得された情報は、Database Firewallによって該当する文の属性としてログに記録されます。データがログに記録されるとトラフィック・ログのビューに取り込むことができるため、あらゆる攻撃のソースと特性を完全に視覚化できます。
ノート:
F5 BIG-IP Application Security Manager (BIG-IP ASM)は12.2.0.7.0
で非推奨となり、19.1.0.0.0
でサポートされなくなります。この統合の主な利点は、次のとおりです。
2つのシステムが連携することによってセキュリティが向上します。
Oracle Audit Vault and Database Firewallでは、Webアプリケーション層からのSQL文の作成元と内容に関する詳細情報を提供できます。
Oracle Audit Vault and Database Firewallは、F5 BIG-IP Application Security Manager (BIG-IP ASM)で生成されたデータのログ・ストアとして機能できます。
ネットワークのエッジ、およびデータベース周りにおいて階層化されたセキュリティを提供できます。
Oracle Audit Vault and Database FirewallとF5 BIG-IP Application Security Manager (BIG-IP ASM)の統合は、syslogメッセージング・システムを使用してBIG-IP ASMからアラートを配信することによって機能します。
標準のBIG-IP ASM syslogメッセージは、ASMロギング・プロファイルを使用して有効になり、ターゲット・クライアントのIPアドレス、セッションのその他の属性など各アラートの詳細を提供します。
BIG-IP ASM iRule(tm)が設定されるため、ユーザーのログイン中にsyslogメッセージが生成され、Webユーザー名が特定されます。Oracle Audit Vault and Database FirewallにはサンプルのiRuleが用意されており、Webアプリケーションの特定のログイン手順に一致するようにカスタマイズする必要があります。
デプロイメント手順の間、F5 BIG-IP Application Security Manager (BIG-IP ASM)はすべてのsyslogメッセージをOracle Audit Vault and Database Firewallにルーティングするように設定されます。Oracle Audit Vault and Database Firewallでは、関連する各BIG-IP ASM syslogメッセージと、Webアプリケーション・サーバーで生成された該当するSQL文が照合されます。一致が検出されると、BIG-IP ASM syslogメッセージに含まれている情報が抽出され、ログに記録されたSQL文の属性としてその情報が格納されます。一致が検出されなかった場合は、別のレコードがトラフィック・ログに追加され、syslogメッセージに含まれる属性が格納されます。
このソフトウェアでは、Cookieを使用してSQL文とWebユーザーが照合されます。ユーザーがログインすると、BIG-IP ASMでは一意のCookieがそのユーザーに割り当てられます(通常、Cookieの名前は「TS」で始まります)。そのCookieとユーザー名は、ASMのiRuleで生成されたsyslogメッセージによってOracle Audit Vault and Database Firewallに送信されます。ユーザーのアクションによってアラートまたは他のイベントが発生した場合、F5 BIG-IP Application Security Manager (BIG-IP ASM)では同じ識別Cookieを含む追加のsyslogメッセージが生成され、ソフトウェアでそのsyslogメッセージと特定のユーザーを照合できます。Oracle Audit Vault and Database FirewallシステムでもsyslogメッセージとSQL文を照合できるため、潜在的な脅威に関連するSQL文を特定のWebユーザーに結び付けることができます。
Oracle Audit Vault and Database Firewallでは、F5 BIG-IP Application Security Manager (BIG-IP ASM)から受信したすべてのsyslogメッセージを外部のsyslogサーバーに自動的にリレーできます(最大サイズは各2KB)。必要な場合は、Oracle Audit Vault and Database Firewall自体で生成されたsyslogメッセージも同じ宛先にルーティングできます。Oracle Audit Vault and Database FirewallがF5 BIG-IP Application Security Manager (BIG-IP ASM) syslogのトラフィックを変更することはありません。
Oracle Audit Vault and Database FirewallではF5 BIG-IP Application Security Manager (BIG-IP ASM)との接続の状態を監視し、接続が検出されない場合または接続が失われた場合は、syslogメッセージが2分ごとに生成されます。
次のトピックでは、F5 BIG-IP ASMおよびBIG-IP ASMのiRuleと連係するようにOracle Audit Vault and Database Firewallを構成する方法について説明します。
Oracle Audit Vault and Database Firewallを使用してF5 BIG-IP Application Security Manager (BIG-IP ASM)をデプロイするには、両方のシステムで簡単な設定をいくつか構成し、Webアプリケーションの構成に一致するように、iRuleをカスタマイズする必要があります。
F5 BIG-IP ASMと連携して動作するようにOracle AVDFを構成する方法について説明します。
ノート:
この機能は、F5 BIG-IP Application Security Manager (BIG-IP ASM)バージョン10.2.1
でのみサポートされます。
F5 BIG-IP Application Security Manager (BIG-IP ASM)の統合は、Oracle AVDF 12.2.0.7.0
のリリースで非推奨となり、20.1
でサポートされなくなります。
Oracle Audit Vault and Database Firewallは、セキュア・ターゲットの強制ポイントを構成した後にのみ、F5 BIG-IP Application Security Manager (BIG-IP ASM)とともに動作するように構成できます。
セキュア・ターゲットのF5 BIG-IP Application Security Manager (BIG-IP ASM)とともに動作するようにOracle Audit Vault and Database Firewallを構成するには:
次のトピックでは、F5 BIG-IP Application Security Manager (BIG-IP ASM)の構成時に、ロギング・プロファイルおよび書込みポリシー設定を作成する方法について説明します。
関連トピック
このトピックでは、F5 BIG-IP Application Security Manager (BIG-IP ASM)のsyslogメッセージをOracle Audit Vault and Database Firewallに送信するように、Webアプリケーションのロギング・プロファイルを構成する方法について説明します。
サーバーIPとサーバー・ポート(たとえば、5514)を使用して、Database FirewallのIPアドレス(ファイアウォールの管理コンソールへの接続に使用するIPアドレスと同じ)を指定します。プロトコルは「TCP」を選択します。
「Selected Items」には、次の属性が含まれている必要があります。
violations
unit_hostname
management_ip_address
policy_name
policy_apply_date
x_forwarded_for_header_value
support_id
request_blocked
(F5バージョン9の場合)またはrequest_status
(F5バージョン10およびバージョン11の場合)
response_code
method
protocol
uri
query_string
ip
(F5バージョン9の場合)またはip_client
(F5バージョン10およびバージョン11の場合)
web_application_name
(F5バージョン11.2の場合はhttp_class_name
)
request
ノート:
属性は、ここに示した順序で「Selected Items」ボックスに表示される必要があります。このトピックでは、Oracle Audit Vault and Database FirewallとF5 BIG-IP Application Security Manager (BIG-IP ASM)の構成に関するポリシー設定について説明します。
ポリシー設定によって、必要なイベントを有効にしてsyslogを送信します(この方法が不明な場合は、ASMのヘルプを参照してください)。
Oracle Audit Vault and Database Firewallでは、次のイベントが認識されます。
Evasion technique detected
Request length exceeds defined buffer size
Illegal dynamic parameter value
Illegal meta character in header
Illegal meta character in parameter value
Illegal parameter data type
Illegal parameter numeric value
Illegal parameter value length
Illegal query string or POST data
Illegal static parameter value
Parameter value does not comply with regular expression
Attack signature detected
Illegal HTTP status in response
次のトピックでは、Oracle Audit Vault and Database Firewallを使用してF5 BIG-IP Application Security Manager (BIG-IP ASM)のiRuleを開発する方法について説明します。
オプションで、iRuleを使用すると、ログイン・ページを監視し、ユーザーがWebアプリケーションにログインするたびにsyslogメッセージを生成できます。syslogメッセージには、Webアプリケーション・ユーザーのユーザー名、およびそのユーザーに関連付けられたCookieが含まれます。メッセージはDatabase Firewallにルーティングされ、Webアプリケーション・サーバーで生成されたSQL文に対してユーザー名がログに記録されます。
Oracle Audit Vault and Database Firewallに付属しているサンプルのiRuleには、syslogメッセージの必要な形式が含まれていますが、使用するWebアプリケーションの特定のログイン要件にあわせてカスタマイズする必要があります。
# F5 BIG-IP example iRule # Description: Capture username and cookies from user login to web application # # Global variable definitions and other initialisation logic goes here when RULE_INIT { ### Customise this to suit your application # The page that user logins from set ::login_page "/login.asp" # The name of the field holding the user name set ::login_parameter_name "Uname" # The method of authentiaction which will be sent to Oracle Database Firewall set ::auth_method "webforms" # HTTP protocol methods that is used by the login form set ::login_method "POST" ### Don't change these # Limit the length of the HTTP request for safety set ::max_header_content_length 5242880 # Log iRule trace messages to /var/log/ltm? 1=yes, 0=no # Must be set to 0 for production systems set ::payload_debug 0 } # HTTP request received, check if it's a login request and start assembling the # data when HTTP_REQUEST { # Log the debug message if trace is enabled if {$::payload_debug}{log local3. "[IP::client_addr]:[TCP::client_port]: New HTTP [HTTP::method] request to [HTTP::host][HTTP::uri]"} # Reset cookies to empty, later used as an indicator of the fact that # login HTTP request has been received set cookie_all "" # If the request is to the login page populate cookie_all variable with # all the cookies received if {[HTTP::path] starts_with $::login_page and [HTTP::method] eq $::login_method} { set cookie_name [HTTP::cookie names] for {set c 0}{$c < [HTTP::cookie count]}{incr c}{ set cookie_string [split [lindex $cookie_name $c] " "] set cookie_list $cookie_string=[HTTP::cookie [lindex $cookie_string 0]] append cookie_all "," $cookie_list } # Log the debug message if trace is enabled if {$::payload_debug}{log local3. "[IP::client_addr]:[TCP::client_port]: Matched path and method check"} # Validate the Content-Length value and set the content_length variable if {[HTTP::header value Content-Length] > $::max_header_content_length } {set content_length $::max_header_content_length } else { set content_length [HTTP::header value Content-Length] } # Get the payload data if {$content_length > 0}{ HTTP::collect $content_length # Log the debug message if trace is enabled if {$::payload_debug}{log local3. "[IP::client_addr]:[TCP::client_port]: Collecting $content_length bytes"} } } } # Got the data, parse them and generate the syslog message when HTTP_REQUEST_DATA { # If cookies are present this is a login request, get the user name if {$cookie_all != "" } { # Log the debug message if trace is enabled if {$::payload_debug}{log local3. "[IP::client_addr]: [TCP::client_port]: Collected request data: [HTTP::payload]"} # Reset the error flag to 0 set uname_logged 0 # Find the $::login_parameter_name among the parameters in the request and extrat its value set param_value_pairs [split [HTTP::payload] "&"] for {set i 0} {$i < [llength $param_value_pairs]} {incr i} { set params [split [lindex $param_value_pairs $i] "="] if { [lindex $params 0] equals $::login_parameter_name } { # User name was found, generate the syslog message # which includes IP, port, all the cookies, user name and # the auth_method string set username [lindex $params 1] log local3. "DBFIREWALL:CLIENT=[IP::client_ addr]:[TCP::client_port]$cookie_all, USERNAME=$username,AUTHMETHOD=$::auth_method" # Set the flag so not to trigger the error reporting log message below set uname_logged 1 break } } # If user name has not been found in parameters log an error if {$uname_logged == 0 } { log local0. "ERROR: iRule failed to extract user name from page $login_page with parameter $login_parameter_name" } } }
このトピックでは、F5 BIG-IP Application Security Manager (BIG-IP ASM)のカスタムiRuleによって生成される必要があるsyslogメッセージの形式について説明します。
カスタムiRuleで生成されるsyslogメッセージの必要な形式は、次のとおりです。
Rule [iRuleName] HTTP_REQUEST_DATA: DBFIREWALL:CLIENT=[ClientIPAddress]:[ClientPort],[Cookies], USERNAME=[Name],AUTHMETHOD=[AuthMethod]
詳細は、次のとおりです。
[iRuleName
]は、iRule
の名前です。
[ClientIPAddress
]は、Webクライアントのセキュア・ターゲットIPアドレスです。
[ClientPort
]は、Webクライアントのセキュア・ターゲット・ポート番号です。
[Cookies
]は、BIG-IP ASM HTTPオブジェクトから使用可能なCookieのリストです。
[Name
]は、ユーザー名です。
[AuthMethod
]は、F5 WebサーバーとそのWebクライアントの間で使用される認証の方法で、F5 BIG-IP Application Security Manager (BIG-IP ASM)で設定されます。Oracle Audit Vault and Database Firewallでは、使用される認証方法をレポートするとき以外はこの情報を使用しません。
次に例を示します。
Rule capture_login_rule HTTP_REQUEST_DATA:
DBFIREWALL:CLIENT=192.0.2.1:443,ASPSESSIONIDSASSBSCD=1234,TS10da7b=23545,
USERNAME=FredBloggs,AUTHMETHOD=webforms
iRuleのsyslogメッセージがOracle Audit Vault and Database Firewallに送信されるようにするには、F5 BIG-IP Application Security Manager (BIG-IP ASM)ハードウェア・プラットフォームにログインして、次に示されているご使用のバージョン用のBIG-IP ASMコマンドを実行する必要があります。これにより、/etc/syslog-ng /syslog-ng.conf
が変更されます(このファイルを直接変更してもシステムの再起動後に変更内容が失われるため、直接変更しないでください)。
syslog-ng.conf
を構成するには:
次のコマンドを実行します。
modify sys syslog remote-servers add {dbfw_server_name {host dbfw_IP_address remote-port dbfw_port}}
dbfw_server_name
はDatabase Firewallサーバーの名前で、dbfw_IP_address
とdbfw_port
はDatabase FirewallのIPアドレスとポート番号です。次に例を示します。
modify sys syslog remote-servers add { d_dbfw {host 192.0.2.181 remote-port 5514}}
システム構成を保存します。
save sys config
syslog-ng.conf
を構成するには、次のコマンドを実行します。
bigpipe syslog include "destination d_dbfw { tcp(\"dbfw_ip_address\" port(dbfw_port));};log { source(local); filter(f_local3); destination(d_dbfw);};"
dbfw_ip_address
とdbfw_port
は、Database FirewallのIPアドレスとポート番号です(ステップ6のシステム・アドレスに入力した値)。
次に例を示します(IPアドレスとポートは強制ポイントごとに異なります)。
bigpipe syslog include "destination d_dbfw { tcp(\"192.0.2.181\" port(5514));};log { source(local); filter(f_local3); destination(d_dbfw);};"
syslog宛先名(d_dbfw
)の2つのインスタンスを変更する必要があるのは、万一宛先名がすでに使用されている場合のみです。
このトピックでは、Oracle Audit Vault and Database FirewallレポートでのF5 BIG-IP Application Security Manager (BIG-IP ASM)のデータの表示について説明します。
Audit Vault Serverコンソールからは、様々なレポートを生成できます。
ノート:
この機能は、F5 BIG-IP Application Security Manager (BIG-IP ASM)バージョン10.2.1
でのみサポートされます。
F5 BIG-IP Application Security Manager (BIG-IP ASM)の統合は、Oracle AVDF 12.2.0.7.0
のリリースで非推奨となり、20.1
でサポートされなくなります。