Descripción general de los módulos personalizados de Event Threat Detection

En esta página se ofrece una descripción general de los módulos personalizados de Event Threat Detection.

Puedes configurar módulos, también conocidos como detectores, para que procesen tu flujo de Cloud Logging y detecten amenazas en función de los parámetros que especifiques. Esta función amplía las funciones de monitorización de Event Threat Detection y te permite añadir módulos con tus propios parámetros de detección, guías de corrección y designaciones de gravedad para configuraciones que los detectores integrados no admiten.

Los módulos personalizados son útiles si necesitas módulos con reglas de detección que se adapten a las necesidades específicas de tu organización. Por ejemplo, puedes añadir un módulo personalizado que cree resultados si las entradas de registro muestran que un recurso está conectado a direcciones IP específicas o se ha creado en una región restringida.

Cómo funcionan los módulos personalizados de Event Threat Detection

Los módulos personalizados son un grupo selecto de detectores de Event Threat Detection que puede configurar con sus propios parámetros de detección. Puedes crear un módulo personalizado de Event Threat Detection a través de la Google Cloud consola. También puedes crear una actualizando una plantilla de módulo personalizado y enviando el módulo personalizado a Security Command Center a través de la CLI de Google Cloud. Para obtener información sobre las plantillas disponibles, consulte Módulos y plantillas personalizados.

Las plantillas de módulos personalizados se escriben en JSON y te permiten definir parámetros de detección que controlan qué eventos de las entradas de registro deben activar resultados. Por ejemplo, el detector Malware: Bad IP integrado comprueba los registros de flujo de Virtual Private Cloud para detectar pruebas de conexiones a direcciones IP sospechosas conocidas. Sin embargo, puede habilitar y modificar el Configurable Bad IP módulo personalizado con una lista de direcciones IP sospechosas que usted mantenga. Si tus registros indican una conexión a alguna de las direcciones IP que has proporcionado, se genera un resultado y se escribe en Security Command Center.

Las plantillas de módulos también te permiten definir la gravedad de las amenazas y proporcionar pasos de corrección personalizados para ayudar a tus equipos de seguridad a solucionar los problemas.

Con los módulos personalizados, tiene más control sobre cómo detecta amenazas Event Threat Detection y cómo informa de los resultados. Los módulos personalizados incluyen los parámetros que has proporcionado, pero siguen utilizando la lógica de detección y la información sobre amenazas exclusivas de Event Threat Detection, incluida la coincidencia de indicadores de alarma. Puedes implementar un amplio conjunto de modelos de amenazas adaptados a los requisitos específicos de tu organización.

Los módulos personalizados de Event Threat Detection se ejecutan junto con los detectores integrados. Los módulos habilitados se ejecutan en modo en tiempo real, lo que activa análisis cada vez que se crean nuevos registros.

Módulos y plantillas personalizados

En la siguiente tabla se incluye una lista de los tipos de módulos personalizados admitidos, sus descripciones, los registros obligatorios y las plantillas de módulos JSON.

Necesitas estas plantillas de módulos JSON si quieres usar la CLI de gcloud para crear o actualizar módulos personalizados. Para ver una plantilla, haz clic en el icono de desplegar situado junto a su nombre. Para obtener información sobre cómo usar módulos personalizados, consulte Configurar y gestionar módulos personalizados.

Categorías de resultado Module type Tipos de fuentes de registro Descripción
IP incorrecta configurable CONFIGURABLE_BAD_IP Registros de flujo de las VPCs
Registros de reglas de cortafuegos
Detecta una conexión a una dirección IP especificada.
Plantilla: IP incorrecta configurable
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "ips": [
    "IP_ADDRESS_1",
    "IP_ADDRESS_2"
  ]
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • IP_ADDRESS_1: una dirección IPv4 o IPv6 o un bloque CIDR enrutable públicamente que se va a monitorizar. Por ejemplo, 192.0.2.1 o 192.0.2.0/24.
  • IP_ADDRESS_2: opcional. Una dirección IPv4 o IPv6 o un bloque CIDR enrutable públicamente que se va a monitorizar. Por ejemplo, 192.0.2.1 o 192.0.2.0/24.
Dominio incorrecto configurable CONFIGURABLE_BAD_DOMAIN Registros de Cloud DNS Detecta una conexión a un nombre de dominio especificado.
Plantilla: dominio incorrecto configurable
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "domains": [
    "DOMAIN_1","DOMAIN_2"
  ]
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • DOMAIN_1: un nombre de dominio que monitorizar; por ejemplo, example.com. No se permite el valor localhost. Los nombres de dominio Unicode y Punycode se normalizan. Por ejemplo, 例子.example y xn--fsqu00a.example son equivalentes.
  • DOMAIN_2: opcional. Nombre de dominio que quieres monitorizar (por ejemplo, example.com). No se permite el valor localhost. Los nombres de dominio Unicode y Punycode se normalizan. Por ejemplo, 例子.example y xn--fsqu00a.example son equivalentes.
