============================================================================== 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. ==============================================================================