Detección y respuesta para IBM Cloud

Cloud Detection and Response (CDR) le ayuda a investigar casi en tiempo real la actividad sospechosa en sus cuentas en la nube. Workload Protection puede ingerir y analizar los registros de auditoría de IBM Cloud para detectar posibles amenazas.

El módulo de detección y respuesta Workload Protection es compatible con IBM Cloud, entornos multicloud ( Amazon Web Services, Azure y Google Cloud ), hosts internos, máquinas virtuales (VSIs para VPC, VMware, PowerVS y IBM Z con Linux ), Kubernetes, y OpenShift.

CDR supervisa las cargas de trabajo y la actividad en la nube en tiempo real, detecta amenazas utilizando reglas curadas y técnicas de comportamiento para identificar una amplia gama de ataques, como la escalada de privilegios y el movimiento lateral.

Con CDR, las organizaciones pueden detectar y responder a las amenazas más rápidamente, reduciendo el impacto de los incidentes de seguridad y minimizando el tiempo de inactividad.

Después de completar la habilitación de detección y respuesta para su cuenta IBM Cloud, consulte Creación de la política de detección de amenazas IBM Cloud para definir las detecciones que desea para su entorno.

IBM Cloud Arquitectura de detección y respuesta

CDR para IBM Cloud diagrama de arquitectura
CDR para IBM Cloud arquitectura

La integración CDR para IBM Cloud utiliza el siguiente flujo de datos:

  1. Los usuarios y las aplicaciones generan eventos de auditoría con las acciones en la cuenta IBM Cloud. Todas las creaciones, eliminaciones o actualizaciones quedan registradas y son objeto de seguimiento.

  2. Activity Tracker Event Routing captura los eventos de auditoría generados en su cuenta de IBM Cloud y los dirige a un cubo de IBM Cloud Object Storage a través de un objetivo y una ruta configurados.

  3. IBM Cloud Object Storage almacena los eventos de auditoría de Activity Tracker Event Routing. Una suscripción a eventos de IBM Cloud Object Storage supervisa el cubo y activa una aplicación de Code Engine cada vez que se escribe un nuevo archivo de eventos.

  4. Code Engine ejecuta la aplicación de notificación CDR, que lee los archivos de eventos del bucket Object Storage utilizando un perfil de confianza para la autenticación, y reenvía los eventos al endpoint de ingestión Workload Protection.

  5. Workload Protection recibe y analiza los eventos reenviados casi en tiempo real, aplicando reglas de detección para identificar amenazas como la escalada de privilegios, el movimiento lateral y la actividad API sospechosa.

La conexión entre los componentes se asegura mediante dos objetos IAM: un perfil de confianza, que concede a la identidad de la instancia Workload Protection acceso para leer del bucket Object Storage; y un ID de servicio con una clave API, que autentica la aplicación Code Engine cuando reenvía eventos al punto final de ingestión Workload Protection.

Requisitos previos

Antes de empezar, asegúrese de que los siguientes servicios y permisos están disponibles en su cuenta IBM Cloud.

  • Una instancia existente de Workload Protection y su CRN. Más adelante se hará referencia a ella como <workload-protection-instance-crn>. Para obtener más información, consulta la sección « Configuración de Workload Protection ».
  • Su Workload Protection debe tener habilitado CSPM para su cuenta IBM Cloud. Para más información, consulte Implantación de la GEPC para IBM Cloud
  • Permisos para gestionar los siguientes servicios en su cuenta IBM Cloud:
    • Activity Tracker Event Routing: Editor o Administrador de la plataforma.
    • IBM Cloud Object Storage: Rol de gestor de servicios en la instancia.
    • Identidad IAM (gestión de cuentas): Función de administrador para crear ID de servicio, claves API y perfiles de confianza.
    • Gestión de acceso IAM (gestión de cuentas): Rol de administrador para crear políticas IAM y autorizaciones de servicio a servicio.
    • Code Engine: Función de editor o gestor de servicios.
    • Container Registry: Función de servicio de lectura: necesaria para que Code Engine extraiga la imagen de la aplicación CDR.
    • Workload Protection: Rol de plataforma Editor o Administrador en la instancia.

Configurar la integración c Activity Tracker Event Routing

