收集 Carbon Black EDR 記錄
支援的國家/地區:
    
      
      
        
        
        
  
    
      Google SecOps
    
  
      
    
      
      
        
        
        
  
    
      SIEM
    
  
      
    
    
  本文說明如何使用 AWS S3,從雲端和地端環境收集 Carbon Black EDR 記錄。剖析器會從 JSON、CSV 或系統記錄格式的訊息中擷取欄位,並將這些欄位正規化,然後對應至 UDM。這項服務可處理各種 Carbon Black 事件類型,包括網路連線、程序事件、檔案修改、登錄檔變更和 IOC 命中,並視情況以威脅情報和裝置資訊擴充資料。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體。
- AWS IAM 和 S3 的特殊權限存取權。
- 具備雲端或地端部署 Carbon Black EDR 的特殊存取權。
設定 Carbon Black EDR 內部部署
為地端設定 Amazon S3 儲存空間
- 按照這份使用者指南建立 Amazon S3 值區:建立值區
- 儲存 bucket 的「名稱」和「區域」,稍後會用到。
- 按照這份使用者指南建立使用者:建立 IAM 使用者。
- 選取建立的「使用者」。
- 選取「安全憑證」分頁標籤。
- 在「Access Keys」部分中,按一下「Create Access Key」。
- 選取「第三方服務」做為「用途」。
- 點選「下一步」。
- 選用:新增說明標記。
- 按一下「建立存取金鑰」。
- 按一下「下載 CSV 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後使用。
- 按一下 [完成]。
- 選取 [權限] 分頁標籤。
- 在「Permissions policies」(權限政策) 區段中,按一下「Add permissions」(新增權限)。
- 選取「新增權限」。
- 選取「直接附加政策」。
- 搜尋並選取 AmazonS3FullAccess 政策。
- 點選「下一步」。
- 按一下「Add permissions」。
在內部部署 EDR 伺服器上安裝 cb-event-forwarder
- 如果沒有 CbOpenSource 存放區,請安裝: - cd /etc/yum.repos.d curl -O https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
- 使用 YUM 安裝 RPM: - yum install cb-event-forwarder
- 如果您使用 EDR 7.1.0 以上版本,請執行下列指令碼,設定 EDR 必要的適當權限: - /usr/share/cb/integrations/event-forwarder/cb-edr-fix-permissions.sh
設定 cb-event-forwarder 輸出 JSON 記錄
- 開啟設定檔: - sudo nano /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf
- 修改下列參數: - [event_forwarder] output_format=json # Enable JSON format output_type=s3 # Send logs to AWS S3 s3_bucket_name=YOUR-S3-BUCKET-NAME s3_region=YOUR-S3-BUCKET-NAME s3_access_key_id=YOUR_AWS_ACCESS_KEY s3_secret_access_key=YOUR_AWS_SECRET_KEY s3_prefix=carbonblack/edr/logs
- 使用鍵盤儲存並結束: - 依序按下 Ctrl + X、Y 和 Enter 鍵。
 
- 啟動 cb-event-forwarder: - sudo systemctl enable cb-event-forwarder sudo systemctl restart cb-event-forwarder sudo systemctl status cb-event-forwarder
設定 Carbon Black Cloud Event Forwarder for S3
建立 AWS S3 Bucket
- 登入 AWS 管理主控台。
- 確認 AWS 區域與事件轉送程式的區域相符:
- 在 AWS 控制台頁面中,找出區域。
- 使用下拉式選單選取活動轉送器的正確區域。
- 下表列出每個 Carbon Black EDR URL 適用的 AWS 區域。- 「instance-alias」.my.carbonblack.io - 區域:美國東部 (北維吉尼亞)維吉尼亞州) (us-east-1)
- "instance-alias".my.cbcloud.de - 區域:歐洲 (法蘭克福) (eu-central-1)
- "instance-alias".my.cbcloud.sg 區域:亞太地區 (新加坡) (ap-southeast-1)
 
 
- 選取「服務」。
- 前往 S3 控制台。
- 按一下「建立值區」,開啟「建立值區」精靈。
- 在「Bucket name」(值區名稱) 中,輸入值區的專屬名稱 (例如 CB-EDR)。
- 確認「區域」預設為您先前選取的區域。
- 更新「封鎖公開存取」預設值,允許公開存取 (將記錄檔擷取至 Google SecOps 時,必須允許公開存取)。
- 選取「建立 bucket」。
 
