Benachrichtigungen filtern

Auf dieser Seite finden Sie Beispielfilter, die Sie mit der Benachrichtigungsfunktion der Security Command Center API verwenden können, sowie die Nachrichten, die in Pub/Sub oder BigQuery exportiert werden. Sie können Benachrichtigungen nach jedem Ergebnisfeld filtern, einschließlich:

  • parent
  • state
  • resource_name
  • category
  • source_properties
  • security_marks

Sie können auch Standardoperatoren als Teil des Filterstrings verwenden:

  • AND, um Felder einzuschließen, die alle Werte einer Gruppe von Werten enthalten
  • OR, um Felder einzuschließen, die einen Wert einer Gruppe von Werten enthalten
  • -, um Felder auszuschließen, die einen bestimmten Wert enthalten
  • Klammern zum Gruppieren einer Gruppe von Werten, z. B.:

    (category = \"BUCKET_LOGGING_DISABLED\" OR category = \"CLUSTER_LOGGING_DISABLED\") AND state = \"ACTIVE\"

Quellfilter einrichten

Jedes Security Command Center-Ergebnis enthält die Quell-ID des Anbieters der Sicherheitsquelle. Beispielsweise enthält ein Ergebnis aus Security Health Analytics eine Quell-ID, die für Security Health Analytics eindeutig ist. Die Quell-ID wird in einem NotificationConfig-Filter verwendet, um die Anbieterergebnisse anzugeben, die Sie an das Pub/Sub-Benachrichtigungsthema oder das BigQuery-Dataset senden möchten.

Schritt 1: Quell-ID abrufen

Verwenden Sie die Google Cloud Console oder die Google Cloud CLI, um die Quell-ID eines Anbieters abzurufen.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Ergebnisse des Security Command Center.
    Zur Seite "Ergebnisse"
  2. Wählen Sie die Organisation aus, für die Sie einen Benachrichtigungsfilter erstellen möchten. Die Seite Ergebnisse wird geöffnet.
  3. Scrollen Sie im Bereich Schnellfilter nach unten zum Abschnitt Anzeigename der Quelle und wählen Sie den Namen des Anbieters aus, den Sie zum Filtern der Benachrichtigungsergebnisse verwenden möchten.
  4. Klicken Sie im Bereich Ergebnisse der Ergebnisabfrage in der Spalte Kategorie auf den Namen eines der Ergebnisse, um den Bereich mit den Ergebnisdetails aufzurufen.
  5. Klicken Sie im Detailbereich mit den Ergebnissen auf den Tab JSON. Der vollständige JSON-Code für das Ergebnis wird angezeigt.
  6. Kopieren Sie in der JSON-Datei den Wert des Attributs parent. Beispiel:

    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID"

    Die IDs werden so dargestellt:

    • ORGANIZATION_ID: ID der Organisation des übergeordneten Quellanbieters.
    • SOURCE_ID: ID des übergeordneten Quellanbieters.

gcloud

Führen Sie den folgenden Befehl aus, um Ihre Quellen-ID abzurufen:

  gcloud scc sources describe ORGANIZATION_ID --source-display-name="SOURCE_NAME"

Ersetzen Sie Folgendes:

  • ORGANIZATION_ID: Ihre Organisations-ID.
  • SOURCE_NAME: Name des Dienstes, für den Sie die Quell-ID haben möchten. Verwenden Sie den Namen eines beliebigen Ergebnisanbieters, einschließlich der integrierten Dienste des Security Command Center, Security Health Analytics, Web Security Scanner, Event Threat Detection und Container Threat Detection.

Die Ausgabe für den gcloud CLI-Befehl sieht in etwa so aus und enthält die Quell-ID:

  {
   "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
   "displayName": "example-source",
   "description": "A source that creates findings."
  }

Verwenden Sie als Nächstes die Organisations-ID und die Quell-ID, um einen Benachrichtigungsfilter zu erstellen.

Schritt 2: Filter erstellen

Zum Erstellen eines Benachrichtigungsfilters erstellen Sie eine neue NotificationConfig.

Sie können einen Filter zur Datei NotificationConfig hinzufügen, um eine bestimmte Quelle ein- oder auszuschließen:

  • Filtern Sie die Ergebnisse, um Benachrichtigungen nur von der angegebenen Quelle zu senden:

      state = \"ACTIVE\" AND parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"
    
  • Filtern Sie die Ergebnisse, um Benachrichtigungen aus allen Quellen außer der angegebenen Quelle zu senden:

      state = \"ACTIVE\" AND -parent = \"organizations/$ORGANIZATION_ID/sources/$SOURCE_ID\"
    

Weitere Beispiele für Filter, die Sie verwenden können, finden Sie unter Sicherheitsergebnisse mit der Security Command Center API auflisten.

Ergebnisse bei Verwendung von Pub/Sub-Themen nach Kategorie und Zustand filtern

In den folgenden Abschnitten finden Sie Beispiele zum Erstellen eines Filters für bestimmte Quellen und Ergebnistypen sowie die Benachrichtigung, die an Ihr Pub/Sub-Thema gesendet wird.

Wenn Sie BigQuery-Datasets anstelle von Pub/Sub-Themen verwenden, werden die Ergebnisse und die zugehörigen Felder unter Ergebnisse zur Analyse in BigQuery exportieren beschrieben.

Security Health Analytics

Dieses Beispiel für Security Health Analytics verwendet die folgenden Filter:

category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"

Weitere Informationen zu den Ergebnistypen, die Security Health Analytics erstellt, finden Sie auf der Seite Ergebnisse von Security Health Analytics.

Die Pub/Sub-Nachricht für die gefilterte Ergebnisbenachrichtigung von Security Health Analytics sieht so aus:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/security-health-analytics-active-findings",
   "finding": {
     "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
     "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
     "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/,
     "state": "ACTIVE",
     "category": "OPEN_FIREWALL",
     "externalUri": "https://console.cloud.google.com/networking/firewalls/details/default-allow-icmp?project\u003PROJECT_ID",
     "sourceProperties": {
       "ReactivationCount": 0.0,
       "Allowed": "[{\"ipProtocol\":\"icmp\"}]",
       "WhitelistInstructions": "Add the security mark \"allow_open_firewall_rule\" to the asset with a value of \"true\" to prevent this finding from being activated again.",
       "Recommendation": "Restrict the firewall rules at: https://console.cloud.google.com/networking/firewalls/details/default-allow-icmp?project\u003PROJECT_ID",
       "AllowedIpRange": "All",
       "ActivationTrigger": "Allows all IP addresses",
       "SourceRange": "[\"0.0.0.0/0\"]",
       "ScanRunId": "2019-04-06T08:50:58.832-07:00",
       "SeverityLevel": "High",
       "ProjectId": "PROJECT_ID",
       "AssetCreationTime": "2019-03-28t17:58:54.409-07:00",
       "ScannerName": "FIREWALL_SCANNER",
       "Explanation": "Firewall rules that allow connections from all IP addresses or on all ports may expose resources to attackers."
     },
     "securityMarks": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
       "marks": {
         "sccquery152cd5aa66ea4bc8a672d8186a125580": "true",
         "sccquerya3cf2270123f4e91b84a3e613d2cac67": "true"
       }
     },
     "eventTime": "2019-09-22T21:26:57.189Z",
     "createTime": "2019-03-29T15:51:26.435Z"
   }
 }

