收集 AWS Redshift 記錄

剖析器版本:1.0

支援:

本文說明如何使用 Amazon S3,將 AWS Redshift 記錄檔擷取至 Google Security Operations。

Amazon Redshift 是 Amazon Web Services 的全代管 PB 級雲端資料倉儲服務,您可以使用以 SQL 為基礎的工具和商業智慧應用程式,快速查詢及分析大型資料集。Amazon Redshift 會記錄資料庫活動,包括驗證嘗試、連線、中斷連線、使用者定義變更,以及對資料庫執行的查詢。這項整合功能會使用 Amazon Redshift 的原生稽核記錄功能,將記錄檔傳送至 S3 bucket,然後 Google SecOps 會使用 Amazon S3 V2 動態饋給擷取這些檔案。

事前準備

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

  • Google SecOps 執行個體
  • 具有管理權限的 AWS 管理主控台存取權:
    • Amazon Redshift (叢集、參數群組)
    • Amazon S3 (儲存貯體、儲存貯體政策)
    • AWS IAM (使用者、政策)

為 Amazon Redshift 稽核記錄設定 S3 儲存貯體

Amazon Redshift 會將稽核記錄檔上傳至 S3 bucket。您必須設定 S3 值區政策,允許 Amazon Redshift 服務寫入記錄檔。

建立及設定 S3 bucket

  1. 按照這份使用手冊的指示建立 Amazon S3 儲存空間:建立儲存空間。
  2. 儲存 bucket 的「名稱」和「區域」,以供日後參考 (例如 redshift-audit-logs-to-secops)。

  3. 前往 https://console.aws.amazon.com/s3,在 Amazon S3 控制台中選取建立的值區。

  4. 選取 [權限] 分頁標籤。

  5. 在「Bucket policy」部分,按一下「Edit」。

  6. 新增下列 bucket 政策 (將 redshift-audit-logs-to-secops 替換為 bucket 名稱):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Put bucket policy needed for audit logging",
                "Effect": "Allow",
                "Principal": {
                    "Service": "redshift.amazonaws.com"
                },
                "Action": [
                    "s3:PutObject",
                    "s3:GetBucketAcl"
                ],
                "Resource": [
                    "arn:aws:s3:::redshift-audit-logs-to-secops",
                    "arn:aws:s3:::redshift-audit-logs-to-secops/*"
                ]
            }
        ]
    }
    
  7. 按一下 [儲存變更]。

啟用使用者活動記錄參數

啟用稽核記錄後,系統會自動擷取連線記錄和使用者記錄。如要一併擷取使用者活動記錄 (記錄每項查詢在資料庫執行前的狀態),則必須啟用 enable_user_activity_logging 資料庫參數。

  1. 前往 https://console.aws.amazon.com/redshiftv2/,登入 Amazon Redshift 控制台。
  2. 在導覽選單中,依序前往「設定」 > 「工作負載管理」。
  3. 選取與叢集相關聯的參數群組。
  4. 選取「參數」分頁標籤。
  5. 按一下「編輯參數」。
  6. 將 enable_user_activity_logging 參數值設為 true。
  7. 按一下 [儲存]。

啟用 Amazon Redshift 稽核記錄至 S3

  1. 前往 https://console.aws.amazon.com/redshiftv2/,登入 Amazon Redshift 控制台。
  2. 在導覽選單中,依序選取「叢集」和要設定的叢集。
  3. 選取「屬性」分頁標籤。
  4. 在「資料庫設定」面板中,依序點選「編輯」和「編輯稽核記錄」。
  5. 在「編輯稽核記錄」頁面中,選取「開啟」。
  6. 在「記錄檔目的地」部分,選取「S3 bucket」。
  7. 在「S3 bucket」部分,選取您設定的 bucket (例如 redshift-audit-logs-to-secops)。
  8. 選用:輸入 S3 金鑰前置字元,在儲存值區中整理記錄檔 (例如 audit-logs/)。
  9. 選取要匯出的記錄:
    • 連線記錄 - 驗證嘗試、連線和中斷連線
    • 使用者記錄 - 資料庫使用者定義的變更
    • 使用者活動記錄 - 每個查詢在資料庫中執行前
  10. 按一下 [儲存變更]。

詳情請參閱《Amazon Redshift 管理指南》中的「資料庫稽核記錄」。

為 Google SecOps 設定 IAM 使用者

