收集 Amazon VPC Transit Gateway 流量記錄

剖析器版本:3.0

支援的國家/地區:

本文說明如何使用 Amazon S3 或 Amazon Kinesis Data Firehose,將 Amazon VPC Transit Gateway 流量記錄檔擷取至 Google Security Operations。Transit Gateway 流量記錄會擷取 Transit Gateway 附件的詳細網路流量中繼資料 (來源和目的地 IP、通訊埠、通訊協定、位元組和封包計數、動作)。這項資料可讓您在 Google SecOps 中進行安全監控、異常偵測和法規遵循稽核。

事前準備

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

  • Google SecOps 執行個體。
  • 具有下列權限的 AWS 特殊存取權:
    • 建立及管理 Transit Gateway 流量記錄
    • 建立 S3 儲存桶 (適用於 S3 匯出選項)
    • 建立 IAM 使用者、政策和角色
    • 設定 Kinesis Data Firehose 傳送串流 (適用於 Firehose 選項)
    • 存取 CloudWatch Logs 並建立訂閱篩選器 (適用於 Firehose 選項)

選項 - 匯出至 Amazon S3

啟用 Transit Gateway 流量記錄 (至 S3)

  1. 前往 https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 控制台
  2. 在導覽窗格中,選擇「Transit gateways」(中轉閘道)
  3. 選取一或多個 Transit Gateway 的核取方塊,然後依序選擇「Actions」> Create flow log
  4. 在「目的地」部分,選取「傳送至 Amazon S3 值區」。
  5. 在「S3 bucket ARN」部分,輸入現有 S3 bucket 的 ARN (例如 arn:aws:s3:::tgw-flowlogs-bucket)。

  6. 在「記錄檔記錄格式」中,選取流程記錄檔記錄的格式:

    • AWS 預設格式 - 包含第 2 版到第 6 版的所有欄位。
    • 自訂格式:只選取所需欄位。
  7. 在「記錄檔格式」中,選取「文字」 (預設) 或「Parquet」

  8. 如要使用與 Hive 相容的前置字串進行分區,請選取「與 Hive 相容的 S3 前置字串」,然後視需要選取「啟用」

  9. 在「Partition logs by time」(依時間劃分記錄) 部分,選取「Every 1 hour (60 min)」(每 1 小時 (60 分鐘)) 或「Every 24 hours (1440 min)」(每 24 小時 (1440 分鐘))

  10. (選用) 選擇「新增標記」,將標記套用至流程記錄。

  11. 按一下「建立流量記錄」

建立 Amazon S3 儲存貯體

  1. 開啟 Amazon S3 控制台
  2. 按一下「建立值區」
  3. 請提供下列設定詳細資料:
    • 值區名稱:輸入不重複的名稱 (例如 tgw-flowlogs-bucket)。
    • AWS 區域:選取 Transit Gateway 所在的區域
  4. 按一下「建立值區」

建立可存取 Amazon S3 的 IAM 使用者

  1. 開啟 IAM console
  2. 依序點選「使用者」>「新增使用者」
  3. 輸入使用者名稱 (例如 chronicle-tgw-s3-reader)。
  4. 選取「程式輔助存取」
  5. 點選 [Next: Permissions] (下一步:權限)。
  6. 選擇「直接附加現有政策」
  7. 搜尋並選取「AmazonS3ReadOnlyAccess」AmazonS3ReadOnlyAccess政策。
  8. 依序點選「下一步:標記」「下一步:檢查」「建立使用者」
  9. 複製 Access Key IDSecret Access Key,用於 Google SecOps 動態消息設定。

在 Google SecOps 中設定動態饋給,擷取 Amazon VPC Transit Gateway 流量記錄 (S3)

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

    • S3 URI:值區 URI (例如 s3://tgw-flowlogs-bucket/flow-logs/)
    • 來源刪除選項:根據偏好選取刪除選項:
      • 永不:轉移後一律不刪除任何檔案。
      • 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
      • 刪除已轉移的檔案和空白目錄:成功轉移後刪除檔案和空白目錄。
    • 檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)
    • 存取金鑰 ID:具有 S3 bucket 存取權的 IAM 使用者存取金鑰
    • 存取密鑰:具有 S3 bucket 存取權的 IAM 使用者私密金鑰
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  8. 點選「下一步」

  9. 檢查動態饋給設定,然後按一下「提交」

選項 - 透過 Amazon Kinesis Data Firehose 串流