Tipo de instancia de Compute Engine inesperado CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_INSTANCE_TYPE Registros de auditoría de Cloud:
Registros de actividad del administrador
Detecta la creación de instancias de Compute Engine que no coinciden con un tipo o una configuración de instancia especificados.
Plantilla: tipo de instancia de Compute Engine inesperado
{
  "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": [ ... ]
    }
  ]
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • SERIES: opcional. La serie de máquinas de Compute Engine, por ejemplo, C2. Si está vacío, el módulo permite todas las series. Para obtener más información, consulta la guía de recursos y comparación de familias de máquinas.
  • MINIMUM_NUMBER_OF_CPUS: opcional. Número mínimo de CPUs que se pueden permitir. Si no está presente, no hay ningún mínimo. No puede ser negativo.
  • MAXIMUM_NUMBER_OF_CPUS: opcional. Número máximo de CPUs permitidas. Si no está presente, no hay ningún máximo. Debe ser superior o igual a minimum e inferior o igual a 1000.
  • MINIMUM_RAM_SIZE: opcional. Tamaño mínimo de RAM permitido, en megabytes. Si no está presente, no se aplica ningún mínimo.
  • MAXIMUM_RAM_SIZE: opcional. El tamaño máximo de RAM que se permite, en megabytes. Si no está presente, no se aplica ningún máximo. Debe ser mayor o igual que minimum e inferior o igual que 10.000.000.
  • MINIMUM_NUMBER_OF_GPUS: opcional. Número mínimo de GPUs permitidas. Si no está presente, no hay ningún mínimo. No puede ser negativo.
  • MAXIMUM_NUMBER_OF_GPUS: opcional. Número máximo de GPUs que se pueden usar. Si no está presente, no hay ningún máximo. Debe ser superior o igual a minimum e inferior o igual a 100.
  • PROJECT_ID_1: opcional. El ID del proyecto al que quieras aplicar este módulo. Por ejemplo, projects/example-project. Si está vacío o no se ha definido, el módulo se aplica a las instancias creadas en todos los proyectos del ámbito actual.
  • PROJECT_ID_2: opcional. El ID del proyecto al que quieras aplicar este módulo. Por ejemplo, projects/example-project.
  • REGION_1: opcional. Una región en la que quieras aplicar este módulo. Por ejemplo, us-central1. Si está vacío o no se ha definido, el módulo se aplica a las instancias creadas en todas las regiones.
  • REGION_2: opcional. La región en la que quieras aplicar este módulo (por ejemplo, us-central1).