Anomalieerkennung

Dieses Beispiel für die Benachrichtigung zur Anomalieerkennung verwendet die folgenden Filter:

category = \"resource_involved_in_coin_mining\" AND state = \"ACTIVE\"

Weitere Informationen zu den Ergebnistypen, die bei der Anomalieerkennung erstellt werden, finden Sie auf der Seite Sicherheitslücken und Bedrohungen anzeigen.

Die Pub/Sub-Nachricht für die nach Anomalieerkennung gefilterte Ergebnisbenachrichtigung sieht so aus:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/cloud-anomaly-detection-active-findings",
   "finding": {
     "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
     "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
     "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
     "state": "ACTIVE",
     "category": "resource_involved_in_coin_mining",
     "sourceProperties": {
       "vm_ips": "35.231.191.191",
       "end_time_usec": "1569003180000000",
       "abuse_target_ips": "54.38.176.231",
       "end_datetime_UTC": "2019-09-20 18:13:00 UTC",
       "urls": "swap2.luckypool.io, bitcash.luckypool.io",
       "vm_host_and_zone_names": "ubuntu-1804-tp100-gminer:us-east1-b",
       "finding_type": "Abuse originating from a resource in your organization.",
       "start_time_usec": "1569002700000000",
       "action_taken": "Notification sent",
       "summary_message": "We have recently detected activity on your Google Cloud Platform/APIs project that violates our Terms of Service or Acceptable Use Policy.",
       "start_datetime_UTC": "2019-09-20 18:05:00 UTC"
     },
     "securityMarks": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
       "marks": {                                                                                                                                                                                             "triage": "required",
         "teste123": "true",
         "sccquery94c23b35ea0b4f8388268415a0dc6c1b": "true"
       }
     },
     "eventTime": "2019-09-20T18:59:00Z",
     "createTime": "2019-05-16T14:16:35.674Z"
   }
 }

Event Threat Detection

In diesem Beispiel für die Event Threat Detection werden die folgenden Filter verwendet:

category = \"Persistence: Iam Anomalous Grant\" AND state = \"ACTIVE\"

Weitere Informationen zu den Arten von Ergebnissen, die von Event Threat Detection erstellt werden, finden Sie auf der Seite Sicherheitslücken und Bedrohungen anzeigen.

Die Pub/Sub-Nachricht für die nach Event Threat Detection gefilterte Ergebnisbenachrichtigung sieht so aus:

