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
La integración CDR para IBM Cloud utiliza el siguiente flujo de datos:
-
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.
-
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.
-
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.
-
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.
-
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
globalademá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ícitamenteglobal.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>porus-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 :
| 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 valorServiceId-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.