設定及管理資料處理管道

支援的國家/地區:

資料處理功能可讓您在剖析前,對 Google Security Operations 資料擷取作業進行嚴格控管。您可以篩選事件、轉換欄位或遮蓋敏感值,以提升資料相容性、降低成本,並保護 Google SecOps 中的私密資訊。

本文將逐步說明如何使用 Bindplane 控制台,完成資料擷取和處理工作流程。因此,您可以瞭解如何:

  • 設定與 Google SecOps 目的地執行個體的連線。
  • 建立新的 Google SecOps 管道。
  • 設定資料處理,包括串流和處理器。
  • 推出管道,開始擷取及處理資料。
  • 在 Google SecOps 控制台中監控管道串流和處理器。

您可以透過 Bindplane 管理控制台,或直接使用公開的 Google SecOps Data Pipeline API,設定處理地端和雲端資料串流。

資料處理包含下列元素:

  • 串流:一或多個串流會將資料饋送至資料處理管道。每個串流都會設定為特定串流類型。
  • 處理器節點:資料處理程序有一個處理器節點,內含一或多個處理器。每個處理器都會指定要對資料執行的動作 (例如篩選、轉換和遮蓋),因為資料會流經管道。
  • 目的地:處理後的資料會傳送至 Google SecOps 目的地執行個體。

用途

使用案例範例包括:

  • 從原始記錄中移除空白的鍵/值組合。
  • 遮蓋私密資料。
  • 從原始記錄內容新增擷取標籤。
  • 在多個執行個體環境中,將擷取標籤套用至直接擷取的記錄檔資料,以識別來源串流執行個體 (例如Google Cloud Workspace)。
  • 依欄位值篩選 Palo Alto Cortex 資料。
  • 依類別減少 SentinelOne 資料。
  • 從動態消息和直接擷取記錄檔中擷取主機資訊,並對應至 Cloud Monitoring 的 ingestion_source 欄位。

必要條件

如要使用 Bindplane 控制台管理 Google SecOps 資料處理作業,請按照下列步驟操作:

  1. 在 Google Security Operations 控制台中,授予安裝人員必要預先定義的管理員角色。 詳情請參閱「在專屬專案中指派專案 IAM 管理員角色」。
  2. 在「指派角色」部分選取下列預先定義的 Identity and Access Management 角色:

    • Chronicle API 管理員 (roles/chronicle.admin)
  3. 安裝 Bindplane Server 控制台。如果是 SaaS 或內部部署,請參閱「安裝 Bindplane Server 控制台」。

  4. 在 Bindplane 控制台中,將 Google SecOps 目的地執行個體連結至 Bindplane 專案。詳情請參閱連線至 Google SecOps 執行個體

管理低用量 SecOps 資料確認延遲

如果擷取 API 使用者自行設定代理程式,資料處理管道中低用量的 SecOps 管道可能會導致確認時間變長。

延遲時間平均值可能會從 700 毫秒增加到 2 秒。視需要增加逾時時間和記憶體。資料處理量超過 4 MB 時,確認時間會縮短。

連線至 Google SecOps 執行個體

開始前,請確認您具備 Bindplane 專案管理員權限,可存取「專案整合」頁面。

Google SecOps 執行個體是資料輸出的目的地。

如要使用 Bindplane 控制台連線至 Google SecOps 執行個體,請按照下列步驟操作:

  1. 前往 Bindplane 控制台的「Manage your project」(管理專案) 頁面。
  2. 前往「整合」資訊卡,然後按一下「連結至 Google SecOps」,開啟「編輯整合」視窗。
  3. 輸入 Google SecOps 目的地執行個體的詳細資料。
    這個執行個體會擷取處理後的資料 (資料處理的輸出內容),如下所示:

    欄位 說明
    區域 Google SecOps 執行個體所在的區域。
    如要在 Google Cloud 控制台中尋找執行個體,請依序前往「Security」(安全性)>「Detections and Controls」(偵測和控制項)>「Google Security Operations」(Google 安全性作業) >「Instance details」(執行個體詳細資料)
    客戶 ID Google SecOps 執行個體的客戶 ID。

    在 Google SecOps 控制台中,依序前往「SIEM Settings」>「Profile」>「Organization Details」
    Google Cloud 專案編號 Google Cloud Google SecOps 執行個體的專案編號。

    如要在 Google SecOps 控制台中找出專案編號,請依序前往「SIEM Settings」>「Profile」>「Organization Details」
    憑證 服務帳戶憑證是驗證及存取 Google SecOps Data Pipeline API 時所需的 JSON 值。從 Google 服務帳戶憑證檔案取得這個 JSON 值。

    服務帳戶必須與 Google SecOps 執行個體位於同一個 Google Cloud 專案,且需要 Chronicle API 管理員角色 (roles/chronicle.admin) 權限。

    如要瞭解如何建立服務帳戶及下載 JSON 檔案,請參閱「建立及刪除服務帳戶金鑰」。
  4. 按一下 [連線]。如果連線詳細資料正確無誤,且您已成功連線至 Google SecOps,則會發生下列情況:

    • 系統會開啟 Google SecOps 執行個體的連線。
    • 首次連線時,SecOps Pipelines 會顯示在 Bindplane 控制台中。
    • Bindplane 控制台會顯示您先前使用 API 為這個執行個體設定的所有已處理資料。系統會將您透過 API 設定的部分處理器轉換為 Bindplane 處理器,並以原始 OpenTelemetry 轉換語言 (OTTL) 格式顯示其他處理器。您可以使用 Bindplane 控制台,編輯先前透過 API 設定的管道和處理器。
  5. 成功建立 Google SecOps 執行個體的連線後,您就可以建立 SecOps 管道,並使用 Bindplane 控制台設定資料處理作業