Google SecOps 需要具備 S3 儲存空間讀取權的 IAM 使用者,才能擷取匯出的稽核記錄。

  1. 按照這份使用者指南建立使用者:建立 IAM 使用者。
  2. 選取建立的「使用者」。
  3. 選取「安全憑證」分頁標籤。
  4. 在「Access Keys」部分,按一下「Create Access Key」。
  5. 選取「第三方服務」做為「用途」。
  6. 按一下「繼續」。
    • 新增說明標記 (如有需要)。
  7. 按一下「建立存取金鑰」。
  8. 按一下「下載 .csv 檔案」,儲存「存取金鑰」和「私密存取金鑰」,以供日後參考。
  9. 按一下「完成」。
  10. 選取「權限」分頁標籤。
  11. 在「權限政策」部分中,按一下「新增權限」。
  12. 選取「新增權限」。
  13. 選取「直接附加政策」。
  14. 搜尋 AmazonS3FullAccess 政策。
  15. 選取政策。
  16. 點選「下一步」。
  17. 按一下「Add permissions」。

在 Google SecOps 設定動態饋給,擷取 AWS Redshift 記錄

  1. 依序前往「SIEM 設定」>「動態饋給」。
  2. 按一下「新增動態饋給」。
  3. 在下一個頁面中,按一下「設定單一動態饋給」。
  4. 輸入資訊提供的專屬名稱。
  5. 選取「Amazon S3 V2」做為「來源類型」。
  6. 選取「AWS Redshift」做為「記錄類型」。
  7. 依序點按「繼續」和「提交」。
  8. 為下列欄位指定值:

    • S3 URI:s3://redshift-audit-logs-to-secops/audit-logs/
    • 來源刪除選項:根據偏好選取刪除選項
    • 檔案存在時間上限:納入過去幾天內修改過的檔案 (預設為 180 天)
    • 存取金鑰 ID:具有 S3 儲存貯體存取權的使用者存取金鑰
    • 私密存取金鑰:具有 S3 儲存空間存取權的使用者私密金鑰
    • 資產命名空間:資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  9. 依序點按「繼續」和「提交」。

UDM 對應表

記錄欄位 UDM 對應 邏輯
func_label additional.fields 已合併
lpclagg_label additional.fields 已合併
lpcltype_label additional.fields 已合併
msg metadata.description 直接對應
has_principal metadata.event_type 已對應:true → STATUS_UPDATE
has_target_resource metadata.event_type 已對應:true → USER_RESOURCE_ACCESS
has_user metadata.event_type 已對應:true → USER_UNCATEGORIZED
column1 metadata.product_event_type 直接對應
requestID metadata.product_log_id 直接對應
column20 network.application_protocol_version 直接對應
column9 network.session_duration.seconds 已重新命名/對應
column21 network.session_id 直接對應
xid network.session_id 直接對應
column11 network.tls.cipher 直接對應
column10 network.tls.version 直接對應
column16 principal.application 直接對應
column3 principal.asset.ip 已合併
log_event.src_ip principal.asset.ip 已合併
column3 principal.hostname 直接對應
column3 principal.ip 已合併
log_event.src_ip principal.ip 已合併
region principal.location.name 直接對應
column17 principal.platform_version 直接對應
column4 principal.port 直接對應
column5 principal.process.pid 直接對應
pid principal.process.pid 直接對應
accountID principal.user.userid 直接對應
user_id principal.user.userid 直接對應
authmethod_label security_result.detection_fields 已合併
compression_label security_result.detection_fields 已合併
driver_version_label security_result.detection_fields 已合併
iamauthguid_label security_result.detection_fields 已合併
mtu_label security_result.detection_fields 已合併
plugin_name_label security_result.detection_fields 已合併
ssl_compression_label security_result.detection_fields 已合併
ssl_expansion_label security_result.detection_fields 已合併
level security_result.severity 對應:(?i)Info → INFORMATIONAL、(?i)Error → ERROR、(?i)Warning → MEDIUM
file target.file.full_path 直接對應
expected_bucket_label target.resource.attribute.labels 已合併
expected_s3_prefix_label target.resource.attribute.labels 已合併
sql_query_label target.resource.attribute.labels 已合併
time_zone_label target.resource.attribute.labels 已合併
ClusterIdentifier target.resource.name 直接對應
column6 target.resource.name 直接對應
db target.resource.name 直接對應
column7 target.user.user_display_name 直接對應
user target.user.user_display_name 直接對應
不適用 metadata.event_type 常數:USER_RESOURCE_ACCESS
不適用 security_result.severity 常數:INFORMATIONAL
不適用 target.resource.type 常數:DATABASE

變更記錄

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

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