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

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

Puedes configurar módulos, también conocidos como detectores, para procesar tu transmisión de Cloud Logging y detectar amenazas según los parámetros que especifiques. Esta función amplía las capacidades de supervisión de Event Threat Detection y te permite agregar módulos con tus propios parámetros de detección, orientación para solucionar problemas y designaciones de gravedad para los parámetros de configuración que los detectores integrados podrían no admitir.

Los módulos personalizados son útiles si los necesitas con reglas de detección que satisfacen las necesidades únicas de tu organización. Por ejemplo, puedes agregar 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 creó en una región restringida.

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

Los módulos personalizados son un grupo selecto de detectores de Event Threat Detection que puedes configurar con tus propios parámetros de detección. Puedes crear un módulo personalizado de Event Threat Detection a través de la consola de Google Cloud. Como alternativa, puedes crear uno mediante la actualización de una plantilla de módulo personalizada y el envío del módulo personalizado a Security Command Center a través de Google Cloud CLI. Para obtener información sobre las plantillas disponibles, consulta Módulos y plantillas personalizados.

Las plantillas de módulos personalizadas se escriben en JSON y te permiten definir parámetros de detección que controlan qué eventos en las entradas de registro deben activar los resultados. Por ejemplo, el detector Malware: Bad IP integrado comprueba los registros de flujo de la nube privada virtual en busca de evidencia de conexiones a direcciones IP sospechosas conocidas. Sin embargo, puedes habilitar y modificar el módulo personalizado Configurable Bad IP con una lista de direcciones IP sospechosas que mantengas. Si tus registros indican una conexión a cualquiera de las direcciones IP suministradas, se genera un resultado y se escribe en Security Command Center.

Las plantillas de módulo 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 problemas.

Con los módulos personalizados, tienes más control sobre la forma en que Event Threat Detection detecta amenazas y también informa los hallazgos. Los módulos personalizados incluyen los parámetros proporcionados, pero aún usan la lógica de detección y la inteligencia de amenazas propiedad de Event Threat Detection, incluida la coincidencia de indicadores con cable de tripulación. Puedes implementar un amplio conjunto de modelos de amenazas adaptados a los requisitos únicos 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 registros nuevos.

Módulos y plantillas personalizados

La siguiente tabla contiene una lista de tipos de módulos personalizados compatibles, descripciones, registros obligatorios y plantillas de módulos JSON.

Las necesitas si quieres usar la gcloud CLI para crear o actualizar módulos personalizados. Para ver una plantilla, haz clic en el ícono de expansión junto a su nombre. Si quieres obtener información para usar módulos personalizados, consulta Cómo configurar y administrar módulos personalizados.

Categoría Module type Tipos de fuente del archivo de registro Descripción
IP incorrecta configurable CONFIGURABLE_BAD_IP Registros de flujo de VPC
Registros de reglas de firewall
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"
  ]
}

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • IP_ADDRESS_1: Es una dirección IPv4 o IPv6 de enrutamiento público, o un bloque CIDR que se debe observar, por ejemplo, 192.0.2.1 o 192.0.2.0/24.
  • IP_ADDRESS_2: Opcional Una dirección IPv4 o IPv6 o bloque CIDR de enrutamiento público que se debe observar, 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"
  ]
}

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • DOMAIN_1: Es un nombre de dominio que se debe tener en cuenta, por ejemplo, example.com. No se permite un valor de localhost. Los nombres de dominio Unicode y Punycode están normalizados. Por ejemplo, 例子.example y xn--fsqu00a.example son equivalentes.
  • DOMAIN_2: Opcional Un nombre de dominio para tener en cuenta, por ejemplo, example.com No se permite un valor de localhost. Los nombres de dominio Unicode y Punycode están normalizados. Por ejemplo, 例子.example y xn--fsqu00a.example son equivalentes.
