> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wirespeed.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducción a las exclusiones

> Cierre automáticamente detecciones con exclusiones creadas por Preguntar a Wirespeed y refinadas por usted

> [!WARNING]
>
> Las exclusiones son una función muy potente y, cuando se usan correctamente, pueden reducir su tasa de falsos positivos a cero. Sin embargo, si se hacen de forma incorrecta, pueden silenciar detecciones críticas importantes. Preguntar a Wirespeed redacta para usted la regla segura más restrictiva, y el equipo de Wirespeed siempre está disponible para ayudarle a revisar las exclusiones antes de implementarlas.

Una exclusión cierra automáticamente una detección que coincide con su consulta. Las consultas siguen un formato sencillo `property=value`, combinando expresiones con `AND` u `OR`, y puede agrupar condiciones entre paréntesis para controlar la precedencia.

Un ejemplo sencillo es `category=IDENTITY__LOGIN AND prevented=true`, que cierra automáticamente los casos de inicio de sesión que ya fueron impedidos por el sistema de origen.

## Crear con Preguntar a Wirespeed

Para crear una exclusión, use la skill `/exclusion` y deje que Preguntar a Wirespeed la redacte por usted. Dondequiera que pueda crear una exclusión — **Configuración → Exclusiones**, un caso, una detección o un activo — encontrará un botón **Crear con Ask Wirespeed** (o **Preguntar a Wirespeed**) que abre el chat con el flujo de exclusión ya cargado y el contexto relevante rellenado previamente.

Describa, en lenguaje natural, sobre qué desea dejar de recibir alertas. El agente entonces:

