F5 DNS のログを収集する
このドキュメントでは、Bindplane を使用して F5 DNS ログを Google Security Operations に取り込む方法について説明します。パーサーは、アプリケーション フィールドに基づいて grok パターンを使用して F5 DNS syslog メッセージからフィールドを抽出し、統合データモデル(UDM)にマッピングします。gtmd
、mcpd
、big3d
などのさまざまな F5 アプリケーションを処理し、特定のフィールドを解析して、ログレベルとアプリケーションに基づいて適切な UDM イベントタイプ、重大度、説明を設定します。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- Windows 2016 以降、または
systemd
を使用する Linux ホスト - プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- F5 BIG-IP への特権アクセス
Google SecOps の取り込み認証ファイルを取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [コレクション エージェント] に移動します。
- Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。
Google SecOps のお客様 ID を取得する
- Google SecOps コンソールにログインします。
- [SIEM 設定] > [プロファイル] に移動します。
- [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。
Bindplane エージェントをインストールする
次の手順に沿って、Windows または Linux オペレーティング システムに 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: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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 log_type: 'F5_DNS' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog 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 エージェントを再起動するには、サービス コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
リモート ロギング サーバーのプールを構成する
- F5 BIG-IP ウェブ UI にログインします。
- [メイン] タブで、[DNS>送信>ロード バランシング>プールまたはローカル トラフィック>プール] に移動します。
- [作成] をクリックします。
- 次の構成の詳細を指定します。
- 名前: プールの一意の名前を入力します。
- [新しいメンバー] 設定を使用する場合:
- [アドレス] フィールドに Bindplane エージェントの IP アドレスを入力します。
- [Service Port] フィールドに、Bindplane エージェントのポート番号を入力します。
- [追加> 完了] をクリックします。
リモートログの宛先を構成する
- [メイン] タブで、[システム> ログ> 設定> ログの宛先] に移動します。
- [作成] をクリックします。
- 次の構成の詳細を指定します。
- 名前: この宛先の一意の名前を入力します。
- タイプ: [リモート高速ログ] を選択します。
- プール名: BIG-IP システムがログ メッセージを送信するリモート ログサーバーのプールを選択します。
- プロトコル: 使用するプロトコルを選択します。
- [Finished] をクリックします。
フォーマットされたリモートログの宛先を作成する
- [メイン] タブで、[システム> ログ> 設定> ログの宛先] に移動します。
- [作成] をクリックします。
- 次の構成の詳細を指定します。
- 名前: この宛先の一意の名前を入力します。
- Type: [Remote Syslog] を選択します。
- 形式: ログ形式を選択します。
- 転送先: [高速ログの宛先> リモート Syslog サーバーのプールを指す宛先] を選択します。
- [Finished] をクリックします。
ログ パブリッシャーを構成する
- [メイン] タブで、[システム] > [ログ] > [設定] > [ログ パブリッシャー] に移動します。
- [作成] をクリックします。
- 次の構成の詳細を指定します。
- 名前: このパブリッシャーの一意の名前を入力します。
- 移行先: [使用可能] リストから [リモート Syslog] の新しく作成した移行先を選択し、 keyboard_double_arrow_left [移動] をクリックして、移行先を [選択済み] リストに移動します。
- [Finished] をクリックします。
カスタム DNS ロギング プロファイルを構成する
- [メイン] タブで、[DNS] > [送信] > [プロファイル] > [その他] > [DNS ロギング] または [ローカル トラフィック] > [プロファイル] > [その他] > [DNS ロギング] に移動します。
- [作成] をクリックします。
- 次の構成の詳細を指定します。
- Name: このプロファイルの一意の名前を入力します。
- ログ パブリッシャー: システムが DNS ログエントリを送信する、新しく作成した宛先を選択します。
- ログクエリ: [有効] チェックボックスをオンにします。
- Log Responses: [Enabled] チェックボックスをオンにします。
- クエリ ID を含める: [有効] チェックボックスをオンにします。
- [Finished] をクリックします。
DNS プロファイルを DNS リスナーに追加する
- [メイン] タブで、[DNS>送信>リスナー> DNS リスナー] を選択します。
- [サービス] セクションの [DNS プロファイル] で、以前に構成した DNS プロファイルを選択します。
- [更新] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | 論理 |
---|---|---|
application |
principal.application |
application フィールドから直接マッピングされます。 |
cipher_name |
network.tls.cipher |
cipher_name フィールドから直接マッピングされます。 |
command_line |
principal.process.command_line |
command_line フィールドから直接マッピングされます。 |
desc |
security_result.description |
desc フィールドから直接マッピングされます。 |
desc_icrd |
security_result.description |
desc_icrd フィールドから直接マッピングされます。 |
dest_ip |
target.ip |
dest_ip フィールドから直接マッピングされます。 |
dest_port |
target.port |
dest_port フィールドから直接マッピングされます。 |
file_path |
principal.process.file.full_path |
file_path フィールドから直接マッピングされます。level が「alert」の場合は true に設定されます。それ以外の場合は存在しません。level が「alert」の場合は true に設定されます。それ以外の場合は存在しません。 |
msg3 |
security_result.description |
application が「run-parts」の場合、msg3 フィールドから直接マッピングされます。 |
metadata.event_type |
event_type が空の場合は GENERIC_EVENT に設定します。それ以外の場合は event_type からマッピングされます。「DNS」にハードコードされています。「F5」にハードコードされます。 |
|
principal_hostname |
principal.hostname |
principal_hostname フィールドから直接マッピングされます。 |
proc_id |
principal.process.pid |
proc_id フィールドから直接マッピングされます。 |
received_bytes |
network.received_bytes |
received_bytes フィールドから直接マッピングされます。 |
resource_id |
target.resource.id |
resource_id フィールドから直接マッピングされます。 |
resource_parent |
principal.resource.parent |
resource_parent フィールドから直接マッピングされます。 |
response_code |
network.http.response_code |
response_code フィールドから直接マッピングされます。level フィールドに基づいて決定されます。 |
src_ip |
principal.ip |
src_ip フィールドから直接マッピングされます。 |
src_port |
principal.port |
src_port フィールドから直接マッピングされます。 |
tls_version |
network.tls.version |
tls_version フィールドから直接マッピングされます。 |
userName |
principal.user.userid |
userName フィールドから直接マッピングされます。 |
when |
event.timestamp |
datetime1 と timezone 、または datetime と timezone から計算されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。