==============================================================================
ANCI CONFIRMA EXPLOTACIÓN ACTIVA DE INYECCIÓN SQL EN METABASE
==============================================================================
Fuente: https://www.vantis.cl/noticias/anci-confirma-explotacion-activa-inyeccion-sql-metabase
Publicado: 2026-09-06 (hora de Chile)
Ambito: chile · Criticidad: critica
Descargado: 2026-10-12 06:21 (hora de Chile)
COMO USAR ESTE ARCHIVO
----------------------
La regla SIGMA es la canonica: es el formato neutral del que se derivan
las demas. Si tu SIEM no aparece aca, convierte esa con pySigma.
Las traducciones a motores concretos se incluyen por conveniencia y
ESTAN SIN VALIDAR CONTRA TU MODELO DE DATOS. Revisa los nombres de
tabla, indice y campo antes de ponerlas en produccion. Una regla que
no dispara por un campo mal escrito es peor que no tener regla.
QUE NECESITAS TENER LOGUEADO
----------------------------
· Logs de acceso del servidor web o proxy inverso que expone Metabase (nginx, ALB, etc.)
· Logs de aplicación de Metabase
· Logs de WAF, si existe uno delante de la instancia
==============================================================================
REGLA 1 de 4 · SIGMA (canonica, neutral)
Posible explotación activa de Metabase (secuencia reset_password + user/current)
==============================================================================
Requiere: Los campos deben mapearse a la nomenclatura real del log source: c-ip como IP de origen, cs-uri-stem como la URI solicitada, sc-status como el código de respuesta HTTP. La correlación debe hacerse por mismo origen dentro de una ventana corta (5-10 minutos), ya que Sigma base no captura orden temporal por sí solo.
title: Explotación activa de Metabase - patrón reset_password + user/current
id: 8f2e1c4a-9b31-4a56-9abc-metabase001
status: experimental
description: Detecta el patrón de explotación reportado por ANCI (AVC26-00733) para la vulnerabilidad de inyección SQL no autenticada en Metabase.
references:
- https://csirt.gob.cl/alertas/AVC26-00733/
logsource:
category: webserver
detection:
selection_reset:
cs-method: POST
cs-uri-stem|contains: '/api/session/reset_password'
sc-status: 400
selection_current:
cs-method: GET
cs-uri-stem|contains: '/api/user/current'
sc-status: 200
condition: selection_reset and selection_current
fields:
- c-ip
- cs-uri-stem
- sc-status
falsepositives:
- Reintentos legítimos de reseteo de contraseña seguidos de un inicio de sesión normal
level: high
tags:
- attack.initial_access
- attack.t1190
==============================================================================
REGLA 2 de 4 · SPLUNK - SPL
Metabase - secuencia reset_password/user_current por origen
==============================================================================
Requiere: index=web_proxy o index=metabase con campos clientip, uri_path, method y status disponibles (típico de sourcetype access_combined o CIM Web).
index=web_proxy OR index=metabase sourcetype=access_combined
| eval etapa=case(uri_path="/api/session/reset_password" AND method="POST" AND status=400, "reset", uri_path="/api/user/current" AND method="GET" AND status=200, "current")
| where isnotnull(etapa)
| transaction clientip maxspan=10m startswith=(etapa="reset") endswith=(etapa="current")
| where eventcount>=2
| table clientip, _time, uri_path, status
==============================================================================
REGLA 3 de 4 · MICROSOFT SENTINEL - KQL
Metabase - correlación reset_password 400 + user/current 200
==============================================================================
Requiere: Tabla CommonSecurityLog alimentada por el firewall/WAF o proxy que expone Metabase, con RequestURL, RequestMethod y DeviceEventClassID (código de estado HTTP) poblados.
let ventana = 10m;
let resetAttempts = CommonSecurityLog
| where RequestURL has "/api/session/reset_password" and RequestMethod == "POST" and DeviceEventClassID == "400"
| project TimeGenerated, SourceIP, RequestURL;
let userCurrent = CommonSecurityLog
| where RequestURL has "/api/user/current" and RequestMethod == "GET" and DeviceEventClassID == "200"
| project TimeGenerated2=TimeGenerated, SourceIP, RequestURL2=RequestURL;
resetAttempts
| join kind=inner userCurrent on SourceIP
| where TimeGenerated2 - TimeGenerated between (0min .. ventana)
| project SourceIP, TimeGenerated, TimeGenerated2, RequestURL, RequestURL2
==============================================================================
REGLA 4 de 4 · WAZUH / VERIFICACION EN HOST
Metabase - detección de secuencia de explotación (reset_password + user/current)
==============================================================================
Requiere: Decodificador de logs web activo en el agente que monitorea el servidor donde corre Metabase o el proxy que lo expone (regla base 31108 de logs web, ajustar según el decoder real en uso).
31108
POST
/api/session/reset_password
400
Metabase: posible inicio de secuencia de explotación (reset_password 400)
metabase,sql_injection,anci,
100730
GET
/api/user/current
200
Metabase: secuencia de explotación completa (AVC26-00733) - reset_password 400 seguido de user/current 200
metabase,sql_injection,anci,
==============================================================================
FALSOS POSITIVOS ESPERABLES
==============================================================================
Un usuario legítimo que ingresa un correo inválido en el flujo de reseteo
de contraseña también puede generar un HTTP 400 en
/api/session/reset_password, y luego iniciar sesión normalmente generando
un HTTP 200 en /api/user/current. La señal se vuelve confiable cuando
ambas llamadas vienen del mismo origen en una ventana corta (minutos, no
horas) y cuando se repite contra múltiples cuentas desde la misma IP. Se
recomienda no alertar por la ocurrencia aislada, sino por la correlación
temporal por origen.
==============================================================================
Vantis Chile SpA · https://www.vantis.cl/noticias
Analisis con fines defensivos. Reutilizable citando la fuente.
==============================================================================