Présentation des modules personnalisés pour Event Threat Detection

Cette page présente les modules personnalisés d'Event Threat Detection.

Vous pouvez configurer des modules, également appelés détecteurs, pour traiter votre flux Cloud Logging et détecter les menaces en fonction des paramètres que vous spécifiez. Cette fonctionnalité étend les fonctionnalités de surveillance d'Event Threat Detection et vous permet d'ajouter des modules avec vos propres paramètres de détection, des conseils de résolution et des indications de gravité pour les configurations non compatibles avec les détecteurs intégrés.

Les modules personnalisés sont utiles si vous avez besoin de modules avec des règles de détection qui répondent aux besoins uniques de votre organisation. Par exemple, vous pouvez ajouter un module personnalisé qui crée des résultats si les entrées de journal indiquent qu'une ressource est connectée à des adresses IP spécifiques ou a été créée dans une région limitée.

Fonctionnement des modules personnalisés d'Event Threat Detection

Les modules personnalisés constituent un groupe restreint de détecteurs Event Threat Detection que vous pouvez configurer avec vos propres paramètres de détection. Vous pouvez créer un module personnalisé Event Threat Detection via la console Google Cloud. Vous pouvez également en créer un en mettant à jour un modèle de module personnalisé et en l'envoyant à Security Command Center via la Google Cloud CLI. Pour en savoir plus sur les modèles disponibles, consultez la section Modules et modèles personnalisés.

Les modèles de module personnalisés sont écrits au format JSON et vous permettent de définir des paramètres de détection qui contrôlent les événements des entrées de journal qui doivent déclencher les résultats. Par exemple, le détecteur Malware: Bad IP intégré vérifie les journaux de flux du cloud privé virtuel pour trouver des preuves de connexions à des adresses IP suspectes connues. Toutefois, vous pouvez activer et modifier le module personnalisé Configurable Bad IP avec une liste d'adresses IP suspectes que vous gérez. Si vos journaux indiquent une connexion à l'une des adresses IP que vous avez fournies, un résultat est généré et écrit dans Security Command Center.

Les modèles de module vous permettent également de définir la gravité des menaces et de fournir des mesures de résolution personnalisées pour aider vos équipes de sécurité à résoudre les problèmes.

Grâce aux modules personnalisés, vous avez plus de contrôle sur la façon dont Event Threat Detection détecte les menaces et signale les résultats. Les modules personnalisés incluent les paramètres fournis, mais utilisent toujours la logique de détection propriétaire et la Threat Intelligence d'Event Threat Detection, y compris la mise en correspondance des indicateurs tripwire. Vous pouvez mettre en œuvre un large éventail de modèles de menaces adaptés aux besoins spécifiques de votre entreprise.

Les modules personnalisés d'Event Threat Detection s'exécutent aux côtés des détecteurs intégrés. Les modules activés s'exécutent en mode temps réel, ce qui déclenche des analyses chaque fois que des journaux sont créés.

Modules et modèles personnalisés

Le tableau suivant contient une liste des types de modules personnalisés compatibles, des descriptions, des journaux requis et des modèles de module JSON.

Vous avez besoin de ces modèles de module JSON si vous souhaitez utiliser la gcloud CLI pour créer ou mettre à jour des modules personnalisés. Pour afficher un modèle, cliquez sur l'icône de développement à côté de son nom. Pour en savoir plus sur l'utilisation de modules personnalisés, consultez Configurer et gérer des modules personnalisés.

Catégorie de résultats Module type Types de sources de journal Description
Adresse IP incorrecte configurable CONFIGURABLE_BAD_IP Journaux de flux VPC
Journaux de règles de pare-feu
Détecte une connexion à une adresse IP spécifiée
Modèle: adresse IP incorrecte configurable

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "ips": [
    "IP_ADDRESS_1",
    "IP_ADDRESS_2"
  ]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • IP_ADDRESS_1: adresse IPv4 ou IPv6 publiquement routable, ou bloc CIDR à surveiller, par exemple 192.0.2.1 ou 192.0.2.0/24.
  • IP_ADDRESS_2 : facultatif. Adresse IPv4 ou IPv6 routable publiquement, ou bloc CIDR à surveiller, par exemple 192.0.2.1 ou 192.0.2.0/24.