El flujo de trabajo envía eventos de auditoría de Activity Tracker Event Routing a Object Storage, lo que desencadena una aplicación Code Engine para reenviar eventos a Workload Protection para su ingestión y análisis.

Configurar un destino IBM Cloud Object Storage

IBM Cloud Object Storage se utiliza como objetivo para los eventos Activity Tracker Event Routing. Esos eventos serán recogidos posteriormente por Workload Protection para analizar posibles actividades sospechosas.

Siga las instrucciones para Configurar un destino Cloud Object Storage.

Después de configurar el objetivo, guarde los siguientes valores que se utilizarán en pasos posteriores:

  • El nombre de la instancia Object Storage. Se referenciará como <your_cos_instance_name>.

  • El nombre del cubo Object Storage. Se referenciará como <cos_bucket_name>.

  • La región del cubo Object Storage. Se referenciará como <cos_bucket_region>.

    Cuando configure la ruta Activity Tracker Event Routing, asegúrese de que la regla de ruta incluye la ubicación global además de su región de despliegue. Los eventos de IAM, como los cambios en la configuración de cuentas, las modificaciones de MFA, las eliminaciones de políticas y los cambios en las restricciones basadas en el contexto, se generan como eventos globales y no se enrutan a menos que se incluya explícitamente global.

    Sin la ubicación global, los eventos de mutación IAM no llegarán al cubo Object Storage y no serán analizados por Workload Protection.

Cree un ID de servicio y una clave de API

Cree el ID de servicio y una clave API para que la aplicación Code Engine envíe eventos a su instancia Workload Protection.

ibmcloud iam service-id-create send-cdr-events-id --description "Service ID for CDR event forwarding"
ibmcloud iam service-api-key-create send-cdr-events-key send-cdr-events-id --description "API Key for CDR app"

Guarde la clave de API generada y el identificador de ID de servicio (el valor ServiceId-xxx devuelto por el primer comando ). Ambos se utilizarán en los pasos siguientes.

Conceda al lector de ID de servicio acceso a IBM Cloud® Container Registry para que Code Engine pueda extraer la imagen de la aplicación CDR:

ibmcloud iam service-policy-create send-cdr-events-id --roles Reader --service-name container-registry

Crear el perfil de confianza para leer los eventos Object Storage

Cree el perfil de confianza (puede modificar el nombre). Guarde la dirección ID para utilizarla más adelante. Más adelante se hará referencia a ella como <trusted_profile_id>:

ibmcloud iam trusted-profile-create ibmcdr-wp-cos --description "Trusted profile for Workload Protection interaction with Cloud Object Storage bucket"

Asigne la relación de confianza para la instancia Workload Protection. Sustituya <workload-protection-instance-crn> por su CRN de Workload Protection:

ibmcloud iam trusted-profile-identity-create ibmcdr-wp-cos --id <workload-protection-instance-crn> --id-type CRN

Asigne la relación de confianza para el ID de servicio creado en el paso 2. Sustituya <service_id> por el identificador de ID de servicio (ServiceId-xxx):

ibmcloud iam trusted-profile-identity-create ibmcdr-wp-cos --id <service_id> --id-type serviceid

Cree la política del perfil de confianza para el lector IBM Cloud Object Storage. Sustituya <cos_bucket_name> por el nombre del cubo creado en el paso 1:

ibmcloud iam trusted-profile-policy-create ibmcdr-wp-cos -r "Content Reader,Reader" --service-name cloud-object-storage --resource-type bucket --resource <cos_bucket_name>

Cree la política del perfil de confianza para acceder al ID de servicio CDR. Sustituya <service_id> por el ID de servicio creado en el paso 2:

ibmcloud iam trusted-profile-policy-create ibmcdr-wp-cos -r Viewer --service-name iam-identity --resource-type serviceid --resource <service_id>

Crear Code Engine Proyecto y Secretos

Crear un secreto en Code Engine para inyectar la clave api de forma segura

Cree el proyecto de Code Engine:

ibmcloud ce project create --name <code_engine_project>

Cree el Secreto para la aplicación (se utilizará como variable). Sustituya <your_api_key> por la clave generada en el paso anterior:

ibmcloud ce secret create --name cdr-secrets --from-literal API_KEY=<your_api_key>

