在主控台中查詢發現項目

本頁面說明如何使用「發現項目」頁面上的「查詢編輯器」面板,建立及編輯 Security Command Center 發現項目查詢。

使用查詢擷取特定發現項目,並篩選發現項目查詢結果中顯示的發現項目。

編輯發現項目查詢

在「查詢編輯器」面板中,您可以為查詢新增篩選器,根據屬性或屬性值選取調查結果。您可以篩選值是否存在、值是否不存在,或是部分字串是否相符。

如要瞭解如何編輯調查結果查詢,請按一下服務層級的分頁。

標準或進階

  1. 在 Google Cloud 控制台中,前往 Security Command Center 的「發現項目」頁面。

    前往「發現項目」

  2. 選取 Google Cloud 專案或機構。「發現」頁面載入時,「查詢預覽」欄位會顯示預設查詢。
  3. 在「查詢預覽」部分右側,按一下「編輯查詢」,開啟「查詢編輯器」面板。
  4. 選取「新增篩選條件」,即可瀏覽、搜尋及將預先定義的屬性篩選條件新增至查詢。
  5. 在「選取篩選器」對話方塊中,您可以選擇系統支援的搜尋屬性和值。

    1. 選取發現項目屬性,或在「搜尋發現項目屬性」方塊中輸入屬性名稱。畫面上會顯示可用的子屬性清單。
    2. 選取子屬性。系統會顯示選取欄位,您可以使用所選子屬性、查詢運算子,以及一或多個子屬性值,建構查詢陳述式。
    3. 從面板中選取子屬性的運算子和一或多個值。 如要進一步瞭解查詢運算子和使用的函式,請參閱「新增篩選器」選單中的「查詢運算子」。
    4. 按一下 [套用]

      對話方塊會關閉,查詢也會更新。

    5. 重複上述步驟,直到結果查詢包含所有需要的屬性為止。

在「發現」頁面的查詢編輯器中工作時,系統會停用「快速篩選器」部分,避免兩者發生衝突。

Enterprise

  1. 在 Google Cloud 控制台中,前往 Security Command Center 的「發現項目」頁面。

    前往 Enterprise 層級的「發現項目」

  2. 在「查詢編輯器」面板中,按一下 「新增篩選器」。系統會隨即顯示「Add Filter」(新增篩選器) 對話方塊。這個對話方塊可讓您選擇支援的發現項目屬性和值。
  3. 在「屬性類別」欄位中,選取或輸入發現屬性。
  4. 在「屬性名稱」欄位中,選取或輸入子屬性。
  5. 在「運算子」欄位中,選取所選子屬性值的評估選項。如要進一步瞭解評估選項和可使用的運算子,請參閱「新增篩選器」選單中的查詢運算子
  6. 選取「套用」

    對話方塊會關閉,查詢也會更新。

  7. 重複這個程序,直到查詢結果包含所有要篩選的屬性為止。

    如要清除篩選器,請按一下「重設」

或者,您也可以手動建立發現項目查詢,方法與使用 Security Command Center API 建立發現項目篩選器相同。輸入查詢時,系統會顯示自動完成選單,供您選取篩選器名稱、函式和值。如要手動開啟自動完成選單,請按下 Control + 空格鍵

編輯查詢時,編輯器會醒目顯示查詢中的所有錯誤,方便您在提交查詢前修正錯誤。

查詢運算子

Security Command Center 發現項目的查詢陳述式支援大多數 Google Cloud API 支援的運算子。

以下清單顯示各種運算子的用法:

  • state="ACTIVE" AND NOT mute="MUTED"
  • create_time>"2023-08-15T19:05:32.428Z"
  • resource.parent_name:"prod"
  • severity="CRITICAL" OR severity="HIGH"

以下列出發現項目的查詢陳述式支援的所有運算子和函式:

  • 字串:
    • =,爭取完全平等
    • : (與部分字串相符)
  • 數字:
    • <><=>= (適用於不等式)
    • =!=,爭取平等
  • 布林值:
    • =,爭取平等
  • 邏輯關係:
    • AND
    • OR
    • NOT-
  • 運算式分組:
    • () (括號)
  • 陣列:
    • contains():這個函式可查詢結果,其中包含至少一個符合指定篩選條件的元素
    • containsOnly():這個函式可查詢結果,並找出只包含符合指定篩選條件元素的陣列欄位
  • IP 位址:
    • inIpRange():這個函式可以查詢指定 CIDR 範圍內的 IP 位址

「新增篩選器」選單中的查詢運算子

如要瞭解「新增篩選器」選單中使用的查詢運算子,請按一下服務層級的分頁標籤。