Tipo inesperado de instancia de Compute Engine CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_INSTANCE_TYPE Registros de auditoría de Cloud:
Registros de actividad del administrador (obligatorio)
Registros de acceso a los datos (opcional)
Detecta la creación de instancias de Compute Engine que no coinciden con un tipo de instancia o una configuración especificados.
Plantilla: Tipo inesperado de instancia de Compute Engine

{
  "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": [ ... ]
    }
  ]
}

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera 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 comparación y recursos de familias de máquinas.
  • MINIMUM_NUMBER_OF_CPUS: Opcional La cantidad mínima de CPUs permitidas. Si no está presente, no hay un mínimo. No debe ser un elemento negativo.
  • MAXIMUM_NUMBER_OF_CPUS: Opcional La cantidad máxima de CPU que se permite. Si no está presente, no hay un máximo. Debe ser mayor o igual que minimum, así como menor o igual que 1,000.
  • MINIMUM_RAM_SIZE: Opcional Es el tamaño mínimo de RAM que se permite, en megabytes. Si no está presente, no hay un mínimo.
  • MAXIMUM_RAM_SIZE: Opcional Es el tamaño máximo de RAM que se permite, en megabytes. Si no está presente, no hay un máximo. Debe ser mayor o igual que minimum, así como menor o igual que 10,000,000.
  • MINIMUM_NUMBER_OF_GPUS: Opcional La cantidad mínima de GPU que se permite. Si no está presente, no hay un mínimo. No debe ser un elemento negativo.
  • MAXIMUM_NUMBER_OF_GPUS: Opcional La cantidad máxima de GPU que se permite. Si no está presente, no hay un máximo. Debe ser mayor o igual que minimum, así como menor o igual que 100.
  • PROJECT_ID_1: Opcional El ID de un proyecto al que deseas aplicar este módulo, por ejemplo, projects/example-project. Si está vacío o no se configura, el módulo se aplica a las instancias creadas en todos los proyectos dentro del permiso actual.
  • PROJECT_ID_2: Opcional El ID de un proyecto al que deseas aplicar este módulo, por ejemplo, projects/example-project.
  • REGION_1: Opcional Una región en la que deseas aplicar este módulo, por ejemplo, us-central1. Si está vacío o no se configura, el módulo se aplica a instancias creadas en todas las regiones.
  • REGION_2: Opcional Una región en la que desees aplicar este módulo, por ejemplo, us-central1
Imagen inesperada de origen de Compute Engine CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_SOURCE_IMAGE Registros de auditoría de Cloud:
Registros de actividad del administrador (obligatorio)
Registros de acceso a los datos (opcional)
Detecta la creación de una instancia de Compute Engine con una imagen o familia de imágenes que no coincide con una lista especificada.
Plantilla: Imagen de origen inesperada de Compute Engine

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

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

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • PATTERN_1: Es una expresión regular RE2 con la que se pueden comparar las imágenes, por ejemplo, debian-image-1. Si una imagen se usa 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: Es un nombre descriptivo para este patrón, por ejemplo, first-image.
  • PATTERN_2: Opcional Otra expresión regular RE2 con la que se pueden comparar las imágenes, por ejemplo, debian-image-2
  • NAME_2: Opcional Es un nombre descriptivo para el segundo patrón, por ejemplo, second-image.
Región inesperada de Compute Engine CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION Registros de auditoría de Cloud:
Registros de actividad del administrador (obligatorio)
Registros de acceso a los datos (opcional)
Detecta la creación de una instancia de Compute Engine en una región que no está en una lista especificada.
Plantilla: Región inesperada de Compute Engine

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

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • REGION_1: Es el nombre de una región que se permite, por ejemplo, us-west1. Si se crea una instancia de Compute Engine en una región que no está especificada en la lista, Event Threat Detection emite un resultado.
  • REGION_2: Opcional Es el nombre de la región que se permite, por ejemplo, us-central1. Si se crea una instancia de Compute Engine en una región que no está especificada en la lista, Event Threat Detection emite un resultado.
