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 qu'elle exporte vers Pub/Sub ou BigQuery. Vous pouvez filtrer les notifications en fonction de n'importe quel champ de résultat, y compris:
parent
state
resource_name
category
source_properties
(API v1 uniquement)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 entierOR
pour inclure des champs contenant un des ensembles de valeurs entier-
pour exclure les champs contenant une valeur spécifiqueLes 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 Security Health Analytics 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 sujet Pub/Sub des notifications ou à l'ensemble de données BigQuery.
Étape 1 : Obtenir l'ID source
Utilisez Google Cloud Console ou Google Cloud CLI pour obtenir l'ID source d'un fournisseur.
Console
- Accédez à la page Résultats de Security Command Center dans Google Cloud Console.
Accéder à la page Résultats - Sélectionnez l'organisation pour laquelle vous souhaitez créer un filtre de notifications. La page Résultats s'affiche.
- Dans le panneau Filtres rapides, faites défiler la page jusqu'à la section Nom à afficher pour la source, puis sélectionnez le nom du fournisseur que vous souhaitez utiliser pour filtrer les résultats des notifications.
- Dans la colonne Catégorie du panneau Résultats de la requête de résultats, affichez le panneau d'informations sur le résultat en cliquant sur le nom de l'un des résultats.
- Dans le panneau des détails des résultats, cliquez sur l'onglet JSON. Le code JSON complet du résultat s'affiche.
Dans le fichier JSON, copiez la valeur de l'attribut
parent
. Exemple :"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID"
Les ID sont représentés par les éléments suivants:
ORGANIZATION_ID
: ID de l'organisation du fournisseur source parent.SOURCE_ID
: ID du fournisseur source parent.
gcloud
Pour récupérer un ID source, exécutez la commande suivante :
gcloud scc sources describe ORGANIZATION_ID --source-display-name="SOURCE_NAME"
Remplacez les éléments suivants :
ORGANIZATION_ID
: ID de votre organisationSOURCE_NAME
: nom du service pour lequel vous souhaitez obtenir l'ID source. Utilisez le nom de n'importe quel fournisseur de résultats, y compris les services intégrés de Security Command Center, Security Health Analytics, Web Security Scanner, Event Threat Detection et Container Threat Detection.
Le résultat de la commande de gcloud CLI ressemble à ce qui suit et inclut l'ID source :
{
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
"displayName": "example-source",
"description": "A source that creates findings."
}
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
.
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/$ORGANIZATION_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/$ORGANIZATION_ID/sources/$SOURCE_ID\"
Pour plus d'exemples de filtres que vous pouvez utiliser, consultez la section Répertorier les résultats de sécurité à l'aide de l'API Security Command Center.
Filtrer les résultats par catégorie et par état lors de l'utilisation de sujets Pub/Sub
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.
Si vous utilisez des ensembles de données BigQuery au lieu de sujets Pub/Sub, les résultats et les champs associés sont décrits dans l'article Exporter les résultats vers BigQuery pour l'analyse.
Security Health Analytics
Cet exemple Security Health Analytics 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 Security Health Analytics, consultez la page Résultats de Security Health Analytics.
Le message Pub/Sub associé à la notification de résultat filtré Security Health Analytics 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": {
"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"
}
}
Sensitive Data Protection
Cet exemple de protection des données sensibles 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 par la protection des données sensibles 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"
}
}
Étape suivante
- Découvrez comment accéder à Security Command Center à l'aide d'une bibliothèque cliente.
- Découvrez comment répertorier les résultats de sécurité à l'aide de l'API Security Command Center.