收集 Tanium 稽核記錄

支援的國家/地區:

本文說明如何使用 Tanium Connect 的原生 S3 匯出功能,透過 Amazon S3 將 Tanium 稽核記錄擷取至 Google Security Operations。剖析器會先清除許多預設欄位,然後擷取記錄。然後,它會使用 grok 和 json 篩選器剖析記錄訊息,擷取時間戳記、裝置 IP 和稽核詳細資料等欄位。剖析器會將這些擷取的欄位對應至 UDM,並處理各種資料類型和條件邏輯,根據特定 Tanium 稽核記錄屬性的存在與值,填入適當的 UDM 欄位。

事前準備

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

  • Google SecOps 執行個體
  • Tanium ConnectTanium Console 的特殊權限
  • AWS (S3、IAM) 的特殊存取權

建立 Amazon S3 bucket

  1. 開啟 Amazon S3 控制台
  2. 如有需要,可以變更「區域」
    • 導覽列中,選取要存放 Tanium 稽核記錄區域
  3. 按一下「建立 Bucket」
    • Bucket Name:輸入 bucket 的名稱 (例如 tanium-audit-logs)。
    • 區域:選取偏好的區域 (例如 us-east-1)。
    • 點選「建立」

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

  1. 開啟 IAM console
  2. 依序點選「使用者」>「新增使用者」
  3. 輸入使用者名稱 (例如 tanium-connect-s3-user)。
  4. 視需要選取「程式輔助存取」和/或「AWS 管理主控台存取」
  5. 選取「自動產生密碼」或「自訂密碼」
  6. 點選 [Next: Permissions] (下一步:權限)。
  7. 選擇「直接附加現有政策」
  8. 搜尋並選取要授予使用者的 AmazonS3FullAccess 政策。
  9. 按一下「下一步:代碼」
  10. 按一下 [下一步:檢閱]
  11. 按一下「建立使用者」
  12. 複製儲存「存取金鑰 ID」和「私密存取金鑰」,以供日後參考。

設定 Amazon S3 值區的權限

  1. Amazon S3 管理中心中,選擇您先前建立的值區。
  2. 依序點選「Permissions」(權限)「Bucket policy」(儲存空間政策)
  3. 在「Bucket Policy Editor」(值區政策編輯器) 中,新增下列政策:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::YOUR_ACCOUNT_ID:user/tanium-connect-s3-user"
          },
          "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl",
            "s3:GetObject",
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::tanium-audit-logs",
            "arn:aws:s3:::tanium-audit-logs/*"
          ]
        }
      ]
    }
    
  4. 請替換下列變數:

    • YOUR_ACCOUNT_ID 改為您的 AWS 帳戶 ID。
    • 如果不同,請將 tanium-audit-logs 變更為實際值區名稱。
    • 如果不同,請將 tanium-connect-s3-user 變更為實際的 IAM 使用者名稱。
  5. 按一下 [儲存]

設定 Tanium Connect,以便匯出至 S3

在 Tanium Connect 中建立 AWS S3 連線

  1. 以管理員身分登入 Tanium Console
  2. 依序前往「Tanium Connect」>「Connections」
  3. 按一下「建立連線」
  4. 在「一般資訊」部分,提供下列設定詳細資料:
    • 名稱:輸入描述性名稱 (例如 Tanium Audit to S3)。
    • 說明:輸入有意義的說明 (例如 Export Tanium audit logs to S3 for Google SecOps ingestion)。
    • 啟用:選取即可啟用連線。
    • 「記錄層級」:選取「資訊」 (預設),或視需要調整。

設定連線來源

  1. 在「設定」部分,針對「來源」選取「Tanium Audit」
  2. 設定稽核來源設定:
    • 要擷取的記錄天數:輸入要擷取的稽核記錄天數 (例如 7 代表一週)。
    • 稽核類型:選取要匯出的稽核類型。選擇下列其中一種做法:
      • 動作記錄:主控台操作員發出的動作。
      • 驗證:使用者驗證事件。
      • 內容:內容變更和修改。
      • 群組:電腦群組異動。
      • 套件:與套件相關的活動。
      • 感應器:感應器修改。
      • 系統設定:系統設定變更。
      • 使用者:使用者管理活動。

設定 AWS S3 目的地

  1. 在「目的地」部分,選取「AWS S3」。
  2. 提供下列設定詳細資料:
    • 目的地名稱:輸入名稱 (例如 Google SecOps S3 Bucket)。
    • AWS 存取金鑰:輸入先前建立的 IAM 使用者存取金鑰 ID。
    • AWS 密鑰:輸入先前建立的 IAM 使用者存取密鑰。
    • Bucket Name:輸入 S3 bucket 名稱 (例如 tanium-audit-logs)。
    • Bucket 路徑:選用。輸入路徑前置字串 (例如 tanium/audit/)。
    • 區域:選取儲存空間所在的 AWS 區域 (例如 us-east-1)。