Se usó una cuenta de anulación de emergencia CONFIGURABLE_BREAKGLASS_ACCOUNT_USED Registros de auditoría de Cloud:
Registros de actividad del administrador (obligatorio)
Registros de acceso a los datos (opcional)
Detecta el uso de una cuenta de acceso de emergencia (anulación de emergencia).
Plantilla: Se usó una cuenta de anulación de emergencia

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

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • BREAKGLASS_ACCOUNT_1: Es una cuenta de anulación de emergencia para tener en cuenta, por ejemplo, test@example.com. Se genera un hallazgo 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 anulación de emergencia para tener en cuenta, por ejemplo, test@example.com Se genera un hallazgo si esta cuenta se usa para una acción que se registra en una entrada de los registros de auditoría de Cloud.
Otorgamiento de rol inesperado CONFIGURABLE_UNEXPECTED_ROLE_GRANT Registros de auditoría de Cloud:
Registros de actividad del administrador (obligatorio)
Registros de acceso a los datos (opcional)
Detecta cuándo se otorga un rol especificado a un usuario.
Plantilla: Otorgamiento de rol inesperado

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

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • ROLE_1: Es un rol de IAM que se debe observar, por ejemplo, roles/owner. Se genera un resultado si se otorga este rol.
  • ROLE_2: Opcional Una función de IAM que se debe tener en cuenta, por ejemplo, roles/editor. Se genera un resultado si se otorga este rol.
Rol personalizado con permiso prohibido CONFIGURABLE_CUSTOM_ROLE_WITH_PROHIBITED_PERMISSION Registros de auditoría de Cloud:
Registros de actividad del administrador (obligatorio)
Registros de acceso a los datos (opcional)
Detecta cuándo se otorga a una principal un rol personalizado con cualquiera de los permisos de IAM especificados.
Plantilla: Rol personalizado con permiso prohibido

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

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • PERMISSION_1: Es un permiso de IAM que se debe observar, por ejemplo, storage.buckets.list. Event Threat Detection emite un resultado si se otorga a una principal un rol de IAM personalizado que contiene este permiso.
  • PERMISSION_2: Opcional Un permiso de IAM que se debe tener en cuenta, por ejemplo, storage.buckets.get. Event Threat Detection emite un hallazgo si un rol de IAM personalizado que contiene este permiso se otorga a una principal.
Llamada inesperada a la API de Cloud CONFIGURABLE_UNEXPECTED_CLOUD_API_CALL Registros de auditoría de Cloud:
Registros de actividad del administrador (obligatorio)
Registros de acceso a los datos (opcional)
Detecta cuándo una principal especificada llama a un método específico a través de un recurso específico. Un resultado se genera solo 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"
}

Reemplaza lo siguiente:

  • SEVERITY: La gravedad de los resultados que producirá este módulo. Los valores válidos son LOW, MEDIUM, HIGH y CRITICAL.
  • DESCRIPTION: Es una descripción de la amenaza que detecta el módulo personalizado. Esta descripción se usa para propagar la propiedad explanation de cada resultado que genera 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 propagar la propiedad nextSteps de cada resultado que genera este módulo.
  • CALLER_PATTERN: Es una expresión regular RE2 con la que se deben comparar las principales. Por ejemplo, .* coincide con cualquier principal.
  • METHOD_PATTERN: Es una expresión regular RE2 con la que se comparan los métodos, por ejemplo, ^cloudsql\\.instances\\.export$.
  • RESOURCE_PATTERN: Es una expresión regular RE2 con la que se comparan los recursos, por ejemplo, example-project.

Precios y cuota

Esta función no tiene costo para los clientes de la versión Premium de Security Command Center.

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 para 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 1,000 llamadas a la API por minuto y por organización
Create/update/delete 60 llamadas a la API por minuto y por organización

Límites de tamaño del módulo

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 hallazgos de módulos personalizados por recurso superior (organización o proyecto) por hora Cada resultado cuenta para una organización o un proyecto, según el nivel en el que se creó el módulo personalizado de origen.

Estos límites no se pueden aumentar.

¿Qué sigue?