{
  "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/event-threat-detection-active-findings",
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
    "state": "ACTIVE",
    "category": "Persistence: IAM Anomalous Grant",
    "sourceProperties": {
      "sourceId": {
        "organizationNumber": "ORGANIZATION_ID",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "detectionCategory": {
        "technique": "persistence",
        "indicator": "audit_log",
        "ruleName": "iam_anomalous_grant",
        "subRuleName": "external_member_added_to_policy"
      },
      "detectionPriority": "HIGH",
      "evidence": [{
        "sourceLogId": {
          "timestamp": {
            "seconds": "1601066317",
            "nanos": 4.63E8
          },
          "insertId": "INSERT_ID"
        }
      }],
      "properties": {
        "sensitiveRoleGrant": {
          "principalEmail": "PRINCIPAL_EMAIL@gmail.com",
          "bindingDeltas": [{
            "action": "ADD",
            "role": "roles/owner",
            "member": "user:USER_EMAIL@gmail.com"
          }, {
            "action": "REMOVE",
            "role": "roles/viewer",
            "member": "user:USER_EMAIL@gmail.com"
          }],
          "members": ["USER_EMAIL@gmail.com"]
        }
      },
      "findingId": "FINDING_ID"
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2020-09-25T20:38:39.441Z",
    "createTime": "2020-09-25T20:38:40.667Z"
  }
}

Forseti Security

Dieses Forseti-Beispiel verwendet die folgenden Filter:

category = \"FIREWALL_BLACKLIST_VIOLATION\" AND state = \"ACTIVE\"

Weitere Informationen zu den Ergebnistypen, die Forseti erstellt, finden Sie auf der Forseti-Website)

Die Pub/Sub-Nachricht für die nach Forseti gefilterte Ergebnisbenachrichtigung sieht so aus:

{
  "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/forseti-firewall-denylist-active-findings",
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "organization/ORGANIZATION_ID/project/PROJECT_ID/firewall/firewall-id/",
    "state": "ACTIVE",
    "category": "FIREWALL_BLACKLIST_VIOLATION",
    "sourceProperties": {
      "scanner_index_id": 6554388765422,
      "resource_id": "PROJECT_ID",
      "db_source": "table:violations/id:10127",
      "inventory_index_id": 1569189610158079,
      "resource_type": "firewall",
      "rule_index": 1,
      "source": "FORSETI",
      "resource_data": "{\"allowed\": [{\"IPProtocol\": \"ah\"}, {\"IPProtocol\": \"esp\"}, {\"IPProtocol\": \"icmp\"}, {\"IPProtocol\": \"sctp\"}, {\"IPProtocol\": \"tcp\"}, {\"IPProtocol\": \"udp\"}], \"direction\": \"INGRESS\", \"name\": \"gke-range-cluster-890sad\", \"network\": \"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default\", \"priority\": 1000, \"sourceRanges\": [\"10.48.0.0/14\"], \"targetTags\": [\"gke-firing-range-cluster-73d1fcce-node\"]}",
      "rule_name": "disallow_all_ports",
      "violation_data": "{\"policy_names\": [\"gke-range-cluster-890sad\"], \"recommended_actions\": {\"DELETE_FIREWALL_RULES\": [\"gke-range-cluster-890sad\"]}}"
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
      "marks": {
        "priority": "p1"
      }
    },
    "eventTime": "2019-09-22T22:03:58Z",
    "createTime": "2019-08-14T02:19:58.218Z"
  }
}

Schutz sensibler Daten

In diesem Beispiel für den Schutz sensibler Daten werden die folgenden Filter verwendet:

category = \"CREDIT_CARD_NUMBER\" AND state = \"ACTIVE\"

Weitere Informationen zu den Arten von Ergebnissen, die von Event Threat Detection erstellt werden, finden Sie auf der Seite Sicherheitslücken und Bedrohungen anzeigen.

Die Pub/Sub-Nachricht für die Benachrichtigung zum Schutz sensibler Daten sieht so aus:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/dlp-data-discovery-active-findings",
   "finding": {
     "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
     "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
     "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
     "state": "ACTIVE",
     "category": "CREDIT_CARD_NUMBER",
     "externalUri": "https://console.cloud.google.com/dlp/projects/PROJECT_ID/dlpJobs/i-7536622736814356939;source\u003d5",
     "sourceProperties": {
       "COUNT": 2.0,
       "JOB_NAME": "projects/PROJECT_ID/dlpJobs/i-7536622736814356939",
       "FULL_SCAN": false
     },
     "securityMarks": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
       "marks": {
         "priority": "p1",
         "sccquerya3cf2270123f4e91b84a3e613d2cac67": "true"
       }
     },
     "eventTime": "2019-09-16T23:21:19.650Z",
     "createTime": "2019-04-22T23:18:17.731Z"
   }
 }

Nächste Schritte