收集 AWS Elastic MapReduce 記錄

剖析器版本:1.0

支援的國家/地區:

本文說明如何將 AWS Elastic MapReduce (EMR) 記錄擷取至 Google Security Operations。AWS EMR 是雲端原生大數據平台,可快速處理大量資料。將 EMR 記錄整合至 Google SecOps,即可分析叢集活動並偵測潛在安全威脅。

事前準備

請確認您符合下列必要條件:

  • Google SecOps 執行個體
  • AWS 特殊存取權

設定 Amazon S3 儲存貯體

  1. 按照這份使用者指南建立 Amazon S3 bucket:建立 bucket
  2. 儲存 bucket 的「名稱」和「區域」,稍後會用到。
  3. 按照這份使用者指南建立使用者:建立 IAM 使用者。
  4. 選取建立的「使用者」。
  5. 選取「安全憑證」分頁標籤。
  6. 在「存取金鑰」部分,按一下「建立存取金鑰」。
  7. 選取「第三方服務」做為「用途」。
  8. 點選「下一步」。
  9. 新增說明標記 (如有需要)。
  10. 按一下「建立存取金鑰」。
  11. 按一下「下載 CSV 檔案」,儲存「存取金鑰」和「私密存取金鑰」以供日後使用。
  12. 按一下「完成」。
  13. 選取 [權限] 分頁標籤。
  14. 在「權限政策」部分,按一下「新增權限」。
  15. 選取「新增權限」。
  16. 選取「直接附加政策」。
  17. 搜尋並選取「AmazonS3FullAccess」和「CloudWatchLogsFullAccess」政策。
  18. 點選「下一步」。
  19. 按一下「Add permissions」。

如何設定 AWS EMR 轉送記錄檔

  1. 登入 AWS 管理主控台。
  2. 在搜尋列中輸入「EMR」,然後從服務清單中選取「Amazon EMR」。
  3. 按一下「叢集」。
  4. 找出並選取要啟用記錄功能的 EMR 叢集。
  5. 在「叢集詳細資料」頁面中,按一下「編輯」。
  6. 在「編輯叢集」畫面中,前往「記錄」部分。
  7. 選取「啟用」記錄功能。
  8. 指定要儲存記錄的 S3 bucket。
  9. 以 s3://your-bucket-name/ 格式指定 S3 URI (這會將所有 EMR 記錄儲存在 bucket 的根目錄中)。
  10. 選取下列記錄類型:
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs (如果您使用 Hadoop)
  11. 按一下 [儲存]。

設定動態饋給

在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:

  • SIEM 設定 > 摘要 > 新增摘要
  • 依序點選「內容中心」「內容包」「開始使用」

如何設定 AWS EMR 動態饋給

  1. 按一下「Amazon Cloud Platform」套件。
  2. 找出 AWS EMR 記錄類型。
  3. 在下列欄位中指定值。

    • 來源類型:Amazon SQS V2
    • 佇列名稱:要從中讀取的 SQS 佇列名稱
    • S3 URI:bucket URI。
      • s3://your-log-bucket-name/
        • 將 your-log-bucket-name 替換為 S3 bucket 的實際名稱。
    • 來源刪除選項:根據擷取偏好設定選取刪除選項。

    • 檔案存在時間上限:納入在過去天數內修改的檔案。預設值為 180 天。

    • SQS 佇列存取金鑰 ID:帳戶存取金鑰,為 20 個英數字元的字串。

    • SQS 佇列私密存取金鑰:帳戶存取金鑰,為 40 個英數字元的字串。

    進階選項

    • 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
    • 資產命名空間:與動態饋給相關聯的命名空間。
    • 擷取標籤:套用至這個動態饋給所有事件的標籤。
  4. 點選「建立動態饋給」。

如要進一步瞭解如何為這個產品系列的各種記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。

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」值
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 專業人員尋求解答。