Barracuda WAF のログを収集する
このドキュメントでは、Bindplane を使用して Barracuda ウェブ アプリケーション ファイアウォール(WAF)のログを収集する方法について説明します。パーサーは、JSON 形式と Syslog 形式のログからフィールドを抽出し、正規化して、Unified Data Model(UDM)にマッピングします。さまざまなログタイプ(トラフィック、ウェブ ファイアウォール)を処理し、IP アドレス/ホスト名の解決、方向性のマッピング、重大度の正規化など、フィールド値に基づいて条件付き変換を実行します。
始める前に
- Google Security Operations インスタンスがあることを確認します。
- Windows 2016 以降、または
systemd
を使用する Linux ホストを使用していることを確認します。 - プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認します。
- Barracuda WAF への特権アクセス権があることを確認します。
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
Windows のインストール
- 管理者として コマンド プロンプトまたは PowerShell を開きます。
次のコマンドを実行します。
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux のインストール
- root 権限または sudo 権限でターミナルを開きます。
次のコマンドを実行します。
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
その他のインストール リソース
- その他のインストール オプションについては、こちらのインストール ガイドをご覧ください。
Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する
構成ファイルにアクセスします。
config.yaml
ファイルを見つけます。通常、Linux では/etc/bindplane-agent/
ディレクトリに、Windows ではインストール ディレクトリにあります。- テキスト エディタ(
nano
、vi
、メモ帳など)を使用してファイルを開きます。
config.yaml
ファイルを次のように編集します。receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: SYSLOG namespace: barracuda_waf raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
<customer_id>
は、実際の顧客 ID に置き換えます。/path/to/ingestion-authentication-file.json
の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。
Bindplane エージェントを再起動して変更を適用する
Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。
sudo systemctl restart bindplane-agent
Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
Barracuda WAF を構成する
- 管理者認証情報を使用して Barracuda WAF コンソールにログインします。
- [詳細設定] タブ > [ログをエクスポート] をクリックします。
- [ログをエクスポートする] セクションで、[エクスポート ログサーバーを追加] をクリックします。
- 次の値を指定します。
- 名前: Google SecOps フォワーダーの名前を入力します。
- ログサーバー タイプ: [Syslog] を選択します。
- IP アドレスまたはホスト名:
Bindplane
IP アドレスを入力します。 - ポート:
Bindplane
ポートを入力します。 - 接続タイプ:
TCP
接続タイプを選択します(TCP を推奨)。ただし、UDP または SSL プロトコルも使用できます)。 - サーバー証明書を検証する: [いいえ] を選択します。
- クライアント証明書: [なし] を選択します。
- ログのタイムスタンプとホスト名: [はい] を選択します。
- [追加] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
action |
security_result.action |
action が DENY の場合は、BLOCK に設定します。それ以外の場合は、ALLOW に設定します(特に WF ログタイプの場合)。一般的なファイアウォール イベントにも使用されます。 |
appProtocol |
network.application_protocol |
appProtocol が TLSv と一致する場合は、HTTPS に設定します。それ以外の場合は、appProtocol の値を使用します。 |
attackDetails |
security_result.description |
WF ログタイプの未加工ログから抽出されます。 |
attackType |
security_result.summary |
security_result.summary の一部。ruleType と組み合わせます。 |
bytesReceived |
network.received_bytes |
符号なし整数に変換され、TR ログタイプにマッピングされます。 |
bytesSent |
network.sent_bytes |
符号なし整数に変換され、TR ログタイプにマッピングされます。 |
hostName |
target.hostname |
hostName が IP アドレスでない場合は、その値を使用します。それ以外の場合は、target.ip に統合されます。 |
httpMethod loginId |
principal.user.userid |
emptyToken と等しくない場合、TR ログタイプにマッピングされます。 |
logType |
metadata.product_event_type |
TR の場合は、metadata.product_event_type を Barracuda Access Log に設定します。WF の場合は、Barracuda Web Firewall Log に設定。 |
message |
metadata.description |
desc が空でない場合に使用されます。 |
referrer |
network.http.referral_url |
emptyToken と等しくない場合、TR ログタイプにマッピングされます。 |
responseCode |
network.http.response_code |
整数に変換され、TR ログタイプにマッピングされます。 |
rule |
security_result.rule_name |
WF ログタイプにマッピングされます。 |
ruleType |
security_result.summary |
security_result.summary の一部。attackType と組み合わせます。 |
sec_desc |
security_result.rule_name |
一般的なファイアウォール イベントに使用されます。 |
server |
target.ip |
target.ip に統合されました。 |
serv |
target.ip |
target.ip に統合されました。 |
severity |
security_result.severity |
WF ログタイプの場合: 大文字に変換されます。EMERGENCY 、ALER 、CRITICAL の場合は、security_result.severity を CRITICAL に設定します。ERROR の場合は、HIGH に設定します。WARNING の場合は、MEDIUM に設定します。NOTICE の場合は、LOW に設定します。それ以外の場合は INFORMATIONAL に設定します。 |
src |
principal.ip |
一般的なファイアウォール イベントや一部のステータス更新にも使用されます。 |
srcPort |
principal.port |
整数に変換されます。 |
target targetPort |
target.port |
整数に変換されます。 |
time |
metadata.event_timestamp.seconds 、metadata.event_timestamp.nanos 、timestamp.seconds 、timestamp.nanos |
tz と組み合わされ、解析されてイベント タイムスタンプが作成されます。秒とナノ秒が抽出され、それぞれのフィールドに入力されます。 |
url urlParams |
target.url |
TR ログタイプで emptyToken と等しくない場合は、url に追加されます。 |
userAgent userName |
target.user.userid 、target.user.user_display_name |
一般的なファイアウォール イベントに使用されます。TR ログタイプの emptyToken と等しくない場合、target.user.user_display_name にマッピングされます。Barracuda にハードコードされています。src と target の両方が存在する場合は、NETWORK_HTTP に設定されます。src のみ存在する場合は STATUS_UPDATE に設定します。デフォルトとして、または CEF 解析などの他のシナリオでは GENERIC_EVENT に設定します。BARRACUDA_WAF にハードコードされています。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。