啟用 Transit Gateway 流量記錄 (至 CloudWatch Logs)

  1. 前往 https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 控制台
  2. 在導覽窗格中,選擇「Transit gateways」(中轉閘道)
  3. 選取一或多個 Transit Gateway 的核取方塊,然後依序選擇「Actions」> Create flow log
  4. 在「目的地」部分,選取「傳送至 CloudWatch Logs」。
  5. 在「Destination log group」(目的地記錄檔群組) 部分,選擇現有的記錄檔群組,或輸入新名稱來建立記錄檔群組 (例如 /aws/tgw/flowlogs)。

  6. 在「IAM role」(IAM 角色) 中,指定具有將記錄發布至 CloudWatch Logs 權限的角色。

  7. 在「記錄檔記錄格式」中,選取流程記錄檔記錄的格式:

    • AWS 預設格式 - 包含第 2 版到第 6 版的所有欄位。
    • 自訂格式:只選取所需欄位。
  8. (選用) 選擇「新增標記」,將標記套用至流程記錄。

  9. 按一下「建立流量記錄」

在 Google SecOps 中建立動態饋給,以便擷取 Amazon VPC Transit Gateway 流量記錄 (Firehose)

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「新增動態消息」
  3. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 AWS Transit Gateway Flow Logs - Firehose)。
  4. 選取「Amazon Data Firehose」做為「來源類型」
  5. 選取「Amazon VPC Transit Gateway Flow Logs」做為「記錄類型」
  6. 點選「下一步」
  7. 指定下列輸入參數的值:
    • 分割分隔符號:輸入 \n
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  8. 點選「下一步」
  9. 檢查動態饋給設定,然後按一下「提交」
  10. 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。
  11. 複製儲存密鑰。您無法再次查看這個密鑰。
  12. 前往「詳細資料」分頁。
  13. 從「端點資訊」欄位複製動態消息端點網址。
  14. 按一下 [完成]

為 Amazon Data Firehose 動態饋給建立 API 金鑰

  1. 前往 https://console.cloud.google.com/apis/credentialsGoogle Cloud 控制台「憑證」頁面。
  2. 按一下 [Create credentials] (建立憑證),然後選取 [API key] (API 金鑰)
  3. 按一下「編輯 API 金鑰」即可限制金鑰。
  4. 在「API restrictions」下方,選取「Restrict key」
  5. 搜尋並選取「Google SecOps API」
  6. 按一下 [儲存]
  7. 複製儲存 API 金鑰。

建構端點網址

  • 以以下格式將 API 金鑰附加至動態饋給端點網址:

    <FEED_ENDPOINT_URL>?key=<API_KEY>
    

更改下列內容:

  • <FEED_ENDPOINT_URL>:動態饋給端點網址
  • <API_KEY>:API 金鑰

  • 範例:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

請儲存這個完整網址,以供下一個步驟使用。

為 Firehose 建立 IAM 政策

  1. AWS 控制台中,依序前往「IAM」>「Policies」>「Create policy」>「JSON」分頁標籤
  2. 貼上下列政策 JSON:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "firehose:PutRecord",
                    "firehose:PutRecordBatch"
                ],
                "Resource": "arn:aws:firehose:<REGION>:<ACCOUNT_ID>:deliverystream/<DELIVERY_STREAM_NAME>"
            }
        ]
    }
    
  3. 更改下列內容:

    • <REGION>:您的 AWS 區域 (例如 us-east-1)
    • <ACCOUNT_ID>:您的 AWS 帳戶 ID (12 位數)
    • <DELIVERY_STREAM_NAME>:您的 Firehose 傳送串流名稱 (您會在下一個步驟中建立這個名稱)
  4. 為政策命名 TGWFlowLogsToFirehosePolicy (例如),然後按一下「建立政策」

為 CloudWatch Logs 建立 IAM 角色

  1. 依序前往「IAM」>「角色」>「建立角色」
  2. 選取「自訂信任政策」並貼上:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "logs.<REGION>.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  3. <REGION> 替換為您的 AWS 區域。

  4. 點選「下一步」

  5. 搜尋並選取政策 TGWFlowLogsToFirehosePolicy

  6. 點選「下一步」

  7. 為角色命名 TGWFlowLogsToFirehoseRole (例如),然後按一下「建立角色」