設定 S3 值區,允許事件轉送器寫入事件
- 請按照這份使用者指南建立使用者:建立 IAM 使用者。
- 選取建立的「使用者」。
- 選取「安全憑證」分頁標籤。
- 在「Access Keys」部分中,按一下「Create Access Key」。
- 選取「第三方服務」做為「用途」。
- 點選「下一步」。
- 選用:新增說明標記。
- 按一下「建立存取金鑰」。
- 按一下「下載 CSV 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後使用。
- 按一下 [完成]。
- 選取 [權限] 分頁標籤。
- 在「Permissions policies」(權限政策) 區段中,按一下「Add permissions」(新增權限)。
- 選取「新增權限」。
- 選取「直接附加政策」。
- 搜尋 AmazonS3FullAccess 政策。
- 選取政策。
- 點選「下一步」。
- 按一下「Add permissions」。
在 EDR 控制台中設定事件轉送
- 登入 VMware Carbon Black Cloud。
- 前往「事件轉送器」分頁
- 啟用要讓產品上傳至 S3 的事件。
- 前往「Output and Type」(輸出和類型),然後設為「S3」。
- 請提供 S3 值區名稱,格式如下:<region>:<bucket-name>(例如us-east-1:cb-edr)。
- 選取 INI 格式的「上傳 AWS 憑證」檔案。
- 以下是設定檔範例: - AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-east-1
- 按一下「儲存」,然後重新啟動服務,變更就會生效。 
設定動態饋給
如要設定動態消息,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態消息」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中,輸入動態饋給的名稱 (例如「Carbon Black EDR Logs」)。
- 選取「Amazon S3 V2」做為「來源類型」。
- 選取「Carbon Black EDR」做為「記錄類型」。
- 點選「下一步」。
- 指定下列輸入參數的值: - S3 URI:值區 URI。
- s3:/BUCKET_NAME- 請將 BUCKET_NAME替換為實際值區名稱。
 
- 請將 
 
- 來源刪除選項:根據偏好選取刪除選項。
 