Crear el Secreto para extraer imágenes de Container Registry. Sustituya <your_api_key> por la clave generada en el paso anterior:

ibmcloud ce secret create --name icr-secret --format registry --server icr.io --username iamapikey --password <your_api_key> --email noreply@cdr-app.ibm.cloud

Crear Code Engine App

Asegúrese de sustituir las siguientes variables en el comando :

  • <target_account_id> con el identificador de cuenta IBM Cloud.
  • <trusted_profile_id> con el perfil de confianza creado en el paso 3.
  • <environment_url> con el punto final Workload Protection para su región. Por ejemplo, si su instancia está en Dallas, sustituya <environment_url> por us-south.security-compliance-secure.cloud.ibm.com.
  • <service_id> con el ID de servicio creado en el paso 2.
ibmcloud ce application create \
  --name "sccwp-cdr-app" \
  --image icr.io/ext/sysdig/cdr-notification-app:latest \
  --min-scale 1 \
  --max-scale 10 \
  --cpu 0.125 \
  --memory 500M \
  --request-timeout 60 \
  --service-account default \
  --env TARGET_ACCOUNT_ID=<target_account_id> \
  --env TRUSTED_PROFILE_ID=<trusted_profile_id> \
  --env FORWARD_URL="https://<environment_url>/api/cloudingestion/webhooks/ibm/v1/<service_id>" \
  --env API_KEY=cdr-secrets:API_KEY \
  --registry-secret icr-secret

La siguiente tabla describe los parámetros clave utilizados en el comando :

Code Engine parámetros de aplicación
Parámetro Descripción
--name Nombre de la aplicación Code Engine.
--image La imagen de la aplicación de notificación CDR alojada en IBM Cloud Container Registry. Siempre debe ser icr.io/ext/sysdig/cdr-notification-app:latest
--min-scale Número mínimo de instancias en ejecución. Establézcalo en 1 para asegurarse de que la aplicación está siempre preparada para recibir eventos de Object Storage.
--max-scale Número máximo de instancias que la aplicación puede escalar bajo carga.
--cpu / --memory Recursos informáticos asignados por instancia.
--request-timeout Tiempo máximo en segundos que la aplicación tiene para procesar una solicitud entrante antes de que se agote el tiempo de espera.
TARGET_ACCOUNT_ID El ID de la cuenta IBM Cloud cuyos eventos de auditoría se están reenviando a través de Activity Tracker Event Routing.
TRUSTED_PROFILE_ID El ID de trofile de confianza creado en el paso 3, utilizado por la app para autenticarse contra Object Storage sin credenciales de larga duración.
FORWARD_URL El punto final de ingestión Workload Protection URL, incluido el ID de servicio como token de identidad.
--env-from-secret cdr-secrets Inyecta la clave API del ID de servicio en la aplicación como variable de entorno a partir del secreto Code Engine creado en el paso 4.
--registry-secret icr-secret Credenciales de registro que permiten a Code Engine extraer la imagen de la aplicación de IBM Cloud Container Registry.

Conecte IBM Cloud Object Storage Bucket a Code Engine

Configure una suscripción a eventos para conectar los eventos de Object Storage bucket a Code Engine.

Conceda permisos para garantizar que Code Engine pueda gestionar las notificaciones en la instancia Object Storage. Sustituya <code_engine_project> por el proyecto Code Engine creado en el paso 4 y <your_cos_instance_name> por el nombre de instancia IBM Cloud Object Storage creado en el paso 1:

ibmcloud iam authorization-policy-create codeengine cloud-object-storage "Notifications Manager" --source-service-instance-name <code_engine_project> --target-service-instance-name <your_cos_instance_name>

Crear suscripción para garantizar que cada vez que Activity Tracker Event Routing archive un archivo de registro en el bucket, se active la aplicación. Sustituya <cos_bucket_name> por el nombre del cubo del paso 1:

ibmcloud ce subscription cos create --name cdr-cos-sub \
   --bucket <cos_bucket_name> \
   --destination sccwp-cdr-app \
   --event-type write

Habilite CDR para su cuenta en Protección de la carga de trabajo