建立 Kinesis Data Firehose 傳送串流

  1. AWS 控制台中,依序前往「Kinesis」>「Data Firehose」>「Create delivery stream」(建立傳輸串流)
  2. 請提供下列設定詳細資料:

    • 來源和目的地:

      • 來源:選取「直接 PUT 或其他來源」
      • 目的地:選取「HTTP 端點」
    • 傳送串流名稱:

      • 傳送串流名稱:輸入名稱 (例如 tgw-flowlogs-to-secops)
    • HTTP 端點目的地:

      • HTTP 端點網址:輸入您建構的完整端點網址 (動態饋給端點 + API 金鑰)
      • 內容編碼:選取「GZIP」
    • 自訂 HTTP 標頭:

      • 按一下「新增自訂 HTTP 標頭」
      • 標頭名稱:輸入 X-Goog-Chronicle-Auth
      • 標頭值:輸入您在建立動態饋給時儲存的密鑰
    • 備份設定:

      • Amazon S3 中的來源記錄備份:選取「僅限失敗的資料」
      • S3 bucket:選取現有 bucket 或建立新 bucket,用於存放失敗的記錄
    • 緩衝區提示:

      • 緩衝區空間:輸入 1 MiB
      • 緩衝間隔:輸入 60
  3. 按一下「建立傳送串流」

  4. 等待傳送串流狀態變更為「Active」

將 CloudWatch Log Group 訂閱至 Firehose

  1. AWS 控制台中,依序前往「CloudWatch」>「Logs」>「Log groups」
  2. 選取 Transit Gateway 流量記錄群組 (例如 /aws/tgw/flowlogs)。
  3. 按一下「訂閱篩選器」分頁標籤。
  4. 依序點選「建立」> 建立 Amazon Kinesis Data Firehose 訂閱篩選器
  5. 請提供下列設定詳細資料:
    • 目的地:選取放送串流 tgw-flowlogs-to-secops
    • 授予權限:選取角色 TGWFlowLogsToFirehoseRole
    • 訂閱篩選器名稱:輸入名稱 (例如 tgw-flowlogs-to-chronicle)
    • 記錄檔格式:選取「其他」
    • 訂閱篩選器模式:留空即可傳送所有事件
  6. 按一下「開始串流播放」

UDM 對應表

記錄欄位 UDM 對應 邏輯
packets_lost_blackhole_label additional.fields 已合併
packets_lost_mtu_exceeded_label additional.fields 已合併
packets_lost_no_route_label additional.fields 已合併
packets_lost_ttl_expired_label additional.fields 已合併
start_time_label additional.fields 已合併
tcp_flags_label additional.fields 已合併
tgw_attachment_id_label additional.fields 已合併
tgw_id_label additional.fields 已合併
tgw_pair_attachment_id_label additional.fields 已合併
type_label additional.fields 已合併
end_time metadata.event_timestamp 已剖析為 UNIX
event_type metadata.event_type 直接對應
account_id metadata.product_log_id 直接對應
version metadata.product_version 直接對應
flow_direction network.direction 已對應:(?i)ingressINBOUND(?i)egressOUTBOUND
bytes network.sent_bytes 直接對應
packets network.sent_packets 直接對應
tgw_src_eni principal.asset.asset_id 直接對應
srcaddr principal.asset.ip 已合併
srcaddr principal.ip 已合併
region principal.location.country_or_region 直接對應
tgw_src_az_id principal.location.country_or_region 直接對應
srcport principal.port 直接對應
pkt_src_aws_service_label principal.resource.attribute.labels 已合併
tgw_src_az_id_label principal.resource.attribute.labels 已合併
tgw_src_subnet_id principal.resource.name 直接對應
tgw_src_vpc_id principal.resource.product_object_id 直接對應
resource_type principal.resource.resource_subtype 直接對應
tgw_src_vpc_account_id principal.user.userid 直接對應
security_result_action security_result.action 已合併
protocol_label security_result.detection_fields 已合併
tgw_dst_eni target.asset.asset_id 直接對應
dstaddr target.asset.ip 已合併
dstaddr target.ip 已合併
tgw_dst_az_id target.location.country_or_region 直接對應
dstport target.port 直接對應
pkt_dst_aws_service_label target.resource.attribute.labels 已合併
tgw_dst_subnet_id target.resource.name 直接對應
tgw_dst_vpc_id target.resource.product_object_id 直接對應
tgw_dst_vpc_account_id target.user.userid 直接對應
不適用 metadata.product_name 常數:AWS VPC Transit Gateway
不適用 metadata.vendor_name 常數:AWS
不適用 network.direction 常數:INBOUND

變更記錄

查看這個剖析器的變更記錄

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