McAfee Web Gateway のログを収集する
このドキュメントでは、Bindplane エージェントを使用して McAfee Web Gateway ログを Google Security Operations に取り込む方法について説明します。パーサーは、SYSLOG + KV(CEF)、JSON、RAW 形式のログからフィールドを抽出します。grok フィルタと csv フィルタを使用してさまざまなログ構造を解析し、フィールド名を正規化します。次に、抽出されたフィールドを Unified Data Model(UDM)スキーマにマッピングし、さまざまなエッジケースとデータ不整合を処理して、統合された出力を生成します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- Windows 2016 以降、または systemd を使用する Linux ホスト
- プロキシの背後で実行されている場合、ファイアウォール ポートが開いている
- McAfee Web Gateway への特権アクセス
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: 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: '/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: MCAFEE_WEBPROXY raw_log_field: body 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 エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。
net stop BindPlaneAgent && net start BindPlaneAgent
McAfee Web Gateway で Syslog を構成する
- McAfee Web Gateway のウェブ UI にログインします。
- [ポリシー>ルールセット] に移動します。
- [ログ ハンドラ] をクリックし、[デフォルト] ルールセットを展開して、ネストされた [CEF Syslog] ルールセットを選択します。
- [Send to Syslog] ルールを有効にします。
- [変更を保存] をクリックします。
- [構成> アプライアンス> ログファイル マネージャー> 設定] に移動します。
- [監査ログを syslog に書き込む] を選択します。
- [Configuration > File Editor] に移動します。
- ファイル ツリーで rsyslog.conf を選択します。
- ファイルを次のように編集します。
*.info;mail.none;authpriv.none;cron.none /var/log/messages
という行(または類似の行)を探します。- この行にデーモンを追加し、パス情報の前に -(ダッシュ)を挿入します。
*.info;daemon.!=info;mail.none;authpriv.none;cron.none -/var/log/messages
ファイルの末尾に新しい行を追加して、情報メッセージを Bindplane エージェントの IP アドレスに送信します。
UDP 経由の syslog の場合:
daemon.info;auth.=info @<bindplane-server-ip>:<bindplane-port>
TCP 経由の syslog の場合:
daemon.info;auth.=info @@<bindplane-server-ip>:<bindplane-port>
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
application_name |
principal.application |
KV 形式の application_name フィールドまたは JSON 形式の user_agent_product から直接マッピングされます。 |
auth_user |
principal.user.userid |
KV 形式の auth_user フィールドから直接マッピングされます。 |
block_reason |
security_result.summary |
JSON 形式と CSV JSON 形式の block_reason フィールド、未加工形式の _block_reason 、KV 形式の block_reason から直接マッピングされます。 |
block_res |
security_result.action |
KV 形式の block_res フィールドからマッピングされます。block_res が DENIED であるか、Block を含む場合、アクションは BLOCK です。block_res が 0 であるか、Allow を含む場合、アクションは ALLOW です。security_result.category を決定するために、50 、51 、52 、53 、58 、59 、81 、80 、82 、83 、84 、110 、111 などの特殊な値が使用されます。 |
bytes_from_client |
network.sent_bytes |
KV 形式の bytes_from_client フィールド、未加工形式の sr_bytes 、JSON 形式と CSV JSON 形式の client_to_server_bytes から直接マッピングされます。 |
bytes_to_client |
network.received_bytes |
KV 形式の bytes_to_client フィールド、未加工形式の rs_bytes 、JSON 形式と CSV JSON 形式の server_to_client_bytes から直接マッピングされます。 |
categories |
security_result.category_details |
KV 形式の categories フィールド、未加工形式の _category 、JSON 形式と CSV JSON 形式の category から直接マッピングされます。 |
client_ip |
principal.ip 、intermediary.ip |
JSON 形式の client_ip フィールドから直接マッピングされます。 |
clientIP |
principal.ip |
CEF 形式の clientIP フィールドから直接マッピングされます。 |
csmethod |
network.http.method |
未加工形式の csmethod フィールドから直接マッピングされます。 |
day |
metadata.event_timestamp |
タイムスタンプの一部。KV 形式の time_stamp フィールドから抽出されます。 |
destination_ip |
target.ip |
JSON 形式の destination_ip フィールドから直接マッピングされます。 |
destination_port |
target.port |
JSON 形式の destination_port フィールドから直接マッピングされます。 |
domain |
target.hostname 、target.url |
未加工形式の domain フィールドから直接マッピングされます。uri が存在する場合、target.url の作成に使用されます。 |
header |
intermediary.hostname |
ログメッセージの先頭から抽出されます。intermediary.hostname の抽出に使用されます。 |
host |
target.hostname |
KV 形式の host フィールドから直接マッピングされます。 |
hostname |
principal.hostname |
JSON 形式の hostname フィールドから直接マッピングされます。 |
hour |
metadata.event_timestamp |
タイムスタンプの一部。KV 形式の time_stamp フィールドから抽出されます。 |
http_action |
network.http.method |
JSON 形式の http_action フィールドから直接マッピングされます。 |
http_status_code |
network.http.response_code |
JSON 形式と CSV JSON 形式の http_status_code フィールド、または未加工形式と KV 形式の status_code から直接マッピングされます。 |
kv_entry.application_name |
principal.application |
KV エントリ内の application_name フィールドから直接マッピングされます。 |
kv_entry.auth_user |
principal.user.userid |
KV エントリ内の auth_user フィールドから直接マッピングされます。 |
kv_entry.block_reason |
security_result.summary |
KV エントリ内の block_reason フィールドから直接マッピングされます。 |
kv_entry.block_res |
security_result.action 、security_result.category |
KV エントリ内の block_res フィールドからマッピングされます。アクションとカテゴリを決定するロジックは、最上位の block_res フィールドの場合と同じです。 |
kv_entry.bytes_from_client |
network.sent_bytes |
KV エントリ内の bytes_from_client フィールドから直接マッピングされます。 |
kv_entry.bytes_to_client |
network.received_bytes |
KV エントリ内の bytes_to_client フィールドから直接マッピングされます。 |
kv_entry.categories |
security_result.category_details |
KV エントリ内の categories フィールドから直接マッピングされます。 |
kv_entry.host |
target.hostname |
KV エントリ内の host フィールドから直接マッピングされます。 |
kv_entry.method |
network.http.method |
KV エントリ内の method フィールドから直接マッピングされます。 |
kv_entry.rep_level |
security_result.severity_details |
KV エントリ内の rep_level フィールドから直接マッピングされます。 |
kv_entry.server_ip |
target.ip |
KV エントリ内の server_ip フィールドから直接マッピングされます。 |
kv_entry.status_code |
network.http.response_code |
KV エントリ内の status_code フィールドから直接マッピングされます。 |
kv_entry.time_stamp |
metadata.event_timestamp |
KV エントリ内の time_stamp フィールドから直接マッピングされます。 |
kv_entry.url |
target.url |
KV エントリ内の url フィールドから直接マッピングされます。 |
kv_entry.url_port |
target.port |
KV エントリ内の url_port フィールドから直接マッピングされます。 |
kv_entry.user_agent |
network.http.parsed_user_agent |
KV エントリ内の user_agent フィールドから直接マッピングされ、構造化オブジェクトに解析されます。 |
last_rule |
security_result.rule_name |
JSON 形式の last_rule フィールドから直接マッピングされます。 |
loc |
principal.location.country_or_region |
tgt_ip_or_location から抽出された loc フィールドから直接マッピングされます。 |
location |
principal.location.country_or_region |
JSON 形式の location フィールドから直接マッピングされます。 |
log.file.path |
principal.process.file.full_path |
JSON 形式の log.file.path フィールドから直接マッピングされます。 |
message |
各種 | 未加工のログ メッセージ。形式(raw、JSON、KV、CEF)に応じて異なる方法で解析されます。 |
method |
network.http.method |
KV 形式と未加工形式の method フィールド、JSON 形式の http_action フィールドから直接マッピングされるか、CEF データから派生します。値が GET 、POST 、HEAD 、OPTIONS 、PUT 、CONNECT のいずれかの場合、metadata.event_type は NETWORK_HTTP に設定されます。値が - または CERTVERIFY の場合、metadata.event_type は NETWORK_CONNECTION に設定されます。 |
mins |
metadata.event_timestamp |
タイムスタンプの一部。KV 形式の time_stamp フィールドから抽出されます。 |
month |
metadata.event_timestamp |
タイムスタンプの一部。KV 形式の time_stamp フィールドまたは CEF 形式の rt フィールドから抽出されます。 |
monthday |
metadata.event_timestamp |
タイムスタンプの一部。ログメッセージの先頭から抽出されます。 |
protocol |
network.application_protocol |
未加工形式の protocol フィールド、JSON 形式の uri_scheme フィールドから直接マッピングされるか、KV 形式の url フィールドから派生します。 |
query |
target.url |
未加工形式の query フィールドから直接マッピングされます。url フィールドに追加されます。 |
rep_level |
security_result.severity_details |
KV 形式の rep_level フィールド、JSON 形式の reputation フィールド、または未加工形式の _risk フィールドから直接マッピングされます。security_result.severity の決定に使用されます。 |
request |
target.url |
CEF 形式の request フィールドから直接マッピングされます。 |
requestClientApplication |
network.http.user_agent |
CEF 形式の requestClientApplication フィールドから直接マッピングされます。 |
requestContext |
network.http.referral_url |
CEF 形式の requestContext フィールドから直接マッピングされます。 |
requestMethod |
network.http.method |
CEF 形式の requestMethod フィールドから直接マッピングされます。 |
requested_host |
target.url |
JSON 形式の requested_host フィールドから直接マッピングされます。requested_path も存在する場合、target.url の作成に使用されます。 |
requested_path |
target.url |
JSON 形式の requested_path フィールドから直接マッピングされます。requested_host に追加されて target.url を形成します。 |
request_timestamp |
metadata.event_timestamp |
JSON 形式の request_timestamp フィールドから直接マッピングされます。 |
result |
security_result.action 、security_result.category |
JSON 形式と CSV JSON 形式の result フィールド、または KV 形式の block_res から直接マッピングされます。security_result.action と security_result.category を決定するために使用されます。 |
rt |
metadata.event_timestamp |
CEF 形式の rt フィールドから直接マッピングされます。 |
secs |
metadata.event_timestamp |
タイムスタンプの一部。KV 形式の time_stamp フィールドから抽出されます。 |
server_ip |
target.ip |
KV 形式の server_ip フィールドから直接マッピングされます。 |
source_ip |
principal.ip |
JSON、CSV JSON、raw、KV 形式の source_ip フィールド、CEF 形式の src 、または raw 形式の src_ip から直接マッピングされます。 |
src |
principal.ip |
CEF 形式の src フィールドから直接マッピングされます。 |
status_code |
network.http.response_code |
未加工形式の status_code フィールドから直接マッピングされます。 |
summary |
security_result.summary |
CSV 形式の summary フィールド、または JSON 形式の block_reason から直接マッピングされます。 |
system |
principal.platform |
JSON 形式の system フィールドから直接マッピングされます。大文字に変換されました。 |
target_ip |
target.ip |
未加工形式の target_ip フィールド、または CEF 形式の dst から直接マッピングされます。 |
tgtport |
target.port |
未加工形式の tgtport フィールドから直接マッピングされます。 |
time |
metadata.event_timestamp |
タイムスタンプの一部。ログメッセージの先頭、CEF 形式の rt フィールド、または KV 形式の time_stamp フィールドから抽出されます。 |
timestamp |
metadata.event_timestamp |
JSON 形式の @timestamp フィールドから直接マッピングされます。 |
timezone |
metadata.event_timestamp |
タイムスタンプの一部。KV 形式の time_stamp フィールドから抽出されます。 |
uri |
target.url |
未加工形式の uri フィールドから直接マッピングされます。target.url の作成に使用されます。 |
uri_scheme |
network.application_protocol |
JSON 形式の uri_scheme フィールドから直接マッピングされます。大文字に変換されました。 |
url |
target.url |
未加工、KV、JSON 形式の url フィールドから直接マッピングされるか、未加工形式の domain 、uri 、query 、JSON 形式の requested_host 、requested_path 、CEF 形式の request から構築されます。 |
url_port |
target.port |
KV 形式の url_port フィールドから直接マッピングされます。 |
user |
principal.user.userid |
JSON 形式の user フィールド、JSON 形式の username 、KV 形式の auth_user 、未加工形式の suser から直接マッピングされます。 |
user_agent |
network.http.parsed_user_agent |
未加工形式と KV 形式の user_agent フィールド、JSON 形式の user_agent_comment 、CEF 形式の requestClientApplication から直接マッピングされるか、JSON 形式の agent.type と agent.version から構築されます。構造化オブジェクトに解析されます。 |
user_agent_comment |
network.http.parsed_user_agent |
JSON 形式の user_agent_comment フィールドから直接マッピングされます。 |
user_agent_product |
principal.application |
JSON 形式の user_agent_product フィールドから直接マッピングされます。 |
username |
principal.user.userid |
JSON 形式の username フィールドから直接マッピングされます。 |
year |
metadata.event_timestamp |
タイムスタンプの一部。KV 形式の time_stamp フィールドまたは CEF 形式の rt フィールドから抽出されます。 |
なし | metadata.event_type |
method フィールドに基づいてパーサーによって決定されます。NETWORK_HTTP 、NETWORK_CONNECTION 、GENERIC_EVENT 、STATUS_UPDATE のいずれかです。 |
なし | metadata.log_type |
MCAFEE_WEBPROXY にハードコードされています。 |
なし | metadata.product_name |
MCAFEE_WEBPROXY にハードコードされています。 |
なし | metadata.vendor_name |
MCAFEE にハードコードされています。 |
なし | network.direction |
OUTBOUND にハードコードされています。 |
なし | security_result.action |
block_reason フィールドまたは result フィールドに基づいてパーサーによって決定されます。ALLOW または BLOCK のいずれかです。 |
なし | security_result.category |
result フィールドに基づいてパーサーによって決定されます。NETWORK_CATEGORIZED_CONTENT 、NETWORK_DENIAL_OF_SERVICE 、MAIL_SPAM 、AUTH_VIOLATION 、SOFTWARE_MALICIOUS 、NETWORK_SUSPICIOUS 、または NETWORK_MALICIOUS のいずれかです。 |
なし | security_result.severity |
risk フィールドに基づいてパーサーによって決定されます。LOW 、MEDIUM 、HIGH のいずれかです。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。