Asegúrese de sustituir las siguientes variables en el comando :

  • <wp_instance_name> con el nombre de su instancia Workload Protection o GUID. Se recomienda utilizar el GUID para evitar ambigüedades si varias instancias comparten el mismo nombre.
  • <cos_bucket_region> con la región del cubo Object Storage creada en el paso 1.
  • <cos_bucket_name> con el nombre del cubo Object Storage creado en el paso 1.
  • <trusted_profile_id> con el ID del perfil de confianza guardado en el paso 3.
  • <environment_url> con el punto final Workload Protection para su región.
  • <service_id> con el identificador de ID de servicio (el valor ServiceId-xxx ) del paso 2.
  • <target_account_id> con el identificador de cuenta IBM Cloud.
ibmcloud resource service-instance-update "<wp_instance_name>" -p '{"enable_cdr": true, "target_cdr_accounts": [{"cdr_bucket_region": "<cos_bucket_region>","cdr_bucket_name": "<cos_bucket_name>","cdr_trusted_profile_id": "<trusted_profile_id>","cdr_service_id": "<service_id>", "cdr_ingestion_url": "https://<environment_url>/api/cloudingestion/webhooks/ibm/v1/<service_id>", "account_id":"<target_account_id>"}]}' -g Default

Si tiene algún error, revise ¿Por qué mi cuenta IBM Cloud no ingiere eventos de auditoría?

Creación de la política de detección de amenazas IBM Cloud

Puede crear una nueva política de detección de amenazas para detectar y responder a actividades sospechosas en sus entornos IBM Cloud. Las políticas especifican dónde aplicar las reglas y cómo responder a las violaciones de seguridad, como el envío de notificaciones a Slack, Microsoft Teams, correo electrónico o una herramienta de gestión de incidentes.

Para crear una política de detección de amenazas, siga estos pasos:

Crear las reglas de detección de amenazas

Copie el siguiente contenido y péguelo en Custom Rules en Políticas > Políticas de detección y respuesta > Editor de reglas y haga clic en Save.

- required_engine_version: 51
- rule: IBM Cloud IAM Policy Deleted
  desc: >
    Detects successful deletion of an IAM access policy. Removing policies
    weakens authorization controls and may indicate an attacker impairing
    defenses. Filters to outcome=success since failed deletions do not
    change security posture.
  condition: >
    jevt.value[/action] = "iam-am.policy.delete"
    and jevt.value[/outcome] = "success"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    IAM policy %ibm.target.name was deleted by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: WARNING
  source: ibm_activitytracker
  tags: [ibm, iam, defense-evasion, T1562.001]
- rule: IBM Cloud IAM Service ID Deleted
  desc: >
    Detects successful deletion of an IAM service ID. Removing a service ID
    destroys a non-human identity along with its associated policies and API
    keys, denying access to any workloads or users that depended on it.
    Filters to outcome=success since failed deletions do not change security
    posture.
  condition: >
    jevt.value[/action] = "iam-identity.account-serviceid.delete"
    and jevt.value[/outcome] = "success"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    Service ID %ibm.target.name was deleted by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: NOTICE
  source: ibm_activitytracker
  tags: [ibm, iam, impact, T1531]
- rule: IBM Cloud IAM Service ID API Key Created
  desc: >
    Detects creation of an API key on a service ID. Service ID API keys
    are a persistence technique -- they are stealthier than user API keys
    since service IDs typically receive less scrutiny.
  condition: >
    jevt.value[/action] = "iam-identity.serviceid-apikey.create"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    An API key %ibm.target.name was created by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: WARNING
  source: ibm_activitytracker
  tags: [ibm, iam, persistence, T1098.001]
- rule: IBM Cloud IAM User API Key Created
  desc: >
    Detects creation of a user API key. User API keys grant persistent
    access that survives session expiration, making them a common
    persistence mechanism for maintaining access to IBM Cloud.
  condition: >
    jevt.value[/action] = "iam-identity.user-apikey.create"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    A user API key %ibm.target.name was created by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: WARNING
  source: ibm_activitytracker
  tags: [ibm, iam, persistence, T1098.001]
- rule: IBM Cloud IAM Service ID Created
  desc: >
    Detects creation of a new IAM service ID. Service IDs are non-human
    identities that can hold their own policies and API keys. Creating
    one establishes a new identity that can be used for persistent access.
  condition: >
    jevt.value[/action] = "iam-identity.account-serviceid.create"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    Service ID %ibm.target.name was created by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: NOTICE
  source: ibm_activitytracker
  tags: [ibm, iam, persistence, T1136.003]