Domaine incorrect configurable CONFIGURABLE_BAD_DOMAIN Journaux Cloud DNS Détecte une connexion à un nom de domaine spécifié
Modèle: domaine incorrect configurable

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "domains": [
    "DOMAIN_1","DOMAIN_2"
  ]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • DOMAIN_1: nom de domaine à surveiller, par exemple example.com. La valeur localhost n'est pas autorisée. Les noms de domaine Unicode et Punycode sont normalisés. Par exemple, 例子.example et xn--fsqu00a.example sont équivalents.
  • DOMAIN_2 : facultatif. Un nom de domaine à surveiller, par exemple example.com. La valeur localhost n'est pas autorisée. Les noms de domaine Unicode et Punycode sont normalisés. Par exemple, 例子.example et xn--fsqu00a.example sont équivalents.
Type d'instance Compute Engine inattendu CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_INSTANCE_TYPE Cloud Audit Logs:
Journaux des activités d'administration (obligatoire)
Journaux des accès aux données (facultatif)
Détecte la création d'instances Compute Engine qui ne correspondent pas à la configuration ou au type d'instance spécifié.
Modèle: Type d'instance Compute Engine inattendu

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "instances": [
    {
      "series": "SERIES",
      "cpus": {
        "minimum": MINIMUM_NUMBER_OF_CPUS,
        "maximum": MAXIMUM_NUMBER_OF_CPUS
      },
      "ram_mb": {
        "minimum": MINIMUM_RAM_SIZE,
        "maximum": MAXIMUM_RAM_SIZE
      },
      "gpus": {
        "minimum": MINIMUM_NUMBER_OF_GPUS,
        "maximum": MAXIMUM_NUMBER_OF_GPUS
      },
      "projects": [
        "PROJECT_ID_1",
        "PROJECT_ID_2"
      ],
      "regions": [
        "REGION_1",
        "REGION_2"
      ]
    },
    {
      "series": " ... ",
      ...
      "regions": [ ... ]
    }
  ]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • SERIES : facultatif. Série de machines Compute Engine (par exemple, C2). Si ce champ est vide, le module autorise toutes les séries. Pour en savoir plus, consultez le guide des ressources et des comparaisons pour les familles de machines.
  • MINIMUM_NUMBER_OF_CPUS : facultatif. Nombre minimal de processeurs à autoriser. S'il n'est pas présent, il n'y a pas de minimum. Cette valeur ne doit pas être négative.
  • MAXIMUM_NUMBER_OF_CPUS : facultatif. Nombre maximal de processeurs à autoriser. S'il est absent, il n'y a pas de maximum. La valeur doit être supérieure ou égale à minimum,et inférieure ou égale à 1 000.
  • MINIMUM_RAM_SIZE : facultatif. Taille minimale de la RAM à autoriser, en mégaoctets. S'il n'est pas présent, il n'y a pas de minimum.
  • MAXIMUM_RAM_SIZE : facultatif. Taille maximale de la RAM à autoriser, en mégaoctets. S'il n'est pas présent, il n'y a pas de valeur maximale. Doit être supérieur ou égal à minimum et inférieur ou égal à 10 000 000.
  • MINIMUM_NUMBER_OF_GPUS : facultatif. Nombre minimal de GPU autorisé. S'il n'est pas présent, il n'y a pas de minimum. Cette valeur ne doit pas être négative.
  • MAXIMUM_NUMBER_OF_GPUS : facultatif. Nombre maximal de GPU à autoriser. S'il est absent, il n'y a pas de maximum. La valeur doit être supérieure ou égale à minimum, et inférieure ou égale à 100.
  • PROJECT_ID_1 : facultatif. ID d'un projet auquel vous souhaitez appliquer ce module (par exemple, projects/example-project). Si ce champ est vide ou n'est pas défini, le module est appliqué aux instances créées dans tous les projets du champ d'application actuel.
  • PROJECT_ID_2 : facultatif. ID d'un projet auquel vous souhaitez appliquer ce module (par exemple, projects/example-project).
  • REGION_1 : facultatif. Une région dans laquelle vous souhaitez appliquer ce module (par exemple, us-central1). Si ce champ est vide ou n'est pas défini, le module est appliqué aux instances créées dans toutes les régions.
  • REGION_2 : facultatif. Une région dans laquelle vous souhaitez appliquer ce module (par exemple, us-central1).