- S3 URI:值區 URI。
- 點選「下一步」。 
- 在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」。 
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 | 
|---|---|---|
| action | security_result.detection_fields[?key == 'action'].value | 原始記錄中的 action欄位值。 | 
| cb_server | intermediary.hostname | 原始記錄中的 cb_server欄位值。 | 
| cb_version | metadata.product_version | 原始記錄中的 cb_version欄位值。 | 
| child_pid | target.process.pid(適用於ingress.event.childproc項活動) | type為ingress.event.childproc時,原始記錄中的child_pid欄位值。 | 
| child_process_guid | target.process.product_specific_process_id(適用於ingress.event.childproc項活動) | 「CB:」與原始記錄中 child_process_guid欄位的值串連,前提是type為ingress.event.childproc。 | 
| child_username | target.user.userid(適用於ingress.event.childproc項活動) | type為ingress.event.childproc時,原始記錄中的child_username欄位值。 | 
| childproc_guid | target.process.product_specific_process_id(適用於endpoint.event.procstart項活動) | 「CB:」與原始記錄中 childproc_guid欄位的值串連,前提是type為endpoint.event.procstart。 | 
| childproc_hash.0 | target.process.file.md5(適用於endpoint.event.procstart項活動) | type為endpoint.event.procstart時,原始記錄中的childproc_hash陣列第一個元素。 | 
| childproc_hash.1 | target.process.file.sha256(適用於endpoint.event.procstart項活動) | 當 type為endpoint.event.procstart時,原始記錄中的childproc_hash陣列第二個元素。 | 
| childproc_name | target.process.file.full_path(適用於endpoint.event.procstart項活動) | type為endpoint.event.procstart時,原始記錄中的childproc_name欄位值。 | 
| childproc_pid | target.process.pid(適用於endpoint.event.procstart項活動) | type為endpoint.event.procstart時,原始記錄中的childproc_pid欄位值。 | 
| childproc_publisher.0.name | security_result.detection_fields[?key == 'childproc_publisher_name'].value(適用於endpoint.event.procstart項活動) | 「childproc_publisher_name:」與原始記錄中的 childproc_publisher.0.name值串連,前提是type為endpoint.event.procstart。 | 
| childproc_publisher.0.state | security_result.detection_fields[?key == 'childproc_publisher_state'].value(適用於endpoint.event.procstart項活動) | 「childproc_publisher_state:」與原始記錄中 childproc_publisher.0.state的值串連,前提是type為endpoint.event.procstart。 | 
| childproc_reputation | security_result.detection_fields[?key == 'childproc_reputation'].value(適用於endpoint.event.procstart項活動) | type為endpoint.event.procstart時,原始記錄中的childproc_reputation欄位值。 | 
| childproc_username | target.user.userid(適用於endpoint.event.procstart項活動) | type為endpoint.event.procstart時,原始記錄中的childproc_username欄位值。 | 
| clientIp | principal.ip、principal.asset.ip | 原始記錄中的 clientIp欄位值。 | 
| cmdline | target.process.command_line(適用於feed.query.hit.process和feed.storage.hit.process活動)、additional.fields[?key == 'cmdline_*'].value.string_value(適用於watchlist.storage.hit.process活動) | 當 type為feed.query.hit.process或feed.storage.hit.process時,原始記錄中的cmdline欄位值。如果是watchlist.storage.hit.process事件,則會儲存在additional.fields中,並使用「cmdline_*」鍵。 | 
| command_line | target.process.command_line(適用於ingress.event.procstart項活動) | type為ingress.event.procstart時,原始記錄中的command_line欄位值。 | 
| comms_ip | intermediary.ip | 原始記錄中的 comms_ip欄位值。 | 
| computer_name | principal.hostname、principal.asset.hostname | 原始記錄中的 computer_name欄位值。 | 
| crossproc_api | additional.fields[?key == 'crossproc_api'].value.string_value(適用於endpoint.event.apicall項活動) | type為endpoint.event.apicall時,原始記錄中的crossproc_api欄位值。 | 
| crossproc_guid | additional.fields[?key == 'crossproc_guid'].value.string_value(適用於endpoint.event.crossproc項活動) | type為endpoint.event.crossproc時,原始記錄中的crossproc_guid欄位值。 | 
| crossproc_hash.0 | additional.fields[?key == 'crossproc_md5'].value.string_value(適用於endpoint.event.crossproc項活動) | type為endpoint.event.crossproc時,原始記錄中的crossproc_hash陣列第一個元素。 | 
| crossproc_hash.1 | additional.fields[?key == 'crossproc_sha256'].value.string_value(適用於endpoint.event.crossproc項活動) | 當 type為endpoint.event.crossproc時,原始記錄中的crossproc_hash陣列第二個元素。 | 
| crossproc_name | target.process.file.full_path(適用於endpoint.event.crossproc項活動) | type為endpoint.event.crossproc時,原始記錄中的crossproc_name欄位值。 | 
| crossproc_publisher.0.name | security_result.detection_fields[?key == 'crossproc_publisher_name'].value(適用於endpoint.event.crossproc項活動) | 「crossproc_publisher_name:」與原始記錄中 crossproc_publisher.0.name的值串連,前提是type為endpoint.event.crossproc。 | 
| crossproc_publisher.0.state | security_result.detection_fields[?key == 'crossproc_publisher_state'].value(適用於endpoint.event.crossproc項活動) | 「crossproc_publisher_state:」與原始記錄中 crossproc_publisher.0.state的值串連,前提是type為endpoint.event.crossproc。 | 
| crossproc_reputation | additional.fields[?key == 'crossproc_reputation'].value.string_value(適用於endpoint.event.crossproc項活動) | type為endpoint.event.crossproc時,原始記錄中的crossproc_reputation欄位值。 | 
| crossproc_target | additional.fields[?key == 'crossproc_target'].value.string_value(適用於endpoint.event.crossproc項活動) | 當 type為endpoint.event.crossproc時,原始記錄中的crossproc_target欄位值。轉換為字串「true」或「false」。 | 
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。