設定格式和排程

  1. 在「格式」部分中,設定輸出格式:
    • 格式類型:選取「JSON」
    • 包含欄標題:選取是否要包含欄標題。
    • 產生文件:取消選取這個選項,即可傳送原始 JSON 資料。
  2. 在「Schedule」(排程) 部分,設定連線的執行時間:
    • 排程類型:選取「Cron」
    • Cron 運算式:輸入定期匯出的 Cron 運算式 (例如 0 */1 * * * 代表每小時匯出一次)。
    • 開始日期:設定時間表的開始日期。
  3. 按一下 [儲存變更]。

測試及執行連線

  1. 在「連結總覽」頁面中,前往「連結」
  2. 按一下您建立的連線 (「Tanium Audit to S3」)。
  3. 按一下「立即執行」測試連線。
  4. 確認要執行連線。
  5. 監控連線狀態,並確認稽核記錄已匯出至 S3 儲存空間。

選用:為 Google SecOps 建立唯讀 IAM 使用者和金鑰

  1. 依序前往 AWS 管理中心 > IAM > 使用者 > 新增使用者
  2. 點選 [Add users] (新增使用者)。
  3. 提供下列設定詳細資料:
    • 使用者:輸入 secops-reader
    • 存取類型:選取「存取金鑰 - 程式輔助存取」
  4. 按一下「建立使用者」
  5. 附加最低讀取權限政策 (自訂):依序選取「Users」(使用者) >「secops-reader」>「Permissions」(權限) >「Add permissions」(新增權限) >「Attach policies directly」(直接附加政策) >「Create policy」(建立政策)
  6. 在 JSON 編輯器中輸入下列政策:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::tanium-audit-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-audit-logs"
        }
      ]
    }
    
  7. 將名稱設為 secops-reader-policy

  8. 依序前往「建立政策」> 搜尋/選取 >「下一步」>「新增權限」

  9. 依序前往「安全憑證」>「存取金鑰」>「建立存取金鑰」

  10. 下載 CSV (這些值會輸入至動態饋給)。

在 Google SecOps 中設定動態饋給,擷取 Tanium 稽核記錄

  1. 依序前往「SIEM 設定」>「動態饋給」
  2. 按一下「+ 新增動態消息」
  3. 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如 Tanium Audit logs)。
  4. 選取「Amazon S3 V2」做為「來源類型」
  5. 選取「Tanium Audit」做為「記錄類型」
  6. 點選「下一步」
  7. 指定下列輸入參數的值:
    • S3 URIs3://tanium-audit-logs/tanium/audit/ (如果使用不同的值區名稱或路徑,請調整路徑)。
    • 來源刪除選項:根據偏好設定選取刪除選項。
    • 檔案存在時間上限:包含在過去天數內修改的檔案。預設值為 180 天。
    • 存取金鑰 ID:具有 S3 值區存取權的使用者存取金鑰 (來自上述建立的唯讀使用者)。
    • 私密存取金鑰:具有 S3 bucket 存取權的使用者私密金鑰 (來自上述建立的唯讀使用者)。
    • 資產命名空間資產命名空間
    • 擷取標籤:要套用至這個動態饋給事件的標籤。
  8. 點選「下一步」
  9. 在「完成」畫面中檢查新的動態饋給設定,然後按一下「提交」

UDM 對應表