標準或進階

在「Query editor」(查詢編輯器) 的「Add filter」(新增篩選器) 選單中,查詢運算子和函式會以字詞或片語表示,例如:

  • 等於:與這個屬性值完全相符的結果。
  • 不等於:比對不具備這個確切屬性值的結果。
  • 晚於:比對建立或更新時間晚於指定時間的發現項目。
  • 早於:比對建立或更新時間早於指定時間的發現項目。
  • 包含:比對屬性值包含您在「關鍵字」欄位中輸入文字的結果。
  • 不含:比對屬性值不含您在「關鍵字」欄位中輸入文字的發現項目。
  • 如要尋找含有陣列的屬性:
    • 包含任何:比對含有陣列值的發現項目,該陣列值包含您在「關鍵字」欄位中輸入的任何文字。
    • 包含所有:比對出含有陣列值的發現項目,且陣列值包含您在「關鍵字」欄位中輸入的所有文字。
    • 不包含任何項目:比對沒有陣列值的發現項目,該陣列值包含您在「關鍵字」欄位中輸入的文字。
    • 只包含:比對具有陣列屬性的發現項目,該屬性只包含您在「關鍵字」欄位中輸入的值,不含其他值。
  • IP 位址:
    • IP 範圍內的任何位址:比對 IP 位址位於指定 CIDR 範圍內的結果。
    • 皆不在 IP 範圍中:比對 IP 位址不在指定 CIDR 範圍內的發現項目。

Enterprise

在「Query editor」(查詢編輯器) 的「Add filter」(新增篩選條件) 選單中,查詢運算子和函式會以以下形式表示:

  • 等於:與這個屬性值完全相符的結果。
  • 不等於:符合不具備這個屬性值的發現項目。
  • 晚於:比對發現項目與指定時間之後的建立或更新時間。
  • 早於:比對結果的建立或更新時間早於指定時間。
  • 包含:比對屬性值包含您在「關鍵字」欄位中輸入文字的發現項目。
  • 不含:比對屬性值不含您在「關鍵字」欄位中輸入的文字的結果。
  • 大於:符合屬性值高於指定值的發現項目。
  • 小於:比指定值低的屬性值。
  • IP 範圍內的任何位址:比對 IP 位址位於指定 CIDR 範圍內的結果。
  • 皆不在 IP 範圍中:與 IP 位址不在指定 CIDR 範圍內的發現項目相符。

查詢函式

查詢函式可對屬性值進行比一般查詢運算子更複雜的評估。

contains 函式

使用 contains 函式評估屬性或屬性子欄位,這些屬性或子欄位可能會在同一項發現中出現多次。

這些屬性或屬性子欄位會在內部儲存在陣列資料結構的元素中,因此稱為陣列型屬性

舉例來說,某些調查結果可能會參照多個網路連線,因此 connections 屬性是陣列型屬性。同樣地,某些威脅發現項目可能會將多個 IP 位址做為遭入侵的指標,因此 indicator 屬性的 ip_addresses 子欄位是陣列型屬性。

contains 函式使用下列語法:

contains(ARRAY_ATTRIBUTE_NAME, SUBFILTER)

更改下列內容:

  • ARRAY_ATTRIBUTE_NAME:儲存在陣列中的陣列型別屬性名稱。如果陣列型別屬性是另一個屬性的子欄位,請指定屬性名稱和子欄位名稱,並以半形句號分隔。

    在下列範例中,陣列型別屬性 ip_addressesindicator 的子欄位,因此兩者都會在 ARRAY_ATTRIBUTE_NAME 位置指定:

    contains(indicator.ip_addresses, elem="192.0.2.80")
  • SUBFILTER:定義如何評估陣列類型屬性每個執行個體的運算式。支援標準 Security Command Center 查詢運算子和評估陳述式

    如果要檢查的值位於陣列類型屬性的子欄位中,請在運算式左側指定子欄位名稱。下列 contains 函式會評估 connections 陣列的每個元素,這是包含子欄位的陣列類型屬性。要查詢的值位於 destination_ip 子欄位中,但該欄位並非陣列類型欄位。要查詢的值會以子欄位名稱 destination_ip 指定,而非 elem 參數。

    contains(connections, destination_ip="192.0.2.80")

    如果子欄位是陣列類型屬性,請在運算式左側指定陣列類型屬性及其父項,並在運算式右側使用 elem 參數指定要搜尋的值。舉例來說,下列 contains 函式會評估 ip_addresses 陣列的每個元素,這是 indicator 屬性的子欄位。「indicator」屬性不是陣列型欄位。

    contains(indicator.ip_addresses, elem="192.0.2.80")