Image source Compute Engine inattendue CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_SOURCE_IMAGE Cloud Audit Logs:
Journaux des activités d'administration (obligatoire)
Journaux des accès aux données (facultatif)
Détecte la création d'une instance Compute Engine avec une image ou une famille d'images ne correspondant pas à une liste spécifiée
Modèle: Image source Compute Engine inattendue

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "patterns": [
    {

      "pattern": "PATTERN_1",
      "name": "NAME_1"
    },
    {
      "pattern": "PATTERN_2",
      "name": "NAME_2"
    }
  ]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • PATTERN_1: expression régulière RE2 par rapport à laquelle vérifier les images (par exemple, debian-image-1). Si une image est utilisée pour créer une instance Compute Engine et que le nom de cette image ne correspond à aucune des expressions régulières spécifiées, un résultat est émis.
  • NAME_1: nom descriptif du modèle (par exemple, first-image).
  • PATTERN_2 : facultatif. Une autre expression régulière RE2 à utiliser pour la vérification des images (par exemple, debian-image-2).
  • NAME_2 : facultatif. Nom descriptif du deuxième format (par exemple, second-image).
Région Compute Engine inattendue CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION Cloud Audit Logs:
Journaux des activités d'administration (obligatoire)
Journaux des accès aux données (facultatif)
Détecte la création d'une instance Compute Engine dans une région ne figurant pas dans une liste spécifiée
Modèle: Région Compute Engine inattendue

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "regions": [
    {
      "region": "REGION_1"
    },
    {
      "region": "REGION_2"
    }
  ]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • REGION_1: nom d'une région à autoriser (par exemple, us-west1). Si une instance Compute Engine est créée dans une région qui ne figure pas dans la liste, Event Threat Detection émet un résultat.
  • REGION_2 : facultatif. Nom d'une région à autoriser (par exemple, us-central1). Si une instance Compute Engine est créée dans une région qui ne figure pas dans la liste, Event Threat Detection émet un résultat.
Compte "bris de glace" utilisé CONFIGURABLE_BREAKGLASS_ACCOUNT_USED Cloud Audit Logs:
Journaux des activités d'administration (obligatoire)
Journaux des accès aux données (facultatif)
Détecte l'utilisation d'un compte d'accès d'urgence (bris de glace)
Modèle: Compte "bris de glace" utilisé

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "accounts": [
    "BREAKGLASS_ACCOUNT_1", "BREAKGLASS_ACCOUNT_2"
  ]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • BREAKGLASS_ACCOUNT_1: compte de type "bris de glace" à surveiller (par exemple, test@example.com). Un résultat est généré si ce compte est utilisé pour une action enregistrée dans une entrée Cloud Audit Logs.
  • BREAKGLASS_ACCOUNT_2 : facultatif. Un compte de type "bris de glace" à surveiller (par exemple, test@example.com) Un résultat est généré si ce compte est utilisé pour une action enregistrée dans une entrée Cloud Audit Logs.
Attribution de rôle inattendue CONFIGURABLE_UNEXPECTED_ROLE_GRANT Cloud Audit Logs:
Journaux des activités d'administration (obligatoire)
Journaux des accès aux données (facultatif)
Détecte quand un rôle spécifié est attribué à un utilisateur
Modèle: Attribution de rôle inattendue

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "roles": ["ROLE_1", "ROLE_2"]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • ROLE_1: rôle IAM à surveiller, par exemple roles/owner. Un résultat est généré si ce rôle est accordé.
  • ROLE_2 : facultatif. Un rôle IAM à surveiller, par exemple roles/editor. Un résultat est généré si ce rôle est accordé.
