收集 AWS Elastic MapReduce 記錄

支援的國家/地區:

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

事前準備

請確認您已完成下列事前準備事項:

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

設定 Amazon S3 儲存貯體

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

如何設定 AWS EMR 轉送記錄檔

  1. 登入 AWS 管理主控台
  2. 在搜尋列中輸入 EMR,然後從服務清單中選取「Amazon EMR」
  3. 按一下「叢集」
  4. 找出並選取要啟用記錄功能的 EMR 叢集
  5. 在「叢集詳細資料」頁面中,按一下「編輯」
  6. 在「編輯叢集」畫面中,前往「記錄」專區。
  7. 選取「啟用」記錄功能。
  8. 指定要儲存記錄的 S3 值區
  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 設定」>「動態消息」
  • 內容中心 > 內容包

依序前往「SIEM 設定」>「動態消息」,設定動態消息

如要為這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。

如要設定單一動態饋給,請按照下列步驟操作:

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在下一個頁面中,按一下「設定單一動態饋給」
  4. 在「動態饋給名稱」欄位中,輸入動態饋給的名稱 (例如「AWS EMR Logs」)。
  5. 選取「Amazon S3」做為「來源類型」
  6. 選取「AWS EMR」做為「記錄類型」
  7. 點選「下一步」
  8. 指定下列輸入參數的值:

    • 區域: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 讀取的權限。

    • 資產命名空間資產命名空間

    • 擷取標籤:要套用至這個動態饋給事件的標籤。

  9. 點選「下一步」

  10. 在「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 由剖析器邏輯根據 principaltarget 資訊是否存在而決定。可以是 NETWORK_CONNECTIONUSER_RESOURCE_ACCESSSTATUS_UPDATEGENERIC_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 直接從原始記錄中的 opOPERATION 欄位對應。
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_ipIP 欄位對應。
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 直接從原始記錄中的 USERugi 欄位對應。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。