Filtrer les notifications

>

Cette page présente des exemples de filtres que vous pouvez utiliser avec la fonctionnalité de notifications de l'API Security Command Center, ainsi que les messages Pub/Sub que cette fonctionnalité génère. Vous pouvez filtrer les notifications en fonction de n'importe quel champ de résultat, y compris :

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

Vous pouvez également utiliser des opérateurs standards dans la chaîne de filtre :

  • AND pour inclure des champs contenant un ensemble de valeurs entier
  • OR pour inclure des champs contenant un des ensembles de valeurs entier
  • - pour exclure les champs contenant une valeur spécifique
  • Les parenthèses permettent de regrouper un ensemble de valeurs, par exemple :

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

Configurer un filtre source

Chaque résultat de Security Command Center inclut l'ID source du fournisseur de source de sécurité. Par exemple, un résultat de l'analyse de l'état de la sécurité inclut un ID source propre à cette analyse. L'ID source est utilisé dans un filtre NotificationConfig pour spécifier les résultats du fournisseur que vous souhaitez envoyer au thème Pub/Sub des notifications.

Étape 1 : Obtenir l'ID source

Utilisez Google Cloud Console pour obtenir l'ID source d'un fournisseur :

  1. Accédez à la page Résultats de Security Command Center dans Cloud Console.
    Accéder à la page Résultats
  2. Sélectionnez l'organisation pour laquelle vous souhaitez créer un filtre de notifications.
  3. Dans l'écran Résultats, cliquez sur Type de source à côté de Afficher par. L'affichage des résultats s'actualise pour montrer les noms de chaque fournisseur de source de sécurité que vous avez activé.
  4. Cliquez sur le nom du fournisseur que vous souhaitez utiliser pour filtrer les résultats des notifications.
  5. Affichez la page d'informations du résultat en cliquant sur l'un des résultats.
  6. Sur la page de détails des résultats, à côté de parent, copiez l'ID de l'organisation et l'ID source du fournisseur. Les informations parentes sont affichées au format :

       organizations/organization-id/sources/source-id
    

Ensuite, utilisez l'ID de l'organisation et l'ID source pour créer un filtre de notifications.

Étape 2 : Créer un filtre

Pour créer un filtre de notifications, créez un objet NotificationConfig. Actuellement, vous ne pouvez pas mettre à jour les filtres sur un objet NotificationConfig existant. Au lieu de cela, vous devez supprimer l'objet NotificationConfig, puis en créer un autre.

Vous pouvez ajouter un filtre au fichier NotificationConfig pour inclure ou exclure une source spécifique :

  • Filtrez les résultats pour envoyer des notifications de la source spécifiée uniquement :

      state = \"ACTIVE\" AND parent = \"organizations/$ORG_ID/sources/$SOURCE_ID\"
    
  • Filtrez les résultats pour envoyer des notifications à partir de toutes les sources, à l'exception de la source spécifiée :

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

Filtrer les résultats par catégorie et par état

Les sections suivantes fournissent des exemples de création de filtre pour des sources et des types de résultats spécifiques, ainsi que le message de notification envoyé à votre thème Pub/Sub.

Analyse de l'état de la sécurité

Cet exemple d'analyse de l'état de la sécurité utilise les filtres suivants :

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

Pour en savoir plus sur les types de résultats générés par l'analyse de l'état de la sécurité, consultez la page Résultats de l'analyse de l'état de la sécurité.

Le message Pub/Sub associé à la notification de résultat filtré Analyse de l'état de la sécurité se présente comme suit :

{
   "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"
   }
 }

Détection d'anomalies

Cet exemple de notification de détection d'anomalies utilise les filtres suivants :

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

Pour en savoir plus sur les types de résultats créés par la détection d'anomalies, consultez la page Afficher les failles et les menaces.

Le message Pub/Sub associé à la notification de résultat filtré Détection d'anomalies se présente comme suit :

{
   "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": {                                                                                                                                                                                             "traige": "required",
         "teste123": "true",
         "sccquery94c23b35ea0b4f8388268415a0dc6c1b": "true"
       }
     },
     "eventTime": "2019-09-20T18:59:00Z",
     "createTime": "2019-05-16T14:16:35.674Z"
   }
 }

Event Threat Detection

Cet exemple Event Threat Detection utilise les filtres suivants :

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

Pour plus d'informations sur les types de résultats créés par Cloud DLP, consultez la page Afficher les failles et les menaces.

Le message Pub/Sub de la notification de résultat filtré Event Threat Detection se présente comme suit :

{
  "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

Cet exemple Forseti utilise les filtres suivants :

forseti-firewall-blacklist-active-findings

Pour plus d'informations sur les types de résultats créés par Forseti, consultez le site Web de Forseti.

Le message Pub/Sub de la notification de résultats filtrés Forseti se présente comme suit :

{
  "notificationConfigName": "organizations/organization-id/notificationConfigs/forseti-firewall-blacklist-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"
  }
}

Cloud Data Loss Prevention

Cet exemple Cloud DLP utilise les filtres suivants :

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

Pour plus d'informations sur les types de résultats créés par Cloud DLP, consultez la page Afficher les failles et les menaces.

Le message Pub/Sub de la notification de résultats filtrés Cloud DLP se présente comme suit :

{
   "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"
   }
 }