收集 AWS Elastic MapReduce 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何將 AWS Elastic MapReduce (EMR) 記錄檔擷取至 Google Security Operations。AWS EMR 是雲端原生大數據平台,可快速處理大量資料。將 EMR 記錄檔整合至 Google SecOps,即可分析叢集活動並偵測潛在安全威脅。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- AWS 的特殊存取權
設定 Amazon S3 儲存貯體
- 按照這份使用者指南建立 Amazon S3 值區:建立值區
- 請儲存 bucket 的「名稱」和「區域」,以供後續使用。
- 按照這份使用者指南建立使用者:建立 IAM 使用者。
- 選取建立的「使用者」。
- 選取「安全憑證」分頁標籤。
- 在「Access Keys」部分中,按一下「Create Access Key」。
- 選取「第三方服務」做為「用途」。
- 點選「下一步」。
- 選用:新增說明標記。
- 按一下「建立存取金鑰」。
- 按一下「下載 CSV 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後使用。
- 按一下 [完成]。
- 選取 [權限] 分頁標籤。
- 在「權限政策」部分,按一下「新增權限」。
- 選取「新增權限」。
- 選取「直接附加政策」。
- 搜尋並選取 AmazonS3FullAccess 和 CloudWatchLogsFullAccess 政策。
- 點選「下一步」。
- 按一下「新增權限」。
如何設定 AWS EMR 轉送記錄檔
- 登入 AWS 管理主控台。
- 在搜尋列中輸入 EMR,然後從服務清單中選取「Amazon EMR」。
- 按一下「叢集」。
- 找出並選取要啟用記錄功能的 EMR 叢集。
- 在「叢集詳細資料」頁面中,按一下「編輯」。
- 在「編輯叢集」畫面中,前往「記錄」專區。
- 選取「啟用」記錄功能。
- 指定要儲存記錄的 S3 值區。
- 以
s3://your-bucket-name/
格式指定 S3 URI (這會將所有 EMR 記錄檔儲存在 bucket 的根目錄中)。 - 選取下列記錄類型:
Step logs
Application logs
YARN logs
System logs
HDFS Logs
(如果您使用 Hadoop)
- 按一下 [儲存]。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 「SIEM 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態消息」,設定動態消息
如要為這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。
如要設定單一動態饋給,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中,輸入動態饋給的名稱 (例如「AWS EMR Logs」)。
- 選取「Amazon S3」做為「來源類型」。
- 選取「AWS EMR」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
- 區域:Amazon S3 值區所在的區域。
- S3 URI:bucket URI。
s3://your-log-bucket-name/
- 請將
your-log-bucket-name
替換為 S3 值區的實際名稱。
- 請將
- URI 是:根據 bucket 結構,選取「Directory」(目錄) 或「Directory which includes subdirectories」(包含子目錄的目錄)。
來源刪除選項:根據擷取偏好設定選取刪除選項。
存取金鑰 ID:具備 S3 值區讀取權限的使用者存取金鑰。
存取密鑰:使用者的存取密鑰,具備從 S3 bucket 讀取的權限。
資產命名空間:資產命名空間。
擷取標籤:要套用至這個動態饋給事件的標籤。
點選「下一步」。
在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」。
從內容中心設定動態饋給
為下列欄位指定值:
- 區域:Amazon S3 值區所在的區域。
- S3 URI:bucket URI。
s3://your-log-bucket-name/
- 請將
your-log-bucket-name
替換為 S3 值區的實際名稱。
- 請將
- URI 是:根據 bucket 結構,選取「Directory」(目錄) 或「Directory which includes subdirectories」(包含子目錄的目錄)。
- 來源刪除選項:根據擷取偏好設定選取刪除選項。
存取金鑰 ID:具備 S3 值區讀取權限的使用者存取金鑰。
存取密鑰:使用者的存取密鑰,具備從 S3 bucket 讀取的權限。
進階選項
- 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
- 來源類型:將記錄收集到 Google SecOps 的方法。
- 資產命名空間:與動態饋給相關聯的命名空間。
- 擷取標籤:套用至這個動態饋給所有事件的標籤。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
app_id |
additional.fields[].key |
系統會透過剖析器指派「APP」值 |
app_id |
additional.fields[].value.string_value |
直接從原始記錄中的 APP 欄位對應。 |
app_name |
additional.fields[].key |
「APPNAME」值是透過剖析器指派 |
app_name |
additional.fields[].value.string_value |
直接從原始記錄中的 APPNAME 欄位對應。 |
blockid |
additional.fields[].key |
「blockid」值是透過剖析器指派 |
blockid |
additional.fields[].value.string_value |
直接從原始記錄中的 blockid 欄位對應。 |
bytes |
network.received_bytes |
直接從原始記錄的 bytes 欄位對應,並轉換為不帶正負號的整數。 |
cliID |
additional.fields[].key |
「cliID」值是透過剖析器指派 |
cliID |
additional.fields[].value.string_value |
直接從原始記錄中的 cliID 欄位對應。 |
cmd |
target.process.command_line |
直接從原始記錄中的 cmd 欄位對應。 |
comp_name |
additional.fields[].key |
系統會透過剖析器指派「COMP」值 |
comp_name |
additional.fields[].value.string_value |
直接從原始記錄中的 COMP 欄位對應。 |
configuration_version |
additional.fields[].key |
「configuration_version」值是透過剖析器指派 |
configuration_version |
additional.fields[].value.string_value |
直接從原始記錄中的 configuration_version 欄位對應,並轉換為字串。 |
containerID |
additional.fields[].key |
「containerID」值是透過剖析器指派 |
containerID |
additional.fields[].value.string_value |
直接從原始記錄中的 CONTAINERID 欄位對應。 |
description |
security_result.description |
直接從原始記錄中的 description 欄位對應。 |
dfs.FSNamesystem.* |
additional.fields[].key |
金鑰是透過將「dfs.FSNamesystem.」與 JSON 資料中的金鑰串連而產生。 |
dfs.FSNamesystem.* |
additional.fields[].value.string_value |
值會直接從 dfs.FSNamesystem JSON 物件中的對應值對應,並轉換為字串。 |
duration |
additional.fields[].key |
系統會透過剖析器指派「duration」值 |
duration |
additional.fields[].value.string_value |
直接從原始記錄中的 duration 欄位對應。 |
duration |
network.session_duration.seconds |
直接從原始記錄的 duration 欄位對應,並轉換為整數。 |
environment |
additional.fields[].key |
透過剖析器指派「環境」值 |
environment |
additional.fields[].value.string_value |
直接從原始記錄中的 environment 欄位對應。使用 grok 和字串操作從 ip_port 欄位擷取。使用 grok 和字串操作從 ip_port 欄位擷取,並轉換為整數。 |
event_type |
metadata.event_type |
由剖析器邏輯根據 principal 和 target 資訊是否存在而決定。可以是 NETWORK_CONNECTION 、USER_RESOURCE_ACCESS 、STATUS_UPDATE 或 GENERIC_EVENT 。 |
file_path |
target.file.full_path |
直接從原始記錄中的 file_path 欄位對應。 |
host |
principal.hostname |
直接從原始記錄中的 host 欄位對應。 |
host |
target.hostname |
直接從原始記錄中的 host 欄位對應。 |
host_ip |
principal.ip |
直接從原始記錄中的 host_ip 欄位對應。 |
host_port |
principal.port |
直接從原始記錄的 host_port 欄位對應,並轉換為整數。 |
http_url |
target.url |
直接從原始記錄中的 http_url 欄位對應。 |
index |
additional.fields[].key |
系統會透過剖析器指派「index」值 |
index |
additional.fields[].value.string_value |
直接從原始記錄中的 index 欄位對應。 |
kind |
metadata.product_event_type |
直接從原始記錄中的 kind 欄位對應。值「AWS_EMR」是透過剖析器指派 值「AWS EMR」是透過剖析器指派 值「AMAZON」是透過剖析器指派 |
offset |
additional.fields[].key |
系統會透過剖析器指派「offset」值 |
offset |
additional.fields[].value.string_value |
直接從原始記錄中的 offset 欄位對應。 |
op |
metadata.product_event_type |
直接從原始記錄中的 op 或 OPERATION 欄位對應。 |
proto |
network.application_protocol |
使用 grok 從 http_url 欄位擷取,並轉換為大寫。 |
puppet_version |
additional.fields[].key |
透過剖析器指派「puppet_version」值 |
puppet_version |
additional.fields[].value.string_value |
直接從原始記錄中的 puppet_version 欄位對應。 |
queue_name |
additional.fields[].key |
「queue_name」值是透過剖析器指派 |
queue_name |
additional.fields[].value.string_value |
直接從原始記錄中的 queue_name 欄位對應。 |
report_format |
additional.fields[].key |
透過剖析器指派「report_format」值 |
report_format |
additional.fields[].value.string_value |
直接從原始記錄中的 report_format 欄位對應,並轉換為字串。 |
resource |
additional.fields[].key |
系統會透過剖析器指派「資源」值 |
resource |
additional.fields[].value.string_value |
直接從原始記錄中的 resource 欄位對應。 |
result |
security_result.action_details |
直接從原始記錄中的 RESULT 欄位對應。 |
security_id |
additional.fields[].key |
「security_id」值是透過剖析器指派 |
security_id |
additional.fields[].value.string_value |
直接從原始記錄中的 security_id 欄位對應。 |
severity |
security_result.severity |
對應原始記錄中的 severity 欄位。「INFO 」對應到「INFORMATIONAL 」,「WARN 」對應到「MEDIUM 」。 |
srvID |
additional.fields[].key |
「srvID」值是透過剖析器指派 |
srvID |
additional.fields[].value.string_value |
直接從原始記錄中的 srvID 欄位對應。 |
status |
additional.fields[].key |
系統會透過剖析器指派「狀態」值 |
status |
additional.fields[].value.string_value |
直接從原始記錄中的 status 欄位對應。 |
summary |
security_result.summary |
直接從原始記錄中的 summary 欄位對應。 |
target_app |
target.application |
直接從原始記錄中的 TARGET 欄位對應。 |
target_ip |
target.ip |
直接從原始記錄中的 target_ip 或 IP 欄位對應。 |
target_port |
target.port |
直接從原始記錄的 target_port 欄位對應,並轉換為整數。 |
timestamp |
metadata.event_timestamp |
直接從原始記錄中的 timestamp 欄位對應,並剖析為 ISO8601 時間戳記。 |
timestamp |
event.timestamp |
直接從原始記錄中的 timestamp 欄位對應,並剖析為 ISO8601 時間戳記。 |
trade_date |
additional.fields[].key |
透過剖析器指派「trade_date」值 |
trade_date |
additional.fields[].value.string_value |
直接從原始記錄中的 trade_date 欄位對應。 |
transaction_uuid |
additional.fields[].key |
透過剖析器指派「transaction_uuid」值 |
transaction_uuid |
additional.fields[].value.string_value |
直接從原始記錄中的 transaction_uuid 欄位對應。 |
type |
additional.fields[].key |
「type」值是透過剖析器指派 |
type |
additional.fields[].value.string_value |
直接從原始記錄中的 type 欄位對應。 |
user |
target.user.userid |
直接從原始記錄中的 USER 或 ugi 欄位對應。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。