使用 Bindplane 控制台設定資料處理

您可以使用 Bindplane 控制台管理 Google SecOps 處理的資料,包括使用 API 設定的管道。

事前準備

開始之前,建議您先閱讀下列重要建議:

  • 呼叫 Backstory API 的推送式串流已淘汰,不再支援資料處理。將整合項目遷移至 Chronicle Ingestion API。
  • 如要首次安裝 Bindplane 控制台,或將 Google SecOps 目的地執行個體連線至 Bindplane 專案,請參閱「必要條件」。
  • 除了使用 Bindplane 控制台,您也可以直接呼叫 Google SecOps API,設定及管理資料處理作業。詳情請參閱「使用 Google SecOps Data Pipeline API」。
  • 從轉送器和 Bindplane 擷取的資料會標上與直接擷取資料串流不同的 collectorID。如要支援完整記錄可見度,查詢資料來源時,您必須選取所有擷取方法,或與 API 互動時明確參照相關的 collectorID

請按照下列步驟在 Google SecOps 中佈建及部署新的記錄處理管線,通常是使用 Bindplane 控制台:

  1. 建立新的 SecOps 管道
  2. 設定資料處理方式
    1. 設定串流
    2. 設定處理器
  3. 推出資料處理管道

建立新的 Google SecOps 管道

Google SecOps 管道是容器,可供您設定一個資料處理容器。如要建立新的 Google SecOps 管道容器,請按照下列步驟操作:

  1. Bindplane 控制台中,按一下「SecOps Pipelines」分頁標籤,開啟「SecOps Pipelines」頁面。
  2. 按一下「建立 SecOps Pipeline」
  3. 在「建立新的 SecOps Pipeline」視窗中,將「SecOps Pipeline 類型」設為「Google SecOps」 (預設)。
  4. 輸入「SecOps Pipeline name」(SecOps 管道名稱) 和「Description」(說明)

  5. 點按「Create」(建立)。您可以在「SecOps Pipelines」(SecOps 管道) 頁面中看到新的管道容器。

  6. 設定資料處理容器,以及這個容器內的串流和處理器。

設定資料處理容器

資料處理容器會指定要擷取的資料串流,以及要用來處理資料的處理器 (例如篩選、轉換或遮蓋),以便將資料傳送至 Google SecOps Destination 執行個體。

管道設定資訊卡會顯示資料處理管道的視覺化內容,您可以在其中設定資料串流處理器節點

  • 串流會根據設定的規格擷取資料,並將資料提供給容器。資料處理容器可以有一或多個串流,每個串流都設定為不同的串流。
  • 處理器節點包含處理器,可處理流向 Google SecOps 目的地執行個體的資料。

如要設定資料處理容器,請按照下列步驟操作:

  1. 建立新的 SecOps 管道
  2. Bindplane 控制台中,按一下「SecOps Pipelines」分頁標籤,開啟「SecOps Pipelines」頁面。
  3. 選取要設定新資料處理容器的 SecOps 管道。
  4. 在「Pipeline」設定資訊卡上:

    1. 新增串流
    2. 設定處理器節點。如要使用 Bindplane 控制台新增處理器,請參閱「設定處理器」一文。
  5. 完成這些設定後,請參閱「推出資料處理功能」,開始處理資料。

新增串流