Rôle personnalisé avec autorisation interdite CONFIGURABLE_CUSTOM_ROLE_WITH_PROHIBITED_PERMISSION Cloud Audit Logs:
Journaux des activités d'administration (obligatoire)
Journaux des accès aux données (facultatif)
Détecte quand un rôle personnalisé disposant de l'une des autorisations IAM spécifiées est accordé à un compte principal.
Modèle: Rôle personnalisé avec autorisation interdite

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "permissions": [
    "PERMISSION_1",
    "PERMISSION_2"
  ]
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • PERMISSION_1: autorisation IAM à surveiller, par exemple storage.buckets.list. Event Threat Detection émet un résultat si un rôle IAM personnalisé contenant cette autorisation est attribué à un compte principal.
  • PERMISSION_2 : facultatif. Autorisation IAM à surveiller, par exemple storage.buckets.get. Event Threat Detection émet un résultat si un rôle IAM personnalisé contenant cette autorisation est attribué à un compte principal.
Appel d'API Cloud inattendu CONFIGURABLE_UNEXPECTED_CLOUD_API_CALL Cloud Audit Logs:
Journaux des activités d'administration (obligatoire)
Journaux des accès aux données (facultatif)
Détecte lorsqu'un compte principal spécifié appelle une méthode spécifiée sur une ressource spécifiée. Un résultat n'est généré que si toutes les expressions régulières sont mises en correspondance dans une même entrée de journal.
Modèle: Appel d'API Cloud inattendu

{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "caller_pattern": "CALLER_PATTERN",
  "method_pattern": "METHOD_PATTERN",
  "resource_pattern": "RESOURCE_PATTERN"
}

Remplacez les éléments suivants :

  • SEVERITY: niveau de gravité des résultats à produire par ce module. Les valeurs valides sont LOW, MEDIUM, HIGH et CRITICAL.
  • DESCRIPTION: description de la menace détectée par le module personnalisé. Cette description permet de renseigner la propriété explanation de chaque résultat généré par ce module.
  • RECOMMENDATION: explication des étapes recommandées que les équipes de sécurité peuvent suivre pour résoudre le problème détecté. Cette explication permet de renseigner la propriété nextSteps de chaque résultat généré par ce module.
  • CALLER_PATTERN: expression régulière RE2 par rapport à laquelle vérifier les comptes principaux. Par exemple, .* correspond à n'importe quel compte principal.
  • METHOD_PATTERN: expression régulière RE2 par rapport à laquelle vérifier les méthodes (par exemple, ^cloudsql\\.instances\\.export$).
  • RESOURCE_PATTERN: expression régulière RE2 par rapport à laquelle vérifier les ressources (par exemple, example-project).

Tarifs et quotas

Cette fonctionnalité est gratuite pour les clients Security Command Center Premium.

Les modules personnalisés d'Event Threat Detection sont soumis à des limites de quota.

La limite de quota par défaut pour la création de modules personnalisés est de 200.

Les appels d'API aux méthodes de module personnalisé sont également soumis aux limites de quota. Le tableau suivant présente les limites de quota par défaut pour les appels d'API de modules personnalisés.

Type d'appel d'API Limite
Get, List 1 000 appels d'API par minute et par organisation
Create, Update, Delete 60 appels d'API par minute et par organisation

Limites de taille des modules

La taille de chaque module personnalisé d'Event Threat Detection est de 6 Mo.

Limites de débit

Les limites de débit suivantes s'appliquent:

  • 30 résultats par module personnalisé et par heure
  • 200 résultats de module personnalisé par ressource parente (organisation ou projet) et par heure Chaque résultat est comptabilisé dans une organisation ou dans un projet, en fonction du niveau dans lequel le module personnalisé source a été créé.

Ces limites ne peuvent pas être augmentées.

Étapes suivantes