收集 Brocade 交換器記錄
支援的國家/地區:
Google SecOps
SIEM
這個剖析器會使用符合各種記錄格式的 grok 模式,從 Brocade 交換器記錄中擷取欄位。接著,它會將這些擷取的欄位對應至 UDM 欄位、處理不同的記錄結構,並使用供應商和產品資訊等中繼資料來擴充資料。剖析器也會執行資料轉換作業,例如轉換嚴重程度和處理重複訊息,然後產生最終 UDM 輸出內容。
事前準備
- 確認您有 Google Security Operations 執行個體。
- 確認您使用的是 Windows 2016 以上版本,或是搭載 systemd 的 Linux 主機。
- 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
- 確認您具備 Brocade Switch 的 CLI 管理員存取權。
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
- 複製並儲存「機構詳細資料」專區中的客戶 ID。
安裝 Bindplane 代理程式
- 如要在 Windows 上安裝,請執行下列指令碼:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- 如要在 Linux 上安裝,請執行下列指令碼:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- 如需其他安裝選項,請參閱這份安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
- 存取安裝 Bindplane 的電腦。
按照下列方式編輯
config.yaml
檔案:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: Brocade_Switch raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
重新啟動 Bindplane 代理程式,以套用變更:
sudo systemctl restart bindplane
設定從 Brocade 交換器匯出系統記錄檔
- 使用適當的憑證,透過 SSH 或 Telnet 連線至 Brocade 交換器。
執行下列指令,指定系統記錄伺服器 (Bindplane) 的 IP 位址或主機名稱,以及通訊埠:
syslogadmin --set -ip <IP> -port <Port>
例如:
syslogadmin --set -ip 10.10.10.10 -port 54525
執行下列指令,顯示已設定的系統記錄伺服器:
syslogadmin --show -ip
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
application |
additional.fields[].key :「application」additional.fields[].value.string_value : |
KV_DATA 欄位存在時,從原始記錄檔的 application@1588 欄位擷取的值。 |
class |
additional.fields[].key : "class"additional.fields[].value.string_value : |
KV_DATA 欄位存在時,從原始記錄檔的 class@1588 欄位擷取的值。 |
domain |
principal.administrative_domain |
從符合 domain 欄位的 grok 模式擷取的值。 |
Event |
additional.fields[].key : "event_category"additional.fields[].value.string_value : |
KV_DATA 欄位存在時,從原始記錄檔的 arg0@1588 欄位擷取的值。 |
event_id |
metadata.product_log_id |
從符合 event_id 欄位的 grok 模式擷取的值。 |
event_type |
metadata.product_event_type |
從符合 event_type 欄位的 grok 模式擷取的值。 |
flags |
additional.fields[].key :「flags」additional.fields[].value.string_value : |
從符合 flags 欄位的 grok 模式擷取的值。 |
Info |
metadata.description |
從 Info 欄位擷取的值,並使用 grok 剖析。 |
interface |
app_protocol_src |
KV_DATA 欄位存在時,從原始記錄的 interface@1588 欄位擷取的值。用於衍生 network.application_protocol 。 |
ip |
principal.ip |
使用 grok 剖析從 ip 欄位擷取的值。如果與從 Info 欄位擷取的 IP 不同,則會併入 principal.ip 。 |
Info 、IP Addr |
principal.ip |
從 Info 欄位中的 IP Addr 欄位擷取的值,並使用 grok 剖析。 |
log |
additional.fields[].key :「log」additional.fields[].value.string_value : |
KV_DATA 欄位存在時,從原始記錄檔的 log@1588 欄位擷取的值。 |
msg |
metadata.description |
從 msg 欄位擷取的值,並使用 grok 剖析。 |
msgid |
additional.fields[].key :「msgid」additional.fields[].value.string_value : |
KV_DATA 欄位存在時,從原始記錄檔的 msgid@1588 欄位擷取的值。 |
prin_host |
principal.hostname principal.asset.hostname |
從符合 prin_host 欄位的 grok 模式擷取的值。 |
product_version |
metadata.product_version |
從符合 product_version 欄位的 grok 模式擷取的值。 |
repeat_count |
additional.fields[].key :「repeat_count」additional.fields[].value.string_value : |
從 msg 欄位擷取的值,並使用 grok 剖析。 |
role 、user_role |
principal.user.attribute.roles[].name |
從 role@1588 或 user_role 欄位擷取的值。如果值為「admin」,則會替換為「Admin」。 |
sequence_number |
additional.fields[].key :「sequence_number」additional.fields[].value.string_value : |
從符合 sequence_number 欄位的 grok 模式擷取的值。 |
severity |
security_result.severity |
使用 grok 剖析從 severity 欄位擷取的值。對應至 UDM 嚴重程度值 (INFORMATIONAL、ERROR、CRITICAL、MEDIUM)。 |
Status |
security_result.summary |
從 Status 欄位擷取的值。 |
switch_name |
additional.fields[].key : "switch_name"additional.fields[].value.string_value : |
從符合 switch_name 欄位的 grok 模式擷取的值。 |
target_application |
target.application |
從符合 target_application 欄位的 grok 模式擷取的值。 |
time |
additional.fields[].key :「time」additional.fields[].value.string_value : |
從 kv_data3 欄位中的 time 欄位擷取的值。 |
timestamp |
metadata.event_timestamp.seconds |
從 timestamp 欄位擷取的值,並使用日期篩選器剖析。 |
user |
principal.user.userid principal.user.user_display_name |
從 user 或 user@1588 欄位擷取的值,並使用 grok 剖析。從「principal.hostname 」複製的項目。從「principal.ip 」複製的項目。從 metadata.product_event_type 複製,或根據條件設為「STATUS_UPDATE」。從記錄的 create_time.nanos 複製。由剖析器邏輯根據 has_principal 、has_target 、has_userid 和 event_type 的值決定。可以是「SYSTEM_AUDIT_LOG_UNCATEGORIZED」、「STATUS_UPDATE」或「GENERIC_EVENT」。硬式編碼為「BROCADE_SWITCH」。硬式編碼為「BROCADE」。硬式編碼為「BROCADE_SWITCH」。衍生自 interface 欄位,或在 interface 欄位包含「SSH」時設為「SSH」。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。