如要新增串流,請按照下列步驟操作:

  1. 在「Pipeline」設定資訊卡中,按一下「新增」圖示 「新增串流」,開啟「建立串流」視窗。
  2. 在「建立 SecOps 串流」視窗中,輸入下列欄位的詳細資料:

    欄位 說明
    記錄類型 選取要擷取資料的記錄類型。例如:CrowdStrike Falcon (CS_EDR)
    注意 警告 warning 圖示表示記錄類型已在另一個串流中設定 (無論是在這個管道,還是 Google SecOps 執行個體中的另一個管道)。

    如要使用無法使用的記錄類型,請先從其他串流設定中刪除。

    如需如何找出設定記錄類型的串流設定,請參閱「篩選 SecOps 管道設定」。
    擷取方式 選取要用於擷取所選記錄類型資料的擷取方法。這些擷取方法先前已為 Google SecOps 執行個體定義。

    請選取下列其中一個選項:

    • 所有擷取方法:包含所選記錄類型的所有擷取方法。選取這個選項後,您就無法為同一記錄類型新增使用特定擷取方法的後續串流。例外狀況:您可以在其他串流中,為這個記錄檔類型選取其他未設定的特定擷取方法。
    • 特定擷取方法,例如 Cloud Native IngestionFeedIngestion APIWorkspace
    動態消息 如果選取 Feed 做為擷取方法,系統會顯示後續欄位,其中列出所選記錄類型可用的動態饋給名稱 (已在 Google SecOps 執行個體中預先設定)。您必須選取相關動態饋給,才能完成設定。如要查看及管理可用的動態饋給,請前往「SIEM 設定」>「動態饋給表格」

  3. 按一下「新增資料串流」儲存新資料串流。新資料串流會立即顯示在「管道」設定資訊卡上。系統會自動將串流連線至處理器節點和 Google SecOps 目的地

篩選 SecOps 管道設定

您可以在「SecOps Pipelines」(SecOps 管道) 頁面使用搜尋列,根據多個設定元素篩選及找出 SecOps 管道 (資料處理容器)。您可以搜尋特定條件 (例如記錄類型、擷取方法或動態饋給名稱) 來篩選管道。

請使用下列語法進行篩選:

  • logtype:value
  • ingestionmethod:value
  • feed:value

舉例來說,如要找出含有特定記錄類型的串流設定,請在搜尋列中輸入 logtype:,然後從結果清單中選取記錄類型。

設定處理器

資料處理容器有一個處理器節點,其中包含一或多個處理器。每個處理器會依序操控串流資料:

  1. 第一個處理器會處理原始串流資料。
  2. 第一個處理器產生的輸出內容會立即成為序列中下一個處理器的輸入內容。
  3. 後續所有處理器都會依 Processors 窗格中顯示的順序執行這項程序,且前一個處理器的輸出內容會成為下一個處理器的輸入內容。

下表列出處理器:

處理器類型 功能
篩選器 依條件篩選
篩選器 依 HTTP 狀態篩選
篩選器 按照指標名稱篩選
篩選器 依規則運算式篩選
篩選器 依嚴重程度篩選
遮蓋 遮蓋私密資料
轉換 新增欄位
轉換 Coalesce
轉換 Concat
轉換 複製欄位
轉換 刪除欄位
轉換 Marshal
轉換 移動欄位
轉換 剖析 CSV
轉換 剖析 JSON
轉換 剖析鍵值
轉換 剖析嚴重性欄位
轉換 剖析時間戳記
轉換 使用規則運算式剖析
轉換 剖析 XML
轉換 重新命名欄位
轉換 重寫時間戳記
轉換 分割
轉換 轉換
  1. 新增、移除一或多個處理器,或變更處理器的順序,即可設定處理器節點。

新增處理器

如要新增處理器,請按照下列步驟操作:

  1. 在「Pipeline」設定資訊卡中,按一下「Processor」節點,開啟「Edit Processors」視窗。 「編輯處理者」視窗會依資料流程分為以下窗格:

    • 輸入 (或來源資料):最近收到的串流記錄資料 (處理前)
    • 設定 (或處理器清單):處理器及其設定
    • 輸出 (或結果):最近的輸出結果記錄資料 (處理後)

    如果管道先前已推出,系統會在窗格中顯示最近的傳入記錄資料 (處理前) 和最近的傳出記錄資料 (處理後)。

  2. 按一下「新增處理器」,系統會顯示處理器清單。 為方便起見,處理器清單會依處理器類型分組。如要整理清單及新增自己的套裝組合,請選取一或多個處理器,然後按一下「新增處理器套裝組合」

  3. 在處理器清單中,選取要新增的「處理器」

  4. 視需要設定處理器。

  5. 按一下「儲存」,將處理器設定儲存在「處理器」節點中。