- rule: IBM Cloud IAM Account Settings Updated
  desc: >
    Detects updates to IAM account-wide security settings. These settings
    control MFA policy, session lifetimes, IP restrictions, and allowed
    authentication methods for the entire account. Changes weaken the
    security posture for every identity in the account.
  condition: >
    jevt.value[/action] = "iam-identity.account-settings.update"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    IAM account settings were updated by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: WARNING
  source: ibm_activitytracker
  tags: [ibm, iam, defense-evasion, T1562]
- rule: IBM Cloud IAM Access Group Settings Updated
  desc: >
    Detects updates to IAM access group settings. These settings control
    who can create access groups and whether groups can be made public.
    Loosening these restrictions enables broader group membership or
    unauthorized group creation, expanding access beyond intended scope.
  condition: >
    jevt.value[/action] = "iam-groups.account-settings.update"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    IAM access group settings were updated by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: NOTICE
  source: ibm_activitytracker
  tags: [ibm, iam, persistence, T1098]
- rule: IBM Cloud IAM User API Key Deleted
  desc: >
    Detects deletion of a user API key. Deleting API keys used during
    an attack removes evidence of the credential that was used. Pairs
    with the User API Key Created rule to track the full lifecycle of
    user credentials.
  condition: >
    jevt.value[/action] = "iam-identity.user-apikey.delete"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    A user API key was deleted by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: NOTICE
  source: ibm_activitytracker
  tags: [ibm, iam, defense-evasion, T1070]
- rule: IBM Cloud User Removed
  desc: >
    Detects removal of a user from the IBM Cloud account. Removing a
    user locks out defenders and legitimate admins. This is irreversible
    without re-inviting the user. Denies access to legitimate responders
    during an incident.
  condition: >
    jevt.value[/action] = "user-management.user.delete"
    and jevt.value[/outcome] = "success"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    A user was removed from the account by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: WARNING
  source: ibm_activitytracker
  tags: [ibm, user-management, defense-evasion, T1531]
- rule: IBM Cloud User Settings Updated
  desc: >
    Detects updates to individual user settings. These settings control
    a user's IP restrictions and allowed authentication methods. Changing
    them weakens security controls at the individual user level, enabling
    access from previously restricted locations or methods.
  condition: >
    jevt.value[/action] = "user-management.user.update"
    and jevt.value[/outcome] = "success"
  exceptions:
  - name: user_action
    fields: ["ibm.initiator.id", "ibm.action"]
  - name: user_account
    fields: ["ibm.initiator.id", "ibm.accountId"]
  - name: user_target
    fields: ["ibm.initiator.id", "ibm.target.id"]
  - name: user_action_contains
    fields: ["ibm.initiator.id", "ibm.action"]
    comps: [contains, "="]
  output: >
    User settings were updated by %ibm.initiator.name
    (user=%ibm.initiator.name,
    user_id=%ibm.initiator.id,
    credential=%ibm.initiator.credential.type,
    source_ip=%ibm.initiator.host.address,
    target=%ibm.target.name,
    target_id=%ibm.target.id,
    action=%ibm.action,
    outcome=%ibm.outcome,
    message=%ibm.message,
    account=%ibm.accountId,
    region=%ibm.region)
  priority: NOTICE
  source: ibm_activitytracker
  tags: [ibm, user-management, defense-evasion, T1562]

Estas reglas son ejemplos de detección de actividades sospechosas y de falta de higiene en materia de seguridad dirigidos a Cloud Identity and Access Management.

Encuentre todas las referencias y detalles de las reglas en Reference Library para IBM Cloud CDR Threat Detection Rules

Crear y activar la política de detección de amenazas

Vaya a Políticas > Políticas de detección y respuesta > Políticas de tiempo de ejecución y haga clic en Add Policy. Seleccione la política IBM Activity Tracker.

Elija las reglas que desea utilizar haciendo clic en Managed & Import en Reglas de política.

Defina las acciones que se llevarán a cabo si se infringen las reglas de la política, como Notificar un correo electrónico o un canal de Slack. El canal de notificación debe crearse antes de este paso.

Habilite y guarde la política.