jueves, 25 de junio de 2009

Mitos y leyendas: El Directorio Activo (I) (Conceptos)

El Directorio Activo es la joya de la corona de los productos de Microsoft. Destronó a Novell Netware en este ámbito cuando decidió estandarizar sus protocolos de autenticación, resolución de nombres, etc. O sea, cuando apareció Windows 2000, puesto que NT mantenía sus propios protocolos para realizar (de forma discutible) tareas que ya estaban resueltas por estándares más que probados.

El Directorio Activo (nombre comercial que da Microsoft a un servicio de directorio en una red distribuida) es uno de los puntos de negocio fuertes de Microsoft. Las redes de grandes empresas (compuestas por miles de puestos y decenas de servidores todos Windows) suelen basarse en este servicio que facilita enormemente la labor de un administrador. En ocasiones, Microsoft antepone (comercial y técnicamente) este tipo de sistemas sostenidos por grandes empresas a las necesidades de los clientes individuales. De ahí que a veces precise de tanto tiempo para desarrollar un parche de seguridad efectivo: debe asegurarse de que infraestructuras críticas de empresas no dejen de funcionar, puesto que son buena parte del motor de su mercado.

Microsoft plantea la estrategia de aparición de sus sistemas operativos como clientes o servidores para que sean aprovechados al máximo según este esquema. Windows NT era el controlador de dominio ideal para Windows 95 y 98. Windows 2000 Server se suponía el servidor perfecto para Windows 2000 Professional (arquitectura con la que una buena parte de las empresas todavía se sienten cómoda), Windows 2003 para XP y 2008 Server para Vista o Windows 7 (a la mayoría les costará años evolucionar hacia esta última combinación). Aunque con ciertas limitaciones o asumiendo riesgos de seguridad que hay que tener en cuenta y subsanar, casi todos pueden convivir todavía en una red.

Windows implementa el concepto de dominio mediante el de directorio, que no es más que un almacén de datos jerárquico que guarda información sobre recursos (objetos) en la red. El directorio se implementa como una base de datos optimizada para operaciones de lectura sobre la que se pueden realizar búsquedas de grandes cantidades de información, y con capacidades de exploración (un árbol, básicamente). El Directorio Activo se convierte así en un medio de organizar, administrar y controlar centralizadamente el acceso a los recursos de la red.

Microsoft, a partir de Windows 2000, decidió seguir estándares para implementar toda la infraestructura que se intercomunica e interactúa para conformar un Directorio Activo. No pudo dejar atrás de golpe lo que venía sosteniendo con Windows NT, pero poco a poco ha ido quedando obsoleto. Entre los estándares que componen un Directorio Activo, y que han ayudado a mejorar su seguridad, destacan:

* DNS (Domain Name System): Windows NT funcionaba básicamente con WINS, una alternativa poco eficiente al DNS. WINS mantenía una tabla con la correspondencia entre direcciones IP y nombres NetBIOS, y la forma de intercambiar esta información entre servidores era realmente poco eficiente.

* LDAP (Lightweight Directory Access Protocol): Protocolo ligero (o compacto) de acceso a directorio. Este es el protocolo mediante el que las aplicaciones acceden y modifican la información existente en el directorio.

* Kerberos: Protocolo utilizado para la autenticación de usuarios y máquinas. Este protocolo es sin duda mucho más eficiente y efectivo que NTLM, usado para autenticar en una red controlada por Windows NT. El servidor de Kerberos coincide con el controlador de dominio. En ciertas circunstancias bajo un dominio, se sigue usando LM/NTLM o LMv2/NTLMv2 para autenticar. La combinación de los dos primeros sufría enormes problemas de diseño que lo hacían realmente poco fiable. La fuerza bruta funcionaba muy bien sobre ellos. Su evolución, LMv2/NTLMv2, aunque bastante más sofisticada, no puede competir con el estándar Kerberos. Aun así, en Windows 2003 todavía estos protocolos no estaban activados por defecto para ser usados obligatoriamente.

Además de adoptar los estándares, la implementación que ha hecho Microsoft de estos protocolos ha dado buenos resultados en cuestión de fallos de seguridad. Apenas se reportan desde hace tiempo 3 ó 4 fallos de seguridad al año en protocolos o servicios exclusivos de los servidores de dominio. Por supuesto, independientemente de las vulnerabilidades encontradas en el sistema operativo que los sostiene. Una de las más graves ocurrió en abril de 2007. Se encontró un 0day en la implementación DNS de Microsoft. Un desbordamiento de memoria intermedia en la interfaz RPC del servidor DNS a la hora de procesar peticiones mal formadas. Podía ser aprovechado por atacantes para ejecutar código arbitrario con privilegios de SYSTEM (control total sobre el sistema) si se enviaba una petición especialmente manipulada al sistema vulnerable.


Sergio de los Santos
ssantos@hispasec.com


Más información:

7/04/2007 Detalles y evolución de la vulnerabilidad RPC/DNS de Microsoft Windows
http://www.hispasec.com/unaaldia/3097

No hay comentarios:

Publicar un comentario en la entrada