收集 AWS Redshift 記錄

剖析器版本:1.0

支援的國家/地區:

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

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

事前準備

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

  • Google SecOps 執行個體
  • 具備管理下列項目的權限,可存取 AWS 管理主控台
    • Amazon Redshift (叢集、參數群組)
    • Amazon S3 (儲存桶、儲存桶政策)
    • AWS IAM (使用者、政策)

為 Amazon Redshift 稽核記錄設定 S3 值區

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

建立及設定 S3 bucket

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

  3. https://console.aws.amazon.com/s3Amazon 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. 在導覽選單中,依序前往「Configurations」(設定)>「Workload management」(工作負載管理)
  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」(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. 按一下「Download .csv file」(下載 .csv 檔案),儲存「Access Key」(存取金鑰) 和「Secret Access Key」(私密存取金鑰),以供日後參考。
  9. 按一下 [完成]
  10. 選取「權限」分頁標籤。
  11. 在「權限政策」部分中,按一下「新增權限」
  12. 選取「新增權限」
  13. 選取「直接附加政策」
  14. 搜尋「AmazonS3FullAccess」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 URIs3://redshift-audit-logs-to-secops/audit-logs/
    • 來源刪除選項:根據偏好設定選取刪除選項
    • 檔案存在時間上限:包含在過去天數內修改的檔案 (預設為 180 天)
    • 存取金鑰 ID:具有 S3 值區存取權的使用者存取金鑰
    • 存取密鑰:具有 S3 bucket 存取權的使用者私密金鑰
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤
  9. 依序點按「繼續」和「提交」

UDM 對應表

記錄欄位 UDM 對應 邏輯
func_label additional.fields 已合併
lpclagg_label additional.fields 已合併
lpcltype_label additional.fields 已合併
msg metadata.description 直接對應
has_principal metadata.event_type 已對應:trueSTATUS_UPDATE
has_target_resource metadata.event_type 已對應:trueUSER_RESOURCE_ACCESS
has_user metadata.event_type 已對應:trueUSER_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)InfoINFORMATIONAL(?i)ErrorERROR(?i)WarningMEDIUM
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 專業人員尋求答案。