Imagen de origen de Compute Engine inesperada CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_SOURCE_IMAGE Registros de auditoría de Cloud:
Registros de actividad del administrador
Detecta la creación de una instancia de Compute Engine con una imagen o una familia de imágenes que no coincide con una lista especificada
Template: Unexpected Compute Engine source image
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "patterns": [
    {

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

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • PATTERN_1: una expresión regular RE2 para comprobar las imágenes. Por ejemplo, debian-image-1. Si se usa una imagen para crear una instancia de Compute Engine y el nombre de esa imagen no coincide con ninguna de las expresiones regulares especificadas, se genera un resultado.
  • NAME_1: un nombre descriptivo para este patrón, como first-image.
  • PATTERN_2: opcional. Otra expresión regular RE2 para comprobar las imágenes, por ejemplo, debian-image-2.
  • NAME_2: opcional. Un nombre descriptivo para el segundo patrón (por ejemplo, second-image).
Región de Compute Engine inesperada CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION Registros de auditoría de Cloud:
Registros de actividad del administrador
Detecta la creación de una instancia de Compute Engine en una región que no está en una lista especificada.
Plantilla: región de Compute Engine inesperada
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "regions": [
    {
      "region": "REGION_1"
    },
    {
      "region": "REGION_2"
    }
  ]
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • REGION_1: el nombre de una región a la que se va a dar permiso (por ejemplo, us-west1). Si se crea una instancia de Compute Engine en una región que no se especifica en la lista, Detección de amenazas de eventos genera un resultado.
  • REGION_2: opcional. El nombre de una región a la que se le va a dar permiso. Por ejemplo, us-central1. Si se crea una instancia de Compute Engine en una región que no se especifica en la lista, Detección de amenazas de eventos genera un resultado.
Se ha usado una cuenta de acceso de emergencia CONFIGURABLE_BREAKGLASS_ACCOUNT_USED Registros de auditoría de Cloud:
Registros de actividad de administrador
Registros de acceso a datos (opcional)
Detecta el uso de una cuenta de acceso de emergencia (breakglass).
Plantilla: cuenta de acceso de emergencia utilizada
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "accounts": [
    "BREAKGLASS_ACCOUNT_1", "BREAKGLASS_ACCOUNT_2"
  ]
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • BREAKGLASS_ACCOUNT_1: una cuenta de acceso de emergencia que debes monitorizar, como test@example.com. Se genera un resultado si esta cuenta se usa para una acción que se registra en una entrada de Registros de auditoría de Cloud.
  • BREAKGLASS_ACCOUNT_2: opcional. Una cuenta de acceso de emergencia que debes vigilar, como test@example.com. Se genera un resultado si esta cuenta se usa para una acción que se registra en una entrada de Registros de auditoría de Cloud.
Concesión de rol inesperada CONFIGURABLE_UNEXPECTED_ROLE_GRANT Registros de auditoría de Cloud:
Registros de actividad del administrador
Detecta cuándo se concede un rol específico a un usuario
Plantilla: concesión de rol inesperada
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "roles": ["ROLE_1", "ROLE_2"]
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • ROLE_1: un rol de gestión de identidades y accesos que se debe monitorizar. Por ejemplo, roles/owner. Se genera un resultado si se concede este rol.
  • ROLE_2: opcional. Un rol de gestión de identidades y accesos que debes tener en cuenta, como roles/editor. Se genera un resultado si se concede este rol.
Rol personalizado con permiso prohibido CONFIGURABLE_CUSTOM_ROLE_WITH_PROHIBITED_PERMISSION Registros de auditoría de Cloud:
Registros de actividad del administrador
Detecta cuándo se crea o actualiza un rol personalizado con alguno de los permisos de gestión de identidades y accesos especificados.
Plantilla: rol personalizado con permiso prohibido
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "permissions": [
    "PERMISSION_1",
    "PERMISSION_2"
  ]
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • PERMISSION_1: un permiso de gestión de identidades y accesos que se va a monitorizar. Por ejemplo, storage.buckets.list. Event Threat Detection genera un resultado si se concede a una entidad principal un rol de gestión de identidades y accesos personalizado que contenga este permiso.
  • PERMISSION_2: opcional. Un permiso de gestión de identidades y accesos que se va a monitorizar. Por ejemplo, storage.buckets.get. Event Threat Detection genera un resultado si se concede a una entidad principal un rol de gestión de identidades y accesos personalizado que contenga este permiso.
Llamada inesperada a la API de Cloud CONFIGURABLE_UNEXPECTED_CLOUD_API_CALL Registros de auditoría de Cloud:
Registros de actividad de administrador
Registros de acceso a datos (opcional)
Detecta cuándo una entidad de seguridad especificada llama a un método especificado en un recurso especificado. Una detección solo se genera si todas las expresiones regulares coinciden en una sola entrada de registro.
Plantilla: Llamada inesperada a la API de Cloud
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "caller_pattern": "CALLER_PATTERN",
  "method_pattern": "METHOD_PATTERN",
  "resource_pattern": "RESOURCE_PATTERN"
}

Haz los cambios siguientes:

  • SEVERITY: la gravedad de los resultados que debe generar este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para rellenar la propiedad explanation de cada resultado generado por este módulo.
  • RECOMMENDATION: una explicación de los pasos recomendados que pueden seguir los equipos de seguridad para resolver el problema detectado. Esta explicación se usa para rellenar la propiedad nextSteps de cada resultado generado por este módulo.
  • CALLER_PATTERN: una expresión regular RE2 para comprobar las entidades. Por ejemplo, .* coincide con cualquier principal.
  • METHOD_PATTERN: una expresión regular RE2 para comprobar los métodos. Por ejemplo, ^cloudsql\\.instances\\.export$.
  • RESOURCE_PATTERN: expresión regular RE2 para comprobar los recursos. Por ejemplo, example-project.

Precios y cuotas

Esta función es gratuita para los clientes de Security Command Center Premium.

Los módulos personalizados de Event Threat Detection están sujetos a límites de cuota.

El límite de cuota predeterminado para la creación de módulos personalizados es de 200.

Las llamadas a la API de los métodos de módulos personalizados también están sujetas a límites de cuota. En la siguiente tabla se muestran los límites de cuota predeterminados para las llamadas a la API de módulos personalizados.

Tipo de llamada a la API Límite
Get, List 1000 llamadas a la API por minuto y organización
Crear, actualizar y eliminar 60 llamadas a la API por minuto y organización

Límites de tamaño de los módulos

Cada módulo personalizado de Event Threat Detection tiene un límite de tamaño de 6 MB.

Límites de frecuencia

Se aplican los siguientes límites de frecuencia:

  • 30 resultados por módulo personalizado por hora.
  • 200 resultados de módulos personalizados por recurso superior (organización o proyecto) por hora. Cada resultado se contabiliza en una organización o en un proyecto, en función del nivel en el que se haya creado el módulo personalizado de origen.

Estos límites no se pueden aumentar.

Siguientes pasos