收集 Nix 系統 Red Hat 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 Bindplane,將 RHEL Server (Unix 系統) 記錄檔擷取至 Google Security Operations。剖析器會擷取 Syslog 和 JSON 格式的記錄,將各種 UDM 欄位初始化為空字串,對 message
欄位執行多項字串替換作業,然後嘗試將訊息剖析為 JSON。如果 JSON 剖析失敗,系統會使用 grok 模式,根據 message
和 event_details.original
內容擷取欄位,並根據事件類型和各種條件式檢查,將擷取的欄位對應至 UDM,處理來自各種 Unix 系統程序和服務的不同記錄格式和結構。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- 如果透過 Proxy 執行,防火牆通訊埠已開啟
- RHEL 伺服器的特殊存取權
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
- 複製並儲存「機構詳細資料」專區中的客戶 ID。
安裝 Bindplane 代理程式
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 的/etc/bindplane-agent/
目錄中。 - 使用文字編輯器 (例如
nano
或vi
) 開啟檔案。
- 找出
按照下列方式編輯
config.yaml
檔案:receivers: filelog/linux: include: - /var/log/messages - /var/log/lastlog - /var/log/btmp - /var/log/wtmp - /var/log/secure - /var/log/cron - /var/log/maillog - /var/log/boot start_at: end poll_interval: 5s exporters: chronicle/linux: # 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 log_type: 'NIX_SYSTEM' override_log_type: false raw_log_field: body service: pipelines: logs/linux: receivers: - filelog/linux exporters: [chronicle/linux] ```
- 將
<customer_id>
替換為實際的客戶 ID。 將
/path/to/ingestion-authentication-file.json
更新為「取得 Google SecOps 擷取驗證檔案」一節中儲存驗證檔案的路徑。啟動 Bindplane 代理程式並套用變更
啟動 Bindplane 代理程式:
sudo systemctl start bindplane-agent
啟用 observIQ otel 收集器服務:
systemctl enable --now bindplane-agent
視需要重新啟動 Bindplane 代理程式:
sudo systemctl restart bindplane-agent
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
AccessControlRuleAction |
security_result.action |
如果 AccessControlRuleAction 是 Allow ,則設為 ALLOW 。如果 AccessControlRuleAction 是 Block ,請設為 BLOCK 。 |
ACPolicy |
security_result.rule_labels |
鍵:ACPolicy ,值:ACPolicy |
AccessControlRuleName |
security_result.rule_name |
直接對應。 |
acct |
event.idm.read_only_udm.target.user.userid |
移除引號和反斜線後的直接對應。 |
addr |
event.idm.read_only_udm.target.ip 、event.idm.read_only_udm.target.asset.ip |
如果不是空白、? 或 UNKNOWN ,則直接對應。 |
ApplicationProtocol |
event.idm.read_only_udm.network.application_protocol |
直接對應。 |
auid |
event.idm.read_only_udm.additional.fields |
鍵:auid ,值:auid |
comm |
event.idm.read_only_udm.target.process.command_line |
直接對應。 |
command |
event.idm.read_only_udm.target.process.command_line |
移除開頭/結尾的空白字元後,直接對應。 |
Computer |
event.idm.read_only_udm.principal.hostname 、event.idm.read_only_udm.principal.asset.hostname |
直接對應。如果留空,請使用 HostName 。 |
ConnectionID |
security_result.detection_fields |
鍵:Connection ID ,值:ConnectionID |
cwd |
event.idm.read_only_udm.target.process.file.full_path |
移除引號後的直接對應。 |
data |
message |
用於 grok 模式。 |
desc |
security_result.description |
直接對應。 |
description |
event.idm.read_only_udm.metadata.description 、security_result.description |
直接對應。 |
descript |
security_result.description |
移除雜湊後直接對應。 |
DeviceUUID |
event.idm.read_only_udm.metadata.product_log_id |
直接對應。 |
DNSQuery |
event.idm.read_only_udm.additional.fields |
鍵:DNSQuery ,值:DNSQuery |
DNSRecordType |
event.idm.read_only_udm.additional.fields |
鍵:DNSRecordType ,值:DNSRecordType |
DNSResponseType |
event.idm.read_only_udm.additional.fields |
鍵:DNSResponseType ,值:DNSResponseType |
DNS_TTL |
event.idm.read_only_udm.additional.fields |
鍵:DNS_TTL ,值:DNS_TTL |
DstIP |
event.idm.read_only_udm.target.ip 、event.idm.read_only_udm.target.asset.ip |
直接對應。 |
DstPort |
event.idm.read_only_udm.target.port |
直接對應,轉換為整數。 |
dvc |
event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip 、event.idm.read_only_udm.principal.hostname 、event.idm.read_only_udm.principal.asset.hostname 、event.idm.read_only_udm.intermediary.ip 、event.idm.read_only_udm.target.ip 、event.idm.read_only_udm.target.asset.ip 、event.idm.read_only_udm.target.hostname 、event.idm.read_only_udm.target.asset.hostname |
如果是有效 IP,則會對應至主體/目標 IP。如果主機名稱對應至主體/目標主機名稱,如果 IP 位址有效,也會用於中介 IP。 |
EgressInterface |
event.idm.read_only_udm.principal.asset.attribute.labels |
鍵:EgressInterface ,值:EgressInterface |
EgressVRF |
event.idm.read_only_udm.principal.asset.attribute.labels |
鍵:EgressVRF ,值:EgressVRF |
EgressZone |
event.idm.read_only_udm.target.location.name |
直接對應。 |
eventType |
event.idm.read_only_udm.metadata.product_event_type 、event.idm.read_only_udm.target.application |
直接對應。「SERVICE_START 」和「SERVICE_STOP 」已對應至「target.application 」,然後清除。 |
EventTime |
@timestamp |
剖析為時間戳記。 |
exe |
event.idm.read_only_udm.target.process.command_line |
移除引號和反斜線後的直接對應。 |
extended_description |
event.idm.read_only_udm.metadata.description |
移除連字號和引號後的直接對應。 |
Facility |
event.idm.read_only_udm.principal.resource.attribute.labels |
鍵:Facility ,值:Facility |
filepath |
event.idm.read_only_udm.principal.process.file.full_path |
直接對應。 |
file_path |
event.idm.read_only_udm.target.file.full_path |
直接對應。 |
file_path_value |
event.idm.read_only_udm.target.file.full_path |
直接對應。 |
FirstPacketSecond |
security_result.detection_fields |
鍵:FirstPacketSecond ,值:FirstPacketSecond |
from |
event.idm.read_only_udm.network.email.from |
移除角括號後直接對應。 |
generic_ip |
event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip |
如果 IP 有效且不是 A256: ,則直接對應。 |
gid |
event.idm.read_only_udm.target.user.group_identifiers |
直接對應。 |
grp |
event.idm.read_only_udm.target.group.group_display_name |
移除引號和反斜線後的直接對應。 |
hashing_algo |
security_result.summary |
直接對應。 |
home |
event.idm.read_only_udm.target.file.full_path |
直接對應。 |
HostName |
Computer |
如果 Computer 為空,則使用這個值。 |
HostIP |
event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip |
系統會擷取 % 前的 HostIP 部分,並對應為 validated_ip 。 |
hostname |
event.idm.read_only_udm.target.hostname 、event.idm.read_only_udm.target.asset.hostname 、event.idm.read_only_udm.principal.hostname 、event.idm.read_only_udm.principal.asset.hostname |
如果不是空白或 ? ,則直接對應。 |
host_name |
event.idm.read_only_udm.target.hostname 、event.idm.read_only_udm.target.asset.hostname |
直接對應。 |
InitiatorBytes |
event.idm.read_only_udm.network.sent_bytes |
直接對應,轉換為無正負號整數。 |
InitiatorPackets |
event.idm.read_only_udm.network.sent_packets |
直接對應,轉換為整數。 |
insertId |
event.idm.read_only_udm.metadata.product_log_id |
直接對應。 |
InstanceID |
security_result.detection_fields |
鍵:Instance ID ,值:InstanceID |
int_dvc |
event.idm.read_only_udm.intermediary.hostname |
直接對應。 |
ip |
event.idm.read_only_udm.target.ip 、event.idm.read_only_udm.target.asset.ip 、event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip |
直接對應。 |
ip_protocol |
event.idm.read_only_udm.network.ip_protocol |
直接對應。 |
laddr |
event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip |
如果不是空白或 ? ,則直接對應。 |
level |
security_result.severity |
如果 info ,請設為 INFORMATIONAL 。 |
log.syslog.facility.name |
event.idm.read_only_udm.target.application |
直接對應。 |
log.syslog.severity.name |
security_result.severity |
如果 Emergency ,請設為 HIGH 。 |
logName |
logname |
直接對應。 |
log_description |
security_result.description |
直接對應。 |
log_level |
security_result.severity |
如果 error ,請設為 ERROR 。 |
log_summary |
security_result.summary |
直接對應。 |
logger_name |
event.idm.read_only_udm.principal.resource.attribute.labels |
鍵:logger_name ,值:logger_name |
log_type |
event.idm.read_only_udm.metadata.log_type |
硬式編碼為 NIX_SYSTEM 。 |
lport |
event.idm.read_only_udm.principal.port |
直接對應,轉換為整數。 |
MG |
event.idm.read_only_udm.principal.resource.attribute.labels |
鍵:MG ,值:MG |
method |
event.idm.read_only_udm.network.http.method |
直接對應,並轉換為大寫。 |
msg1 |
event.idm.read_only_udm.metadata.description 、event.idm.read_only_udm.additional.fields 、security_result.description |
使用 grok 模式剖析。如果 event_type 是 GENERIC_EVENT ,則會對應到 description 。 |
msg2 |
event.idm.read_only_udm.network.received_bytes 、security_result.summary |
如果包含數字,則會轉換為不帶正負號的整數,並對應至 received_bytes 。否則會對應至 summary 。 |
NAPPolicy |
security_result.rule_labels |
鍵:NAPPolicy ,值:NAPPolicy |
name |
event.idm.read_only_udm.target.process.file.full_path |
移除引號後的直接對應。 |
outcome |
security_result.action |
如果 Succeeded 包含 success ,請設為 ALLOW 。 |
p_id |
event.idm.read_only_udm.target.process.pid |
直接對應。 |
pid |
event.idm.read_only_udm.target.process.pid 、event.idm.read_only_udm.principal.process.pid |
直接對應。 |
principal_hostname |
event.idm.read_only_udm.principal.hostname 、event.idm.read_only_udm.principal.asset.hostname |
直接對應。 |
principal_ip |
event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip |
直接對應。 |
principal_present |
event.idm.read_only_udm.metadata.event_type |
如果 true 和 has_target 是 true ,請將 event_type 設為 NETWORK_UNCATEGORIZED 。如果 true 或 user_present 是 true ,請將 event_type 設為 USER_UNCATEGORIZED 。 |
process |
event.idm.read_only_udm.target.application 、event.idm.read_only_udm.metadata.product_event_type |
直接對應。如果 eventType 為空白,則會做為 target.application 使用。 |
ProcessID |
event.idm.read_only_udm.principal.process.pid |
直接對應,轉換為字串。 |
ProcessName |
event.idm.read_only_udm.principal.resource.attribute.labels |
鍵:ProcessName ,值:ProcessName |
prod_eve_type |
event.idm.read_only_udm.metadata.product_event_type |
直接對應。 |
product_event_type |
event.idm.read_only_udm.metadata.product_event_type |
直接對應。 |
Protocol |
event.idm.read_only_udm.network.ip_protocol |
如果相符項目為 icmp 、udp 或 tcp (不區分大小寫),則會對應至大寫值。 |
proto |
event.idm.read_only_udm.network.application_protocol |
如果 ssh 或 ssh2 ,請設為 SSH 。 |
pwd |
event.idm.read_only_udm.target.file.full_path |
直接對應。 |
reason |
security_result.summary 、security_result.description |
與 action 和 desc 搭配使用,即可建立 security_result.description 。也對應到「security_result.summary 」。 |
relayHostname |
event.idm.read_only_udm.intermediary.hostname |
直接對應。 |
relayIp |
event.idm.read_only_udm.intermediary.ip |
直接對應。 |
res |
security_result.summary |
直接對應。 |
resource.labels.instance_id |
event.idm.read_only_udm.target.resource.product_object_id |
直接對應。 |
resource.labels.project_id |
event.idm.read_only_udm.target.asset.attribute.cloud.project.id |
直接對應。 |
resource.labels.zone |
event.idm.read_only_udm.target.asset.attribute.cloud.availability_zone |
直接對應。 |
resource.type |
event.idm.read_only_udm.target.resource.resource_subtype |
直接對應。 |
response_code |
event.idm.read_only_udm.network.http.response_code |
直接對應,轉換為整數。 |
ResponderBytes |
event.idm.read_only_udm.network.received_bytes |
直接對應,轉換為無正負號整數。 |
ResponderPackets |
event.idm.read_only_udm.network.received_packets |
直接對應,轉換為整數。 |
rhost |
event.idm.read_only_udm.additional.fields |
鍵:rhost ,值:rhost |
ruser |
srcUser |
直接對應。 |
sec_action |
security_result.action |
根據 action 或 eventType 對應。 |
sec_summary |
security_result.summary |
直接對應。 |
security_action |
security_result.action |
直接對應。 |
sent_bytes |
event.idm.read_only_udm.network.sent_bytes |
直接對應,轉換為無正負號整數。 |
ses |
event.idm.read_only_udm.network.session_id 、event.idm.read_only_udm.network.session_duration |
如果是數值,則會解析為 UNIX 時間戳記,並對應至 session_duration 。否則會對應至 session_id 。 |
SeverityLevel |
security_result.severity |
根據值對應至不同嚴重程度 (notice/info -> INFORMATIONAL、warn -> HIGH、error -> ERROR、other -> UNKNOWN_SEVERITY)。 |
sessionId |
event.idm.read_only_udm.network.session_id |
直接對應。 |
size |
event.idm.read_only_udm.network.received_bytes |
直接對應,轉換為無正負號整數。 |
source |
event.idm.read_only_udm.principal.hostname 、event.idm.read_only_udm.principal.asset.hostname |
移除開頭空白字元後直接對應。 |
SourceSystem |
event.idm.read_only_udm.principal.resource.attribute.labels 、event.idm.read_only_udm.principal.platform |
鍵:SourceSystem ,值:SourceSystem 。也會對應至 platform (Linux -> LINUX、Windows -> WINDOWS、Mac/iOS -> MAC)。 |
SrcIP |
event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip |
直接對應。 |
SrcPort |
event.idm.read_only_udm.principal.port |
直接對應,轉換為整數。 |
srcIp |
event.idm.read_only_udm.principal.ip 、event.idm.read_only_udm.principal.asset.ip |
直接對應。 |
srcPort |
event.idm.read_only_udm.principal.port |
直接對應,轉換為整數。 |
srcUser |
event.idm.read_only_udm.principal.user.userid |
直接對應。 |
src_user |
event.idm.read_only_udm.principal.user.userid |
直接對應。 |
src_user_display_name |
event.idm.read_only_udm.principal.user.user_display_name |
直接對應。 |
status |
security_result.action |
如果 Deferred ,請設為 BLOCK 。如果 Sent ,請設為 ALLOW 。 |
summary |
security_result.summary |
直接對應。 |
SyslogMessage |
security_result.description |
直接對應。 |
targetEmail |
event.idm.read_only_udm.network.email.to |
直接對應。 |
targetEmailfrom |
event.idm.read_only_udm.network.email.from |
直接對應。 |
targetHostname |
event.idm.read_only_udm.target.hostname 、event.idm.read_only_udm.target.asset.hostname |
直接對應。 |
target_hostname |
event.idm.read_only_udm.target.hostname 、event.idm.read_only_udm.target.asset.hostname |
直接對應。 |
target_ip |
event.idm.read_only_udm.target.ip 、event.idm.read_only_udm.target.asset.ip |
直接對應。 |
target_mac |
event.idm.read_only_udm.target.mac |
直接對應。 |
target_uri |
event.idm.read_only_udm.target.url |
直接對應。 |
TenantId |
event.idm.read_only_udm.principal.user.product_object_id |
直接對應。 |
terminal |
event.idm.read_only_udm.additional.fields |
鍵:terminal ,值:terminal (如不為空白) 或 ? 。 |
TimeGenerated |
event.idm.read_only_udm.metadata.collected_timestamp |
剖析為時間戳記。 |
timestamp |
@timestamp |
剖析為時間戳記。 |
tls_cipher |
event.idm.read_only_udm.network.tls.cipher |
直接對應。 |
Type |
event.idm.read_only_udm.principal.resource.attribute.labels |
鍵:Type ,值:Type |
uid |
event.idm.read_only_udm.principal.user.userid |
如果 0 ,請設為 root 。否則為直接對應。 |
uid_2 |
event.idm.read_only_udm.target.user.userid |
如果 uid 為空白,則直接對應。 |
unit |
event.idm.read_only_udm.target.application |
直接對應。 |
url |
event.idm.read_only_udm.target.url |
直接對應。 |
user |
username |
直接對應。 |
username |
event.idm.read_only_udm.target.user.userid 、event.idm.read_only_udm.principal.user.userid |
直接對應。 |
user_display_name |
event.idm.read_only_udm.target.user.user_display_name |
直接對應。 |
user_present |
event.idm.read_only_udm.metadata.event_type |
如果 true 或 principal_present 是 true ,請將 event_type 設為 USER_UNCATEGORIZED 。 |
_Internal_WorkspaceResourceId |
event.idm.read_only_udm.target.resource.attribute.labels 、event.idm.read_only_udm.target.resource.product_object_id |
鍵:_Internal_WorkspaceResourceId ,值:_Internal_WorkspaceResourceId 。系統會擷取訂閱 ID,並對應至 product_object_id 。 |
_ItemId |
event.idm.read_only_udm.principal.resource.attribute.labels |
鍵:_ItemId ,值:_ItemId |
_ResourceId |
event.idm.read_only_udm.principal.resource.attribute.labels 、event.idm.read_only_udm.principal.resource.product_object_id |
鍵:_ResourceId ,值:_ResourceId 。系統會擷取訂閱 ID,並對應至 product_object_id 。 |
_timestamp |
@timestamp |
剖析為時間戳記。 |
_timestamp_tz |
@timestamp |
剖析為時間戳記。 |
event.idm.read_only_udm.metadata.event_type
:一開始設為GENERIC_EVENT
,然後根據剖析器邏輯覆寫。event.idm.read_only_udm.metadata.product_name
:硬式編碼為Unix System
。event.idm.read_only_udm.extensions.auth.type
:針對特定事件類型設為MACHINE
。event.idm.read_only_udm.target.asset.attribute.cloud.environment
:設為GOOGLE_CLOUD_PLATFORM
,以取得 Google Cloud 稽核記錄。event.idm.read_only_udm.target.resource.resource_type
:設為VIRTUAL_MACHINE
,以取得 Google Cloud 稽核記錄。event.idm.read_only_udm.extensions.auth.mechanism
:登入事件請設為USERNAME_PASSWORD
。has_target_resource
:如果存在resource.labels.instance_id
或_Internal_WorkspaceResourceId
,請設為true
。
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。