收集 Tanium 稽核記錄

支援的服務:

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

事前準備

請確認您符合下列必要條件:

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

建立 Amazon S3 儲存貯體

  1. 開啟 Amazon S3 控制台。
  2. 如有需要,可以變更「Region」(區域)。
    • 在導覽列中,選取要存放 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」AmazonS3FullAccess政策,將其指派給使用者。
  9. 按一下「Next: Tags」(下一步:標記)。
  10. 按一下 [下一步:檢閱]。
  11. 點選「Create user」。
  12. 複製並儲存存取金鑰 ID 和私密存取金鑰,以供日後參考。

設定 Amazon S3 bucket 權限

  1. 在 Amazon S3 控制台中,選擇先前建立的值區。
  2. 依序點選「權限」>「Bucket 政策」。
  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 變更為實際值區名稱。
    • 如果您的 IAM 使用者名稱與 tanium-connect-s3-user 不同,請將其替換為實際的使用者名稱。
  5. 按一下「儲存」。

設定 Tanium Connect 以匯出至 S3

在 Tanium Connect 中建立 AWS S3 連線

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

設定連線來源

  1. 在「設定」部分的「來源」,選取「Tanium Audit」。
  2. 設定稽核來源:
    • Days of History Retrieved:輸入要擷取的歷來稽核資料天數 (例如 7 代表一週)。
    • 稽核類型:選取要匯出的稽核類型。可用的選項如下:
      • 動作記錄:控制台操作員發出的動作。
      • 驗證:使用者驗證事件。
      • 內容:內容變更和修改。
      • 群組:電腦群組變更。
      • 套件:套件相關活動。
      • Sensors:感應器修改。
      • 系統設定:系統設定變更。
      • 使用者:使用者管理活動。

設定 AWS S3 目的地

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

設定格式和時間表

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

測試並執行連線

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

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

  1. 依序前往「AWS Console」>「IAM」>「Users」>「Add users」。
  2. 點選 [Add users] (新增使用者)。
  3. 提供下列設定詳細資料:
    • 「User」(使用者):輸入 secops-reader。
    • Access type:選取「Access key – Programmatic access」。
  4. 點選「Create user」。
  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. 依序前往「Security credentials」>「Access keys」>「Create access key」。

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

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

  1. 依序前往「設定」>「資料管理」>「動態饋給」。如果使用的是 SIEM 專用平台,請依序前往「設定」>「動態饋給」。
  2. 按一下「+ 新增動態饋給」。
  3. 在「Feed name」(動態饋給名稱) 欄位中,輸入動態饋給名稱 (例如 Tanium Audit logs)。
  4. 在「來源類型」部分,選取「Amazon S3 V2」。
  5. 在「Log type」(記錄類型) 中選取「Tanium Audit」(Tanium 稽核)。
  6. 點選「下一步」。
  7. 指定下列輸入參數的值:
    • S3 URI:s3://tanium-audit-logs/tanium/audit/ (如果您使用不同的 bucket 名稱或路徑,請調整路徑)。
    • 來源刪除選項:根據偏好選取刪除選項。
    • 檔案存在時間上限:包含過去幾天內修改過的檔案。預設值為 180 天。
    • 存取金鑰 ID:可存取 S3 bucket 的使用者存取金鑰 (來自上述建立的唯讀權限使用者)。
    • 私密存取金鑰:具有 S3 bucket 存取權的使用者私密金鑰 (來自上述建立的唯讀權限使用者)。
    • Asset namespace:資產命名空間。
    • 擷取標籤:要套用至這個動態饋給事件的標籤。
  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.ip、principal.ip 系統會使用鍵/值剖析功能,從 details 欄位擷取 IP 位址,並對應至 principal.asset.ip 和 principal.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 欄位對應,前置字串為「Host 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_ip、json_data、timestamp 使用 grok 剖析,擷取 dvc_ip、json_data 和 timestamp。
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 訊息或 message 欄位擷取的 timestamp 欄位對應。
type additional.fields[type].value.string_value 直接從 type 欄位對應。
type_name metadata.product_event_type 直接從 type_name 欄位對應。
User principal.user.userid 直接從 User 欄位對應。由剖析器邏輯根據 src_ip、has_target 和 has_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 專家尋求解答。