記錄欄位 UDM 對應 邏輯
ActionId metadata.product_log_id 直接從「ActionId」欄位對應。
ActionName security_result.action_details 直接從「ActionName」欄位對應。
Approver additional.fields[Approver].value.string_value 直接從「Approver」欄位對應。
Approver principal.user.userid 如果沒有 Issuer,則會從 Approver 欄位對應。
audit_name metadata.description 直接從「audit_name」欄位對應。
audit_row_id additional.fields[audit_row_id].value.string_value 直接從「audit_row_id」欄位對應。
audit_type additional.fields[audit_type].value.string_value 直接從「audit_type」欄位對應。
authentication_type principal.user.attribute.labels[authentication_type].value 直接從從 details 欄位擷取的 authentication_type 欄位對應。
Command principal.process.command_line 網址解碼後,直接從 Command 欄位對應。
creation_time target.resource.attribute.creation_time 直接從「creation_time」欄位對應。
details network.session_id 使用鍵/值剖析從 details 欄位擷取。
details principal.user.attribute.labels[authentication_type].value 使用鍵/值剖析從 details 欄位擷取。
details principal.asset.ipprincipal.ip 系統會使用鍵/值剖析功能,從 details 欄位擷取 IP 位址,並對應至 principal.asset.ipprincipal.ip
DistributeOver additional.fields[DistributeOver].value.string_value 直接從「DistributeOver」欄位對應。
dvc_ip intermediary.hostname 直接從 syslog 訊息擷取的 dvc_ip 欄位對應。
dvc_ip observer.ip 如果沒有 logstash.collect.host,則直接從 dvc_ip 欄位對應。
Expiration additional.fields[Expiration].value.string_value 直接從「Expiration」欄位對應。
host.architecture target.asset.hardware.cpu_platform 直接從「host.architecture」欄位對應。
host.id target.asset.asset_id 直接從 host.id 欄位對應,並加上「主機 ID:」前置字元。
host.ip target.ip 直接從「host.ip」欄位對應。
host.mac target.mac 直接從「host.mac」欄位對應。
host.name target.hostname 如果沒有 host.hostname,則直接從 host.name 欄位對應。
host.os.kernel target.platform_patch_level 直接從「host.os.kernel」欄位對應。
host.os.name additional.fields[os_name].value.string_value 直接從「host.os.name」欄位對應。
host.os.version target.platform_version 直接從「host.os.version」欄位對應。
InsertTime additional.fields[InsertTime].value.string_value 直接從「InsertTime」欄位對應。
Issuer additional.fields[Issuer].value.string_value 直接從「Issuer」欄位對應。
Issuer principal.user.userid 如有,則直接從 Issuer 欄位對應。
last_modified_by principal.resource.attribute.labels[last_modified_by].value 直接從「last_modified_by」欄位對應。
log.source.address principal.ip 系統會從 log.source.address 欄位擷取 IP 位址,並對應至 principal.ip
log.source.address principal.port 通訊埠是從 log.source.address 欄位擷取。
logstash.collect.host observer.ip 如有,則直接從 logstash.collect.host 欄位對應。
logstash.collect.timestamp metadata.collected_timestamp 直接從「logstash.collect.timestamp」欄位對應。
logstash.ingest.timestamp metadata.ingested_timestamp 直接從「logstash.ingest.timestamp」欄位對應。
logstash.irm_environment additional.fields[irm_environment].value.string_value 直接從「logstash.irm_environment」欄位對應。
logstash.irm_region additional.fields[irm_region].value.string_value 直接從「logstash.irm_region」欄位對應。
logstash.irm_site additional.fields[irm_site].value.string_value 直接從「logstash.irm_site」欄位對應。
logstash.process.host intermediary.hostname 直接從「logstash.process.host」欄位對應。
message dvc_ipjson_datatimestamp 使用 grok 剖析,擷取 dvc_ipjson_datatimestamp
modification_time target.resource.attribute.last_update_time 直接從「modification_time」欄位對應。
modifier_user_id principal.resource.attribute.labels[modifier_user_id].value 直接從「modifier_user_id」欄位對應。
object_id target.resource.product_object_id 直接從「object_id」欄位對應。
object_name target.resource.name 直接從「object_name」欄位對應。
object_type_name target.resource.attribute.labels[object_type_name].value 直接從「object_type_name」欄位對應。
PackageName additional.fields[PackageName].value.string_value 直接從「PackageName」欄位對應。
SourceId additional.fields[SourceId].value.string_value 直接從「SourceId」欄位對應。
StartTime additional.fields[StartTime].value.string_value 直接從「StartTime」欄位對應。
Status security_result.action 如果 Status 為「Closed」,則對應至「BLOCK」;如果 Status 為「Open」,則對應至「ALLOW」。
Status security_result.summary 直接從「Status」欄位對應。
tanium_audit_type metadata.product_event_type 直接從「tanium_audit_type」欄位對應。
timestamp metadata.event_timestamp 直接從 Syslog 訊息或 timestamp 欄位擷取的 message 欄位對應。
type additional.fields[type].value.string_value 直接從「type」欄位對應。
type_name metadata.product_event_type 直接從「type_name」欄位對應。
User principal.user.userid 直接對應至「User」欄位。由剖析器邏輯根據 src_iphas_targethas_user 的存在與否決定。可以是「NETWORK_CONNECTION」、「USER_RESOURCE_ACCESS」、「STATUS_UPDATE」或「GENERIC_EVENT」。硬式編碼為「TANIUM_AUDIT」。硬式編碼為「cybersecurity」。硬式編碼為「TANIUM_AUDIT」。
@version metadata.product_version 直接從「@version」欄位對應。
agent.ephemeral_id additional.fields[ephemeral_id].value.string_value 直接從「agent.ephemeral_id」欄位對應。
agent.id observer.asset_id 直接從 agent.id 欄位對應,並加上「filebeat:」前置字元。
agent.type observer.application 直接從「agent.type」欄位對應。
agent.version observer.platform_version 直接從「agent.version」欄位對應。
Comment security_result.description 直接從「Comment」欄位對應。
host.hostname target.hostname 如有,則直接從 host.hostname 欄位對應。
input.type network.ip_protocol 如果 input.type 為「tcp」或「TCP」,則對應至「TCP」。
syslog_severity security_result.severity 如果 syslog_severity 為「error」或「warning」,則對應至「HIGH」;如果為「notice」,則對應至「MEDIUM」;如果為「information」或「info」,則對應至「LOW」。
syslog_severity security_result.severity_details 直接從「syslog_severity」欄位對應。

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