ANSIBLE_AWX
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 Bindplane,將 Ansible AWX 記錄檔擷取至 Google Security Operations。這個剖析器會從 JSON 格式的 Ansible AWX 記錄中擷取欄位。 這項功能會使用 JSON 剖析功能擷取記錄檔欄位,然後將這些值對應至統一資料模型 (UDM)。此外,也會為事件來源和類型設定預設中繼資料值。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體。
- Windows 2016 以上版本,或搭載
systemd
的 Linux 主機。 - 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟。
- 具備管理員權限,可存取 Ansible AWX 管理控制台或設備。
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。將檔案安全地儲存在要安裝 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 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安裝資源
如需其他安裝選項,請參閱安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
- 存取設定檔:
- 找出
config.yaml
檔案。通常位於 Linux 的/opt/observiq-otel-collector/
目錄或 Windows 的C:Program FilesobservIQ OpenTelemetry Collector
目錄。 - 使用文字編輯器 (例如
nano
、vi
或記事本) 開啟檔案。
- 找出
按照下列方式編輯
config.yaml
檔案:receivers: udplog: # Using high port to avoid requiring root privileges listen_address: "0.0.0.0:514" exporters: chronicle/awx: endpoint: malachiteingestion-pa.googleapis.com creds_file_path: '/path/to/ingestion-authentication-file.json' customer_id: YOUR_CUSTOMER_ID log_type: 'ANSIBLE_AWX' raw_log_field: body service: pipelines: logs/awx: receivers: - udplog exporters: - chronicle/awx
- 視基礎架構需求,替換通訊埠和 IP 位址。
- 將
YOUR_CUSTOMER_ID
替換為實際的客戶 ID。 - 將
/path/to/ingestion-authentication-file.json
更新為您在步驟 1 儲存驗證檔案的路徑。
重新啟動 Bindplane 代理程式,以套用變更
如要在 Linux 中重新啟動 BindPlane 代理程式,請執行下列指令:
sudo systemctl restart observiq-otel-collector
如要在 Windows 中重新啟動 Bindplane 代理程式,可以使用「服務」控制台,或輸入下列指令:
sc stop observiq-otel-collector && sc start observiq-otel-collector
在 Ansible AWX 上設定外部記錄
- 登入 Ansible AWX 管理主控台。
- 前往導覽列中的「設定」。
- 從「系統」選項中選取「記錄設定」。
- 提供下列設定詳細資料:
- 記錄匯總器:輸入 Bindplane 代理程式 IP 位址。
- 記錄匯總工具通訊埠:輸入 Bindplane 代理程式通訊埠號碼 (例如
514
)。 - 記錄匯總器類型:從清單中選取「其他」。
- 記錄匯總工具使用者名稱:留空 (Syslog 不需要)。
- 記錄匯總工具密碼/權杖:留空 (syslog 不需要)。
- 記錄彙整器通訊協定:選取「UDP」 (建議用於系統記錄)。
- 記錄匯總層級門檻:選取「資訊」或偏好的記錄層級。
- 啟用外部記錄:按一下切換鈕來切換「開啟」。
- 要將資料傳送至記錄匯總工具的記錄器:選取相關記錄類型:
awx
:一般伺服器記錄activity_stream
:AdWords Express 物件的變更記錄job_events
:Ansible 回呼模組資料system_tracking
:系統事實和設定資料
- 個別記錄系統追蹤事實:切換為「關閉」 (預設)。
- 按一下「儲存」套用設定。
- 選用:按一下「測試」,驗證與 Bindplane 代理程式的連線。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
agent.ephemeral_id |
observer.labels.value |
原始記錄中的 agent.ephemeral_id 值。 |
agent.hostname |
observer.hostname |
原始記錄中的 agent.hostname 值。 |
agent.id |
observer.asset_id |
「filebeat:」和原始記錄中 agent.id 值的串連。 |
agent.name |
observer.user.userid |
原始記錄中的 agent.name 值。 |
agent.type |
observer.application |
原始記錄中的 agent.type 值。 |
agent.version |
observer.platform_version |
原始記錄中的 agent.version 值。 |
cloud.availability_zone |
principal.resource.attribute.labels.value |
原始記錄中的 cloud.availability_zone 值。 |
cloud.instance.id |
principal.resource.product_object_id |
原始記錄中的 cloud.instance.id 值。 |
cloud.instance.name |
principal.resource.name |
原始記錄中的 cloud.instance.name 值。 |
cloud.machine.type |
principal.resource.attribute.labels.value |
原始記錄中的 cloud.machine.type 值。 |
cloud.provider |
principal.resource.attribute.labels.value |
原始記錄中的 cloud.provider 值。 |
event1 |
metadata.description |
原始記錄中的 event1 值。如果沒有 event1 ,則會使用 message 的值。 |
event1_data.host |
principal.hostname |
原始記錄中的 event1_data.host 值。 |
event1_data.remote_addr |
principal.ip |
使用 grok 模式從 event1_data.remote_addr 擷取的 IP 位址。 |
event1_data.task |
security_result.detection_fields.value |
原始記錄中的 event1_data.task 值。 |
event1_data.task_path |
principal.process.file.full_path |
原始記錄中的 event1_data.task_path 值。 |
event1_data.task_uuid |
security_result.detection_fields.value |
原始記錄中的 event1_data.task_uuid 值。 |
event1_data.uuid |
metadata.product_log_id |
原始記錄中的 event1_data.uuid 值。 |
event1_display |
security_result.description |
原始記錄中的 event1_display 值。 |
host |
principal.hostname |
原始記錄中的 host 值,如果沒有 event1_data.host 和 host_name ,就會使用這個值。 |
host.architecture |
target.asset.hardware.cpu_platform |
原始記錄中的 host.architecture 值。 |
host.fqdn |
target.administrative_domain |
原始記錄中的 host.fqdn 值。 |
host.hostname |
target.hostname |
原始記錄中的 host.hostname 值。 |
host.id |
target.asset.asset_id |
將「主機 ID:」和原始記錄中的 host.id 值串連。 |
host.ip |
target.asset.ip |
原始記錄中的 host.ip 值。 |
host.mac |
target.mac |
原始記錄中的 host.mac 值。 |
host.os.codename |
target.asset.attribute.labels.value |
原始記錄中的 host.os.codename 值。 |
host.os.kernel |
target.platform_patch_level |
原始記錄中的 host.os.kernel 值。 |
host.os.name |
target.asset.attribute.labels.value |
原始記錄中的 host.os.name 值。 |
host.os.platform |
target.platform |
如果 host.os.platform 為「debian」,請設為「LINUX」。 |
host.os.version |
target.platform_version |
原始記錄中的 host.os.version 值。 |
host_name |
principal.hostname |
原始記錄中的 host_name 值,如果沒有 event1_data.host ,就會使用這個值。 |
input.type |
network.ip_protocol |
如果 input.type 為「tcp」,請設為「TCP」。 |
level |
security_result.severity |
根據 level 的值對應:「DEBUG」、「INFO」、「AUDIT」會對應至「INFORMATIONAL」;「ERROR」會對應至「ERROR」;「WARNING」會對應至「MEDIUM」。 |
level |
security_result.severity_details |
原始記錄中的 level 值。 |
log.source.address |
principal.ip |
使用 grok 模式從 log.source.address 擷取的 IP 位址。 |
log.source.address |
principal.port |
使用 grok 模式從 log.source.address 擷取的通訊埠。 |
logger_name |
intermediary.application |
原始記錄中的 logger_name 值。 |
message |
metadata.description |
原始記錄中的 message 值,如果沒有 event1 ,則會做為備用值。 |
parent_uuid |
security_result.detection_fields.value |
原始記錄中的 parent_uuid 值。 |
timestamp |
metadata.event_timestamp |
使用日期篩選器剖析原始記錄中的 timestamp 值。由邏輯判斷:如果 JSON 中存在 log.source.address 和 host.ip ,則為「NETWORK_CONNECTION」;如果存在 principal_hostname 或 event1_data.remote_addr ,則為「STATUS_UPDATE」;否則為「GENERIC_EVENT」。硬式編碼為「ANSIBLE_AWX」。硬式編碼為「ANSIBLE_AWX」。硬式編碼為「ANSIBLE_AWX」。已硬式編碼為「ephemeral_id」。視對應的欄位而定,硬式編碼為「machine_type」、「provider」或「availability_zone」。硬式編碼為「VIRTUAL_MACHINE」。視對應的欄位而定,硬式編碼為「parent_uuid」、「task」或「task_uuid」。根據對應的欄位,硬式編碼為「codename」或「os_name」。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。