系統會立即處理新傳入的串流資料樣本 (來自「輸入」窗格),測試新設定,並在「輸出」窗格中顯示產生的輸出資料。

推出資料處理管道

完成串流和處理器設定後,您必須推出管道才能開始處理資料,步驟如下:

  1. 按一下「開始推出」。這會立即啟動資料處理程序,並讓 Google 的安全基礎架構根據您的設定開始處理資料。

  2. 如果推出成功,資料處理容器的版本號碼會遞增,並顯示在容器名稱旁。

在 Google SecOps 控制台中查看資料處理詳細資料

以下各節說明如何透過 Google SecOps 控制台查看資料處理詳細資料:

查看所有資料處理設定

  1. 在 Google SecOps 控制台中,依序前往「SIEM Settings」>「Data Processing」,即可查看所有已設定的管道。
  2. 在「Incoming Data Pipelines」(傳入資料管道) 搜尋列中,搜尋您建立的任何管道。您可以依元素搜尋,例如管道名稱元件。搜尋結果會顯示管道的處理器,以及設定摘要。
  3. 您可以在管道摘要中執行下列任一動作:
    • 檢查處理器設定。
    • 複製設定詳細資料。
    • 按一下「在 Bindplane 開啟」,即可在 Bindplane 控制台中直接存取及管理管道。

查看已設定的動態饋給

如要在系統中查看已設定的動態饋給,請按照下列步驟操作:

  1. 在 Google SecOps 控制台中,依序前往「SIEM Settings」(SIEM 設定) >「Feeds」(動態饋給)。「動態饋給」頁面會顯示你在系統中設定的所有動態饋給。
  2. 將指標懸停在每一列上,即可顯示「更多」選單,你可以在這裡查看動態饋給詳細資料、編輯、停用或刪除動態饋給。
  3. 按一下「查看詳細資料」,即可查看詳細資料視窗。
  4. 按一下「在 Bindplane 開啟」,在 Bindplane 控制台中開啟該動態饋給的串流設定。

查看資料處理詳細資料 (可用記錄類型)

如要在「Available Log Types」(可用的記錄類型) 頁面查看資料處理詳細資料,請按照下列步驟操作:

  1. 在 Google SecOps 控制台中,依序前往「SIEM Settings」(SIEM 設定) >「Available Log Types」(可用記錄類型)。主要頁面會顯示所有記錄類型。
  2. 將指標懸停在每個動態消息列上,即可顯示 more_vert 「更多」選單。這個選單可讓您查看、編輯、停用或刪除動態饋給詳細資料。
  3. 按一下「查看資料處理」,即可查看動態饋給的設定。
  4. 按一下「在 Bindplane 中開啟」,在 Bindplane 控制台中開啟該處理器的處理器設定。

使用 Google SecOps 資料管道方法

Google SecOps 資料管道方法提供全方位工具,可管理處理後的資料。這些資料管道方法包括建立、更新、刪除及列出管道,以及將動態饋給和記錄類型與管道建立關聯。

用途

本節提供與資料管道方法相關的常見用途範例。

如要使用本節中的範例,請執行下列操作:

  • 將客戶專屬參數 (例如網址和動態饋給 ID) 替換為適合您環境的參數。
  • 插入自己的驗證。在本節中,持有人權杖會以 ****** 遮蓋。

列出特定 Google SecOps 執行個體中的所有管道

下列指令會列出特定 Google SecOps 執行個體中的所有管道:

curl --location 'https://abc.def.googleapis.com/v123/projects/projectabc-byop/locations/us/instances/aaaa1aa1-111a-11a1-1111-11111a1aa1aa/logProcessingPipelines' \
--header 'Authorization: Bearer ******'

使用單一處理器建立基本管道

如要使用 Transform 處理器建立基本管道,並將三個來源與管道建立關聯,請按照下列步驟操作:

  1. 執行下列指令:

    curl --location 'https://abc.def.googleapis.com/v123/projects/projectabc-byop/locations/us/instances/aaaa1aa1-111a-11a1-1111-11111a1aa1aa/logProcessingPipelines' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ******' \
    --data '{
        "displayName": "Example Pipeline",
        "description": "My description",
        "processors": [
            {
                "transformProcessor": {
                    "statements": [
                        "set(attributes[\"myKey1\"], \"myVal1\")",
                        "set(attributes[\"myKey2\"], \"myVal2\")"
                    ]
                }
            }
        ]
    }'
    
  2. 從回應中複製 displayName 欄位的值。

  3. 執行下列指令,將三個串流 (記錄類型、含收集器 ID 的記錄類型和資訊提供) 與管道建立關聯。請使用 displayName 欄位的值做為 {pipelineName} 值。

    curl --location 'https://abc.def.googleapis.com/v123/{pipelineName}:associateStreams' \
        --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ******' \
    --data '{
        "streams": [
            {
                "logType": "MICROSOFT_SENTINEL"
            },
            {
                "logType": "A10_LOAD_BALANCER",
                "collectorId": "dddddddd-dddd-dddd-dddd-dddddddddddd"
            },
            {
                "feed": "1a1a1a1a-1a1a-1a1a-1a1a-1a1a1a1a1a1a"
            }
        ]
    }'
    