「新增篩選器」選單中的 contains 函式

在「新增篩選器」選單中,視您評估的發現屬性而定,contains 函式會明確列出,或在您選取需要該函式的其他篩選器選項時自動加入。

舉例來說,針對「指標」屬性的「IP 位址」子欄位,您可以選取下列篩選選項:

  • 包含任何
  • 包含所有
  • 不包含任何標籤

相反地,如果您要依「連線」屬性的「目的地 IP」子欄位進行篩選,並選取「IP 範圍內的任何 IP」,系統就會自動在查詢陳述式中加入 contains 函式,如下列範例所示:

contains(connections, inIpRange(destination_ip, "2001:db8::/32"))

如要進一步瞭解 contains 函式,請參閱篩選陣列型別欄位

containsOnly 函式

containsOnly 函式可讓您查詢陣列型別屬性或子欄位的結果,這些屬性或子欄位只包含子篩選器中指定的值,不含其他值。

containsOnly 函式使用下列語法:

containsOnly(ARRAY_ATTRIBUTE_NAME,SUBFILTER)

更改下列內容:

  • ARRAY_ATTRIBUTE_NAME:陣列型別屬性的名稱。如果陣列型別屬性是另一個屬性的子欄位,請指定屬性名稱和子欄位名稱,並以半形句號分隔。使用 Google Cloud 控制台執行查詢時,這個函式只支援 iam_bindings.memberiam_bindings.role 陣列屬性。

  • SUBFILTER:定義如何評估陣列類型屬性中每個元素的運算式。系統支援標準 Security Command Center 查詢運算子和評估陳述式。

在「新增篩選器」選單中,下列篩選器選項會使用 containsOnly 函式:

  • IAM 繫結 > 成員:僅選取包含指定使用者、服務帳戶或群組的結果。

  • IAM 繫結 > 角色:只選取包含指定角色的調查結果。

以下範例顯示 Google Cloud 主控台 中的發現項目查詢,會傳回 example-group 群組中使用者未靜音的有效發現項目:

state="ACTIVE"
  AND NOT mute="MUTED"
  AND containsOnly(iam_bindings,member="group:example-group@example.com")

inIpRange 函式

inIpRange 函式會檢查所選發現項目屬性中的 IP 位址,是否位於您使用 CIDR 標記法指定的 IP 位址範圍 (CIDR 範圍) 內。以下顯示 inIpRange 函式的語法:

inIpRange(ATTRIBUTE_WITH_IP, "CIDR_RANGE")

在「新增篩選器」選單中,下列篩選器選項會使用 inIpRange 函式:

  • IP 範圍中的任何值:僅選取包含指定範圍內 IP 位址的結果。
  • 皆不在 IP 範圍中:只選取不含指定範圍內 IP 位址的結果。

以下範例顯示控制台中的發現項目查詢,會傳回未設為靜音的有效發現項目,其中 access 物件的 caller_ip 子欄位包含 2001:db8::/32 CIDR 範圍內的 IPv6 位址: Google Cloud

state="ACTIVE"
AND NOT mute="MUTED"
AND inIpRange(access.caller_ip, "2001:db8::/32")

以下範例顯示的發現項目查詢會傳回未設為靜音的有效發現項目,其中 access 物件的 caller_ip 子欄位不包含 192.0.2.0/24 的 IPv4 CIDR 範圍內的 IP 位址:

state="ACTIVE"
AND NOT mute="MUTED"
AND NOT inIpRange(access.caller_ip, "192.0.2.0/24")

如果 IP 位址位於可能在發現項目中多次出現的屬性,請搭配使用 contains 函式和 inIpRange 函式,檢查屬性的每個例項是否含有 IP 位址。例如:

contains(connections, inIpRange(source_ip, "192.0.2.0/24"))

如要進一步瞭解 contains() 函式,請參閱contains 函式

查詢的發現項目屬性

Security Command Center 會評估每個儲存的發現項目屬性,並與您在查詢中指定的屬性篩選器進行比較,然後選取要顯示的發現項目。

您可以查詢大部分的發現項目屬性。部分屬性是所有發現項目共有的。其他屬性可能與特定安全性問題、發現項目類別或偵測服務有關。

在「查詢編輯器」面板的「新增篩選條件」選單中,可套用至屬性篩選器的選項會因所選屬性類型,以及屬性是否具有子欄位或值陣列而異。

在「新增篩選器」選單中,按一下下列任一頂層屬性,即可顯示可在發現項目查詢中使用的子屬性和值: