Gran pregunta
Lo primero es lo primero: considero que la mayoría de los "probadores de penetración" son guionistas. Puede que mi sesgo no sea justo o preciso, pero pongo este descargo de responsabilidad para que, si detecta algún cinismo en mi tono, sepa de dónde viene. No estoy diciendo que hay no hay pentesters cualificados, pero esta es mi generalidad de barrido.
(¡Equipo azul para toda la vida!)
Mi pregunta: 1) ¿Hay alguna forma de hacer que Active Directory registre estas solicitudes de nombre de usuario fallidas en una ubicación central para que podamos notar un aumento en ellas?
No proporcionó suficiente información para que nadie pueda responder esta pregunta a fondo y con confianza. Dijiste que se encontró que tu aplicación contenía una falla que permitía a los atacantes enumerar las cuentas de los usuarios. Estoy tratando de entender de qué manera cree que AD necesita realizar el registro de su aplicación.
Aparentemente, las fallas solo aparecieron en el registro de eventos local del servidor donde se instaló la aplicación.
Aparentemente, las fallas aparecieron en el registro de eventos en el servidor. O los fracasos hicieron aparecer en el registro de eventos en el servidor? Si es así, ¿qué dijeron exactamente los eventos? ¿Quién los registró? ¿Tu solicitud? O Windows? Ve a averiguarlo y puedo agregar aclaraciones adicionales a mi respuesta.
Voy a arriesgarme aquí basándome en su suposición de que estos eventos deberían haber sido registrados por Active Directory de alguna manera ... ¿qué pasaría si sus pentesters no estuvieran explotando una falla en su aplicación, sino que en su lugar estuvieran usando ¿Una falla muy conocida en Kerberos para enumerar nombres de usuario? Kerberos contiene lo que yo consideraría un defecto de diseño en el que un atacante puede intentar miles y miles de intentos de "autenticación previa" (es decir, un ataque de fuerza bruta) y el KDC responderá de manera diferente dependiendo de si la cuenta de usuario existe o no. Este no es un comportamiento específico de Active Directory, pero se aplica igualmente a MIT Kerberos, Heimdal, etc. El KDC responderá conKDC_ERR_PREAUTH_REQUIRED
si se presentó un nombre de usuario válido sin datos de autenticación previa, incluso sin intentar una autenticación real. De esta forma, puede enumerar los nombres de usuario de un KDC. Pero debido a que el atacante (o la herramienta que el atacante está usando, como KrbGuess, porque los pentesters están en su mejor momento cuando usan las herramientas de otras personas) no tiene que continuar con un intento de autenticación completa, no se registra nada porque no ¡Se intentó la autenticación real!
Ahora, a tu siguiente pregunta:
2) Si no, ¿cuál es la mejor manera de monitorear y detectar activamente este tipo de ataque en el futuro (ojalá sin tener que comprar demasiado equipo nuevo).
Un par de cosas.
Primero, hay productos pagados de nivel empresarial que están diseñados para detectar este tipo de ataques (entre muchos otros). Muchos proveedores ofrecen dichos productos, y las recomendaciones de productos no están relacionadas con Serverfault, pero es suficiente decir que están fuera. allí. Muchos de estos productos funcionan al exigirle que configure la duplicación de puertos entre sus controladores de dominio y estos "recolectores de datos" para que puedan ver y analizar literalmente todos y cada uno de los paquetes que ingresan o salen de sus controladores de dominio.
(Lo siento, eso se ajusta a tu cláusula "sin comprar demasiadas cosas nuevas").
Otra cosa que podría ayudarlo es la entrada del registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
LogLevel = 1
Documentado aquí .
Si habilita esta entrada del registro, debería inundar con eventos en su registro de eventos de Seguridad sobre errores de Kerberos que mencionan que se requiere autenticación previa de Kerberos. Un ejemplo de tal evento:
A Kerberos Error Message was received:
on logon session DOMAIN\serviceaccount
Client Time:
Server Time: 12:44:21.0000 10/9/2012 Z
Error Code: 0x19 KDC_ERR_PREAUTH_REQUIRED
Extended Error:
Client Realm:
Client Name:
Server Realm: DOMAIN
Server Name: krbtgt/DOMAIN
Target Name: krbtgt/DOMAIN@DOMAIN
Error Text:
File: e
Line: 9fe
Error Data is in record data.
Pero esto puede ayudarlo o no si no especifica de dónde provienen exactamente el tsunami de las solicitudes de Kerberos. Esto nos lleva de vuelta a los productos de detección de intrusos empresariales que mencioné anteriormente.
Y no olvide el reenvío de eventos de Windows que puede hacer que sus servidores reenvíen eventos a una ubicación centralizada para ser analizados por cualquier herramienta que tenga a su disposición.
Toda esta respuesta se ha basado hasta ahora en el protocolo Kerberos, que ni siquiera puedo dar por sentado porque has dado muy pocos detalles en tu publicación. Sin embargo, espero que esto ayude al menos un poco.