建立含有三個處理器的管道

管道會使用下列處理器:

  • 轉換:將記錄主體轉換並剖析為 JSON。
  • 篩選:根據剖析的本文,篩除符合條件的記錄。
  • 遮蓋:遮蓋與 Bindplane 預設機密值相符的資料。

如要建立管道並將三個來源與其建立關聯,請按照下列步驟操作:

  1. 執行下列指令:

    curl --location 'https://abc.def.googleapis.com/v123/projects/projectabc-byop/locations/us/instances/aaaa1aa1-111a-11a1-1111-11111a1aa1aa/logProcessingPipelines' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ******' \
    --data-raw '{
        "displayName": "My Pipeline 2",
        "description": "My description 2",
        "processors": [
            {
                "transformProcessor": {
                    "statements": [
                        "merge_maps(\n  body,\n  ParseJSON(\n    body\n  ),\n  \"upsert\"\n) where IsMap(body) and true\n",
                        "set(\n  body,\n  ParseJSON(\n    body\n  )\n) where not IsMap(body) and true\n"
                    ],
                    "errorMode": "IGNORE"
                }
            },
            {
                "filterProcessor": {
                    "logConditions": [
                        "true and severity_number != 0 and severity_number < 9"
                    ]
                }
            },
            {
                "redactProcessor": {
                    "blockedValues": [
                        "\\b[A-Z]{2}\\d{2}(?: ?[A-Z0-9]){11,31}(?:\\s[A-Z0-9])*\\b",
                        "\\b([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}\\b",
                        "\\b(?:(?:(?:\\d{4}[- ]?){3}\\d{4}|\\d{15,16}))\\b",
                        "\\b(?:(?:19|20)?\\d{2}[-/])?(?:0?[1-9]|1[0-2])[-/](?:0?[1-9]|[12]\\d|3[01])(?:[-/](?:19|20)?\\d{2})?\\b",
                        "\\b[a-zA-Z0-9._/\\+\\-—|]+@[A-Za-z0-9\\-—|]+\\.[a-zA-Z|]{2,6}\\b",
                        "\\b(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\b",
                        "\\b(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}\\b",
                        "\\b((\\+|\\b)[1l][\\-\\. ])?\\(?\\b[\\dOlZSB]{3,5}([\\-\\. ]|\\) ?)[\\dOlZSB]{3}[\\-\\. ][\\dOlZSB]{4}\\b",
                        "\\+[1-9]\\d{0,2}(?:[-.\\s]?\\(?\\d+\\)?(?:[-.\\s]?\\d+)*)\\b",
                        "\\b\\d{3}[- ]\\d{2}[- ]\\d{4}\\b",
                        "\\b[A-Z][A-Za-z\\s\\.]+,\\s{0,1}[A-Z]{2}\\b",
                        "\\b\\d+\\s[A-z]+\\s[A-z]+(\\s[A-z]+)?\\s*\\d*\\b",
                        "\\b\\d{5}(?:[-\\s]\\d{4})?\\b",
                        "\\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}\\b"
                    ],
                    "allowAllKeys": true,
                    "allowedKeys": [
                        "__bindplane_id__"
                    ],
                    "ignoredKeys": [
                        "__bindplane_id__"
                    ],
                    "redactAllTypes": true
                }
            }
        ]
    }'
    
  2. 從回應中複製 displayName 欄位的值。

  3. 執行下列指令,將三個串流 (記錄類型、含收集器 ID 的記錄類型和資訊提供) 與管道建立關聯。請使用 displayName 欄位的值做為 {pipelineName} 值。

    curl --location 'https://abc.def.googleapis.com/v123/{pipelineName}:associateStreams' \
        --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer ******' \
    --data '{
        "streams": [
            {
                "logType": "MICROSOFT_SENTINEL"
            },
            {
                "logType": "A10_LOAD_BALANCER",
                "collectorId": "dddddddd-dddd-dddd-dddd-dddddddddddd"
            },
            {
                "feed": "1a1a1a1a-1a1a-1a1a-1a1a-1a1a1a1a1a1a"
            }
        ]
    }'
    

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