* **Lee las pruebas reales.** Inspecciona el caso o la detección seleccionado y construye la consulta solo a partir de valores de campo que aparecen realmente allí; nunca inventa correos electrónicos, hosts, IP, hashes ni ubicaciones.
* **Limita el alcance a la regla segura más restrictiva.** Prefiere varias restricciones independientes unidas con `AND` (categoría exacta, cuenta específica, punto de conexión, red/ubicación, comando de proceso o hash de archivo) para que la regla capture el patrón benigno previsto sin ocultar verdaderos positivos.
* **Considera el marco temporal.** Decide si la actividad está limitada en el tiempo (una prueba de penetración, un viaje, una ventana de mantenimiento o migración) o es un patrón continuo, y establece un [TTL](#ttl) adecuado para que las aprobaciones temporales caduquen por sí solas.
* **Pregunta cuando no está seguro.** Si el alcance o la duración son ambiguos — o si solicita algo más amplio de lo que las pruebas respaldan — hace una pregunta concreta (a menudo como opciones seleccionables) en lugar de adivinar.
* **Presenta un borrador para confirmación.** No se guarda nada hasta que usted confirme. Verá el nombre, la consulta, la descripción y el TTL propuestos. Si desea que sea más restrictivo o más amplio, dígalo y lo volverá a redactar.

> [!TIP]
>
> Preguntar a Wirespeed no rechazará una solicitud de plano, ni siquiera para herramientas de doble uso como software de gestión remota o PowerShell. En su lugar, reduce el alcance (por ejemplo, a un hash exacto o a un comando exacto más categoría y actor) y pregunta lo que le falte.

## Editar una exclusión

Después de crear una exclusión, aún puede editarla — incluida la consulta en bruto, el TTL y la configuración — desde **Configuración → Exclusiones**. Como allí edita la consulta directamente, el resto de esta página documenta la sintaxis de consultas para que pueda leer, revisar y ajustar lo que produjo el agente.

## Formato de consulta

### Ejemplo de formato de consulta de detección

* `property=value`
* `property.sub=value`
* `property=value AND property=value`
* `property=value OR property=value`
* `(property=value AND property=value) OR property=value`

*¿Son suficientes `property=value` para usted?*

### Operadores

| Operador | Descripción |
| - | - |
| = | igual |
| != | distinto |
| >= | mayor o igual |
| \<= | menor o igual |
| > | mayor que |
| \< | menor que |
| \~ | contiene |
| !\~ | no contiene |
| @= | todos los valores del array son iguales |
| @\~ | todos los valores del array contienen |
| @\~= | algunos valores del array son iguales |
| @\~\~ | algunos valores del array contienen |
| @!= | ningún valor del array es igual |
| @!\~ | ningún valor del array contiene |

### Valores de propiedad

Se le proporcionará un documento JSON con los valores de propiedad que puede consultar. Son valores de su detección y de todos sus activos asociados. Al escribir en la búsqueda, los nombres de propiedad se autocompletarán.

```json theme={null}
{
  "id": "WSPD-24",
  "name": "Late stage tools",
  "description": "LST \"Mimikatz\" discovered",
  "users": [{ "email": "jake@wirespeed.co" }, { "email": "tim@wirespeed.co" }],
  "externalIP": "1.1.1.1",
  "internalIPs": ["10.0.0.1", "10.0.0.2"],
  "files": [{ "name": "powershell.exe", "path": "C:\\Users\\Tim" }],
  "locations": [],
  "createdAt": "2024-11-02T15:36:00.433Z"
}
```

| Consulta | Resultado | Descripción |
| - | - | - |
| `name="Late stage tools"` | true | `name` es igual a `"Late stage tools"` |
| `id~WSPD` | true | `id` contiene `WSPD` |
| `createdAt>2024-11-01T15:36:00.433Z` | true | `createdAt` es posterior a `2024-11-02T15:36:00.433Z` |
| `name=null` | false | `name` está vacío |
| `externalIP~"1.1.1.0/24"` | true | `externalIP` está en el rango CIDR `1.1.1.0/24` |
| `description=/.*mimikatz.*/i` | true | `description` coincide con la expresión regular `/.*mimikatz.*/i` |
| `description="LST Mimikatz discovered"` | true | `description` es igual a `"LST Mimikatz discovered"` |

### Arrays

Los arrays se aplanan y se pueden consultar con los operadores especiales @.
\[!WARNING] Preste especial atención al operador de array que esté usando. Por ejemplo, usar el operador «algunos valores del array son iguales» (@\~=) cerrará automáticamente cualquier caso que contenga al menos una coincidencia, aunque otros valores del array no coincidan. Asegúrese de que esta es la acción prevista.

| Consulta | Resultado | Descripción |
| - | - | - |
| `files.name@=powershell.exe` | true | El name de todos los archivos es igual a `powershell.exe` |
| `files.path@=C:\Users\Tim` | true | El path de todos los archivos es igual a `C:\Users\Tim` |
| `files.name@~shell` | true | El name de todos los archivos contiene `shell` |
| `internalIPs@~"10.0.0.0/24"` | true | Todos los internalIPs están en el rango CIDR `10.0.0.0/24` |
| `users.email@~="jake@wirespeed.co"` | true | El email de algunos usuarios es igual a `jake@wirespeed.co` |
| `users.email@~~jake` | true | El email de algunos usuarios contiene `jake` |
| `users.email@!="some value"` | true | Ningún email de usuarios es igual a `some value` |
| `users.email@!~none` | true | Ningún email de usuarios contiene `none` |
| `locations=null` | true | No hay valores de locations |

> [!WARNING]
>
> Las fechas deben proporcionarse en formato ISO 8601\
> \
> Las direcciones de correo electrónico, los rangos CIDR y las cadenas con espacios deben ir entre comillas\
> \
> Los arrays de objetos anidados dos veces (por ejemplo `indicators.observables.type`) se aplanan a valores hoja para la comparación — las coincidencias no se correlacionan con el mismo objeto padre entre cláusulas\
> \
> Si una cadena contiene comillas en su interior, se eliminan durante la comparación\
> \
> Las barras invertidas en las cadenas se escapan dos veces cuando se presentan en la interfaz; solo necesita proporcionar un escape al referirse a ellas

## Configuración

Las exclusiones se pueden deshabilitar y no se usarán hasta que se vuelvan a habilitar. Una vez que una exclusión haya provocado que una detección se cierre automáticamente, no se puede eliminar, solo deshabilitar. Si desea que se elimine una exclusión de su registro de auditoría y se borre, abra un ticket de soporte.

### TTL

Puede establecer un TTL para una exclusión. Esto deshabilitará automáticamente la exclusión tras el tiempo especificado. Cuando Preguntar a Wirespeed reconoce una actividad limitada en el tiempo, establece el TTL en la ventana más corta que la cubra, de modo que la regla caduca sin que usted tenga que acordarse de eliminarla.

#### TTL móviles

Los TTL móviles reinician su temporizador cada vez que la exclusión coincide con una detección. Esto garantiza que los patrones habituales de su entorno permanezcan excluidos mientras ocurran con regularidad. Si el patrón deja de ocurrir, el TTL acabará caducando y las ocurrencias futuras ya no se excluirán. Preguntar a Wirespeed usa un TTL móvil solo para un patrón continuo, y un TTL fijo (no móvil) para una ventana puntual como una prueba de penetración.

### Suprimir actualizaciones del sistema de origen

De forma predeterminada, cuando Wirespeed cierra automáticamente una detección porque coincidió con una exclusión, también sincronizamos ese resultado con la integración (por ejemplo, cerrando o actualizando la alerta en la consola del proveedor). Puede habilitar **Suprimir actualizaciones del sistema de origen** en una exclusión para detener esa sincronización saliente de las detecciones que coincidan con esa regla. Use esto cuando solo desee silenciar o cerrar automáticamente detecciones dentro de Wirespeed sin cambiar cómo aparece o se gestiona la alerta en el producto de origen.

## Ejemplos y compromisos

Escribir exclusiones puede reducir el ruido de las alertas de falsos positivos, pero también puede conllevar el compromiso de ignorar verdaderos positivos, exponiendo a su organización a riesgos que impiden que Wirespeed la proteja. Preguntar a Wirespeed aplica los mismos compromisos que se indican a continuación y prioriza la versión más restrictiva de una regla; los ejemplos aquí explican el razonamiento para que pueda revisar un borrador, o editar una consulta, con confianza.

### Tratar con ejecutables seguros

Es posible usar exclusiones para evitar escaladas o remediaciones de aplicaciones conocidas como seguras. Sin embargo, esto requiere un ojo crítico para hacerse de forma eficaz con un buen compromiso de riesgo.

#### Un ejemplo sencillo

Lo siguiente es un ejemplo para permitir que se ejecute una versión específica de un ejecutable conocido como seguro. En este caso, el ejecutable era una aplicación auxiliar de software bancario. Solo tiene un propósito y lo publica directamente el banco de la empresa, sin historial de abuso por parte de atacantes. Idealmente, archivos como este se enriquecerían por sus hashes, como el hash `SHA256` en este caso, pero no se encontró en la biblioteca de Reversing Labs de más de 40.000 millones de archivos. La mejor solución sería enviar ese archivo para su análisis e inclusión en su repositorio de archivos, pero a menudo no es viable, por lo que una exclusión sencilla como esta puede ser lo bastante segura para evitar futuras alertas de falso positivo:

```
files.sha256@~=e7fc1d55726578f20d3336ed4391e4f7ee362ef77da3ccd4b5a38d18e31ccab5
```

#### Excluir herramientas de gestión remota

Lo siguiente puede parecer engañosamente similar al ejemplo anterior, pero abre a su organización a riesgos que Wirespeed NO recomienda:

```
files.sha256@~=9cfd2c521d6d41c3a86b6b2c3d9b6a042b84f2f192f988f65062f0e1bfd99cab
```

La diferencia en este caso es que ese hash corresponde a `ScreenConnect.WindowsClient.exe`, que es el ejecutable principal del producto ScreenConnect, una herramienta de gestión remota y de soporte de TI, que también suele ser abusada por atacantes que recurren a la ingeniería social para hacerse pasar por su soporte de TI ante sus usuarios, engañándolos para que ejecuten esta aplicación legítima, pero apuntando a su instancia de gestión remota para llevar a cabo pasos nefarios, que a menudo pueden conducir a ransomware.

Es fundamental que comprenda si un ejecutable tiene una capacidad de doble uso antes de añadirlo como exclusión.

#### Excluir herramientas Live off the Land

Esta es otra exclusión engañosamente sencilla que introduce un riesgo significativo:

```
files.sha256@~=1f9ffc2227f8dea8b771d543c464cf8166c22a39420a5322b5892a640c4b34b6
```

Esta exclusión ignorará alertas del binario `powershell.exe` de Microsoft. Por supuesto es un binario oficial, pero añadir exclusiones para él permite a los atacantes ejecutar todo tipo de acciones maliciosas, desde malware de primera etapa hasta escalada de privilegios, e incluso en algunos casos bloquearle el acceso a sus archivos con ransomware. Wirespeed recomienda encarecidamente no añadir nunca exclusiones para herramientas Live off the Land conocidas.

#### Usar procesos en su lugar

Otro enfoque para tratar con `powershell` podría ser excluir un proceso específico que sea aceptable, como este ejemplo, que es powershell recuperando el nombre del dominio DNS al que está unido el equipo, algo habitual en software legítimo (y también habitual en atacantes orientándose dentro de su entorno, pero probablemente aceptable ignorar, ya que probablemente habría otras detecciones más allá de esta con una señal de mayor fidelidad que indique su presencia):

```
processes.command@="powershell $env:USERDNSDOMAIN"
```

Observe que el operador es `@=` y no `@~=`. Processes es un array (colección de muchos procesos), por lo que necesitamos usar un operador de array. El operador que elegimos exige que cada proceso coincida con «powershell \$env:USERDNSDOMAIN», a diferencia de la siguiente exclusión, que solo necesita que un único proceso de la detección coincida:

```
processes.command@~="powershell $env:USERDNSDOMAIN"
```

En ese ejemplo, la detección podría contener otros procesos que son una señal mucho más alta de comportamiento de atacante, lo que daría lugar al descarte como falso positivo de una alerta importante. La lógica de exclusión es potente, pero debe ser precisa. En caso de duda, deje que Preguntar a Wirespeed delimite el alcance por usted o contacte y pida ayuda a través del chat de soporte.

### VPN de privacidad

Permitir que su organización use VPN de privacidad al iniciar sesión puede plantear un reto significativo para detectar inicios de sesión maliciosos. Un mejor enfoque sería impedir su uso en sus sistemas de SSO y autenticación, como las Directivas de acceso condicional en Microsoft. Sin embargo, si eso no es posible, aquí tiene algunos ejemplos.

Además, sin crear exclusiones en absoluto, Wirespeed aprenderá a confiar en atributos específicos de los casos a medida que los marque como maliciosos o benignos. Por ejemplo, un caso de inicio de sesión sospechoso que se cierra como benigno hace que Wirespeed recuerde esa dirección IP durante 30 días. Cuando un usuario obtiene una detección en esa IP en los 30 días siguientes, se cierra automáticamente como benigna, y el reloj se reinicia otros 30 días a partir de ese momento para más inicios de sesión.

Además, para reducir el impacto en el equipo de seguridad al trabajar escaladas de Wirespeed, recomendamos encarecidamente habilitar Chat Ops para que haga este trabajo por usted. Nos pondremos en contacto con los usuarios finales, les preguntaremos si acaban de iniciar sesión desde una ubicación inusual, los autenticaremos fuera de banda (si está habilitado) y aprenderemos las ubicaciones seguras… todo ello sin sobrecargarle.

#### Cómo NO crear una exclusión para VPN de privacidad

La siguiente exclusión es muy laxa y abre a su organización a un riesgo significativo, al simplemente ignorar (excluir) cualquier detección o alerta asociada con NordVPN. Esta lógica va más allá de las detecciones de Login y podría potencialmente excluir casos de malware que involucren una dirección IP de NordVPN, así como a cualquier usuario de toda su organización. Los atacantes también usan NordVPN, por lo que esta exclusión NO se recomienda.

```
ips.metadata.privacy.service="NordVPN"
```

#### Un poco mejor

Al añadir la categoría Login, esta exclusión ya no se aplicará a otros tipos, como Execution (malware) o Invocation (plano de control en la nube). Sigue siendo bastante laxa y no se recomienda, porque permite a cualquier usuario, y es probable que un atacante que use NordVPN en algún momento pueda robar credenciales o sesiones e iniciar sesión con ellas desde ese proveedor, activar esta regla de exclusión y no habría ninguna alerta:

```
category="IDENTITY__LOGIN" AND ips.metadata.privacy.service="NordVPN"
```

#### Usuarios específicos

Partiendo de lo anterior, si añadimos otra cláusula AND, la envolvemos entre paréntesis y especificamos las direcciones de correo electrónico de los usuarios concretos que esperamos que usen NordVPN, obtenemos una regla aún más restrictiva. Sigue conllevando el riesgo de que un atacante pueda robar las credenciales de estos usuarios concretos e intentar iniciar sesión con ellas:

```
category="IDENTITY__LOGIN" AND ips.metadata.privacy.service="NordVPN" AND (directory.email="tim@taco.company" OR directory.email="jake@taco.company")
```

#### Un ejemplo muy restrictivo

Este ejemplo se basa en el anterior, pero lo restringe aún más a Austin, Texas. Como resultado, la probabilidad de que un atacante pueda robar las credenciales de los usuarios nombrados, usar esta VPN de privacidad concreta, desde esta ciudad y región concretas, reduce realmente las probabilidades de pasar por alto un verdadero positivo. Sigue siendo preferible bloquear las VPN de privacidad en la configuración de autenticación o dejar que ChatOps lo gestione por usted, pero si esas no son buenas opciones por algún motivo, esto está disponible:

```
category="IDENTITY__LOGIN" AND ips.metadata.privacy.service="NordVPN" AND (directory.email="tim@taco.company" OR directory.email="jake@taco.company") AND ips.metadata.city="Austin" AND ips.metadata.region="Texas"
```

### Tratar con cuentas compartidas

Este es un ejemplo de cómo elaborar una exclusión para una cuenta de usuario específica que se comparte y se usa para iniciar sesión desde varias ubicaciones. Conlleva serios compromisos de riesgo, no obstante. SIEMPRE es mejor seguir las prácticas recomendadas de seguridad, tener una buena higiene, usar autenticación fuerte (MFA) y NO COMPARTIR CUENTAS. Pero a veces el equipo de seguridad es anulado por el negocio, así que este es un ejemplo de cómo afrontar ese escenario.

En primer lugar, esta exclusión está restringida a la categoría Login, por lo que no está abierta a cosas como malware que se comunica con una ubicación que observamos, o un usuario que realiza cambios sospechosos en su plano de control en la nube de AWS o Azure (Invocation).

En segundo lugar, esta exclusión está restringida a varios estados de EE. UU.: California, Arizona, Washington, Oregon y Nevada. No es lo ideal, pero en este caso concreto hay una razón de negocio para ello.

En tercer lugar, para compensar la lógica amplia de varios estados de EE. UU., las direcciones IP coincidentes no deben tener ninguna de las marcas de privacidad activadas: VPN, Proxy, TOR, Relay o Hosting Provider. Aunque ningún conjunto de datos es perfecto, disponemos de un excelente enriquecimiento geográfico que aplicamos a cada dirección IP que tocamos. El resultado de esta lógica se restringirá solo a IP que residan físicamente en empresas y hogares de esos estados de EE. UU. Las direcciones IP de centros de datos (excepto pequeños centros de datos privados que pertenecen a empresas específicas, no colocaciones ni proveedores cloud) no coincidirán con la lógica.

El resultado es que un atacante debe estar situado físicamente en esos estados. La mayoría (no todos) de los actores criminales con motivación financiera probablemente usarán infraestructura alojada para interponer una capa entre usted y su identificación y atribución. Así que, aunque no es lo preferido (siempre es mejor evitar esta situación), esta es una forma de gestionar este escenario de forma más segura que otras.

```
category="IDENTITY__LOGIN" AND directory.email="shared-user@taco.company" AND (locations.state="California" OR locations.state="Arizona" OR locations.state="Washington" OR locations.state="Oregon" OR locations.state="Nevada") AND ips.metadata.privacy.vpn=false AND ips.metadata.privacy.proxy=false AND ips.metadata.privacy.tor=false AND ips.metadata.privacy.relay=false AND ips.metadata.privacy.hosting=false
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.