March 18, 2017 | Author: Alfonso Andres | Category: N/A
Elogios para Hackers en Windows, tercera edición “Es su capacidad para ayudar a realizar una evaluación de riesgo exacta lo que hace que Hackers en Windows resulte valioso. Hay pocos lugares donde se puede echar un vistazo completo al paisaje de la seguridad en que vive Windows. Joel y sus colaboradores han hecho un extraordinario trabajo para documentar los avances más recientes en amenazas, incluidos desbordamientos de búfer, rootkits y creación de secuencias de comandos de sitio cruzado, además de tecnologías defensivas, como no ejecutables, control de cuentas de usuario de Vista y aleatorización en el diseño del espacio de direcciones. Si la comprensión de seguridad en Windows se encuentra en algún lugar de su descripción de trabajo, le recomiendo que lea este libro y que lo mantenga como referencia para su batalla constante”. —Mark Russinovich, colaborador técnico, Microsoft Corporation “Los autores y colaboradores de Hackers en Windows han tomado una vez más sus experiencias únicas y han dado forma a una lectura obligatoria para los profesionales de seguridad y para aventureros de tecnología por igual. De principio a fin, Hackers en Windows, tercera edición, elimina la ambigüedad al describir herramientas y técnicas del moderno ciberbribón, dando armas al lector al eliminar este misterio. Los autores pasan a entregar el “platillo secreto” en la receta de la ciberseguridad y son especialistas en Infosecretos”. —Greg Wood, CISO, Washington Mutual “El paisaje de las amenazas a la seguridad ha experimentado cambios revolucionarios desde la primera edición de Hackers en Windows. La tecnología para explotar sistemas ha evolucionado de manera considerable porque ahora se ha vuelto más disponible, lo que intensifica el riesgo de compromiso en este mundo que cada vez se encuentra más en línea. Hackers en Windows sigue siendo la autoridad en el tema, al proporcionar los conocimientos y la guía práctica que administradores de sistemas Windows y profesionales de seguridad necesitan para estar bien equipados ahora y para el viaje que han emprendido”. —Peter Boden, administrador general, Seguridad de servicios en línea, Microsoft “El amigo venerable de Microsoft Windows cubre millones de líneas de código compiladas en un sistema complejo, a menudo responsable de entregar servicios vitales a sus clientes. A pesar de las mejores intenciones de sus creadores, todas las versiones de Windows seguirán siendo vulnerables a ataques en la capa de aplicaciones, en el kernel, desde la red, y todo lo que queda en medio. Joel Scambray y sus colaboradores proporcionan un catálogo muy completo de amenazas y contramedidas para Windows en una guía inmensamente legible. Si Windows es el vehículo de cómputo que debe asegurar, Hackers en Windows es su licencia de manejo.” —Jim Reavis, anterior director ejecutivo, Information Systems Security Association “La seguridad en la computación está cambiando con Windows Vista y los hackers se han visto obligados a aprender nuevos métodos de ataque. Por fortuna, usted tiene este libro”. —Brad Albretch, administrador de programas de seguridad, Microsoft “A medida que Microsoft sigue mejorando sus sistemas operativos, Hackers en Windows, tercera edición sigue estando a la cabeza de la industria, ayudando a lectores a comprender amenazas reales al entorno de Windows y enseñando cómo defenderse de esas amenazas. Cualquier persona que quiera ejecutar Windows de manera segura, necesita una copia de este libro al lado de su PC.” —James Costello (CISSP) especialista en seguridad de Tecnología de la información, Honeywell
xxvi
Hackers en Windows Otras ayudas visuales También usamos un uso prolífico de los iconos mejorados visualmente
NOTA Sugerencia
precaución
Para destacar aquellos pequeños detalles que suelen pasarse por alto.
RECURSOS Y HERRAMIENTAS EN LÍNEA La seguridad en Windows es una disciplina que está cambiando rápidamente y reconocemos que la palabra impresa a menudo no es el medio más adecuado para mantenerse al día con todos los nuevos acontecimientos en esta área de investigación. Por tanto, hemos implementado un sitio en la Red (en inglés) que da seguimiento a nueva información relevante sobre temas analizados en este libro, junto con erratas y una compilación de las herramientas de dominio público, secuencias de comandos y diccionarios que hemos cubierto en todo el libro. La dirección de ese sitio es: http://www.winhackingexposed.com
También proporciona un foro para hablar directamente con el principal autor mediante correo electrónico:
[email protected]
Esperamos que visite el sitio con frecuencia mientras recorre los capítulos para ver cualquier material actualizado, obtener fácil acceso a las herramientas que mencionamos y mantenerse actualizado en el siempre cambiante rostro de la seguridad en Windows. De otra manera, nunca sabrá cuáles nuevos desarrollos pueden poner en peligro su red antes de que se pueda defender de ellos.
UNA PALABRA FINAL A NUESTROS LECTORES Hay mucho trabajo hecho por las noches y muchos teclados desgastados en este libro, sinceramente esperamos que toda nuestra investigación y nuestros textos se traduzcan en una importante ahorro de tiempo para quienes son responsables de la seguridad en Windows. Consideramos que hemos tomado una decisión valiente y que nos hemos anticipado para desplegar el sistema operativo insignia de Microsoft (pero como descubrirá en estas páginas, su trabajo sólo empieza en el momento en que rompe la envoltura). No se alarme: empiece a recorrer las páginas y siéntase seguro de que cuando la siguiente calamidad en la seguridad de Windows llegue a las primeras planas, usted ni siquiera parpadeará. –Joel
HACKERS EN WINDOWS SECRETOS Y SOLUCIONES DE SEGURIDAD EN WINDOWS TERCERA EDICIÓN JOEL SCAMBRAY STUART McCLURE
Traducción:
Eloy Píneda Rojas Traductor profesional
MÉXICO • BOGOTÁ • BUENOS AIRES • CARACAS • GUATEMALA • LISBOA MADRID • NUEVA YORK • SAN JUAN • SANTIAGO AUCKLAND • LONDRES • MILÁN • MONTREAL • NUEVA DELHI SAN FRANCISCO • SINGAPUR • ST.LOUIS • SYDNEY • TORONTO
Director Editorial: Fernando Castellanos Rodríguez Editor de desarrollo: Miguel Ángel Luna Ponce Supervisora de producción: Jacqueline Brieño Álvarez Formación: Braulio Morales Sánchez
Hackers en Windows. Secretos y soluciones de seguridad en Windows Tercera edición
Prohibida la reproducción total o parcial de esta obra, por cualquier medio, sin la autorización escrita del editor.
DERECHOS RESERVADOS © 2009 respecto a la primera edición en español por McGRAW-HILL INTERAMERICANA EDITORES, S.A. DE C.V. A Subsidiary of The McGraw-Hill Companies, Inc. Corporativo Punta Santa Fe Prolongación Paseo de la Reforma 1015 Torre A Piso 17, Colonia Desarrollo Santa Fe, Delegación Álvaro Obregón C.P. 01376, México, D. F. Miembro de la Cámara Nacional de la Industria Editorial Mexicana, Reg. Núm. 736 ISBN 13: 978-970-10-6755-0 ISBN 10: 970-10-6755-X Translated from the 3th English edition of Hacking Exposed Windows: MS Windows Security Secrets & Solutions By: Joel Scambray and Stuart McClure Copyright © 2008 by The McGraw-Hill Companies Inc.. All rights reserved. ISBN: 978-0-07-149426-7
3456789012
8765432109
Impreso en México
Printed in Mexico
ACERCA DE LOS AUTORES Joel Scambray Joel Scambray es director de Estrategia en Leviathan Security Group, empresa de asesoría en seguridad de la información ubicada en Seattle y Denver. Como miembro del consejo de administración y del equipo de ejecutivos de Leviathan, Joel guía la evolución y ejecución del negocio y la estrategia técnica de Leviathan. Antes de Leviathan, Joel fue director en Microsoft Corporation, donde dirigió los esfuerzos de seguridad de los servicios en línea de Microsoft durante tres años, antes de unirse a la división de la plataforma y los servicios de Windows, para concentrarse en la arquitectura de la tecnología de la seguridad fue cofundador de la firma de software y servicios de seguridad Foundstone Inc. y ayudó a llevarla a su adquisición por parte de McAfee por 86 millones de dólares. Antes tuvo puestos como gerente para Ernst & Young, columnista de seguridad en Microsoft TechNet, editor de InfoWorld Magazine y director de tecnología de la información de una importante firma comercial de bienes raíces. Los escritos de Joel se basan principalmente en su experiencia en el desarrollo de tecnología de seguridad, la seguridad de operaciones de tecnología de la información y la consultoría. Es autor de Hackers 4 de McGraw-Hill Educación. Ha trabajado con algunas de las empresas más grandes del mundo hasta pequeñas empresas que apenas inician. Ha dictado conferencias sobre seguridad de la información en foros que incluyen Black Hat, I-4 y The Asia Europe Meeting (ASEM), además de organizaciones que incluyen CERT, The Computer Security Institute (CSI) ISSA, ISACA, SANS, corporaciones privadas y agencias gubernamentales, como la Korean Information Security Agency (KISA), FBI y RCMP. Joel tiene una licenciatura en ciencias de la Universidad de California en Davis, una maestría por la UCLA y es profesional certificado de seguridad de sistemas de información (CISSP, Certified Information Systems Security Professional).
Stuart McClure Stuart McClure es consultor independiente de seguridad computacional del sur de California. Antes de regresar a dirigir su propia empresa consultora, Stuart fue vicepresidente de seguridad de Amenazas e investigación mundial para McAfee, donde dirigió a un equipo de élite de seguridad mundial que combatió los más peligrosos ciberataques jamás vistos. McAfee compró Foundstone (empresa líder global en administración de riesgo empresarial) en 2004, de la cual Stuart fue fundador, presidente y director de Tecnología. Foundstone dio servicio a empresas grandes, incluidas agencias del gobierno de Estados Unidos y clientes de las 500 empresas más importantes, de acuerdo con la revista Fortune, para administrar y mitigar de manera continua y medible riesgos para proteger sus activos digitales más importantes y la información privada de los clientes ante amenazas críticas. Ampliamente reconocido por su extenso y profundo conocimiento de productos de seguridad, Stuart es considerado una de las autoridades líderes de la industria en seguridad de la información. Visionario reconocido de la seguridad, Stuart llevó casi 20 años de tecnología y liderazgo ejecutivo a Foundstone con profunda experiencia técnica, operativa y financiera.
En 1999, publicó el primero de muchos libros sobre hackers computacionales y seguridad. Su primer libro, Hacking Exposed: Network Security Secrets & Solutions, ha sido traducido a más de 20 idiomas y ha sido clasificado como el cuarto libro más vendido sobre computación, colocándolo como uno de los libros sobre seguridad y computación mejor vendidos en la historia. Stuart es coautor de Hackers 4 de McGraw-Hill Educación. Antes de Foundstone, Stuart tuvo muchos puestos administrativos en seguridad y tecnología de la información, incluidos puestos en el equipo de perfilado de seguridad nacional de Ernst & Young, el InfoWorld Test Center, el gobierno estatal de California y otras administraciones locales, consultoría en tecnología de la información y con la Universidad de Colorado, Boulder, de donde Stuart tiene una licenciatura en psicología y filosofía, con énfasis en aplicaciones en las ciencias computacionales. Ha obtenido numerosos certificados, incluidos CISSP de ISC2, CNE de Novell y CCSE de CheckPoint.
ACERCA DE LOS COLABORADORES Chip Andrews (CISSP, MCDBA) es la cabeza de Research and Development for Special Ops Security. Chip es fundador del sitio Web SQLSecurity.com, que se concentra en temas y problemas de seguridad de Microsoft SQL Server. Tiene más de 16 años de experiencia en el desarrollo de software seguro, ayudando a clientes a diseñar, desarrollar, desplegar y mantener software confiable y seguro. Chip ha sido autor y colaborador de varios libros, incluidos SQL Server Security y Hacking Exposed: Windows Server 2003. También es autor de artículos que se concentran en problemas de seguridad y desarrollo de software en SQL Server para revistas como Microsoft Certified Professional Magazine, SQL Server Magazine y Dr. Dobb’s Journal. Es un orador importante en conferencias de seguridad como Black Hat Briefings. Blake Frantz tiene más de diez años de experiencia profesional en seguridad de la información, con amplios antecedentes que van de investigación de seguridad en software a desarrollo de políticas empresariales. Actualmente es consultor importante para el Leviathan Security Group, donde se especializa en pruebas de penetración y revisiones de código fuente. Antes de Leviathan, Blake era ingeniero de seguridad dentro de los equipos de seguridad de la infraestructura y aseguramiento de la seguridad de Washington Mutual, donde ha sido responsable de conducir evaluación de vulnerabilidades de sistemas financieros críticos. Robert Hensing, veterano de nueve años en Microsoft, es ingeniero en seguridad del software del equipo de la iniciativa de Windows seguro. Robert trabaja de cerca con el Centro de Respuesta de Seguridad de Microsoft, con la misión de identificar mitigaciones y rodeos para vulnerabilidades de productos que pueden documentarse en advertencias y boletines para ayudar a proteger a los clientes de Microsoft. Antes de unirse al equipo de la iniciativa de Windows seguro, Robert fue miembro experimentado del equipo de seguridad de servicios de soporte a productos, donde ayudó a los clientes en investigaciones relacionadas con respuestas a incidentes. El Toolcrypt Group (www.toolcrypt.org) es una asociación de consultores profesionales en seguridad reconocidos internacionalmente y que tienen gran cantidad de contratos en Europa y Estados Unidos. Su trabajo ha ayudado a mejorar la seguridad de agencias gubernamentales, multinacionales, instituciones financieras, plantas nucleares y proveedores de servicios de todos los tamaños en muchos países diferentes. Son oradores invitados en gran cantidad de conferencias y foros de la industria, incluida BlueHat de Microsoft y T2 en Finlandia. Investigación continua y desarrollo de herramientas de Toolcrypt sigue ayudando a los profesionales responsables de la seguridad a mejorar mundialmente la seguridad de redes y equipos.
Dave Wong dirige el Centro de Seguridad Avanzada de Ernst & Young, en Nueva York, donde encabeza un equipo de profesionales de prueba de ataques dirigidos y penetración. Dave tiene más de diez años de experiencia en esta área y ha dirigido y realizado cientos de evaluaciones para servicios financieros, gobierno y clientes de empresas que se encuentran entre las 500 más importantes, de acuerdo con la revista Fortune. Antes de unirse a Ernst & Young, obtuvo una amplia serie de experiencias relacionadas con la seguridad de la información y antes trabajó en Lucent’s Bell Laboratories, Foundstone y Morgan Stanley. Dave ha dictado varios cursos de hackeo y código seguro para el público y clientes corporativos. Ha dado cursos en las conferencias de seguridad de Black Hat en Estados Unidos y Asia, y ha hablado en las reuniones OWASP. Dave también es profesional certificado de seguridad de sistemas de información (CISSP, Certified Information Systems Security Professional).
ACERCA DE LOS REVISORES TÉCNICOS Aaron Turner es estratega de ciberseguridad para el Idaho National Laboratory (INL). En este papel, aplica su experiencia en seguridad de la información para colaborar con expertos en sistemas de control, ingenieros de la industria, oficiales de seguridad nacional para desarrollar soluciones ante las ciberamenazas que está enfrentando en la actualidad la infraestructura crítica. Antes de unirse a INL, trabajó en varias divisiones de seguridad de Microsoft durante siete años (como estratega de seguridad experimentado dentro de la Unidad de Tecnología de la Seguridad, además de gerente de Respuesta rápida de seguridad en el grupo de ventas, mercadotecnia y servicios de Microsoft donde dirigió el desarrollo del curso de seguridad de la información en Microsoft para más de 22 000 empleados de campo de Microsoft). Antes de concentrarse en el desafío de la respuesta rápida de seguridad global de Microsoft, manejó la respuesta de los servicios de Microsoft para las necesidades empresariales durante las secuelas del gusano Blaster. Ha practicado la seguridad de la información desde 1994, diseñando soluciones de seguridad y respondiendo a incidentes en más de 20 países de todo el mundo. Lee Yan (CISSP, PhD) es ingeniero en escalamiento de seguridad en el grupo de seguridad PSS de Microsoft, que proporciona respuesta de seguridad, productos de seguridad y soporte de tecnología en todo el mundo para clientes de Microsoft. Ha estado con Microsoft durante más de diez años. Antes de unirse al equipo de seguridad hace unos cinco años, era ingeniero de escalamiento en soporte al desarrollador para Visual Studio. Es autor de algunas de las respuestas a incidentes y de herramientas de detección de rootkits para su equipo. Es doctor en Explotación pesquera por la Universidad de Washington y descubrió por accidente que disfruta el trabajo con los equipos de cómputo.
CONTENIDO BREVE ▼ 1 Fundamentos de seguridad relacionada con información ....................................... 1 ▼ 2 La arquitectura de seguridad de Windows desde la perspectiva del hacker ...... 15 ▼ 3 Recolección de información y rastreo ........................................................................ 53 ▼ 4 Enumeración.................................................................................................................. 73 ▼ 5 Hackeo de servicios específicos de Windows......................................................... 115 ▼ 6 Descubrimiento y explotación de vulnerabilidades de Windows ....................... 165 ▼ 7 Saqueo después de la explotación ............................................................................ 185 ▼ 8 Cómo pasar inadvertido y mantener presencia ..................................................... 225 ▼ 9 Hackeo de SQL server ................................................................................................ 273 ▼ 10 Hackeo de aplicaciones cliente de microsoft .......................................................... 317 ▼ 11 Ataques físicos ............................................................................................................ 345 ▼ 12 Características y herramientas de seguridad de Windows .................................. 367 ▼ A Lista de verificación de la seguridad de Windows ................................................ 405 ▼ B Acerca del sitio web del libro en inglés ................................................................... 421 Índice ............................................................................................................................ 423
ix
CONTENIDO Prólogo ...................................................................................................................................................xvii Agradecimientos ................................................................................................................................... xix Introducción ........................................................................................................................................... xxi ▼ 1 Fundamentos de seguridad relacionada con información ...................................................... 1 Un marco conceptual para la seguridad de las operaciones.............................................................. 2 Plan .................................................................................................................................................. 3 Prevención ...................................................................................................................................... 8 Detección ........................................................................................................................................ 8 Respuesta ........................................................................................................................................ 9 Pulimento y repetición.................................................................................................................. 9 Principios básicos de seguridad ........................................................................................................... 10 Resumen .................................................................................................................................................. 13 Referencias y lecturas adicionales........................................................................................................ 14 ▼ 2 La arquitectura de seguridad de Windows desde la perspectiva del hacker ............................... 15 Introducción ............................................................................................................................................ 16 Ataque al kernel........................................................................................................................... 17 Ataque del modo de usuario ..................................................................................................... 18 Revisión general del control de acceso ............................................................................................... 19 Directivas de seguridad......................................................................................................................... 19 SID ................................................................................................................................................. 20 ¿Por qué no puede iniciar en todos lados una sesión como administrador? ..................... 20 Usuarios ........................................................................................................................................ 22 Grupos........................................................................................................................................... 25 Equipos (cuentas de máquina) .................................................................................................. 28 Derechos de usuario.................................................................................................................... 30 Integración de todas las piezas: control de acceso ............................................................................ 31 La ficha .......................................................................................................................................... 32 Autentificación de red ................................................................................................................ 36 SAM y Active Directory ............................................................................................................. 39 Bosques, árboles y dominios ................................................................................................................ 41 Alcance: local, global y universal .............................................................................................. 42 Confianzas .................................................................................................................................... 43 Límites administrativos: ¿bosque o dominio? ........................................................................ 43
xi
xii
Hackers en Windows Auditoría ................................................................................................................................................. 46 Criptografía .................................................................................................................................. 47 El .NET framework ..................................................................................................................... 48 Resumen .................................................................................................................................................. 50 Referencias y lecturas adicionales........................................................................................................ 51 ▼ 3 Recolección de información y rastreo ............................................................................ 53 Recolección de información .................................................................................................................. 54 Rastreo ..................................................................................................................................................... 60 Palabras finales sobre recopilación de información y rastreo.......................................................... 69 Resumen .................................................................................................................................................. 70 Referencias y lecturas adicionales........................................................................................................ 70 ▼ 4 Enumeración .......................................................................................................... 73 Preludio: revisión de los resultados del rastreo ................................................................................. 74 Nombres de NetBIOS en comparación con direcciones IP ................................................... 74 Enumeración del servicio de nombres de NetBIOS .......................................................................... 77 Enumeración de RPC ............................................................................................................................. 82 Enumeración de SMB ............................................................................................................................ 84 Enumeración de DNS de Windows ................................................................................................... 101 Enumeración de SNMP ....................................................................................................................... 103 Enumeración de Active Directory...................................................................................................... 107 Herramientas de enumeración todo en uno......................................................................................111 Resumen .................................................................................................................................................112 Referencias y lecturas adicionales.......................................................................................................113 ▼ 5 Hackeo de servicios específicos de Windows ................................................................. 115 Adivinación de contraseñas.................................................................................................................117 Cierre para el destino de sesiones SMB existentes ................................................................117 Revisión de resultados de enumeración .................................................................................118 Evite bloqueos de cuentas .........................................................................................................119 La importancia de las cuentas Administrador y de servicios ............................................. 121 Espionaje sobre la autentificación de Windows .............................................................................. 137 Subversión de la autentificación de Windows ................................................................................. 148 Explotación de servicios exclusivos de Windows ........................................................................... 156 Resumen ................................................................................................................................................ 161 Referencias y lecturas adicionales...................................................................................................... 162 ▼ 6 Descubrimiento y explotación de vulnerabilidades de Windows ........................................... 165 Vulnerabilidades de seguridad .......................................................................................................... 166 Búsqueda de vulnerabilidades de seguridad................................................................................... 166 Trabajo de preparación ............................................................................................................. 167 Explotación de ANI ................................................................................................................... 181 Resumen ................................................................................................................................................ 184 Referencias y lecturas adicionales...................................................................................................... 184
Contenido ▼ 7 Saqueo después de la explotación .............................................................................. 185 Transferencia del kit de herramientasdel atacante para mayor dominio .................................... 186 Control interactivo remoto.................................................................................................................. 191 Extracción de contraseñas ................................................................................................................... 201 Introducción al uso de credenciales de aplicación y la DPAPI ........................................... 205 Descubrimiento de contraseñas ......................................................................................................... 210 Descubrimiento de hashes de LM........................................................................................... 210 Descubrimiento de hashes de NT ........................................................................................... 214 Enjuagar y volver a hacerlo ................................................................................................................ 220 Resumen ................................................................................................................................................ 220 Referencias y lecturas adicionales...................................................................................................... 221 ▼ 8 Cómo pasar inadvertido y mantener presencia ................................................................ 225 El surgimiento de los rootkits ............................................................................................................. 226 Rootkits de Windows ................................................................................................................ 227 El entorno cambiante de la amenaza ................................................................................................. 229 Cómo pasar inadvertido: técnicas modernas ................................................................................... 235 Funcionamiento interno de Windows .................................................................................... 235 DKOM ......................................................................................................................................... 240 Shadow Walker .......................................................................................................................... 245 Software antivirus en oposición a rootkits ....................................................................................... 246 Windows vista en oposición a los rootkits ....................................................................................... 247 Protección de parche de kernel (KPP): Patchguard .............................................................. 247 Control de cuentas de usuario: está a punto de ser atacado, ¿cancelar o permitir? ........ 248 Inicio seguro ............................................................................................................................... 250 Otras mejoras de seguridad ..................................................................................................... 251 Resumen de Vista en oposición a los rootkits ....................................................................... 251 Herramientas y técnicas de detección de rootkits ........................................................................... 252 El ascenso de las herramientas de detección de rootkits ..................................................... 252 Detección de rootkits basada en vista cruzada ..................................................................... 253 Tecnologías de detección de rootkits ad hoc ......................................................................... 254 El futuro de los rootkits ....................................................................................................................... 262 ¿Los rootkits son siquiera necesarios?............................................................................................... 262 Resumen ................................................................................................................................................ 268 Referencias y lecturas adicionales...................................................................................................... 269 ▼ 9 Hackeo de sql server............................................................................................... 273 Estudio de caso: penetración de un SQL server............................................................................... 274 Conceptos de seguridad de SQL server ............................................................................................ 277 Bibliotecas de red....................................................................................................................... 277 Modos de seguridad ................................................................................................................. 278 Inicios de sesión ......................................................................................................................... 278 Usuarios ...................................................................................................................................... 279 Funciones .................................................................................................................................... 279 Registro ....................................................................................................................................... 279 Cambios en SQL server 2005 ................................................................................................... 280
xiii
xiv
Hackers en Windows Hackeo de SQL server ......................................................................................................................... 281 Recopilación de información en SQL server ......................................................................... 282 Herramientas y técnicas de hackeo en SQL server.......................................................................... 286 Utilerías básicas de consulta SQL ...................................................................................................... 286 Herramientas avanzadas para hackear SQL .................................................................................... 287 Estrategias defensivas fundamentales .............................................................................................. 306 Mejores prácticas adicionales para la seguridad de SQL server ................................................... 309 Resumen ................................................................................................................................................ 315 Referencias y lecturas adicionales...................................................................................................... 316 ▼10 Hackeo de aplicaciones cliente de microsoft ................................................................. 317 Explotaciones ........................................................................................................................................ 319 Trucos ..................................................................................................................................................... 328 Contramedidas generales.................................................................................................................... 335 Zonas de seguridad de IE......................................................................................................... 335 Exploración con bajos privilegios ........................................................................................... 339 Resumen ................................................................................................................................................ 340 Referencias y lecturas adicionales...................................................................................................... 340 ▼11 Ataques físicos ..................................................................................................... 345 Ataques fuera de línea ......................................................................................................................... 346 Implicaciones para EFS............................................................................................................. 349 Ataques en línea ................................................................................................................................... 354 Ataques a dispositivos / medios / conexiones de red ........................................................ 359 Resumen ................................................................................................................................................ 363 Referencias y lecturas adicionales...................................................................................................... 364 ▼12 Características y herramientas de seguridad de Windows .................................................. 367 Cifrado de unidad BitLocker .............................................................................................................. 368 Configuraciones de BitLocker ................................................................................................. 369 Bitlocker con TPM ..................................................................................................................... 370 Control de integridad de Windows ................................................................................................... 372 Administración de niveles de integridad .............................................................................. 374 Control de cuentas de usuario............................................................................................................ 375 Fichas y procesos ....................................................................................................................... 375 Eliminación de privilegios administrativos ......................................................................... 376 Endurecimiento de los servicios de Windows ................................................................................. 377 Aislamiento de los recursos del servicio ................................................................................ 377 Servicios con la menor cantidad de privilegios .................................................................... 380 Refactorización del servicio ..................................................................................................... 385 Acceso restringido a red ........................................................................................................... 386 Aislamiento de la sesión 0 ........................................................................................................ 386 Su compilador puede salvarlo............................................................................................................ 387 Revisión general de los sobreflujos ......................................................................................... 387 Cookies de GS ............................................................................................................................ 388 SafeSEH....................................................................................................................................... 392
Contenido Explotaciones de sobreescritura de SEH................................................................................ 393 Aleatorización del diseño del espacio de direcciones .......................................................... 398 Protección de recursos de windows .................................................................................................. 399 Resumen ................................................................................................................................................ 402 Referencias y lecturas adicionales...................................................................................................... 402 ▼ A Lista de verificación de la seguridad de Windows ............................................................ 405 Advertencia de suspensión: funciones y responsabilidades ......................................................... 406 Consideraciones de preinstalación .................................................................................................... 406 Endurecimiento básico de Windows ................................................................................................. 407 Recomendaciones para los casos en que no se usan plantillas ........................................... 407 Recomendaciones relacionadas con plantillas de seguridad .............................................. 409 Firewall de Windows e IPSsec ..................................................................................................411 Directiva de grupo .................................................................................................................... 412 Configuraciones diversas ......................................................................................................... 412 SNMP .......................................................................................................................................... 413 Consideraciones de seguridad de aplicaciones web ....................................................................... 413 Consideraciones relacionadas con la seguridad de SQL server .................................................... 414 Consideraciones relacionadas con la seguridad de terminal server ............................................. 416 Consideraciones relacionadas con la negación del servicio........................................................... 417 Seguridad del cliente de internet ....................................................................................................... 418 Audítese usted mismo ......................................................................................................................... 420 ▼ B Acerca del sitio web del libro en inglés ........................................................................ 421 Índice ....................................................................................................................................................... 423
xv
PRÓLOGO L
a seguridad es un tema amplio y crece a medida que nos volvemos más dependientes de los equipos de cómputo para todo lo que hacemos, desde el trabajo en casa hasta los ratos de ocio; y nuestros equipos se interconectan cada vez más. La mayor parte de nuestras experiencias en computación ahora necesitan conexiones de Internet, o son enriquecidas por éste, lo que significa que nuestros sistemas están constantemente expuestos a datos externos de integridad desconocida o incierta. Cuando hace clic en vínculos de búsqueda, descarga aplicaciones o configura servidores que dan a Internet, cada línea de código a través de la que fluyen datos está sujeta a una tormenta de prueba en busca de configuraciones vulnerables, lógica fallida de programación e implementaciones erróneas (aún dentro de los confines de una red corporativa). Sus datos y recursos de cómputo valen dinero en la economía Web 2.0, y donde hay dinero, hay gente que lo quiere robar. A medida que la Web ha evolucionado, también hemos visto evolucionar a los delincuentes. Hace diez años, la amenaza era un virus de macro insertado en correo electrónico que eliminaba sus datos. Hace cinco años, era la propagación automática de gusanos que usaban sobreflujos de búfer para incluir equipos en redes de ataque distribuidas de negación de servicio. Hace tres años, la amenaza prevalente se volvió el malware que se extiende a su equipo cuando visita sitios Web infectados y que subsecuentemente envía ventanas emergentes y le propone antimalware falso. Recientemente, el malware usa todas estas técnicas de propagación para dispersar en una red distribuida “elementos de arranque” de propósito general que sirven sus datos, realizan negación de servicio o distribuyen correo basura. El futuro es de malware orientado que deliberadamente es de bajo volumen y está personalizado para clases de usuarios, corporaciones específicas o incluso un solo individuo. También hemos visto evolucionar la seguridad de los equipos de cómputo. Los antivirus están por todos lados, desde los enrutadores en los extremos hasta los servidores, los clientes y, pronto, los dispositivos móviles. Las firewalls son igualmente ubicuas y bloquean la entrada no usada y las vías de salida. Los sistemas operativos y las aplicaciones están escritas con la seguridad presente y están endurecidos con medidas de defensa a profundidad como no ejecución y aleatorización de diseño de direcciones. Los usuarios no pueden acceder a redes corporativas sin pasar evaluaciones de salud. Una cosa es clara: no hay declaración de victoria posible en esta batalla. Es una lucha constante donde ganan los medios que mantienen a los delincuentes a la espera otro día. Y tampoco hay una clara estrategia para el éxito. La seguridad en la práctica requiere evaluación de riesgo y la evaluación exitosa de riesgo requiere una comprensión profunda de las amenazas y las tecnologías defensivas.
xvii
xviii
Hackers en Windows Es esta capacidad de ayudar a realizar evaluación acertada de riesgo lo que hace valioso a Hackers en Windows. Hay pocos lugares donde puede echar una sola mirada al panorama de la seguridad en que vive Windows. Joel y sus colaboradores han hecho un extraordinario trabajo de documentar los últimos avances en amenazas, incluidas sobreflujos de búfer, rootkits y creación de secuencias de comandos de sitio cruzado, además de tecnologías defensivas como no ejecutables, el Control de cuentas de usuario de Vista y la aleatorización del diseño del espacio de direcciones. Si se comprende que la seguridad de Windows está en cualquier lugar de su trabajo, le recomiendo que lea este libro de principio a fin y lo mantenga como una referencia para su batalla constante. –Mark Russinovich Colaborador técnico, Microsoft Corporation
AGRADECIMIENTOS A
ntes que nada, muchas gracias a todos nuestros familiares por apoyarnos una vez más a través de más meses de investigación y escritura exigentes. Su comprensión y apoyo fue crucial para completar este libro. Esperamos que podamos compensar el tiempo que les quitamos para completar este proyecto. En segundo lugar, nos gustaría dar las gracias a todos nuestros colegas que contribuyeron directamente con este libro, incluidos Jussi Jaakonaho y todos en Toolcrypt por sus siempre innovadoras actualizaciones a los capítulos sobre hackeo remoto de Windows y saqueo posterior a la explotación. A Robert Hensing de Microsoft por su capítulo muy completo sobre rootkits de Windows y técnicas para pasar inadvertidos; a Blake Frantz de Leviathan por su aguda exploración técnica del descubrimiento y la explotación de vulnerabilidades en Windows, además de las nuevas características de seguridad y herramientas en Vista y Windows Server 2008; a Chip Andrews, cuya contribución de la información sobre lo último y mejor en seguridad de SQL fue simplemente estelar, como siempre; a David Wong por su ayuda con la seguridad del cliente; y, por supuesto, a Mark Russinovich, cuyo prólogo y los muchos años de contribuciones a la industria vía herramientas, investigación y escritura son apreciados más allá de las palabras. Como siempre, nos inclinamos profundamente ante todos los individuos que investigan y escriben de manera incansable las innumerables herramientas el código de prueba de concepto que documentamos en este libro, además de todas las personas que siguen contribuyendo anónimamente con la base colectiva de código de seguridad de manera cotidiana. Por supuesto, debemos dar las gracias a los incansables editores y al equipo de producción de McGraw-Hill que trabajaron en el libro, incluidos nuestra infatigable editora de adquisiciones Jane Brownlow, la editora de adquisiciones Megg Morin quien proporcionó una estupenda guía mientras Jane estuvo ausente, la editora del salón de la fama de Hacking Exposed LeeAnn Pickrell, el gurú de producción Jim Kussow y la asistente editorial Jenni Housh, quien mantuvo las cosas en el camino por un largo periodo, durante la escritura y la edición. Y, por último, un enorme “Gracias” a todos los lectores de las ediciones previas de este libro y todos los libros en la serie Hackers, cuyo soporte continuo hace que todo el duro trabajo valga la pena.
xix
INTRODUCCIÓN SEGURIDAD EN WINDOWS: UN VIAJE, NO UN DESTINO Si va a creerle al gobierno de Estados Unidos, Microsoft Corporation controla un monopolio del mercado de los sistemas operativos para computadoras y posiblemente también muchos otros mercados de software relacionados (exploradores Web, software de productividad de oficina, etcétera). Y a pesar de los continuos esfuerzos de sus adversarios en los medios y el mercado, Microsoft se las ingenia para mantener su “monopolio” año tras año, volando en el frente de una historia prolongada de esfuerzos inútiles en tecnología de la información enterrados bajo la carnicería inmisericorde del cambio y la creciente volatilidad del consumidor digital. Los ame, los odie, o ambas cosas, Microsoft sigue produciendo parte del software más ampliamente popular en el planeta, hoy en día. Y más aún, en paralelo con esta continua popularidad, muchos medios y muchas autoridades en seguridad siguen retratando al software de Microsoft como una fatalidad llena de errores desde una perspectiva de la seguridad. Si los productos de Bill Gates son tan inseguros, ¿por qué siguen siendo tan populares?
La brecha de seguridad de Windows La respuesta es en realidad muy simple. Los productos de Microsoft están diseñados para maximizar la facilidad de uso, lo que justifica su gran popularidad. Lo que muchos no entienden es que la seguridad es un juego de suma cero: cuanto más fácil sea usar algo, más tiempo y esfuerzo debe dedicarse a asegurarlo. Considere que la seguridad es como una línea continua entre los polos de 100% de seguridad por un lado y 100% de facilidad de uso por el otro. Donde hay un 100% de seguridad hay un 0% de facilidad de uso, y viceversa. Con el tiempo, Microsoft ha aprendido a encontrar un equilibrio más saludable en esta línea continua. Algunas cosas simplemente se usan de acuerdo con las configuraciones predeterminadas (IIS en Windows Server 2003 viene a la mente). Otras las han rediseñado desde cero dando prioridad a la seguridad (el cambio de arquitectura de IIS para que escuche subprocesos en modo de kernel y trabaje en modo de usuario también es ejemplar aquí). Más recientemente, Microsoft ha incluido tecnologías e interfaces de usuario “profilácticas” alrededor de funcionalidad existente para dificultar las cosas a los desarrolladores de explotaciones (pensamos en ASLR, DEP, MIC y Control de cuentas de usuario en Vista). Y, por supuesto, se ha hecho una gran cantidad de trabajo en las bases: parchar vulnerabilidades en el nivel de código de manera regular (“el parche del martes” ahora es parte del léxico del administrador de sistema Windows), mejorar la visibilidad y el control (el Centro de seguridad de Windows ahora está
xxi
xxii
Hackers en Windows firmemente incluido en la Charola del sistema/Área de notificación de cada instalación moderna de Windows), agregar nueva funcionalidad de seguridad (el antispyware Windows Defender) y hacer firmes mejoras (lo atestigua el avance de la Firewall de Windows desde el casi independiente filtro IP a su competidor en el mercado integrado, orientado a directivas, bidireccional, consciente del usuario y la aplicación). ¿Ha funcionado? Sí, Windows Vista es más difícil de comprometer en la instalación estándar que Windows NT 4. ¿Es perfecto? Por supuesto que no: en la práctica, la seguridad nunca lo es (recuerde esa línea continua). Y como un globo lleno de agua, cuanto más ha oprimido Microsoft cierto tipo de vulnerabilidad, han surgido más para amenazar a usuarios que no están conscientes de ellas. Analizaremos algunos de los nuevos métodos de ataque en este libro, incluidas las vulnerabilidades de controladores de dispositivos que dejan al sistema abierto a compromiso por sólo usar cierto rango de tecnología de red inalámbrica y la tecnología insidiosa para pasar inadvertido depositada por exploradores Web, sólo por mencionar dos. Como presidente de Microsoft, Bill Gates dijo en su memorando “Computación confiable” de enero de 2002 (http://www.microsoft.com/mscorp/execmail/2002/07-18twc.mspx), “[la seguridad]… realmente es un viaje más que un destino”. Microsoft ha hecho avances en el camino. Pero el viaje está lejos de terminar.
Hackers en Windows: su guía para el resto del camino Hackers en Windows es su guía para el largo camino que aún queda por recorrer. Adopta el método de dos pinzas popularizado en el popular libro Hacking Exposed, que ahora se encuentra en su quinta edición. En primer lugar, catalogamos las mayores amenazas que enfrentará su despliegue de Windows, y explicaremos con gran detalle cómo funcionan. ¿Cómo sabemos que son las mayores amenazas? Porque hemos sido contratados por las empresas más grandes del mundo para entrar en sus redes, servidores, productos y servicios de Windows, y usamos las mismas herramientas y técnicas a diario en nuestro trabajo. Y lo hemos hecho durante casi una década, investigando los ataques más recientemente publicados, desarrollando nuestras propias herramientas y técnicas y combinándolas en lo que consideramos la metodología más efectiva de penetración de la seguridad de Windows en existencia. Una vez que hemos llamado su atención al mostrarle el daño que puede hacerse, le indicamos cómo prevenir cada uno de los ataques. Ejecutar Windows sin comprender la información de este libro es equivalente a conducir un auto sin cinturón de seguridad (por un camino resbaladizo, sobre un monstruoso abismo, sin frenos y con el acelerador a fondo).
Adopte y extienda el método de la serie Por todas sus similitudes, Hackers en Windows también es distinto, en varias maneras, de la serie original de la que se desprende. Obviamente, está concentrado en una plataforma, en oposición al método multidisciplinario de la serie. Mientras que en la serie se hace una revisión panorámica de la seguridad en Windows, en este libro se revisan algunas capas para explorar el funcionamiento en el nivel de bits de los ataques y las contramedidas relacionados con la seguridad en Windows, revelando pormenores que harán voltear hasta a los administradores de sistemas Windows más avezados. Se trata de un análisis a profundidad que se aparta de la serie original, donde la carga de explorar muchas otras plataformas computacionales obliga al tratamiento superficial de algunos temas.
Introducción
En todo este libro, usamos la palabra Windows para referirnos al sistema basado en la plataforma “Nueva Tecnología” (NT) de Windows, incluidos NT 3.x-4.x, Windows 2000, Windows XP, Windows Server 2003, Vista y Windows Server 2008. En contraste, aludiremos al linaje de Microsoft DOS/ Windows 1.x/3.x/9x/Me como la “familia DOS”.
NOTA
En este libro, no encontrará aspecto alguno de la seguridad de Windows tratado superficialmente. No sólo abarca toda la información y las características importantes de la serie original, sino que la extiende de manera importante. Aquí encontrará todo el conocimiento secreto necesario para cerrar la brecha de la seguridad de Windows para bien, desde la arquitectura básica del sistema hasta las claves no documentadas del Registro que las aplican.
CÓMO ESTÁ ORGANIZADO ESTE LIBRO Este libro es la suma de sus partes, las que se describen abajo desde el nivel organizacional más amplio al más detallado.
Capítulos: la metodología de la serie Los capítulos de este libro siguen un plan de ataque definido. Ese plan es la metodología del hacker malicioso, adaptada de la serie original: • • • • • •
Recolección de información Rastreo Enumeración Explotación Saqueo Sigilo
Esta estructura forma la columna vertebral de este libro, porque sin una metodología, esto no sería más que un montón de información sin contexto ni significado. Hemos envuelto este esquema básico con los siguientes componentes adicionales: • • • • •
Revisión de la arquitectura de seguridad de Windows Ataque a SQL Server Ataque a clientes de Internet Ataques físicos Características y herramientas de seguridad de Windows
Modularidad, organización y accesibilidad Evidentemente, este libro pude leerse de principio a fin para lograr un retrato completo de las pruebas de penetración de Windows. Sin embargo, como toda la serie, hemos tratado de que cada sección de cada capítulo destaque por sí sola, de modo que el libro puede digerirse en partes modulares, adecuadas para los calendarios frenéticos de nuestra audiencia. Más aún, nos hemos adherido estrictamente al estilo de escritura claro, legible y conciso al que los lectores respondieron de manera abrumadora en el libro original de la serie, Hackers.
xxiii
xxiv
Hackers en Windows Sabemos que está ocupado y que necesita ir al grano sin andarse por las ramas o usar terminología innecesaria. Como alguna vez comentó un lector de la serie: “¡Se lee como si fuera una ficción, y en verdad aterra!”. Consideramos que estará tan satisfecho leyendo de principio a fin como haciéndolo parte por parte, pero está construido para resistir cualquier tratamiento.
Resúmenes y referencias y lecturas adicionales de capítulo En un esfuerzo por mejorar la organización de este libro, hemos incluido las características estándar de las ediciones anteriores al final de cada capítulo: un “Resumen” y la sección “Referencias y lecturas adicionales”. El “Resumen” es exactamente lo que debe ser, una breve sinopsis de los principales conceptos cubiertos en el capítulo, con énfasis en las contramedidas. Esperaríamos que al leer el “Resumen” de cada capítulo, sabrá cómo endurecer un sistema Windows ante casi cualquier forma de ataque. Las “Referencias y lecturas adicionales” incluyen URL, información de publicaciones y cualquier otro detalle necesario para localizar todos y cada uno de los elementos a los que se hace referencia en el capítulo, incluidos los boletines de seguridad de Microsoft, los paquetes de servicio, las correcciones, los artículos de la base de datos de conocimientos, las advertencias de terceros, las herramientas comerciales y de freeware, los incidentes de hackeo de Windows en las noticias y las lecturas generales que amplían o expanden la información presentada en el capítulo. Por tanto, pocos URL se encontrarán dentro del texto de los propios capítulos (si necesita encontrar algo, vaya al final del capítulo y estará allí). Esperamos que esta consolidación de referencias externas en un contenedor mejore la manera general en que disfruta el libro.
Apéndice A: La lista de verificación para el endurecimiento de Windows Tomamos todas las contramedidas analizadas en el libro, las llevamos a su esencia, las ordenamos de manera apropiada para construir un sistema desde cero y las pusimos todas bajo un techo en el apéndice A. Sí, hay por allí una gran cantidad de listas de seguridad de Windows, pero consideramos que la nuestra representa el conjunto de recomendaciones más realista, terrenal pero sólido, que encontrará.
LOS BLOQUES DE CONSTRUCCIÓN BÁSICOS: ATAQUES Y CONTRAMEDIDAS Al igual que con toda la serie, los bloques de construcción básicos de este libro son los ataques y las contramedidas analizadas en cada capítulo. Los ataques se resaltan aquí, como se hace en toda la serie.
Éste es un icono de ataque Al resaltar así los ataques se facilita la identificación de las herramientas y metodologías de penetración específicas y le lleva directo a la información que necesita para convencer a la administración que financie su nueva iniciativa de seguridad. Cada ataque también está acompañado de una clasificación de riesgo, calificada exactamente como en la serie:
Introducción
Popularidad:
La frecuencia de uso en su estado natural contra objetivos reales. 1 indica que se usa en raras ocasiones y 10 que su uso es amplio.
Simplicidad:
El grado de habilidad necesario para ejecutar el ataque; 10 es poco o nula habilidad y 1 representa al programador de seguridad con más experiencia.
Impacto:
El posible daño causado por la ejecución exitosa del ataque; 1 representa la revelación de información trivial acerca del destino y 10 el compromiso de la cuenta de superusuario o equivalente.
Clasificación de riesgo:
Los tres valores anteriores se promedian para dar la clasificación general de riesgo y se redondea al número entero superior.
Las contramedidas, a su vez, reciben sus propios adornos visuales:
Éste es un icono de contramedida Estas secciones suelen seguir a la descripción de cada “ataque” y en ellas se analizan los controles preventivos, de detección y reactivos que puede aplicar para mitigar la explotación recién descrita. Muchas veces haremos referencia al boletín de seguridad de Microsoft que resulta relevante para el ataque. Los boletines de seguridad de Microsoft incluyen información técnica relacionada con el problema, soluciones recomendadas, parches de software, o una combinación de éstos. El número del boletín puede usarse para encontrar el propio boletín en Web: http://www.microsoft.com/technet/security/bulletin/MS##-###.asp
donde MS##-### representa el número real del boletín. Por ejemplo, MS07-039 sería el boletín 39 de 2007. En ocasiones usaremos también el ID de Bugtraq, o BID, que alude al número de seguimiento dado a cada vulnerabilidad por la famosa lista de correos y base de datos de vulnerabilidades de Securityfocus.com. Esto permite que se busque la lista de Bugtraq directamente mediante el siguiente URL: http://www.securityfocus.com/bid/####
donde #### representa el BID (por ejemplo, 1578). También utilizamos la notación de Vulnerabilidades y exposiciones comunes (CVE, Common Vulnerabilities and Exposures, http://cve.mitre.org), para hacer referencia a vulnerabilidades. La notación CVE es similar a la CVE-####-$$$$ de Microsoft, donde el primer conjunto de cuatro dígitos es el año y el segundo es el identificador numérico de la vulnerabilidad. Por ejemplo, CVE-2007-3826 es la vulnerabilidad 3 286 catalogada por CVE en el año 2007. Sugerencia
En todo este libro, también usamos un sistema común para hacer referencia a los artículos de la base de datos de conocimientos de Microsoft (KB, Knowledge Base): http://support.microsoft.com/ ?kbid=123456, donde 123456 representa el ID de seis dígitos del artículo.
xxv
CAPÍTULO
1
S O T N E M A FUND D A D I R U G E S DE A D A N O I C A N REL Ó I C A M R O F N I N O C 1
2
Hackers en Windows
E
s difícil hablar de cualquier sistema en el vacío, sobre todo de un sistema que está desplegado de manera tan amplia y que juega tantos roles como Windows, en todas sus variedades. En este capítulo se presenta una introducción a algunas posturas defensivas de seguridad en los sistemas de información para que comprenda los elementos específicos de Windows y esté mejor informado.
UN MARCO CONCEPTUAL PARA LA SEGURIDAD DE LAS OPERACIONES Debido a su completa ubicuidad, es probable que muchas personas, procesos y otras tecnologías entren en contacto con el sistema de operación de Windows durante el curso de su ciclo de trabajo. Por tanto, cualquier análisis sobre la seguridad en Windows estaría incompleto si no se empieza con un reconocimiento de que sólo es una pieza de un rompecabezas mucho más amplio. Por supuesto, aquí es donde surgen los desafíos. En este libro se cubren los pormenores de la seguridad en Windows, un universo finito de medidas que pueden tomarse para evitar que pasen cosas malas. Sin embargo, como lo sabe cualquier profesional experimentado de la tecnología de la información, se necesita ir mucho más allá de los pormenores para tener una buena postura de seguridad. ¿Cuáles son algunas de las consideraciones no técnicas relacionadas con la seguridad? Aquí tal vez necesite escribirse otro libro, pero trataremos de delinear algunas de las piezas más importantes en el análisis siguiente para reducir al mínimo la confusión, de modo que usted se pueda concentrar en lo sustancial en todo el resto del libro: la seguridad en Windows. En la figura 1-1 se ilustra un marco conceptual para la seguridad de las operaciones dentro de una organización típica. A primera vista, lo más importante que hay que notar en este marco es que es cíclico. Acomoda el modelo a la noción de seguridad como un viaje, no como un destino. Todo el tiempo están brotando nuevas amenazas a la seguridad (simplemente revise cualquiera de las populares listas de correo relacionadas con el tema, como Bugtraq, para verlo) y, por tanto, cualquier plan para atender esas amenazas debe ser progresivo, o cíclico. Los cuatro elementos de la “rueda de la seguridad” que se muestran en la figura 1-1 son Plan, Prevención, Detección y Respuesta. Aunque suele criticarse a estos marcos conceptuales porque su filosofía “aplicable a todo” no se acomoda a las estructuras o culturas de organizaciones establecidas, hemos encontrado que estos cuatro simples bloques de construcción son los que tienen más resonancia con clientes a los que se brinda asesoría y que tienen “tiendas” de tecnología de la información de todos los tamaños, además de que suelen abarcar todos los componentes de sus esfuerzos de seguridad. Hablaremos de cada uno de ellos en su momento. Plan
Respuesta
Prevención
Detección
Figura 1-1
Marco conceptual para seguridad operacional
Capítulo 1:
Fundamentos de seguridad relacionada con información
Plan La seguridad es un concepto desafiante, sobre todo cuando se relaciona con la tecnología. Cuando piense en la manera de proporcionar seguridad, es necesario que empiece por plantearse las siguientes preguntas: • ¿Cuál activo estoy tratando de asegurar? • ¿Cuáles son los requisitos de seguridad del activo? • ¿Cuáles son los riesgos singulares relacionados con esos requisitos de seguridad del activo? • ¿Cómo asigno prioridades y atiendo de manera más eficiente esos riesgos (sobre todo los que tienen alto impacto, como los requisitos para cumplir con la industria y el marco regulatorio)? Estas preguntas describen un concepto de seguridad basado en riesgos, popularizado por muchos practicantes modernos. Entre las metodologías bien conocidas de seguridad basadas en riesgo se incluye el método de evaluación de amenazas, activos y vulnerabilidades operacionalmente críticos (OCTAVE, Operationally Critical Threat, Asset, and Vulnerability Evaluation) de CERT. Microsoft también promueve su propio método para administración de riesgos en escenarios de desarrollo de software, a los que denominan modelado de amenazas. Aquí articularemos una adaptación muy simplificada de las mejores prácticas de administración de riesgos comunes y recomendamos a los lectores interesados en conocer más detalles que consulten la sección “Referencias y lecturas adicionales”, al final de este capítulo. Empecemos con la determinación de los activos. Este ejercicio no es tan sencillo como podría pensarse (los activos pueden ser el hardware del servidor, la información en una base de datos o incluso algunas prácticas de fabricación con propietario). En realidad, a menudo resulta sorprendente que los clientes de asesoría no logren, en ocasiones, proporcionar una respuesta coherente a la simple pregunta “¿Cuáles son sus activos más importantes?”. Para empezar, por lo general resulta útil hacer más estrecho el alcance de esta pregunta, tal vez limitándolo a los activos de información digital que se consideran valiosos para la organización. Por supuesto, los vehículos físicos en que viajan los activos digitales (sean servidores de computadora, unidades USB, monitores de kiosco o impresos en papel) también tienen una importancia fundamental para la seguridad, pero es más fácil tomar en consideración esas relaciones más adelante, en el proceso de evaluación de riesgos. También recomendamos posponer el análisis de los activos menos tangibles, como la reputación, hasta que se haya adquirido primero alguna práctica en el juego de la administración del riesgo. Entre las categorías de activos de información digital que se deben tomar en cuenta se incluyen credenciales (como contraseñas y claves criptográficas privadas), información para identificación personal (recuerde que la confidencialidad depende de que se otorgue consentimiento para usos específicos), información o instrumentos financieros líquidos (como datos de tarjetas de crédito), información de propietario (incluidos resultados financieros no informados o metodologías de trabajo) y la disponibilidad de capacidad productiva (incluido el acceso a sistemas de operación, electricidad, etcétera). Una vez que haya determinado cuáles activos está tratando de asegurar, su siguiente paso consiste en identificar los requisitos de seguridad de cada activo, si los hay. Al igual que con los activos, es muy útil clasificar los requisitos de seguridad en sus categorías más genéricas. Casi todas las definiciones modernas de seguridad de los sistemas de información se centran alrededor de la protección de la confidencialidad, la integridad y la disponibilidad (CIA, Confidenciality, Integrity and Availability) de los activos importantes, de modo que esto es lo que se recomienda. Podría
3
4
Hackers en Windows considerarse otra A, para la Accountability (la responsabilidad o rendición de cuentas), con el fin de capturar la noción de que el sistema también debe registrar la actividad de manera confiable para que pueda examinarse o auditarse posteriormente (por ejemplo, mediante un registro de auditoría). Sugerencia
En este punto, podría considerar el agrupamiento de activos en clases con base en la confidencialidad percibida por la organización. Esto puede arrojar un sistema de directivas y controles de apoyo para cada tipo de activo. Por ejemplo, los activos de Alta Confidencialidad, como la información de tarjetas de crédito, tal vez requieran cifrado cuando se almacenan o transmiten, mientras que los activos de Baja Confidencialidad no lo requieran. Aquí, una vez más, deben tomarse en consideración los requisitos de cumplimiento, como en el caso de los datos de tarjetas de crédito, que probablemente caen bajo un estándar de seguridad de datos de la industria del pago con tarjeta o PCI DSS (Payment Card Industry Data Security Standard).
Una vez establecidos los activos y los requisitos de seguridad, es hora de tomar en cuenta los riesgos que enfrenta cada activo. A este proceso suele denominársele evaluación de riesgos. Existen varios métodos para la evaluación de riesgos, pero uno que recomendamos es el menos formal: elaborar un diagrama lógico del sistema en cuestión, descomponerlo en las partes que lo integran, prestar atención a los límites y las interfaces entre cada componente, además de los activos clave, y hacer una lluvia de ideas sobre las posibles amenazas a la CIAA. Sugerencia
Entre algunos métodos más sistemáticos (pero no necesariamente superiores) para conceptualizar amenazas se incluyen los árboles de ataques y la metodología de modelado de amenazas de Microsoft. Consulte la sección “Referencias y lecturas adicionales”.
Cuantificación de riesgos Una vez que haya obtenido una lista de amenazas, debe asignarles prioridades de manera sistemática de modo que puedan atenderse con eficiencia. Comprometer recursos excesivos para mitigar amenazas de bajo riesgo puede ser tan dañino para una organización como mitigar con lentitud las amenazas de alto riesgo, de modo que es importante dar este paso de manera correcta. Pueden usarse numerosos sistemas para cuantificar y clasificar los riesgos de seguridad. Un método clásico y sencillo para la cuantificación de riesgos se ilustra con la siguiente fórmula: Riesgo = Impacto × Probabilidad Se trata de un sistema fácil de comprender, que incluso permite una mayor colaboración entre intereses de trabajo y de seguridad dentro de la organización. Por ejemplo, la cuantificación del impacto en los negocios podría delegarse a la oficina del director de finanzas y la estimación de la probabilidad podría asignarse al director de seguridad, o sus equivalentes. Esto produce una división inteligente del trabajo y la responsabilidad cuando se trata de la administración de riesgo para una organización en general. En este sistema, el impacto suele expresarse en términos monetarios y la probabilidad como un porcentaje entre 0 y 100%. Por ejemplo, una vulnerabilidad con un impacto de 100 000 dólares y una probabilidad de 30% tiene una clasificación de riesgo de 30 000 dólares (100 000 dólares por 0.30). Los estimados económicos como éste suelen llamar la atención de la administración y constituyen una manera más práctica de cuantificar el riesgo. La ecuación puede incluir aún más componentes, al dividir Impacto en (Activos × Amenazas) y Probabilidad en (Vulnerabilidades × Mitigación).
Capítulo 1:
Sugerencia
Fundamentos de seguridad relacionada con información
Hemos visto modelos de riesgo que factorizan aún más los componentes. Por ejemplo, si el componente A del sistema tiene 3 vulnerabilidades de alto riesgo, pero el componente A está conectado a otro sistema en una configuración completamente confiable que tiene 12 vulnerabilidades, podría calcular una superficie de vulnerabilidad total de (3 + 12)2, o el cuadrado de la suma de las vulnerabilidades.
Otros métodos populares de cuantificación de riesgos incluyen el sistema DREAD (Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability: daño posible, capacidad de reproducción y de explotación, usuarios afectados y posibilidad de descubrirlo) de Microsoft, además del sistema simplificado que usa el centro de respuesta de seguridad de Microsoft en sus clasificaciones de gravedad del boletín de seguridad. El sistema de clasificación de vulnerabilidades comunes (CVSS, Common Vulnerability Scoring System) es, en cierta manera, más complejo pero tiene la posibilidad de ser una representación más exacta de los riesgos de vulnerabilidad de software comunes. (A nosotros en realidad nos gusta el método de división entre componentes que produce una clasificación base de riesgo de seguridad con factores temporales y ambientales únicos para la aplicación). Al final de este capítulo, en la sección “Referencias y lecturas adicionales”, se encontrarán vínculos con mayor información acerca de todos estos sistemas. Le recomendamos que considere cada uno de estos métodos y determine cuál es el adecuado para usted y su organización. Tal vez incluso haya desarrollado sus propios métodos, basados en conceptos obtenidos de cada uno de éstos, o tal vez haya construido uno desde cero. La cuantificación de riesgos puede ser muy subjetiva y es improbable que alguna vez se encuentre un sistema que dé como resultado un consenso, aún entre pocas personas. Sólo recuerde algo que es importante: aplique cualquier sistema elegido de manera consistente, de modo que esa clasificación relativa de amenazas sea consistente. Después de todo, ése es el objetivo: decidir cuáles amenazas se atenderán con mayor prioridad. También se ha encontrado que es muy útil establecer un nivel de umbral de riesgo, o “barra de riesgos”, sobre el cual debe mitigarse una amenaza determinada. Debe haber un acuerdo más amplio sobre dónde cae este umbral antes de que se complete el proceso de clasificación. Esto crea consistencia entre evaluaciones y hace más difícil jugar con el sistema al simplemente mover el umbral. (También tiende a ahuyentar a las personas que de manera deliberada establecen clasificaciones bajas para ubicarse debajo de la barra de riesgos).
Directiva Evidentemente, las medidas óptimas que hay que tomar en relación con los riesgos que están documentados durante el proceso de evaluación son mitigarlos o eliminarlos (aunque existen otras opciones, incluida la transferencia del riesgo mediante la compra de seguros, o su aceptación tal como están). La determinación del plan de mitigación para estos riesgos es el meollo de la fase de planeación: el desarrollo de una directiva. La directiva es central para la seguridad; sin ella, la seguridad es imposible. ¿Cómo puede considerarse algo como una violación de seguridad sin una directiva para definirla? La directiva define la manera en que se mitigan de manera continua los riesgos a los activos. Por tanto, debe basarse firmemente en el proceso de evaluación de riesgos. Una vez dicho esto, una directiva de seguridad organizacional fuerte empieza con una buena plantilla. Recomendamos el marco conceptual de la directiva ISO 17799, que se ha vuelto muy popular como marco para directiva de seguridad, desde que se convirtió en un estándar
5
6
Hackers en Windows internacional. ISO 17799 se ha incorporado en los nuevos estándares de la serie ISO 27000, que abarca un rango de estándares y prácticas de administración de seguridad de la información (de manera similar a la serie ISO 9000 de estándares de aseguramiento de calidad, que tienen un uso extendido). ISO 27001 incluye un marco conceptual de controles para la implementación y medición del cumplimiento con los estándares de la directiva. Entre otros marcos conceptuales populares de control se incluyen CobiT, COSO e ITIL. (Consulte la sección “Referencias y lecturas adicionales” para conocer vínculos con información sobre estos estándares). Otro gran dividendo que surge del hecho de basar su directiva en estándares ampliamente aceptados como ISO 17799 es la agilidad mejorada para satisfacer regímenes impositivos en evolución como éstos: • Acta Sarbanes-Oxley de 2002 (SOX), que obliga a las empresas de Estados Unidos de manera pública a implementar, evaluar y reportar controles internos sobre sus informes, operaciones y activos financieros. • Basel II: la convergencia internacional de medidas de capital y estándares de capital: un marco conceptual revisado que analiza estándares internacionales para medición de la adecuación del capital de un banco con base en el riesgo medido (incluido el riesgo operacional, como seguridad del sistema de información). • Estándar de seguridad de datos de la industria del pago con tarjeta (PCI DSS, Payment Card Industry Data Security Standard) para cualquier entidad que procesa, almacena o transmite información de tarjetas de crédito de emisores importantes, como Visa, MasterCard y American Express. • Acta de Portabilidad y responsabilidad de seguros médicos de 1996 (HIPAA, Health Insurance Portability and Accountability Act), que especifica una serie de procedimientos administrativos, técnicos y físicos de seguridad que deben usar las entidades cubiertas para que aseguren la confidencialidad de la información protegida electrónica relacionada con la salud. • Acta Gramm-Leach-Bliley de 1999 (GLBA) que regula la información financiera personal de los consumidores de Estados Unidos mantenida por instituciones financieras. • Leyes de notificación de violaciones de seguridad que evolucionan en muchos estados de la Unión Americana hoy (como la SB 1386 de California). Aunque la organización a la que pertenezca no esté cubierta por una de estas regulaciones (¡y le apostamos a que lo está de alguna manera!), tal vez sólo sea cuestión de tiempo antes de que necesite cumplir con sus estatutos, de una forma u otra. Aunque considere que la organización debe satisfacer alguna especie de requisitos impositivos obligatorios, nunca se pondrá el énfasis suficiente en la eficiencia que se obtendrá al volver a usar un marco conceptual de programa de seguridad para cumplir con la sopa de letras en evolución de los requisitos impositivos que enfrentan las empresas modernas de hoy en día. Y tenemos la experiencia para probarlo, porque hemos diseñado e implementado personalmente una directiva de seguridad basada en ISO 17799 que pasó con éxito las auditorías de cumplimiento para SOX, GLBA, PCI y otras acciones de imposición regulatoria de una vez del gobierno de Estados Unidos. Aunque nunca está de más destacar la importancia de satisfacer los requisitos en evolución, tal vez a las organizaciones más pequeñas, con alcances más estrechos, les resulte pesado planear e implementar los estándares ISO y los marcos conceptuales de soporte. En el caso de organizaciones de todos tamaños, una colección buena (pero costosa) de directivas de seguridad
Capítulo 1:
Fundamentos de seguridad relacionada con información
preescritas es la Information Security Policies Made Easy, de Charles Cresson Woods (Information Shield, 2005). También se recomienda la lectura de las RFC 2196 y 2504, “Site Security Handbook” y “User Handbook”, respectivamente, para obtener buenas ideas sobre directivas. Una búsqueda simple en Internet de “directivas de seguridad de información” también proporcionará buenos ejemplos, como las de muchas instituciones educativas que publican sus directivas en línea. Un análisis del desarrollo y el mantenimiento de directivas de seguridad para organizaciones está fuera del alcance de este libro. Sin embargo, he aquí algunas sugerencias: Comprensión del negocio Los practicantes de la seguridad deben comprender primero el negocio que pretenden ayudar a proteger; la comprensión de las operaciones de trabajo crea el vocabulario para permitir una conversación constructiva y lleva a ser percibido como una persona que permite que pasen las cosas, en lugar de ser un estorbo. De acuerdo con nuestra experiencia, los practicantes de la seguridad necesitan, por lo general, madurar más en este departamento, a fin de presentar los riesgos en la seguridad de la información en los términos apropiados del negocio. Sabemos por experiencia que concentrarse en los métodos de colaboración para medir el riesgo e implementar controles medibles es siempre una manera más inteligente de obtener recursos de los líderes de los negocios. Convencimiento cultural Convenza a la administración de que lea y apoye por completo la directiva. La administración es la que la impone finalmente, y si los directivos no creen que es correcta, pasará momentos extraordinariamente difíciles logrando que cualquier persona de la organización la siga. Considere la creación de un cuerpo de gobierno que incluya accionistas clave de la organización, con responsabilidades definidas, para que la directiva evolucione y se imponga a largo plazo. Al mismo tiempo, reconozca que el convencimiento de los ejecutivos sólo es útil si a éstos los escucha el personal de la compañía, lo que no siempre es el caso, de acuerdo con nuestra experiencia. En cualquier medida, siempre es necesario algún nivel de trabajo de convencimiento entre los trabajadores de base, sin importar cuán firmemente respalde la administración la directiva. De otra manera, no será adoptada en la extensión que se requiere para hacer cambios importantes a la seguridad. Debe asegurarse de predicar el programa de seguridad en todos los niveles de la organización y aplicar un programa piloto para asegurar el convencimiento amplio, además de que será percibido como un mecanismo razonable y práctico a fin de mejorar la postura de seguridad de la organización (y por tanto, las ganancias). Esto mejorará en gran medida las posibilidades de convertirse en parte de la cultura en lugar de ser sólo un proceso molesto del que todos se burlan (piense en los reportes de TPS en la película Office Space). Método de varios niveles Elabore un borrador de la directiva real como una declaración de alto nivel de principios guía e intenciones, y luego cree estándares de implementación y procedimientos de operación detallados que apoyen los mandatos de la directiva. Este método de varios niveles, jerárquico, crea una modularidad que facilita el mantenimiento de la directiva a largo plazo, al proporcionar flexibilidad para cambiar los detalles de la implementación sin necesidad de un ciclo completo de revisión y cambio de la directiva. Proceso para excepciones, cambios La única constante es el cambio y eso también es válido para las directivas de seguridad. Espere que la organización haga solicitudes de excepciones a la directiva y quiera cambiar ésta a intervalos regulares. Usted necesitará crear un proceso para que sea posible esto. Recomendamos al menos revisiones anuales y también un proceso especial para excepciones y cambios urgentes.
7
8
Hackers en Windows Conciencia Hablaremos acerca de la capacitación y la educación en la siguiente sección de este capítulo, cuando abordemos la fase de Prevención de la rueda de la seguridad, pero es fundamental asegurarse de que todos los integrantes de una organización estén conscientes de la directiva y comprendan sus tesis básicas. También hemos encontrado que cuando se realizan sesiones regulares de capacitación para tomar conciencia e interviene en ellas todo el personal suelen generarse estupendas retroalimentaciones prácticas, lo que lleva a un programa de seguridad más fuerte a largo plazo. Una vez definida e implementada una directiva, podemos dar vuelta a la rueda de la seguridad, ilustrada en la figura 1-1.
Prevención La necesidad de establecer varios controles preventivos probablemente se volverá obvia durante el proceso de evaluación de riesgos y desarrollo de la directiva. En este libro se describirán contramedidas técnicas específicas para todos los ataques que analizaremos pero, ¿qué tipo de medidas proactivas más amplias deben aplicarse para mitigar los riesgos, imponer la directiva de seguridad, disuadir a los atacantes y promover una buena higiene de seguridad? Deben tomarse en consideración los siguientes elementos: • • • •
Educación y capacitación Comunicaciones Operaciones de seguridad Arquitectura de seguridad
La educación y la capacitación son las maneras más obvias de escalar un esfuerzo de seguridad en toda una organización. Las comunicaciones pueden apoyar este esfuerzo al programar actualizaciones regulares para el personal de línea y la administración superior, además de hacer que la información fluya entre el resto de la organización y el grupo de seguridad. (Recuerde que no existe la seguridad en el vacío). Entre las operaciones de seguridad se incluyen las tareas generales de seguridad, como administración de parches de seguridad, protección contra el malware, control de acceso (tanto físico como lógico), control de ingresos y egresos en la red, monitoreo y respuesta de seguridad y administración de cuentas y grupos de seguridad. En este libro se tratarán las mejores prácticas en todas estas áreas. Por último, y tal vez lo que es más importante, cierta parte de la organización de seguridad necesita adoptar una perspectiva proactiva, que mire hacia delante. El trabajo de un arquitecto de seguridad es particularmente relevante para el desarrollo de aplicaciones, que debe seguir estándares y directrices estrictos con el fin de evitar la perpetuación de los muchos errores que ocurren en forma inevitable en el proceso de desarrollo de software. Además, este arquitecto puede realizar evaluaciones regulares de la arquitectura de seguridad del software, la red y la plataforma, midiéndolos y comparándolos contra estándares y tecnologías en evolución para asegurarse que la organización mantiene el paso de los avances más recientes en seguridad.
Detección Un documento con la directiva es estupendo pero, ¿qué tan buena será la directiva si no se puede saber si alguien la está siguiendo? Mucho del material de este libro se concentra en la parte
Capítulo 1:
Fundamentos de seguridad relacionada con información
de la Detección de la rueda de la seguridad, porque localizar e identificar vulnerabilidades de seguridad es una parte fundamental de la detección de violaciones a la directiva de seguridad. Entre otros procesos que caen dentro de la esfera de la Detección se incluyen los siguientes: • • • • •
Rastreo automatizado de vulnerabilidades Administración de eventos e información de seguridad (AEIS) Sistemas de detección de intrusiones (SDI) Sistemas de detección de anomalías (SDA) Auditorías de seguridad (incluida la prueba de penetración)
Éste no es un libro sobre el arte de la detección de intrusiones o el análisis forense, pero se hacen varias recomendaciones para los parámetros de configuración de Windows en todo el libro, que permitirán imponer un fuerte régimen de controles de detective. No olvide revisar de manera oportuna los registros que conserva (de otra manera, no hay por qué mantenerlos).
Respuesta Al dar otra vuelta a la rueda de la seguridad, llegamos a la Respuesta. Suponiendo que en la fase de Detección se identifica una vulnerabilidad de seguridad (o una violación real, ¿por qué no?), el siguiente paso consiste en analizar y actuar (¡posiblemente muy rápido!) Entre algunos de los elementos clave de la parte de Respuesta del ciclo de vida de la seguridad se incluyen los siguientes: • • • •
Respuesta al incidente (RI) Remedio Resolución de auditoría Recuperación
Trataremos de manera detallada el remedio, la resolución y la recuperación de la vulnerabilidad, en el curso de la descripción de cómo evitar a los hackers. Sin embargo, no dedicaremos mucho tiempo a analizar qué hacer en el caso de que sea víctima de un ataque exitoso, que es la disciplina de la respuesta a incidentes (RI) de seguridad. La RI describe muchos procedimientos críticos que deben seguirse de inmediato después de que ocurre un incidente de seguridad para contener el daño y estos procedimientos deben establecerse de antemano. En este libro tampoco se cubre la planeación de la continuidad en el negocio ni la recuperación de desastres (PCN/RD). Hemos elaborado una lista de algunas de las referencia recomendadas sobre esos temas en la sección “Referencias y lecturas adicionales”, al final de este capítulo.
Pulimento y repetición Antes de que cerremos el breve análisis del marco conceptual de Plan, Prevención, Detección y Respuesta, destacaremos de nuevo la naturaleza cíclica del modelo. Es necesario practicar y cotejar un análisis regular de la información reunida durante la fase de Detección y a partir del análisis post mortem de las actividades de Respuesta y luego debe alimentarse de nuevo el aprendizaje relevante a la siguiente vuelta del ciclo de vida de la seguridad, empezando con el Plan. Cualquier organización que no aprende de la historia está condenada a repetirla y, por tanto, es más importante invertir en este aspecto del ciclo de vida de la seguridad. También
9
10
Hackers en Windows es una estupenda idea hacer que participen accionistas clave del negocio en este proceso, porque es probable que las iniciativas estratégicas del negocio tengan un gran impacto sobre el lugar donde deben hacerse inversiones en la seguridad de la información en el próximo presupuesto. En el resto de este capítulo, delinearemos algunos principios básicos de seguridad en los que se basará su directiva o que habrán de considerarse mientras recorre el resto de este libro.
PRINCIPIOS BÁSICOS DE SEGURIDAD Hemos reunido los siguientes principios durante nuestros años combinados de asesoría en evaluación de la seguridad para todas las variedades de redes, sistemas y tecnologías. No afirmamos que hemos originado alguna de ellas; se han derivado de nuestra observación y análisis de la seguridad en grandes organizaciones, además de afirmaciones de otras personas que hemos reunido a lo largo de los años. Algunos de esos principios se superponen con recomendaciones específicas que hacemos en este libro, pero otros no. En realidad, tal vez violemos algunos de esos principios en ocasiones para ejemplificar las consecuencias de un mal comportamiento (¡en cuanto a lo que decimos, no lo que hacemos!). Recuerde que la seguridad no es una solución puramente técnica, sino más bien una combinación de medidas y procesos técnicos que están hechos a la medida, de manera única, para su entorno. En su boletín en línea, el experto en seguridad Bruce Schneier tal vez estableció esto de manera más elocuente: “¡La seguridad es un proceso, no un producto!”.
Haga que todos sean responsables de la seguridad Enfrentémoslo: el número de expertos en seguridad en el mundo no va a crecer para cubrir todas las actividades que se presentan a diario. Distribuya la responsabilidad de la seguridad entre la organización, para que sea manejable. Nos encanta la siguiente cita que tomamos prestada del grupo de seguridad de una firma grande dedicada a la biotecnología: “Las personas son el sistema final de detección de intrusiones”.
Bloquee o deshabilite todo lo que no está permitido de manera explícita Repetiremos este mantra de vez en cuando en este libro. Con algunas excepciones muy oscuras, no existen métodos conocidos para atacar remotamente un sistema sin servicios en ejecución. Por tanto, si bloquea los accesos o deshabilita los servicios externos, no lo podrán atacar. Esto resulta de poco consuelo para los servicios permitidos, por supuesto (por ejemplo, los servicios de aplicaciones como Internet Information Service (IIS), que son necesarios para ejecutar una aplicación Web). Si debe permitir el acceso a un servicio, asegúrese de que lo ha hecho de acuerdo con las mejores prácticas. Debido a que casi siempre son únicas, las propias aplicaciones deben asegurarse con un buen diseño a la antigua y la implementación de las mejores prácticas, como el marco conceptual de ciclo de vida de desarrollo de la seguridad (SDL, Security Development Lifecycle) de Microsoft. (Consulte “Referencias y lecturas adicionales”).
Capítulo 1:
Fundamentos de seguridad relacionada con información
Establezca siempre una contraseña, hágala razonablemente compleja y cámbiela con frecuencia Las contraseñas son la maldición del mundo de la seguridad; son la forma principal de autentificación para casi todos los productos en existencia, Windows incluido. Las contraseñas débiles son la manera principal en que anulemos a las redes de Windows en las reuniones de prueba de penetración profesional. Siempre debe establecer una contraseña (nunca se debe dejar en blanco) y debe asegurarse de que no sea fácil adivinarla. (Consulte el capítulo 5 para conocer algunos consejos específicos para Windows). Use una autentificación multifactorial, si es posible. (Por ejemplo, las versiones modernas de Windows son muy fáciles de integrar con tarjetas inteligentes).
Actualice religiosamente los parches del comercializador Cualquiera que haya trabajado en el desarrollo de software sabe que suceden accidentes. Sin embargo, cuando se descubre un error en un producto de Microsoft, la prisa por ganar fama y popularidad por lo general da como resultado una explotación publicada en unas cuantas horas. Eso significa que se ha reducido continuamente la ventana de tiempo para aplicar parches de Microsoft antes de que alguien venga a tocar a la puerta tratando de explotar el hueco. Como se verá a partir de la severidad de algunos de los problemas descritos en este libro, el precio de no estar actualizado con los parches es el compromiso completo y absoluto del sistema remoto.
Autorice todos los accesos utilizando a la menor cantidad de privilegios Este concepto es uno de los menos utilizados por nuestra clientela de asesoría, pero es el que explotamos para tener el mayor efecto en sus redes. La autorización (que se presenta después de la autentificación, o inicio de sesión), es el último mecanismo importante que protege los recursos confidenciales del acceso por parte de usuarios con menos privilegios. Adivinar una contraseña débil ya es muy malo, pero las cosas empeoran cuando descubrimos que la cuenta de usuario inferior que acaba de verse comprometida puede montar un elemento compartido que contiene datos financieros corporativos confidenciales. Sí, se requiere una gran cantidad de trabajo para inventariar todos los recursos en el entorno de la tecnología de la información y asignar el control de acceso apropiado, pero si no lo hace, sólo será tan fuerte como lo sea el vínculo de autentificación insatisfactoria (y volvemos al usuario con la contraseña equivocada). La moderna arquitectura de autorización de Windows (posterior a los 16 bits) no es su mejor amigo en este departamento. Se centra principalmente alrededor de las listas de control de acceso (ACL, Access Control Lists) aplicadas entre millones de objetos individuales dentro del sistema operativo (desde archivos, hasta claves de registro, o estructuras programáticas como canales con nombres), la intersección de red de la cual hasta el propio Microsoft tiene una mala comprensión (o así parece en ocasiones). Analizaremos las configuraciones tácticas importantes de las ACL en todo el libro, pero advertimos por anticipado que la creación de una directiva de autorización completa, heterogénea, distribuida que use Windows hoy en día puede ser desalentadora. Mantenga un diseño simple y apéguese a los principios preservados por el tiempo (como el control de acceso basados en roles, o RBAC: Role-Based Access Control).
11
12
Hackers en Windows
Limite la confianza Ningún sistema es una isla, sobre todo con Windows. Uno de los ataques más efectivos que usamos contra las redes de Windows es la explotación de la computadora de un miembro de dominio poco importante, con una contraseña de administrador local débil. Luego, al usar las técnicas analizadas en el capítulo 6, extraemos las credenciales de un usuario de dominio válidas de esta computadora, que permite poner un pie en toda la infraestructura de dominio y posiblemente los dominios que confían en el actual. Reconozca que toda relación de dominio que se establezca, ya sea una confianza de dominio formal de Windows o simplemente una contraseña almacenada en un archivo de procesamiento por lotes en una computadora remota, expande la periferia de la seguridad y aumenta sus riesgos. Un corolario a esta regla es que debe prohibirse explícitamente el reciclaje de contraseñas. Son innumerables el número de veces que hemos derribado un solo sistema de Windows, crackeado las contraseñas de un puñado de cuentas y descubierto que estas credenciales nos permitían acceder a todos los demás sistemas de la red (conmutadores de sistema telefónico, servidores de bases de datos de UNIX, terminales de mainframes, aplicaciones Web, lo que usted prefiera).
Sea particularmente paranoico con las interfaces externas El número total de posibles vulnerabilidades en una red puede parecer abrumador, pero debe aprender a concentrarse en las que presentan el mayor riesgo. A menudo están relacionadas con sistemas que enfrentan redes públicas, como servidores Web, etcétera. Los sistemas de fachada (como los llamaremos) deben mantenerse en un estándar más elevado de responsabilidad que los sistemas internos, porque los riesgos que enfrentan son mayores. Recuerde que la red telefónica de conmutación pública también es una interfaz de fachada.
Practique la defensa a profundidad La seguridad general no debe depender de un solo mecanismo de defensa. Si se permite un perímetro de seguridad externo, debe disponerse de capas subyacentes para resistir el ataque. El corolario a ese principio es la compartimentalización (si un compartimiento está comprometido, debe ser igualmente difícil para un intruso obtener acceso a cada compartimiento posterior).
Caída en estado seguro Cuando la confidencialidad, integridad, disponibilidad o responsabilidad de un sistema se ve comprometida, el sistema debe caer a un estado seguro (es decir, debe volverse no funcional).
Practique la defensa mediante la simplicidad Un sistema simple se asegura más fácilmente que uno complejo, porque simplicidad significa una oportunidad reducida de errores o fallas. Un corolario a este principio es el concepto de función dedicada o modularidad: los sistemas o componentes de sistemas deben tener un solo propósito para evitar conflictos posibles de redundancias que podrían dar como resultado exposiciones de seguridad. Prepárese para defender este principio contra los posibles costos de mantenimiento de los sistemas de un solo propósito. (Una discusión clásica que hemos tenido durante años es si resulta prudente instalar Windows IIS y SQL Server en la misma máquina; dejaremos a usted como un ejercicio la resolución de este análisis).
Capítulo 1:
Fundamentos de seguridad relacionada con información
No hay una solución perfecta; la administración de riesgos es la clave No deje que la paranoia perturbe sus objetivos de negocio (y viceversa). Muchas de las recomendaciones específicas que hacemos en este libro son muy restrictivas. Esa es nuestra naturaleza (hemos visto el daño que directivas menos restrictivas puede hacer). Sin embargo, éstas no pasan de ser recomendaciones. Reconocemos las realidades técnicas y directivas que enfrentará en el intento de implementar estas recomendaciones. El objetivo de este libro es armarlo con la información correcta con el fin de que elabore un caso persuasivo para la postura más restrictiva, sabiendo que tal vez no gane todas las discusiones. Elija sus batallas y gane las que sean importantes.
Dése cuenta de que la tecnología no lo protegerá de los ataques sociales Este libro está orientado principalmente a los ataques relacionados con la tecnología: explotaciones de software que requieren una computadora y habilidades prácticas para implementarse. Sin embargo, algunos de los ataques más dañinos que hemos visto y de los que hemos oído no incluyen la tecnología en absoluto. La llamad ingeniería social usa el engaño y la mala interpretación entre una persona y otra para obtener acceso no autorizado a los datos. La información de este libro sólo puede protegerle en el nivel de los bits y los bytes; no lo protegerá de los ataques sociales que no se relacionan en absoluto con éstos. Aprenda y descubra las prácticas comunes de la ingeniería social, como el phishing o suplantación de identidad y eduque a su organización utilizando buenas prácticas de comunicación y capacitación.
Aprenda sus plataformas y aplicaciones mejor que el enemigo Este libro está diseñado para comunicar una perspectiva holística de la seguridad en Windows, no sólo para presentar una lista de verificación a manera de guión para los parámetros de configuración que harán que quede a prueba de balas. Esperamos que al final del libro tenga un mayor aprecio de la arquitectura de seguridad de Windows, dónde se rompe y las mejores prácticas para mitigar el riesgo cuando lo hace. También deseamos que estas prácticas resulten oportunas y le preparen para cualquier cosa que esté pendiente en la siguiente versión de Windows, además de la comunidad de los hackers.
RESUMEN Al seguir las mejores prácticas delineadas en este capítulo habrá establecido los fundamentos sólidos para la seguridad en el sistema de información de su organización. En el resto de este libro, pasaremos a las partes específicas de Windows y los desafíos únicos que presenta para quienes desean mantenerlos seguros.
13
14
Hackers en Windows
REFERENCIAS Y LECTURAS ADICIONALES Referencia
Ubicación
Bugtraq
www.securityfocus.com
Evaluación de las amenazas, los activos y las vulnerabilidades operacionalmente críticos (OCTAVE)
www.cert.org/octave/
Recursos de modelado de amenazas de Microsoft
http://msdn2.microsoft.com/en-us/security/aa570411.aspx
Árboles de ataques
www.schneier.com/paper-attacktrees-ddj-ft.html
Security Development Lifecycle (SDL)
www.microsoft.com/mspress/books/8753.aspx
Sistema de clasificación DREAD de Microsoft
http://msdn2.microsoft.com/en-gb/library/aa302419.aspx
Common Vulnerability Scoring System (CVSS)
www.first.org/cvss
Foro de la comunidad de ISO 17799
www.17799.com/
ISO 27001
http://en.wikipedia.org/wiki/ISO_27001
Control Objetives for Information and related Technology (CobiT)
www.itgi.org/
The Committee of Sponsoring Organizations of the Treadway Commission (COSO)
www.coso.org/
The IT Infrastructure Library (ITIL)
www.best-management-practice.com/IT-Service-ManagementITIL/
“Understanding Regulatory Compliance” en Microsoft TechNet
www.microsoft.com/technet/technetmag/issues/2006/09/ BusinessofIT/default.aspx
Payment Card Industry Data Security Standard (PCI DSS)
www.pcisecuritystandards.org/
Information Security Policies Made Easy, por Charles Cresson Woods
www.informationshield.com/ispmemain.htm
RFC 2196 y 2504, Site Security Handbook and User Handbook
www.rfc-editor.org
Incident Response & Computer Forensics, 2a ed.
Por Kevin Mandia, Chris Prosise y Matt Pepe. McGraw-Hill/ Osborne (2003)
“Computer Security: Will We Ever Learn?”, por Bruce Schneier (15 de mayo de 2000)
www.schneier.com/crypto-gram-0005.html
CAPÍTULO
2
A R U T C E T I U Q R A D LA A D I R U G E DE S S W O D N I W DE A L E D DES A V I T C E P S R PE R E K C A H L E D 15
16
Hackers en Windows
A
ntes de que nos crackeen (perdón por el juego de palabras) en Windows, es importante que comprenda al menos parte de la arquitectura de seguridad básica del producto. Este capítulo está diseñado para establecer esa base. Está destinado sobre todo a quienes no se encuentren íntimamente familiarizados con parte de la funcionalidad de seguridad básica de Windows, de modo que se advierte a los viejos profesionales que omitan este análisis y pasen directo a lo sustancial del capítulo 3. No se pretende que sea un análisis exhaustivo, profundo de la arquitectura de seguridad de Windows. Varias buenas referencias para este tema pueden encontrarse en la sección “Referencias y lecturas adicionales” que se ubica al final del capítulo. Además, recomendamos encarecidamente que lea el capítulo 12 para conocer un análisis detallado de las características específicas de seguridad en Windows, que pueden usarse para contrarrestar muchos de los ataques analizados en todo el libro. Nuestro enfoque en este capítulo consiste en dar la información suficiente para permitirle comprender el objetivo principal de los atacantes de Windows: Ejecutar comandos en el contexto más privilegiado, para obtener acceso a recursos y datos.
Empecemos por introducir algunos de los conceptos fundamentales necesarios para desentrañar esta afirmación.
Nota
A menos que se especifique de otra manera, todas las referencias a Windows en este capítulo aludirán a la familia de sistemas operativos de Windows NT, incluidos Windows Server 2008, Vista, Server 2003, XP, 2000 y NT.
INTRODUCCIÓN Es difícil describir algo tan complejo como Windows en unos cuantos párrafos y ni siquiera trataremos de hacerlo. En cambio, vamos a proporcionar una descripción muy simplificada de la arquitectura de seguridad de Windows, prestando mucha atención a puntos que han recibido ataques en el pasado. Tal vez la observación inicial más obvia sobre la arquitectura de Windows es que es de dos capas. La capa más privilegiada de código de sistema operativo se ejecuta en un denominado modo de kernel y tiene, en efecto, acceso irrestricto a los recursos del sistema. La funcionalidad en modo de usuario tiene un acceso mucho más restringido y debe solicitar servicios del kernel en muchos casos para completar ciertas tareas, como ingresar recursos de hardware, autentificación de usuarios y modificación del sistema. Con base en esta simple separación, podemos contemplar dos metodologías básicas de ataque: ataque al kernel y ataque al modo de usuario. Estos métodos básicos se ejemplifican en la figura 2-1, que muestra a un hacker malicioso ingresando el kernel mediante la interfaz física dispositivo/medio, y también atacando un contexto de seguridad de modo de usuario al comprometer las credenciales de un usuario válido del sistema. (Tome en cuenta que el atacante también puede comprometer luego el kernel si hackea un contexto de usuario administrativo). Exploremos ambos métodos de manera más detallada.
Capítulo 2:
Figura 2-1
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Ataque a la seguridad de Windows empleando los métodos de kernel y de modo de
usuario
Ataque al Kernel La interfaz en modo de kernel es un límite obviamente atractivo que históricamente los atacantes han buscado cruzar. Si alguien puede insertar código de su elección en el modo de kernel, el sistema quedará comprometido por completo (como verá en los capítulos 6 y 8). Como podría imaginar, Windows proporciona barreras importantes a la ejecución de código arbitrario en el modo de kernel, y por lo general es muy difícil hacerlo para entidades de bajos privilegios. Por supuesto, siempre hay excepciones. Pueden ocurrir dos clases principales de compromisos del modo de kernel. • Ataques físicos contra controladores de dispositivos residentes en el kernel que analizan sintácticamente la entrada sin modificar, como a partir de conexiones de red o medios insertados. Los ataques a redes inalámbricas publicados por Johnny Cache y otros y el incidente del rootkit del CD-ROM de Sony son ejemplos de cada uno de éstos, respectivamente (consulte “Referencias y lecturas adicionales”).
17
18
Hackers en Windows • Ataques lógicos contra estructuras críticas del sistema operativo que proporcionan acceso al modo de kernel. Estas estructuras incluyen ciertas imágenes protegidas del kernel (como ntoskrnl.exe, hal.dll y ndis.sys), la tabla descriptora global (GDT, Global Descriptor Table) y la tabla descriptora de interrupciones (IDT, Interrupt Descriptor Table), la tabla descriptora de servicios del sistema (SSDT, System Service Descriptor Table), ciertos registros específicos del modelo o procesador (MSR, Model Specific Registers) y algunas rutinas internas que el kernel usa para depuración.
Nota
A partir de las versiones de 64 bits de Vista, Microsoft implementó un sistema de protección llamado PatchGuard para tratar de proteger cada uno de esos puntos de entrada lógicos al kernel. Consulte la sección “Referencias y lecturas adicionales” de este capítulo a fin de conocer los métodos publicados para omitir el PatchGuard. Microsoft también implementó firma obligatoria de controladores del kernel y prevención de ejecución de datos (DEP, Data Execution Prevention) del hardware en versiones de 64 bits.
Los ataques contra el kernel suelen requerir gran sofisticación y no son comunes. Por supuesto, una vez que se concibe e implementa un ataque, las explotaciones preempaquetadas escritas por atacantes sofisticados y distribuidas ampliamente en Internet pueden elevar de manera importante la prevalencia de esos ataques. Otro factor mitigante es que la variedad “lógica” de los ataques al kernel suelen requerir privilegios de usuario sustanciales en el sistema. Los que nos trae a nuestra segunda metodología de ataque y a la que dedicaremos la mayor parte en este libro.
Ataque del modo de usuario Como se ilustró en la figura 2-1, atacar el kernel es equivalente a atacar las paredes del castillo de Windows. Casi todos los ataques contra el sistema operativo han tomado históricamente una ruta más obvia y en potencia más fácil, a través de las puertas y ventanas. El código de modo de usuario sirve efectivamente como la puerta y la ventana para recursos y datos del sistema. Como es obvio, este código debe tener la capacidad de acceder recursos y datos, o el sistema operativo ofrecería una muy mala experiencia de usuario. Por tanto, si puede autentificarse en Windows como un usuario autorizado, tendrá acceso a todos los recursos y datos relevantes para ese usuario. Más aún, si tiene la suficiente suerte de autentificarse como un usuario administrativo, probablemente tendrá acceso a los recursos y datos para todos los usuarios del sistema. El portero de control de acceso para los datos y recursos del modo de usuario es la autoridad de seguridad local (LSA, Local Security Authority), un subsistema protegido que funciona entre el modo de usuario y de kernel para autentificar usuarios, autorizar acceso a recursos, imponer una directiva de seguridad y administrar sucesos de auditoría de seguridad.
Nota
La LSA se implementa en un proceso llamado el servicio del subsistema de autoridad de seguridad local, o Isass.exe.
Suponiendo que se ha evitado el compromiso a través del kernel, el subsistema LSA es la principal gateway de seguridad en Windows. En el resto del capítulo nos concentraremos en la manera en que valida el acceso a objetos, revisa privilegios de usuario y genera mensajes de auditoría. A menos que se indique de otra manera, en todo el análisis se supondrán escenarios del modo de usuario.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
REVISIÓN GENERAL DEL CONTROL DE ACCESO El subsistema de seguridad es el portero principal a través del cual los sujetos accedan a los objetos dentro del sistema operativo Windows. Aquí usamos el término sujetos de manera genérica para describir cualquier entidad que realiza alguna acción y los objetos son los destinatarios de esa acción. En Windows, los sujetos son procesos (relacionados con fichas de acceso) y los objetos son objetos asegurables (relacionados con los descriptores de seguridad). Los procesos son las abejas trabajadoras de la computación. Realizan todos el trabajo útil (junto con las construcciones de subprocesos llamadas, precisamente, subprocesos). Los objetos asegurables son las cosas sobre las que se actúa. Dentro de Windows hay muchos tipos de objetos asegurables: archivos, directorios, canales con nombre, servicios, claves del registro, impresoras, elementos compartidos de red, etcétera. Cuando un usuario inicia una sesión en Windows (es decir, cuando se autentifica), el sistema operativo crea una ficha de acceso que contiene identificadores de seguridad (SID, Security ID) correlacionados con la cuenta del usuario y cualquier cuenta de grupo a la que pertenece el usuario. La ficha también contiene una lista de los privilegios conservados por el usuario o los grupos de usuarios. Hablaremos con más detalle acerca de los SID y los privilegios en páginas posteriores de este capítulo. La ficha de acceso está relacionada con cada proceso creado por el usuario en el sistema. Cuando se crea un objeto asegurable, se asigna un descriptor de seguridad que contiene una lista de control de acceso discrecional (DACL, Discretionary Access Control List, en ocasiones generalizada como ACL) que identifica cuáles SID de usuario y grupo pueden acceder al objeto y cómo (lectura, escritura, ejecución, etcétera). Para realizar el control de acceso, el subsistema de seguridad de Windows simplemente compara los SID en la ficha del sujeto con el SID en el ACL del objeto. Si se encuentra una coincidencia, se permite el acceso; de otra manera, se niega. En el resto de este capítulo se echará un vistazo más detallado a los sujetos, porque son la única manera de acceder a los objetos (una vez más, control ausente del modo de kernel). Para conocer información adicional de los objetos asegurables, consulte “Referencias y lecturas adicionales”.
DIRECTIVAS DE SEGURIDAD Como se indicó antes, el sujeto fundamental dentro de Windows es el proceso. También se dijo que los procesos deben estar asociados con una cuenta de usuario con el fin de acceder a los objetos asegurables. En esta sección se explorarán los diversos tipos de cuentas en Windows, porque son la base para casi todos los ataques contra el control de acceso. Windows ofrece tres tipos de cuentas fundamentales, llamados directivas de seguridad: • Usuarios • Grupos • Equipos Analizaremos en breve cada uno de ellos con mayor detalle, después de tomar un breve desvío para analizar los SID.
Nota
Con el advenimiento de los SID específicos del servicio en Vista (consulte “Endurecimiento del servicio” en el capítulo 12), se diría que los servicios también podrían considerarse directivas, aunque Microsoft no ha cambiado formalmente su terminología.
19
20
Hackers en Windows
SID En Windows, las directivas de seguridad suelen tener nombres amigables, como Administrador o Administradores de dominio. Sin embargo, la familia NT manipula estos objetos de manera interna utilizando un número globalmente único de 48 bits llamado identificador de seguridad o SID. Esto evita que el sistema confunda la cuenta local de Administrador del equipo A con la cuenta local de Administrador con el mismo nombre del equipo B, por ejemplo. El SID incluye varias partes. Echemos un vistazo a un SID simple: S-1-5-21-1527495281-1310999511-3141325392-500
Un SID tiene el prefijo S y sus diversos componentes están separados con guiones. El primer valor (en este ejemplo 1) es el número de revisión, y el segundo es el valor de identificador de autoridad. Luego cuatro valores de subautoridad (21 y las tres cadenas largas de números, en este ejemplo) y un identificador relativo (RID, Relative Identifier, que en este ejemplo es 500) integran el resto del SID. Al parecer, los SID son complicados, pero el concepto importante que debe comprender es que una parte del SID es única para la instalación o el dominio y la otra parte se comparte entre todas las instalaciones y los dominios (el RID). Cuando Windows se instala, el equipo local genera un SID aleatorio. De igual manera, cuando se crea un dominio de Windows, se le asigna un SID único (en páginas posteriores de este capítulo definiremos dominio). Por tanto, para cualquier equipo o dominio de Windows, los valores de subautoridad siempre serán únicos (a menos que lo modifique o lo duplique a propósito, como en el caso de algunas técnicas de duplicación de disco de bajo nivel). Sin embargo, el RID es un valor consistente entre todos los equipos o dominios. Por ejemplo, un SID con RID 500 es siempre la verdadera cuenta de Administrador en un equipo local. RID 501 es la cuenta de Invitado. En un dominio, los RID que empiezan con 1001 indican cuentas de usuario. (Por ejemplo, RID 1015 sería la decimoquinta cuenta de usuario creada en el dominio.) Baste con decir que el cambio de un nombre amigable de una cuenta no hace nada a su SID, de modo que la cuenta puede identificarse siempre, sin importar cuál sea. Al cambiar el nombre de la cuenta verdadera de Administrador cambia sólo el nombre amigable; la cuenta siempre es identificada por Windows (o un hacker malicioso con herramientas apropiadas) como la cuenta con RID 500.
¿Por qué no puede iniciar en todos lados una sesión como administrador? Como ya resulta obvio, la cuenta de Administrador en un equipo es diferente de la cuenta Administrador de otro, porque tienen diferentes SID, y Windows puede distinguirlos, aunque las personas no puedan. Esta característica puede causar dolores de cabeza al hacker no informado. En ocasiones, en este libro encontraremos situaciones donde el inicio de sesión como Administrador falla. He aquí un ejemplo: C:\>net use \\192.168.234.44\ipc$ contraseña /u:Administrator Error de sistema 1326. Error de inicio de sesión: nombre de usuario desconocido o contraseña incorrecta.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Un hacker podría verse tentado a alejarse en este punto, sin recordar que Windows automáticamente pasa las credenciales del usuario que inició la sesión actual durante los intentos hechos en red. Por tanto, si el usuario hubiera iniciado sesión actualmente como Administrador en el cliente, éste se interpretaría como un intento de iniciar sesión en el sistema remoto empleando la cuenta de Administrador local del cliente. Por supuesto, esta cuenta no tiene contexto en el servidor remoto. Puede especificar manualmente el contexto de inicio de sesión usando el mismo comando net use con el dominio remoto, el nombre del equipo o la dirección de IP unida al nombre de usuario con una diagonal invertida, como ésta: C:\>net use \\192.168.234.44\ipc$ contraseña /u:dominio\Administrator El comando se completó con éxito.
Obviamente, debe incluir al principio el nombre del equipo remoto o la dirección IP, si el sistema al que está conectándose no es un miembro de dominio. Recordar este pequeño truco será útil cuando analicemos las shell remotas en el capítulo 7; la técnica que usamos para desmenuzar estas shells remotas a menudo da como resultado que una shell se ejecute en el contexto de la cuenta SYSTEM. Los servidores remotos no pueden interpretar la ejecución de los comandos net use dentro del contexto LocalSystem, de modo que casi siempre tiene que especificar el dominio o nombre de equipo, como se muestra en el ejemplo anterior.
Revisión de SID con user2sid/sid2user Puede usar la herramienta user2sid de Evgenii Rudnyi para extraer SID. He aquí user2sid ejecutado contra el equipo local: C:\>user2sid \\caesars Administrator S-1-5-21-1507001333-1204550764-1011284298-500 Number of subauthorities is 5 Domain is CORP Lenght of SID in memory is 28 bytes Type of SID is SidTypeUser
La herramienta sid2user realiza la operación inversa, extrayendo un nombre de usuario al dar un SID. He aquí un ejemplo de uso del SID extraído en el ejemplo anterior: C:\>sid2user \\caesars 5 21 1507001333 1204550764 1011284298-500 Name is Administrator Domain is CORP Type of SID is SidTypeUser
Observe que el SID debe ingresarse a partir del número identificador de autoridad (que siempre es 5 en el caso de Windows Server 2003) y que se usan espacios para separar componentes, en lugar de guiones.
21
22
Hackers en Windows
Nota
Como analizaremos en el capítulo 4, esta información puede extraerse en una sesión no autentificada a partir de un sistema Windows que ejecute servicios SMB en ciertas configuraciones heredadas.
Usuarios Cualquier persona que esté más o menos familiarizado con Windows ha encontrado el concepto de cuentas de usuario. Usamos cuentas para iniciar sesión en el sistema y para acceder a recursos en el sistema y la red. Sin embargo, pocos hemos considerado lo que realmente representa una cuenta, que es una de las fallas de seguridad más comunes en casi todas las redes. De manera muy simple, una cuenta es un contexto de referencia en que el sistema operativo ejecuta código. Puesto de otra manera, todo el código del modo de usuario se ejecuta en el contexto de una cuenta de usuario. Aun parte del código que se ejecuta automáticamente antes de que cualquier persona inicie sesión (como los servicios) se ejecuta en el contexto de una cuenta (a menudo como la cuenta especial y todopoderosa SYSTEM o LocalSystem). Todos los comandos invocados por el usuario que se autentifica con éxito utilizando las credenciales de cuenta se ejecutan con los privilegios de ese usuario. Por tanto, las acciones realizadas para la ejecución del código están limitadas sólo por los privilegios otorgados a la cuenta que lo ejecuta. El objetivo del hacker malicioso es ejecutar código con los privilegios más elevados. Por tanto, el hacker debe “convertirse” en la cuenta con los privilegios más elevados posibles.
Nota
Los usuarios (personas con presencia física) son distintos de las cuentas de usuario (manifestaciones digitales que pueden usurparse fácilmente si se tiene conocimiento de las credenciales apropiadas). Aunque en este libro podemos borrar un poco esta distinción, sin intención de nuestra parte, debe tener esto presente.
Cuentas integradas Windows incluye en el paquete cuentas integradas que reciben privilegios predefinidos. Estas cuentas predeterminadas incluyen la cuenta local de Administrador, que es la cuenta de usuario de Windows con más poder. (En realidad, la cuenta SYSTEM es desde el punto de vista técnico la más privilegiada, pero Administrador puede ejecutar comandos como SYSTEM muy fácilmente usando el servicio de calendario para lanzar una shell de comandos, por ejemplo). En la tabla 2-1 se presenta una lista de las cuentas integradas predeterminadas en varias versiones de Windows. Tome en cuenta unas cuantas advertencias relacionadas con la tabla 2-1: • En controladores de dominio, algunos directivos de seguridad no son visibles en la interfaz predeterminada Usuarios y equipos de Active Directory, a menos que elija Ver Características avanzadas. • Versiones de Windows, entre las que se incluyen XP y posteriores, “ocultan” la cuenta local de Administrador como opción predeterminada, pero aún está allí. • Algunas de las cuentas de la tabla 2-1 no se crean a menos que se hayan configurado papeles específicos de servidor; por ejemplo, Application Server (IIS). • El grupo Invitados, las cuentas de usuario Invitado y Support_388945a0 son SID asignados de manera única que corresponden al dominio en que residen.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Nombre de la cuenta
Comentario
SYSTEM or LocalSystem
Todopoderosa en el equipo local, por lo general no es visible en las herramientas de interfaz de usuario común; SID S-1-5-18
Administrador
En esencia, todopoderosa en el equipo local; puede cambiársele el nombre y no puede eliminarse
Guest
Privilegios limitados; deshabilitada como opción predeterminada
SUPPORT_388945a0
Nueva en Windows XP y Server 2003, puede usarse para proporcionar soporte remoto mediante el Centro de ayuda y soporte técnico
IUSR_machinename (abbreviated IUSR)
Si está instalado IIS, se usa para acceso anónimo a IIS; miembro del grupo Invitados
IWAM_machinename (abbreviated IWAM)
Si IIS está instalado, las aplicaciones de IIS se ejecutan como esta cuenta; miembro del grupo IIS_WPG
krbtgt
Cuenta del servicio del centro de distribución de claves de Kerberos; sólo se encuentra en controladores de dominio y está deshabilitada, como opción predeterminada
TSInternetUser
Cuando está habilitada la Terminal Services Internet Connector Licensing, la cuenta se usa para personificar automáticamente a usuarios remotos (sólo Windows 2000)
Tabla 2-1
Las cuentas integradas de Windows
Cuentas de servicio Cuenta de servicio es un término no oficial usado para describir una cuenta de usuario de Windows que lanza y ejecuta un servicio de manera no interactiva (un término computacional más tradicional es cuentas de procesamiento por lotes). Por lo general, las personas no usan las cuentas de servicio para inicio de sesión interactivo, sino para iniciar y ejecutar rutinas automatizadas que proporcionan cierta funcionalidad continua al sistema operativo. Por ejemplo, el servicio de indexación, que indexa el contenido y las propiedades de archivos en equipos locales y remotos, y se localiza en %systemroot%\System32\cisvc.exe, puede configurarse para iniciar en el tiempo de arranque usando la applet Servicios del Panel de control. Para que se ejecute este ejecutable, debe autentificarse en el sistema operativo. Por ejemplo, el servicio de Indexación se autentifica y ejecuta como la cuenta LocalSystem en Windows Server 2003 en su configuración predeterminada.
Nota
El surgimiento de los SID específicos del servicio en Vista permite que el Administrador de control de servicios (SCM, Service Control Manager) asigne SID a procesos de servicios cuando empiezan, lo que mejora la especificidad del control de acceso sobre el modelo simple basado en cuentas (aunque aún se usen éstas).
23
24
Hackers en Windows
Las cuentas de servicio son un mal necesario en Windows. Debido a que todo el código debe ejecutarse en el contexto de una cuenta, no pueden evitarse. Por desgracia, debido a que están diseñadas para autentificar de manera automatizada, las contraseñas para estas cuentas deben proporcionarse al sistema sin interacción humana. En realidad, Microsoft diseñó la familia Windows NT para incluir en caché las contraseñas de cuentas de servicio en el sistema local. Esto se hizo por la simple conveniencia de que muchos servicios necesitan empezar antes de que la red esté disponible (en tiempo de arranque) y, por tanto, no pueden autentificarse para controladores de dominio. Al incluir en caché las contraseñas localmente, se evita esta situación. He aquí el resumen: Las contraseñas de cuentas de servicio que no son SYSTEM se almacenan en texto simple en una parte del Registro llamada Secretos LSA, que sólo es accesible para LocalSystem.
Resaltamos esta frase porque lleva a una de las principales fallas de seguridad del sistema operativo Windows: si un hacker malicioso puede comprometer un sistema de la familia Windows NT con privilegios equivalentes a Administrador, puede extraer las contraseñas en texto simple para las cuentas de servicio de ese equipo. Tal vez esté diciendo “Bravo”, si ya es el equivalente a un Administrador del equipo; “¿Qué uso adicional tienen las cuentas de servicio?”. Aquí es donde las cosas se ponen difíciles: las cuentas de servicio pueden ser cuentas de dominio o incluso cuentas de otros dominios confiables. (Consulte la sección “Confianzas”, en páginas posteriores de este capítulo). Por tanto, con esta falla pueden exponerse las credenciales de otros dominios de seguridad. Leerá más acerca de la manera en que se hace esto en el capítulo 7.
Sugerencia
Recomendamos encarecidamente que se nieguen a todas las cuentas de servicio los derechos de inicio de sesión interactivo empleando directivas de máquina o de dominio para evitar que un intruso humano use esas credenciales de manera interactiva.
Endurecimiento del servicio Los servicios representan un gran porcentaje de la superficie de ataque general en Windows debido a que suelen estar siempre habilitados y se ejecutan con los privilegios más elevados. En gran medida debido a esto, Microsoft empezó a dar pasos para reducir el riesgo de la ejecución de servicios en versiones más recientes del sistema operativo. Uno de los primeros pasos fue ejecutar servicios con los menores privilegios, un principio de control de acceso muy aceptado. A partir de Windows Server 2003, Microsoft creó dos nuevos grupos integrados denominados Servicio Local y Servicio de Red y empezó a ejecutar más servicio empleando estas cuentas de privilegios menores en lugar de la cuenta todopoderosa LocalSystem. (Hablaremos más acerca de los servicios locales y de red en todo este capítulo). En Vista, Microsoft implementó el endurecimiento de servicio de Windows, que definió SID por servicio. Esto hizo que efectivamente ciertos servicios se comportaran como usuarios únicos (una vez más, en oposición a la identidad genérica y con altos privilegios LocalSystem). Ahora la configuración predeterminada de control de acceso de Windows podía aplicarse a los recursos para que fueran privados para el servicio, evitando que otros servicios y usuarios accedieran al recurso.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Entre las características adicionales incluidas en el endurecimiento de servicio de Vista se incluye la eliminación de privilegios innecesarios de Windows (como el poderoso privilegio de depuración), la aplicación de una ficha de acceso de escritura restringida al proceso del servicio para evitar la escritura en recursos que no otorgan de manera explícita el acceso al SID del servicio, además de la vinculación de la directiva de firewall de Windows al SID previo al servicio para evitar acceso de red no autorizado por parte del servicio. Con el fin de conocer más acerca del endurecimiento del servicio, consulte la sección “Referencias y lecturas adicionales”.
Lo importante He aquí un resumen de las cuentas de Windows desde la perspectiva de un hacker malicioso: Los administradores y la cuenta SYSTEM son los destinos más jugosos en un sistema Windows porque son las cuentas más poderosas. Todas las demás cuentas tienen privilegios limitados en relación con los Administradores y SYSTEM (y una posible excepción son las cuentas de servicio). Comprometer a los Administradores o la cuenta SYSTEM es, por tanto, casi siempre el objetivo final de un atacante.
Grupos Los grupos son sobre todo una conveniencia administrativa: son contenedores lógicos para agregar cuentas de usuario. (También pueden usarse para configurar listas de distribución de correo electrónico en Windows 2000 y posteriores, que históricamente no han tenido implicaciones de seguridad). Los grupos también se usan para asignar privilegios en masa, lo que puede tener un elevado impacto en la seguridad de un sistema. Las distintas versiones de Windows incluyen grupos integrados, contenedores predefinidos para usuario que también poseen distintos niveles de privilegio. Cualquier cuenta colocada dentro de un grupo hereda esos privilegios. El ejemplo más simple es la adición de cuentas al grupo local Administradores, lo que asciende, en esencia, al usuario agregado a un estatus todopoderoso en la máquina local. (Verá que se intenta esto muchas veces en todo el libro). En la tabla 2-2 se presenta una lista de grupos integrados en Windows Server 2003. Otras versiones de Windows pueden tener menos grupos integrados, o diferentes, pero los que aparecen en la tabla 2-2 son los más comunes.
Nota
Es posible usar una unidad organizativa (OU, Organizational Unit), además de los grupos, para agregar cuentas de usuario, las OU son construcciones definidas arbitrariamente por Active Directory y no poseen privilegios inherentes como las cuentas integradas de grupos de seguridad.
Cuando un sistema de Windows Server es ascendido a controlador de dominio, también se instala una serie de grupos predefinidos. Entre los grupos predefinidos más poderosos se incluyen los Administradores de dominio, que son todopoderosos en un dominio, y los Administradores de organización, que son todopoderosos en un bosque. En la tabla 2-3 se presenta una lista de los grupos predefinidos de Windows Server 2003.
25
26
Hackers en Windows
Nombre del grupo
Comentario
Operadores de cuenta
No tan poderoso como Administradores, pero cerca de éste
Administradores
Los miembros son todopoderosos en el equipo local (SID S-1-5-32-544)
Operadores de copia
No tan poderoso como Administradores, pero cerca de éste
Invitados
Mismos privilegios que Usuarios
HelpServicesGroup
Nuevo en Windows Server 2003, usado para el Centro de ayuda y soporte técnico
IIS_WPG
Nuevo en Windows Server 2003; si está instalado IIS, es el grupo de procesos de trabajo de IIS que ejecuta los procesos de aplicaciones
Servicio local
Nuevo en Windows Server 2003, es un grupo oculto con menos privilegios diseñado para cuentas de servicio que no necesitan acceso de red (en lugar de usar SYSTEM)
Operadores de configuración de red
Nuevo en Windows Server 2003, este grupo tiene privilegios suficientes para administrar la configuración de red
Servicio de red
Nuevo en Windows Server 2003, es un grupo oculto con menos privilegios diseñado para cuentas de servicio que requieren acceso de red (en lugar de usar SYSTEM)
Usuarios de registro de rendimiento
Nuevo en Windows Server 2003, este grupo tiene acceso remoto para programar el registro de los contadores de rendimiento
Usuarios de monitor de rendimiento
Nuevo en Windows Server 2003, este grupo tiene acceso remoto al monitor del equipo
Usuarios avanzados
Más poderoso que Usuarios, pero no tan poderoso como Administradores
Operadores de impresión
No tan poderoso como Administradores, pero cerca de éste
Usuarios de escritorio remoto
Nuevo en Windows Server 2003, es equivalente a los usuarios de Servidor de terminal en versiones anteriores
Duplicador
Usado para réplica de archivos en un dominio
Operadores de servidor
No tan poderoso como Administradores, pero cerca de éste
TelnetClients
Nuevo en Windows Server 2003, los miembros pueden acceder a los servicios de telnet, si están habilitados
Servidores de licencia de servidor de terminal
Nuevo en Windows Server 2003, estas máquinas pueden emitir licencias TermServ
Usuarios
Todas las cuentas de usuario en el equipo local, un grupo de bajos privilegios (SID S-1-5-32-545)
Tabla 2-2
Ejemplos de grupos integrados de Windows Server 2003
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Nombre del grupo
Comentario
Publicadores de certificados
Los miembros tienen permitido publicar certificados en Active Directory
DnsAdmins
Administradores de DNS (sólo si está instalado DNS de Windows)
DnsAdmins
DNS administrators, domain local
DnsUpdateProxy
Clientes DNS a los que se permite realizar actualizaciones dinámicas a nombre de alguno de los otros clientes (como servidores DHCP; sólo si está instalado DNS de Windows)
Administradores de dominio
Todopoderoso en el dominio
Usuarios del dominio
Todos los usuarios del dominio
Equipos del dominio
Todos los equipos en el dominio
Controladores de dominio
Todos los controladores en el dominio
Invitados del dominio
Todos los invitados del dominio
Administradores de organización
Todopoderoso en el bosque
Propietarios del creador de directivas de grupo
Los miembros pueden modificar las directivas del grupo para el dominio
Creadores de confianza de bosque de entrada
Los miembros pueden crear confianzas de entrada, de una vía, para el bosque
Acceso compatible con versiones anteriores de Windows 2000
Grupo de compatibilidad hacia atrás
Servidores RAS e IAS
Los servidores pueden acceder a propiedades de “acceso remoto” sobre objetos de usuario
Administradores de esquema
Los miembros pueden editar el esquema de directorio; muy poderoso
Grupo de acceso de autorización de Windows
Los miembros tienen acceso al atributo calculado tokenGroupsGlobalAndUniversal sobre objetos de Usuario
Tabla 2-3
Grupos predefinidos en Windows Server 2003
27
28
Hackers en Windows Para resumir los grupos de Windows desde la perspectiva del hacker malicioso: Los miembros del grupo local de Administradores son los objetivos más jugosos en un sistema Windows porque los miembros de este grupo heredan el control completo del sistema local. Los Administradores de dominio y los Administradores de organización son los objetivos más jugosos en un dominio de Windows, porque los miembros de estos grupos son todopoderosos en todos los equipos (apropiadamente configurados) en el dominio. Todos los otros grupos poseen privilegios muy limitados en relación con los Administradores, los Administradores de dominio y los Administradores de organización. Volverse uno de éstos (ya sea mediante un compromiso directo de una cuenta existente o la adición de una cuenta ya comprometida a uno de esos grupos) es, por tanto, casi siempre el objetivo final del atacante.
Identidades especiales Además de los grupos integrados, Windows tiene varias identidades especiales (en ocasiones llamadas grupos conocidos), que son contenedores de cuentas que pasan transitivamente a través de ciertos estados (como haber iniciado sesión en la red) o desde ciertos lugares (como interactivamente en el teclado). Estas identidades pueden usarse para afinar el control de acceso a los recursos. Por ejemplo, el acceso a ciertos procesos puede estar reservado sólo para usuarios INTERACTIVOS (y, por tanto, bloqueados para todos los usuarios autentificados en red). Estos grupos conocidos pertenecen al “dominio” NT AUTHORITY, de modo que para hacer referencia a su nombre plenamente calificado, diría NT AUTHORITY\Todos, por ejemplo. En la tabla 2-4 se presenta una lista de las identidades especiales de Windows. Algunos puntos clave que vale la pena indicar en relación con estas identidades especiales: Puede utilizarse el grupo Inicio de sesión anónimo para poner el pie en un sistema Windows sin autentificación. Además, la identidad INTERACTIVO se requiere en muchos casos para ejecutar ataques de escalada de privilegios contra Windows (consulte el capítulo 7).
Grupos restringidos Un concepto muy ingenioso que se introdujo con Windows 2000, los grupos restringidos, permite a un administrador establecer una directiva de dominio que restringe la membresía de un grupo determinado. Por ejemplo, si un usuario no autorizado se agrega al grupo local de Administradores en un miembro de dominio, tras la siguiente actualización de la Directiva de grupo, esa cuenta se eliminará, de modo que esa membresía refleje lo que se ha definido en la directiva de grupos restringidos. Estos parámetros de actualizan cada 90 minutos en el equipo de un miembro, cada 5 minutos en un controlador de dominio y cada 16 horas, hayan o no ocurrido cambios.
Equipos (cuentas de máquina) Cuando un sistema Windows se une a un dominio, se crea una cuenta de equipo. Las cuentas de equipo son, en esencia, cuentas de usuario que usan máquinas para iniciar sesión y acceder a recursos (por tanto, a los equipo también se les denomina cuentas de máquina). Este nombre de cuenta adjunta un signo de pesos ($) al nombre de la máquina (nombremáquina$). Como podría imaginar, para iniciar sesión en un dominio, las cuentas de equipo requieren contraseñas. Los controladores de dominio generan y manejan automáticamente las contraseñas de
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Identidad
SID
Comentario
Inicio de sesión anónimo
S-1-5-7
Grupo oculto especial que incluye todos los usuarios que se han autentificado con credenciales nulas
Usuarios autentificados
S-1-5-11
Grupo oculto especial que incluye todos los usuarios que han iniciado sesión
INTERACTIVO
S-1-5-4
Todos los usuarios que han iniciado sesión en el sistema local a través de la consola física o Servicios de terminal
Todos
S-1-1-0
Todos los usuarios de red actuales, incluidos los invitados y usuarios de otros dominios
Red
S-1-5-2
Todos los usuarios que han iniciado sesión a través de una conexión de red; las fichas de acceso para usuarios interactivos no contienen el SID de red
Servicio
S-1-5-6
Todos los directivos de seguridad que han iniciado sesión como servicio; la membresía la controla el sistema operativo
Esta empresa
S-1-5-15
Nuevo en Windows Server 2003, agregado por el servidor de autentificación a los datos de autentificación de un usuario, siempre y cuando el SID de Otra organización no esté presente
Otra empresa
S-1-5-1000
Nuevo en Windows Server 2003, provoca una revisión para asegurar que a un usuario de otro bosque o dominio se le permite autentificar a un servicio determinado
Tabla 2-4
Identidades especiales de Windows (también denominadas grupos conocidos)
equipo. (Consulte la próxima sección “Bosques, árboles y dominios”). De otra manera, las contraseñas de equipo se almacenan y acceden como cualquier otra contraseña de cuenta de usuario. (Consulte la próxima sección “El SAM y Active Directory”). Como opción predeterminada, se restablecen cada 30 días, pero los administradores pueden configurar un intervalo diferente, si lo desean. El uso principal para las cuentas de equipo es la creación de un canal seguro entre el equipo y el controlador de dominio con el fin de intercambiar información. Como opción predeterminada, ese canal seguro no está cifrado (aunque parte de la información que pasa por él ya lo está, como los hashes de contraseña), y su integridad no está verificada (por tanto, lo hace vulnerable al espionaje o a los ataques de personas intermediarias). Por ejemplo, cuando un usuario inicia sesión en un dominio desde un equipo miembro del dominio, el intercambio de inicio de sesión ocurre en el canal seguro registrado entre el miembro y el controlador de dominio.
29
30
Hackers en Windows Nunca hemos escuchado de un caso donde la explotación de una cuenta de máquina haya dado como resultado una exposición seria, de modo que no analizaremos esto con mucho detalle en este libro.
Derechos de usuario Recuerde el objetivo principal del atacante, establecido desde el principio de este capítulo: Ejecutar comandos en el contexto más privilegiado, para obtener acceso a recursos y datos.
Acabamos de describir algunos de los contextos de cuentas de modo de usuario con “mayores privilegios”, como Administrador y LocalSystem. ¿Qué hace a estas cuentas tan poderosas? En una palabra (cuatro palabras, en realidad): los derechos de usuario. Se trata de un conjunto finito de capacidades básicas, como inicio de sesión local o depuración de programas. Se usan en el modelo de control de acceso, además del estándar de comparación entre los SID de ficha de acceso y los descriptores de seguridad. Los derechos de usuario suelen asignarse a grupos, porque esto los hace más fáciles de manejar que si se asignaran constantemente a usuarios individuales. Por esto la membresía en grupos es tan importante: porque el grupo suele ser la unidad de asignación de privilegios. Pueden otorgarse dos tipos de derechos de usuario: derechos de usuario de inicio de sesión y privilegios. Ésta es simplemente una clasificación semántica para diferenciar a los derechos que se aplican antes y después de que una cuenta sea autentificada, respectivamente. Están disponibles más de 40 derechos de usuario discretos en Windows Server 2008 (nombre de código Longhorn), y aunque cada uno puede tener un fuerte impacto en la seguridad, sólo analizaremos los que tradicionalmente lo han tenido. En la tabla 2-5 se delinean algunos de los privilegios que consideramos críticos, junto con nuestras configuraciones recomendadas. Tome en cuenta que la “negación” de derechos invalida a sus correspondientes derechos “permitidos”, si una cuenta es sujeto de ambas directivas. En Windows Server 2003 se implementaron algunos derechos de usuario relacionados con la seguridad, entre los que se incluyen los siguientes: • • • •
Permitir el inicio de sesión a través de los Servicios de terminal Negar el inicio de sesión a través de los Servicios de terminal Suplantar la personalidad de un cliente después de la autentificación Realizar tareas de mantenimiento de volumen
Los derechos relacionados con los Servicios de terminal se implantaron para atender un hueco en los derechos “Permitir/negar acceso al equipo desde la red”, que no se aplica a los servicios de terminal. El derecho “Suplantar la personalidad de un cliente después de la autentificación” se agregó para ayudar a mitigar los ataques de escalada de privilegios en que los servicios con menos privilegios suplantaban la personalidad de clientes con privilegios más elevados. Al final, pero no por ello menos importante en nuestro análisis de los derechos de usuario, se encuentra el recordatorio de que siempre se debe usar el principio de la menor cantidad de privilegios. Vemos que demasiadas personas inician sesión con cuentas equivalentes a Administrador para realizar tareas cotidianas. Al tomar un poco de tiempo de antemano para pensar los derechos de usuario apropiados, se pueden aliviar todas las vulnerabilidades de seguridad importantes analizadas en este libro. Inicie sesión como un usuario con la menor cantidad de privilegios y use la herramienta runas (consulte el capítulo 12) para escalar los privilegios a medida que sean necesarios.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Derecho de usuario
Recomendación
Comentarios
Depurar programas
Elimine todos los usuarios y grupos (tome en cuenta que los Administradores pueden volverse a agregar más adelante)
Como verá en todo este libro, el privilegio de depuración suele ser motivo de abuso por parte de las herramientas de hacker para accesar a porciones muy confidenciales del sistema operativo
Negar acceso a este equipo desde la red
Inicio de sesión anónimo (SID S-15-7), Administrador (RID 500), cuentas de servicio, Support_ 388945a0 e Invitados
Mitiga el abuso de la cuenta local de Administrador, que no puede eliminarse (no afecta el inicio de sesión del Servidor de terminal)
Negar el inicio de sesión local (inicio de sesión interactivo)
Cuentas de servicio
Mitiga el abuso de las credenciales de cuenta de servicio de dominio que se capturan desde una sola máquina vulnerable
Negar el inicio de sesión a través de los Servicios de terminal
Administrador (RID 500), cuentas de servicio
Mitiga el abuso de las credenciales de cuentas locales de Administrador y de servicio mediante Servidor de terminal
Apagar el sistema
Agregue grupos que requieren este privilegio como parte de una función de trabajo
Sería mejor otorgar este privilegio a personal de soporte remoto que simplemente elevarlo a Administradores
Tabla 2-5
Recomendaciones para la asignación de privilegios
INTEGRACIÓN DE TODAS LAS PIEZAS: CONTROL DE ACCESO Ahora que conoce a los jugadores que participan, analicemos el corazón del modelo de seguridad de Windows: el control de acceso (autentificación y autorización). ¿De qué manera el sistema operativo decide si un directivo de seguridad puede acceder a un recurso protegido? En primer lugar, Windows debe determinar si está tratando con un directivo de seguridad válido. Eso se hace a través de la autentificación. El ejemplo más simple es un usuario que inicia sesión en Windows a través de la consola. El usuario oprime las teclas estándar ctrl+alt+supr, para desplegar la utilería de inicio de sesión segura de Windows y luego ingresa un nombre de
31
32
Hackers en Windows cuenta y una contraseña. La utilería de inicio de sesión segura pasa las credenciales ingresadas a través de los componentes del modo de usuario responsables de validarlos (sobre todo LSASS). Suponiendo que las credenciales son válidas, LSASS crea una ficha (o ficha de acceso), que luego se adjunta a la sesión de inicio de sesión de usuario y se produce en cualquier intento subsecuente de acceso a los recursos.
Nota
La interfaz de usuario de inicio de sesión segura previa a Vista puede ser atacada mediante un caballo de Troya por parte de usuarios equivalentes a Administradores, como analizaremos en el capítulo 7. A partir de Vista, un nuevo marco conceptual de proveedor de credenciales (CP, Credencial Provider) hace que esos ataques resulten obsoletos, aunque un CP malicioso tiene el mismo peligro.
Sugerencia
En Windows XP y posterior, oprima las teclas WINDOWS y l simultáneamente para bloquear su escritorio; se trata de una opción a oprimir CTRL+ALT+SUPR y luego ENTER.
La ficha La ficha contiene una lista de todos los SID relacionados con la cuenta de usuario, incluidos el SID de la cuenta y los SID de todos los grupos e identidades especiales de los que es miembro la cuenta de usuario (por ejemplo, Administradores de dominio o INTERACTIVO). Puede usar una herramienta como whoami (incluida como opción predeterminada a partir de Windows Server 2003) para descubrir cuáles SID están relacionados con una sesión de inicio de sesión, como se muestra a continuación (muchas líneas se han truncado debido a las restricciones del ancho de páginas): C:\>whoami /user /groups INFORMACIÓN DE USUARIO ---------------------Nombre de usuario SID ========================= ========================================== vegas2\jsmith S-1-5-21-1527495281-1310999511-3141325392-500
INFORMACIÓN DE GRUPO -------------------Nombre de grupo Tipo SID Atributos ========================================================================= Todos Grupo conocido S-1-1-0 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado BUILTIN\Administradores Alias S-1-5-32-544 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado, Propietario de grupo BUILTIN\Usuarios Alias S-1-5-32-545 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
BUILTIN\Acceso compatible con versiones anteriores de Windows 2000 Alias S-1-5-32-554 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado NT AUTHORITY\INTERACTIVE Grupo conocido S-1-5-4 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado NT AUTHORITY\Usuarios autentificados Grupo conocido S-1-5-11 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado NT AUTHORITY\Esta compañía Grupo conocido S-1-5-15 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado LOCAL Grupo conocido S-1-2-0 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado VEGAS2\ Propietarios del creador de directivas de grupo Grupo S-1-5-21[cortado]-520 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado VEGAS2\Administradores de dominio Grupo S-1-5-21-[cortado]-512 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado VEGAS2\Administradores de esquema Grupo S-1-5-21-[cortado]-518 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado VEGAS2\Administradores de organización Grupo S-1-5-21-[cortado]-519 Grupo obligatorio, Habilitado de manera predeterminada, Grupo habilitado
Con este ejemplo se muestra que el proceso actual se ejecuta en el contexto del usuario jsmith, que es un miembro de Administradores y Usuarios autentificados y también pertenece a las identidades especiales Todos, LOCAL e INTERACTIVO. Cuando jsmith trata de acceder a un recurso, como un archivo, el subsistema de seguridad de Windows compara su ficha con la DACL en el objeto, que especifica los SID que son permitidos para acceder al objeto e incluye las maneras en que puede accederse a él (como lectura, escritura, ejecución, etcétera). Si uno de los SID de la ficha de jsmith coincide con un SID en la DACL, entonces se le otorga acceso como está especificado en ésta. Un diagrama del proceso se muestra en la figura 2-2.
Impersonalización Para ahorrar exceso de trabajo en la red, la familia Windows NT se diseñó para la impersonalización de un contexto de cuenta de usuario cuando solicita acceso a los recursos en un servidor remoto. La impersonalización funciona al dejar que el servidor notifique al subsistema de seguridad que está adoptando temporalmente la ficha del cliente al hacer la solicitud de recursos. Luego el servidor puede acceder a recursos a nombre del cliente y el subsistema de seguridad valida todos los accesos como normales. El ejemplo clásico de impersonalización es la solicitud anónima de páginas Web mediante IIS. IIS adquiere la personalidad de la cuenta IUSR_nombremáquina durante todas estas solicitudes.
Ficha restringida En Windows 2000 se introdujo la ficha restringida. Una ficha restringida suele asignarse a un proceso secundario para que tenga un acceso más limitado que su proceso principal. Por ejemplo, una aplicación podría derivar una ficha restringida del proceso principal o la ficha de suplantación de personalidad para ejecutar un módulo con código no confiable, en caso de que pudieran realizarse acciones inapropiadas empleando los privilegios completos de la ficha principal.
33
34
Hackers en Windows
Figura 2-2
El modelo de control de acceso de Windows
Las fichas restringidas se crean al hacer cualquiera de los siguientes cambios a la ficha de acceso original: • Eliminación de privilegios • Aplicación del atributo sólo negar a SID • Adición de una lista de SID restringidos Cuando un proceso o un subproceso restringido trata de acceder a un objeto asegurable, el sistema realiza dos comprobaciones de acceso contra la DACL del objeto: • Compara los SID habilitados y de sólo negación de la ficha • Compara la lista de SID restringidos El acceso sólo se otorga si ambas comprobaciones permiten los derechos de acceso solicitados.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Delegación La delegación fue una nueva característica en Windows 2000 que permitía a un servicio suplantar la personalidad de una cuenta de usuario o de equipo para acceder a recursos en todo el dominio. Windows 2000 tenía dos limitaciones en relación con esta característica: • La delegación no podía restringirse; es decir, una cuenta de delegado podía acceder a cualquier recurso del dominio. • La delegación requería autentificación de Kerberos. Ambas restricciones fueron atendidas en Windows Server 2003. Ahora la delegación puede restringirse a servicios específicos y ya no se requiere Kerberos. precaución
Aun debe estar consciente de las cuentas de equipo de confianza para delegación, porque esto permite que la cuenta LocalSystem en ese equipo acceda a servicios en el dominio.
Niveles de integridad, UAC y LoRIE Con Windows Vista, Microsoft implementó una extensión al sistema básico de control de acceso discrecional que acabamos de describir. La principal intención de este cambio fue implementar el control de acceso obligatorio en ciertos escenarios. Por ejemplo, acciones que requieren privilegios administrativos requerirían autorización adicional, más allá de la relacionada con la ficha de acceso de contexto de usuario. Microsoft denominó a esta nueva extensión de arquitectura Control obligatorio de integridad (MIC, Mandatory Integrity Control). Para lograr el comportamiento similar al control de acceso obligatorio, MIC implementa efectivamente un nuevo conjunto de cuatro directivos de seguridad llamados niveles de integridad (IL, Integrity Levels), que pueden agregarse a las fichas de acceso y las ACL: • • • •
Bajo Medio Alto Sistema
Los niveles de integridad se implementan como SID, de la misma manera que cualquier otro directivo de seguridad. Ahora, además de la revisión del control de acceso estándar que describimos al principio de este capítulo, Windows también revisará si el nivel de integridad de la ficha de acceso que solicita coincide con el del recurso de destino. Por ejemplo, un proceso con nivel de integridad Medio podría estar bloqueado para lectura, escritura o ejecución “hasta” un objeto con nivel de integridad Alto. MIC no es directamente visible cuando se usa Vista; más bien sirve como el sustento de algunas de las nuevas características de seguridad en el sistema operativo: Control de cuentas de usuario (UAC, User Account Control) e Internet Explorer de derechos bajos (LoRIE, Low Rights Internet Explorer). Hablaremos brevemente acerca de ellos para mostrar cómo funciona MIC en la práctica. Control de cuentas de usuario, al que se le denominaba Acceso inferior de usuario, o LUA (Least User Access), en versiones anteriores de Vista, es tal vez la nueva característica de seguridad más visible en Vista. Funciona de la manera siguiente: 1. Los desarrolladores “marcan” aplicaciones al incrustar un manifiesto de aplicación (disponible desde XP) para indicar al sistema operativo si la aplicación necesita privilegios elevados.
35
36
Hackers en Windows
2. La LSA se ha modificado para otorgar dos fichas al inicio de sesión para cuentas administrativas: una ficha filtrada y una vinculada. La ficha filtrada tiene eliminados todos los privilegios elevados (utilizando el mecanismo de ficha restringida descrito antes). 3. Las aplicaciones se ejecutan como opción predeterminada empleando la ficha filtrada; la ficha vinculada de privilegios completos sólo se usa cuando se lanzan aplicaciones que están marcadas como que requieren privilegios elevados. 4. Se pide al usuario que use un entorno de consentimiento especial (el resto de la sesión está atenuada y es inaccesible) si en realidad quieren lanzar el programa, y puede pedírsele credenciales apropiadas si no son miembros de un grupo administrativo. Suponiendo que los desarrolladores de aplicaciones tienen un buen comportamiento, Vista alcanza el control de acceso obligatorio de un tipo: sólo pueden lanzarse aplicaciones específicas con privilegios elevados. He aquí cómo el Control de cuentas de usuario usa a MIC: todos los procesos de usuario no administrativos se ejecutan con un nivel de integridad Medio, como opción predeterminada. Una vez que se ha “elevado” un proceso empleando el Control de cuentas de usuario, se ejecuta con nivel de integridad Alto y, por tanto, puede acceder a objetos de ese nivel. Por tanto, ahora es “obligatorio” tener privilegios de nivel de integridad Altos para acceder a ciertos objetos dentro de Windows. MIC también se encuentra bajo la implementación de LoRIE en Vista: el proceso Internet Explorer (iexplore.exe) se ejecuta en un nivel de integridad Bajo y, en un sistema con una configuración predeterminada, sólo puede escribir en objetos con un SID de nivel de integridad Bajo (como opción predeterminada, esto sólo incluye la carpeta %USERPROFILE%\AppData\LocalLow y la clave de Registro HKCU\Software\AppDataLow). Por tanto, LoRIE no puede escribir en ningún otro objeto del sistema, como opción predeterminada, restringiendo en gran medida el daño que puede hacerse si el proceso se ve comprometido por malware mientras explora Internet. precaución
En la versión de Vista, se han tomado provisiones para permitir que código no marcado se ejecute con privilegios administrativos. En futuras versiones, la única manera de ejecutar una aplicación elevada será tener un manifiesto firmado que identifique el nivel de privilegio que necesita la aplicación.
precaución
El Control de cuentas de usuario puede deshabilitarse en todo el sistema bajo la configuración Activar o desactivar el Control de cuentas de usuario de la applet Cuentas de usuario del Panel de control.
La investigadora de la seguridad Joanna Rutkowska escribió algunas críticas interesantes sobre el Control de cuentas de usuario y MIC en Vista, en http://theinvisiblethings.blogspot. com/2007/02/running-vista-everyday.html. El gurú de la tecnología de Windows Jesper Johansson ha escrito algunos artículos a fondo sobre Control de cuentas de usuario en su blog en http://msinfluentials.com/blogs/jesper/.
Autentificación de red La autentificación local en Windows mediante la combinación del teclado ctrl-alt-supr es simple, como ya lo describimos. Sin embargo, para iniciar sesión en Windows en red, el objetivo principal del hacker malicioso, se requiere la explotación de la autentificación en red. Analizaremos
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
esto de manera breve aquí y presentaremos análisis informados en capítulos posteriores sobre varias debilidades relacionadas con algunos componentes de protocolos de autentificación de red de Windows. La familia NT utiliza principalmente autentificación tipo desafío/respuesta, en la que el servidor emite un valor aleatorio (el desafío) al cliente, que luego le aplica hash criptográfico utilizando el hash de la contraseña del usuario y envía este valor con un nuevo hash (la respuesta) de regreso al servidor. Entonces el servidor toma su copia del hash del usuario del Administrador de cuentas de seguridad (SAM, Security Accounts Manager) o de Active Directory (AD), utiliza el hash en el desafío que acaba de enviar y lo compara con la respuesta del cliente. Por tanto, ninguna contraseña jamás recorrerá un cable durante la autentificación de la familia NT, ni siquiera en forma cifrada. El mecanismo de desafío/respuesta se ilustra en la figura 2-3 y se describe de manera más completa en el artículo Q102716 de la base de conocimientos (KB, Knowledge Base).
Figura 2-3
Autentificación tipo desafío/respuesta de LM/NTLM
37
38
Hackers en Windows
El paso 3 de este diagrama es el más crítico. La familia NT puede usar uno de tres diferentes algoritmos de hash para barajar el desafío de 8 bytes: • Hash LANMan (LM) • Hash NTLM • NTLM versión 2 (NTLMv2) En el capítulo 5, analizaremos una debilidad con el hash LM que permite que un atacante con la capacidad de escuchar a escondidas en la red adivine el hash de la contraseña con relativa facilidad; luego el hacker puede usarlo para tratar de adivinar la contraseña real fuera de línea (¡aunque el hash de la contraseña nunca haya recorrido la red!). Para combatir esto, Microsoft liberó un algoritmo mejorado sólo para NT, NTLM, con NT 4 Service Pack 3 y una posterior versión asegurada en NT 4 SP4 llamada NTLM v2. Los clientes de Windows 95/98 no implementan nativamente NTML de modo que la seguridad ofrecida por NTLM y NTLMv2, por lo general no se desplegaba en el pasado en redes combinadas. (La utilería DSClient que se incluye en el CD-ROM de Windows 2000 actualiza a los clientes de Windows 9x para que puedan realizar autentificación NTLM y NTLMv2). Los entornos homogéneos de Windows 2000 y posterior pueden usar el protocolo integrado Kerberos v5 que se introdujo en Windows 2000; sin embargo, Windows Server 2003 es completamente compatible hacia atrás con LM, NTLM y NTLMv2 y se ajustará hacia abajo al protocolo apropiado de autentificación si no se puede negociar Kerberos. Éste sólo se usará si tanto el cliente como el servidor le dan soporte, se hace referencia a ambas máquinas por su DNS o su nombre de máquina (no su dirección IP) y el cliente y el servidor pertenecen al mismo bosque (a menos que se use una implementación de Kerberos de terceros). PRECAUCIÓN
Como analizamos en el capítulo 5, Kerberos es susceptible para los ataques de escucha.
En la tabla 2-6 se presenta un rápido resumen de los mecanismos de autentificación de red de la familia NT. Para mayor simplicidad, hemos dejado fuera del análisis, a propósito, laa consideraciones relacionadas con el protocolo de autentificación de saludo de desafío de Microsoft (MS-CHAP, Microsoft Challenge Handshake Authentication Protocol), que se usa para acceso remoto; los protocolos de autentificación basados en Web como HTTP básico y digerido; el servicio de usuario de marcado telefónico remoto para autentificación (RADIUS, Remote Authentication Dial-In User Service) y otros pocos. Aunque estos protocolos son ligeramente diferente de lo que hemos descrito hasta ahora, aún dependen de los cuatro protocolos centrales descritos en la tabla 2-6, que se usan de una forma u otra para autentificar todos los accesos de red.
Intercambio en red y modelo de seguridad para cuentas locales A partir de Windows XP, Microsoft implementó algunos cambios a la manera en que se aplica el control de acceso a recursos compartidos. En la Directiva de seguridad local o del dominio, bajo el parámetro llamado Acceso de red: modelo de intercambio y seguridad para cuentas locales, las dos opciones siguientes son configurables: • Clásico Los usuarios locales se autentifican como ellos mismos. • Sólo invitado Los usuarios locales siempre se autentifican como Invitado.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Tipo de autentificacion
Clientes soportados
Comentarios
LANMan
Todos
Windows 9x debe usar esto, pero es susceptible a ataques de escucha; DSClient permite que Windows 9x use NTLM
NTLM
NT 4 SP3, Windows Server 2000 y posteriores
Seguridad mucho más robusta que LANMan
NTLMv2
NT4 posterior a SP4, Windows Server 2000 y posteriores
Seguridad mejorada sobre NTLM; recomendado para entornos heterogéneos NT4/2000
Kerberos
Windows Server 2000 y posteriores
Se usa sólo si Windows 2000 o mayor está en ambos extremos y dentro del bosque
Tabla 2-6
Mecanismo central de autentificación de red de Windows
La configuración Sólo invitado podría ser útil en sistemas con demasiadas transferencias de archivos para forzar niveles de acceso equivalentes entre tranferencias. Sin embargo, recomendamos apegarse a Clásico, ya que consideramos que es mejor ser explícitos acerca del control de acceso.
SAM y Active Directory Después de la revisión general de los directivos y las capacidades de seguridad, exploremos más detalladamente la manera en que se manejan en Windows objetos como cuentas y contraseñas. En todos los equipos de Windows, SAM contiene la información del nombre de cuenta y la contraseña de usuario. La información de contraseña se mantiene en un formato revuelto de modo que no puede reordenarse utilizando técnicas conocidas (aunque el valor barajado aún puede adivinarse, como verá en el capítulo 7). Al procedimiento de dispersión se le denomina función de una vía (OWF, One-Way Function) o algoritmo de hash, y da como resultado un valor de hash que no puede descifrarse. Haremos referencia a los hashes de contraseña de manera repetida en este libro. SAM integra uno de los cinco paneles del Registro y se implementa en el archivo %systemroot%\system32\config\sam. En los controladores de dominio de Windows Server 2000 y posteriores, los datos de cuenta de usuario/hash para el dominio se mantiene en el Active Directory (%systemroot%\ntds\ntds. dit, como opción predeterminada). Los hashes se mantienen en el mismo formato, pero debe accederse a ellos por medios distintos.
SYSKEY Bajo NT, los hashes de contraseña se almacenaban directamente en el archivo SAM. A partir de NT 4 Service Pack 3, Microsoft proporcionó la capacidad de agregar otra capa de cifrado a los hashes de SAM, llamada SYSKEY, que es una abreviatura de SYStem KEY (clave del sistema), y que deriva, en esencia, una clave aleatoria de 128 bits y cifra de nuevo los hashes (no el propio archivo SAM, sólo los hashes).
39
40
Hackers en Windows Para habilitar SYSKEY en NT 4, tiene que ejecutar el comando SYSKEY, que presenta una ventana como la siguiente:
Al hacer clic en el botón Actualizar de esta ventana, se presentan opciones adicionales de SYSKEY, como la capacidad de determinar cómo y cuándo se almacena la SYSKEY. Ésta puede almacenarse de una de tres maneras: • Modo 1 Se almacena en el Registro y queda disponible automáticamente en tiempo de arranque (es la opción predeterminada) • Modo 2 Se almacena en el Registro, pero se bloquea con una contraseña que debe proporcionarse en tiempo de arranque. • Modo 3 Se almacena en un disco flexible que debe proporcionarse en el tiempo de arranque. En la siguiente ilustración se muestra cómo se seleccionan estos modos:
Las versiones modernas de Windows (hasta Server 2008, incluida) aún implementan el modo 1 de SYSKEY como opción predeterminada y, por tanto, las contraseñas almacenadas en SAM o Active Directory se cifran con SYSKEY, además de incluirse como hash. No tiene que habilitarse manualmente con NT 4 SP3 y posterior.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
En los capítulos 7 y 11 analizaremos las implicaciones de SYSKEY y los mecanismos para evitarla.
BOSQUES, ÁRBOLES Y DOMINIOS Hasta este punto, hemos revisado a la familia NT en el contexto de equipos individuales. Un grupo de sistemas de la familia Windows NT puede agregarse en una unidad lógica denominada dominio. Los dominios de Windows pueden crearse de manera arbitraria con sólo ascender uno o varios servidores de Windows a controlador de dominio. Los controladores de dominio son depósitos de almacenamiento asegurados para información compartida de dominio y también sirven como autoridades centralizadas de autentificación para el dominio. En esencia, un dominio establece un límite distribuido a las cuentas compartidas. Todos los sistemas del dominio comparten un subconjunto de cuentas. A diferencia de NT, que especificaba duplicación de un solo maestro desde los controladores de dominio principales (PDC) a los de copia de seguridad (BDC), los controladores de dominio de Windows 2000 y posteriores son semejantes y participan en duplicación de varios maestros de la información compartida del dominio. Uno de los mayores impactos del desplazamiento a Active Directory en Windows 2000 fue que los dominios ya no fueron el límite administrativo lógico que eran bajo NT. Existen estructuras supradominio, llamadas árboles y bosques, sobre dominios en la jerarquía de Active Directory. Los árboles se relacionan principalmente para asignar nombres a convenciones y tener pocas implicaciones de seguridad, pero los bosques demarcan el límite de los servicios de directorio de Windows 2000 y posteriores y son, por tanto, el límite final del control administrativo. En la figura 2-4 se muestra la estructura de un bosque de ejemplo de Windows Server 2003.
Bosque Confianzas transitivas de dos vías en todo el bosque
Árbol
corp.com (Raíz de bosque, primer bosque de dominio)
rana.corp.com
seguro.corp.com
Dominio
Figura 2-4
La estructura de bosques de Windows
division.com
rana.division.com
41
42
Hackers en Windows Aunque estamos anticipando una gran cantidad de detalles acerca de Active Directory, vamos a detener este análisis aquí para seguir concentrados en el aspecto de los dominios que son el principal objetivo de los atacantes maliciosos: la información de cuenta.
Alcance: local, global y universal Probablemente haya notado las referencias continuas a cuentas y grupos locales en comparación con cuentas globales y universales. Bajo NT, los miembros de los grupos locales tenían la posibilidad de acceder a recursos dentro del alcance de la máquina local, mientras que los miembros de los grupos globales podían acceder a recursos de todo el dominio. Los grupos locales pueden contener grupos globales, pero no viceversa, porque los grupos locales no tienen significado en el contexto de un dominio. Por tanto, una estrategia típica sería agregar usuarios de dominio (agregados en un grupo global para facilitar la carga administrativa) a un grupo local para definir el control de acceso a recursos locales. Por ejemplo, cuando un equipo se une a un dominio, el grupo global Administradores de dominio se agrega automáticamente al grupo Administradores locales, permitiendo que cualquier miembro de los Administradores de dominio se autentifique en el equipo y tenga acceso a todos sus recursos. Active Directory complica esto un poco. En la tabla 2-7 se presenta una lista de los alcances relevantes para AD. Dependiendo del modo del dominio (modo nativo en comparación con modo combinado; consulte la sección “Referencias y lecturas adicionales”), estos tipos de grupos tienen diferentes limitaciones y comportamientos.
Alcance
Descripción
Miembros que puede incluir
Debe otorgarse recursos en
Local
Dentro del equipo
Cuentas, grupos globales y universales de cualquier dominio
Sólo equipo local
Dominio local
Dentro del dominio
Cuentas, grupos globales y universales de cualquier dominio; grupos del dominio local y del mismo dominio
Sólo en el mismo dominio
Global
Entre dominios
Cuentas y grupos globales del mismo dominio
Cualquier dominio en el bosque
Universal
En todo el bosque
Cuentas, grupos globales y universales de cualquier dominio
Cualquier dominio del bosque
Tabla 2-7
Alcances de cuentas
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Confianzas Windows puede formar relaciones entre dominios llamadas confianzas. Las relaciones de confianza sólo crean la posibilidad de acceso entre dominios; no lo habilitan explícitamente. Por tanto, a menudo una relación de confianza se explica como si se construyera un puente sin poner una caseta de peaje. Por ejemplo, un dominio de confianza puede usar directivos de seguridad del dominio de confianza para poblar las listas de control de acceso (ACL) de los recursos, pero esto es sólo a discreción de los administradores de dominio de confianza y no está configurado inherentemente. Puede decirse que las confianzas son de una vía o de dos vías. Una confianza de una vía significa que sólo un dominio confía en el otro, y no viceversa. Las confianzas de dos vías definen dos dominios que confían entre sí. Una confianza de una vía es útil para permitir que los administradores de un dominio definan reglas de control de acceso dentro de su dominio, pero no a la inversa. Las confianzas también pueden ser transitivas o no transitivas. En las primeras, si el dominio A confía de manera transitiva en el B y éste en el C, entonces el dominio A confía transitivamente en el C. Como opción predeterminada, todos los dominios dentro de un bosque de Windows (posterior a NT) tienen confianzas transitivas, de dos vías, entre sí. Windows puede establecer confianzas de una vía, no transitivas, con otros dominios fuera del bosque o con dominios NT heredados. También puede establecer confianzas con otros bosques. (Consulte la siguiente sección, “Confianzas de bosques”).
Límites administrativos: ¿bosque o dominio? Con frecuencia nos plantean la pregunta “¿Cuál es el límite de seguridad real dentro de un bosque de Windows: un dominio o el bosque?”. La respuesta corta a esta pregunta es que mientras el dominio es el límite administrativo principal, ya no es el límite de seguridad hermético que era bajo NT, por varias razones. Una razón es la existencia de grupos universales que podrían otorgar privilegios en cualquier dominio dentro del bosque debido a las confianzas transitivas de dos vías que se establecen automáticamente entre todos los dominios dentro del bosque. Por ejemplo, considere a los miembros de los grupos Administradores de organización y Administradores de esquema que tienen acceso a ciertos aspectos de los bosques secundarios, como opción predeterminada. Estos permisos deben eliminarse manualmente para evitar que los miembros de esos grupos realicen acciones dentro de un dominio determinado. También debe preocuparse por los Administradores de dominio de todos los demás dominios dentro del bosque. Un hecho poco conocido acerca de los bosques de Active Directory, como se establece en la Deployment Planning Guide del Windows 2000 Server Resource Kit, es que “Los Administradores de dominio de cualquier dominio en el bosque tienen la posibilidad de tomar propiedad y modificar cualquier información en el contenedor Configuración de Active Directory. Estos cambios estarán disponibles y duplicarán todos los controladores de dominio en el bosque. Por tanto, para cualquier dominio unido al bosque, debe considerar que el Administrador de dominio de ese dominio es confiable como un igual de cualquier otro Administrador de dominio”. La Deployment Planning Guide especifica los siguientes escenarios que necesitarían la creación de más de un bosque. El siguiente material está citado directamente de la Deployment Planning Guide del Windows 2000 Server Resource Kit (consulte la sección “Referencias y lecturas adicionales”).
43
44
Hackers en Windows
Si organizaciones individuales: No confían en los otros Administradores En el catálogo global reside una representación de cada objeto del bosque. Es posible que un administrador, al que se le ha delegado la capacidad de crear objetos, produzca, con intención o sin ella, una condición de “negación del servicio”. Puede producir esta condición al crear o eliminar rápidamente objetos, con lo que se causa una gran cantidad de duplicaciones del catálogo global. Una excesiva duplicación puede desperdiciar el ancho de banda de la red y hacer más lentos a los servidores del catálogo global, porque desperdician tiempo en procesar la duplicación. No se ponen de acuerdo en una directiva de cambio del bosque Los cambios de esquema y configuración, y la adición de nuevos dominios a un bosque tienen impacto en todo el bosque. Cada una de las organizaciones del bosque debe estar de acuerdo en un proceso para la implementación de esos cambios, y en la membresía de los grupos Administradores de esquema y Administradores de organización. Si las organizaciones no pueden ponerse de acuerdo en una directiva común, no pueden compartir el mismo bosque. Quieren limitar el alcance de una relación de confianza Cada dominio de un bosque confía en todos los demás dominios del bosque. Cada usuario del bosque puede incluirse en una membresía de grupo o aparecer en una lista de control de acceso en cualquier equipo del bosque. Si quiere evitar que ciertos usuarios tengan siquiera permisos otorgados a ciertos recursos, entonces esos usuarios deben residir en un bosque diferente de los recursos. Si es necesario, puede usar relaciones de confianza explícitas para permitir que esos usuarios tengan acceso otorgado a recursos en dominios específicos.
Si no puede lograr el control administrativo de su dominio, sugerimos que mantenga bosques separados. Por supuesto, entonces pierde todos los beneficios de un modelo de bosque unificado, como un catálogo global compartido y espacio de objeto de directorio, y también agrega el trabajo de administración de un bosque adicional. Se trata de un buen ejemplo de la compensación entre conveniencia y seguridad.
El otro lado de la moneda: ¿puedo confiar en un dominio que ve a Internet? También nos hacen a menudo la pregunta opuesta: ¿es mejor crear un bosque separado para agregar dominios confiables a la organización? Esta pregunta resulta especialmente pertinente para crear un dominio que será accesible desde Internet, digamos para una granja de servidores Web. Esta situación puede manejarse de una de dos maneras. Como primera opción, puede crear un bosque separado que vea a Internet y establecer confianzas tradicionales, explícitas de una vía, en un dominio dentro del bosque corporativo para protegerlo de posibles compromisos. Una vez más, en este escenario perdería los beneficios de un directorio compartido entre todos los dominios, aunque obtendría la carga adicional de la administración de varios bosques. La segunda opción consiste en contraer el dominio que ve a Internet y una unidad organizacional (OU, Organizative Unit) dentro del bosque corporativo. El administrador de la OU puede entonces delegar el control sólo sobre los objetos residentes en el OU. Aunque esa cuenta se vea comprometida, el daño al resto de los bosques será limitado. Al igual que con muchas decisiones de esta naturaleza, sólo se tiene que elegir entre una mayor seguridad y una administración más fácil. Antes de que decida, lea la siguiente sección.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Implicaciones del compromiso de un dominio Entonces, ¿qué significa que un dominio dentro de un bosque quede comprometido? Digamos que un hacker toca a un controlador de dominio en un dominio que ve a Internet, o que un empleado molesto de repente decide jugar como un falso Administrador de dominio. He aquí lo que podrían intentar, resumiendo los puntos vistos en esta sección sobre seguridad de bosques, árboles y dominio. Al final, todos los demás dominios del bosque están en riesgo porque los Administradores de dominio de cualquier dominio en el bosque tienen la capacidad de tomar propiedad y modificar cualquier información en el contenedor de Configuración de Active Directory y pueden duplicar los cambios al contenedor de cualquier controlador de dominio en el bosque. Además, si cualquier cuenta de dominio externo está autentificada en el dominio comprometido, el atacante puede adquirir esas credenciales a través del caché LSA Secreto (consulte el capítulo 8), extendiendo su influencia a otros dominios en el bosque o a dominios en otros bosques. Por último, si el dominio raíz está comprometido, los miembros de los Administradores de organización o Administradores de esquema tienen la posibilidad de ejercer control sobre aspectos de todos los demás dominios en el bosque, a menos que estos grupos tengan el acceso limitado manualmente.
Confianzas de bosques En Windows 2000, no había manera de establecer confianzas entre bosques. Si los usuarios de un bosque necesitaban acceso a los recursos de un segundo bosque, estaban limitados a crear una relación de confianza externa entre los dominios dentro de cualquier bosque. Esas confianzas son de una vía, no transitivas y, por tanto, no extienden las rutas de confianza a todos los bosques. En Windows Server 2003 se introdujeron las confianzas de bosques, un nuevo tipo de confianza que permite a todos los dominios de un bosque confiar (transitivamente) en todos los dominios de otro bosque, mediante un simple vínculo de confianza entre los dos dominios raíz del bosque. El principal beneficio de esta característica es que proporciona a las empresas que adquieren o se fusionan con otras compañías la ruta de integración más fácil para sus infraestructuras existentes. Para crear una confianza de bosques, todos los controladores de dominio en ambos bosques deben estar ejecutándose en modo nativo (lo cual requiere que todos los controladores de dominio sean de Windows Server 2003 o posterior).
Nota
Las confianzas de bosques pueden ser de una o de dos vías, pero no son restrictivas en el nivel del bosque entre tres o más bosques. Si el bosque A confía en el B y éste confía en el C, esto no crea una relación de confianza entre el bosque A y el C.
Firewall de autentificación Como opción predeterminada, los usuarios de bosques confiables son capaces de autentificarse en cualquier recurso del otro bosque mediante la identidad Usuarios autentificados, a menos que la opción Autentificación selectiva se haya establecido en la confianza. Eso permite el firewall de autentificación, una nueva característica en Windows Server 2003 que permite a los usuarios autentificarse sólo en recursos seleccionados a través de una confianza de modo nativo. El firewall de autentificación detiene todas las autentificaciones en los controladores de dominio en el bosque del recurso. El controlador de dominio agrega el SID Otra empresa (consulte la tabla 2-4) para la ficha de autentificación del usuario. Este SID se revisa contra un derecho Permiso para autentificar en un objeto para el usuario o grupo especificado del otro bosque o dominio (esto debe haberse configurado manualmente de antemano). Si esta verificación tiene éxito, el SID Esta empresa se agrega a la ficha de autentificación del usuario, reemplazando el SID Otra empresa (sólo puede dejar uno o el otro).
45
46
Hackers en Windows
Nota
Recuerde que las confianzas de bosques sólo son posibles en dominios en modo nativo de Windows Server 2003 y posteriores, de modo que sólo en este escenario puede usarse un firewall de autentificación.
Lo más importante He aquí un resumen de bosques, árboles y dominios en Windows desde la perspectiva de un hacker malicioso. Los controladores de dominio son el objetivo más probable de los ataques maliciosos, porque albergan una gran cantidad de información de cuentas. También es probable que, en un entorno de Windows, sean los sistemas más asegurados y monitoreados, de modo que un plan común consiste en atacar sistemas defendidos con menos eficiencia en un dominio, y luego utilizar este punto de apoyo temprano para obtener después el control completo de cualquier dominio relacionado con él. La extensión del daño hecho a través del compromiso de un solo sistema mejora en gran medida cuando las cuentas de un dominio son autentificadas en otro dominio mediante el uso de confianzas. El límite de seguridad de Windows 2000 y posteriores es el bosques, no el dominio, como lo era bajo NT. Las confianzas de bosque pueden configurarse entre bosques de modo nativo de Windows Server 2003 y posteriores, extendiendo los límites de la seguridad entre ambos bosques, a menos que esté habilitada la firewall de autentificación.
AUDITORÍA Hemos hablado mucho acerca de la autentificación y el control de acceso hasta ahora, pero en un sistema de seguridad de la familia NT puede hacer muchas cosas más que sólo otorgar o negar el acceso a recursos. También puede auditar ese acceso. La directiva de auditoría de Windows se define a través de la directiva de seguridad. En esencia, define cuáles sucesos se registran, y se administra a través del subsistema de autoridad de seguridad local (una vez más, LSASS, Local Security Authority SubSystem). Las partes del modo de kernel del subsistema de seguridad funcionan en concierto con el administrador de objetos de Windows para generar registros de auditoría y enviarlos a LSASS. Éste agrega detalles relevantes (el SID de la cuenta que realiza el acceso, etcétera) y los escribe en el Registro de sucesos, que a su vez lo registra en el Registro de sucesos de seguridad. Si se establece auditoría para un objeto, se asigna una lista de control de acceso del sistema (SACL, System Access Control List) al objeto. La SACL define las operaciones mediante las cuales los usuarios deben iniciar sesión en el registro de auditoría de seguridad. Pueden auditar los intentos que tienen éxito y los que no lo tienen. En el caso de sistemas de Windows, recomendamos que la directiva de auditoría del sistema se establezca en la configuración más agresiva (la auditoría está deshabilitada, como opción predeterminada). Es decir, habilite la auditoría de correcto/erróneo para todos los sucesos de Windows, excepto por el rastreo de procesos, como se muestra en la figura 2-5. Tome en cuenta que al habilitar la auditoría de acceso a objetos en realidad no se habilita la auditoría de todos los accesos a objetos; sólo el posible acceso que puede ser auditado. Aún debe especificarse la auditoría en cada objeto individual. En controladores de dominio de Windows, la auditoría pesada de acceso a directorios puede llevar a un daño en el rendimiento. Asegúrese de ajustar sus parámetros de auditoría al papel específico del sistema en cuestión.
Administración del Registro de sucesos En el caso de entornos a gran escala, tal vez el problema más importante que enfrentará con las auditorías de Windows no es qué auditar, sino cómo administrar los datos que se producen. En resumen, recomendamos configurar el Registro de sucesos de seguridad a un tamaño máximo de 131 072 KB y sobreescribir lo que sea necesario para la mayor parte de las aplicaciones (ésta es ahora la configuración predeterminada en Windows Server 2008). El Registro de aplicaciones y el Registro del sistema deben establecerse en alrededor del 20% de este tamaño.
Capítulo 2:
Figura 2-5
Sugerencia
La arquitectura de seguridad de Windows desde la perspectiva del hacker
Directiva de auditoría recomendada para Windows
El tamaño del Registro de sucesos y configuraciones relacionadas pueden establecerse centralmente utilizando el Editor de objetos de directivas de grupos para editar la directiva del dominio; busque bajo Configuración del equipo\Configuración de Windows\Configuración de seguridad\Registro de sucesos.
Microsoft introdujo algunas mejoras al subsistema de auditoría de seguridad en Vista, incluida la capacidad de auditar categorías para incluir varias subcategorías. Vista también integra una colección de sucesos de auditoría y reenvío de datos de auditoría críticos a una ubicación central (esta capacidad se anunció originalmente como el sistema de colección de auditorías de Microsoft (MACS, Microsoft Audit Collection System) y fue extraída de una versión posterior a Windows Server 2003; una funcionalidad similar está caracterizada para entregarse en versiones futuras del administrador de operaciones de Microsoft (MOM, Microsoft Operations Manager). La característica ahora está disponible bajo Administración de equipos\Visor de sucesos\Suscripciones. Ambas características permiten que las empresas mejoren su capacidad para organizar, analizar y correlacionar datos de auditoría. También hay herramientas de administración de sucesos de seguridad de terceros, de compañías entre las que se incluyen ArcSight y NetIQ.
Criptografía En ese capítulo nos hemos concentrado principalmente en las características básicas de control de acceso del sistema operativo, pero ¿qué pasa con características de seguridad más poderosas como la criptografía? A partir de Windows 2000, cada cuenta de usuario recibió un par de claves pública/privada, usadas por el sistema operativo para realizar muchas funciones importantes. Un hacker malicioso que compromete una cuenta por lo general no tiene la capacidad de accesar las claves criptográficas relacionadas con esa cuenta. Verá un ejemplo clásico de esto en el capítulo 11, cuando exploremos cómo el sistema de archivo de cifrado (EFS, Encrypting File System) usa claves criptográficas relacionadas con cuentas de usuario para cifrar archivos. En la tabla 2-8 se presenta una lista de las ubicaciones de almacenamiento en Windows Server 2003 para materiales criptográficos.
47
48
Hackers en Windows
Clave
Almacenada
Comentarios
Clave privada de usuario
%userprofile%\Application Data\ Microsoft\Crypto\RSA\ (también en controlador dominio si está habilitado el perfil de roaming)
Todos los archivos de esta carpeta están cifrados con la clave maestra del usuario y RC4 (128 o 56 bits, dependiendo de la ubicación)
Clave maestra de usuario
%userprofile%\Application Data\Microsoft\Protect (también en controlador de dominio si se habilita el perfil de roaming)
La clave maestra se cifra automáticamente mediante el servicio de almacenamiento protegido y se almacena aquí
Certificados de clave pública de usuario
%userprofile%\Application Data\ Microsoft\SystemCertificates\My\ Certificates
Por lo general, se publican para permitir que otros cifren datos que sólo pueden descifrarse mediante la clave privada del usuario
Clave maestra de copia de seguridad/ restauración de controlador de dominio
Almacenado como una LSA secreta global en HKLM/SAM
Usada para recuperar la clave maestra del usuario sin dependencias de la contraseña del usuario
Tabla 2-8
Ubicaciones de almacenamiento para las claves criptográficas
Puede usar el complemento Certificados de la consola de administración de Microsoft (MMC, Microsoft Management Console) para ver los almacenes de certificados personales del usuario. Nunca debe cambiarse el nombre de la carpeta RSA, ni moverse, porque es el único lugar en que los proveedores de servicio criptográfico (CFP, Cryptographic Service Provider) del sistema operativo buscan claves privadas. Los Certificados del sistema, RSA, y carpetas protegidas tienen sus atributos de sistema establecidos. Esto evita que los archivos que contienen sean cifrados por EFS, lo que los haría inaccesibles. Sugerencia
Microsoft Outlook ofrece su propia interfaz para importación y exportación de claves S/MIME (usadas para cifrar y firmar correo electrónico), pero no le permite establecer protección fuerte al acceso a la clave privada. Debe usar el complemento Certificados de la MMC para importar claves S/MIME, si quiere habilitar esta funcionalidad.
El .NET Framework Un nuevo cambio importante hecho en Windows Server 2003 es la fuerte integración de .NET Framework. Se trata de una plataforma de desarrollo diseñada para simplificar la creación de aplicaciones distribuidas. Tiene varios componentes principales: el tiempo de ejecución de lenguaje común (CLR, Common Language Runtime). La biblioteca de clases de .NET Framework y los hosts del motor de tiempo de ejecución.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
El CLR es la base de .NET Framework. Se trata en realidad de un entorno de ejecución separado del motor en tiempo de ejecución del sistema operativo estándar. Los ejecutables escritos utilizando el .NET Framework (llamados ensamblados) se combinan para ejecutarse en el CLR y no en el motor en tiempo de ejecución del sistema operativo. La biblioteca de clases de .NET Framework es una colección de bibliotecas de clases que pueden usarse para desarrollar aplicaciones .NET. .NET Framework también proporciona varios hosts en tiempo de ejecución, incluidos Windows Forms y ASP.NET, que funcionan directamente con el CLR para implementar entornos en tiempo de ejecución de lado del servidor. .NET Framework se instala como opción predeterminada a partir de Windows Server 2003. Se han escrito libros completos acerca de la seguridad en .NET Framework y no vamos a entrar en un gran nivel de detalle aquí. Para conocer más información acerca de .NET Framework, consulte la sección “Referencias y lecturas adicionales”, al final de este capítulo. Nos concentraremos aquí principalmente en la ubicación de los archivos de configuración claves para el CLR, que pueden ser el objetivo de hackers maliciosos, si se les da la oportunidad. Los archivos de .NET Framework instalados en %systemroot%Microsoft.NET\Framework\ (cada versión instalada de .NET tiene su propia carpeta separada aquí). Algunos archivos de configuración también se almacenan en el directorio de perfil del usuario. En la tabla 2-9 se ilustran los archivos de configuración que controlan la directiva de seguridad de .NET Framework. Esos archivos XML contienen datos de configuración que controlan los tipos de ensamblados que pueden ejecutarse en el sistema y los permisos de seguridad a los que los ensamblados pueden adherirse una vez que se cargan en tiempo de ejecución. El conjunto del permiso que un ensamblado recibe se determina por la intersección de los permisos establecidos definidos por cada uno de estos tres niveles de directiva en una manera jerárquica: la directiva de la empresa desplaza al archivo security.config local, que desplaza al archivo security.config del usuario. Es posible manipular los parámetros en estos archivos de configuración utilizando la herramienta de configuración de .NET Framework (mscorcfg.msc).
Archivos Machine.config, Web.config y Custom.config Otros archivos de configuración claves de .NET Framework, que deben considerarse desde la perspectiva de la seguridad, son Machine.config (almacenado en la carpeta de sistema de .NET, por versión), que establece parámetros locales para ensamblados que se ejecutan en el sistema; Web.config (por lo general almacenado en la carpeta raíz de una aplicación Web, como C:\Inetpub\ wwwroot\), que define los parámetros de configuración de seguridad en el nivel de la aplicación como protocolos de autentificación y listas de nombre de usuario/contraseña; y los archivos custom.config que puede tomar cualquier nombre que resida en directorios de la aplicación.
Archivo
Ubicación
Enterprise.config
%ruta de instalación de CLR%\Config\
Security.config
%ruta de instalación de CLR%\Config\
Security.config
%userprofile%\Application data\Microsoft\CLR security config\%CLR version%\
Tabla 2-9
Archivos de directivas de seguridad de .NET Framework
49
50
Hackers en Windows
RESUMEN En este capítulo se cubrieron los siguientes puntos importantes: • Todo el acceso a Windows es autentificado (aunque sea con la identidad Todos) y se crea una ficha de acceso para todas las cuentas autentificadas con éxito. Esta ficha se usa para autorizar todos los accesos posteriores a los recursos en el sistema por parte del subsistema de seguridad (que compromete a los componentes de modo de usuario y de kernel). A la fecha, nadie ha descubierto públicamente una técnica para vencer esta arquitectura, aparte de ejecutar comandos arbitrarios en el modo de kernel, derrotando la integridad de todo el sistema. • Windows usa SID para identificar cuentas internamente; los nombres de cuenta amigables son simples conveniencias. Recuerde usar el nombre de dominio o del equipo antecedido con el nombre del usuario, cuando use el comando net use para iniciar sesión en los sistemas remotos (Windows interpreta el SID, no el nombre de cuenta amigable). • Los miembros del grupo Administradores son el objetivo más jugoso en el sistema local de Windows, porque heredan los mayores privilegios. Todas las demás cuentas tienen privilegios muy limitados relacionados con los administradores. Comprometer a un administrador es, por tanto, casi siempre el objetivo final de un atacante. • Los Administradores de dominio y Administradores de organización son los objetivos más jugosos en un dominio de Windows porque son todopoderosos en el dominio o el bosque. El compromiso de una cuenta que ya es miembro de uno de estos grupos, o la adición de una cuenta comprometida a los Administradores locales, los Administradores de dominio o los Administradores de organización es, por tanto, casi siempre el objetivo final de un atacante. • El grupo Todos puede tomarse como impulso para tener un punto de avanzada en un sistema de Windows sin autentificar. Además, se requiere la identidad INTERACTIVO en muchas instancias para ejecutar ataques de escalada de privilegios contra Windows. • La información de las cuentas se mantiene en el SAM (%systemroot%\system32\ config\sam) o Active Directory (%systemroot%\ntds\ntds.dit), como opción predeterminada. Las contraseñas se revuelven de modo irreversible (se les aplica hash) de modo tal que el texto limpio correspondiente no pueda derivarse directamente, aunque pueda crackearse, como lo verá en el capítulo 7. • Los controladores de dominio son los objetivos más probables de los ataques maliciosos, porque albergan toda la información de las cuentas de un dominio determinado. También es probable que, en un entorno de Windows, sean los sistemas más asegurados y monitoreados, de modo que un plan común consiste en atacar sistemas defendidos con menos eficiencia en un dominio y luego utilizar este punto de apoyo temprano para obtener después el control completo de cualquier dominio relacionado con él. • La extensión del daño hecho a través del compromiso de un solo sistema aumenta en gran medida cuando las cuentas de un dominio son autentificadas en otro dominio mediante el uso de confianzas. • El límite de confianza en Windows 2000 y posterior es el bosque, no el dominio, como en NT. Las confianzas de bosques son posibles en modo nativo de Windows Server 2003 y posterior.
Capítulo 2:
La arquitectura de seguridad de Windows desde la perspectiva del hacker
• La autentificación local es diferente de la autentificación de red, que usa los protocolos LM/NTLM, como opción determinada, bajo Windows. El algoritmo de autentificación LM tiene debilidades conocidas que lo hacen vulnerable a los ataques; éstos se analizan en el capítulo 5. Windows 2000 y posteriores pueden usar opcionalmente el protocolo de autentificación de red Kerberos en entornos homogéneos, dentro de un bosque, pero actualmente no se dispone de ningún mecanismo para forzar el uso de Kerberos. Éste también tiene mecanismos de ataque conocidos, que analizaremos en el capítulo 5. • Además de la autentificación y la autorización, Windows puede auditar el éxito y la falla de todos los accesos a objetos, si esa auditoría es habilitada en el nivel de sistema, y específicamente en relación con el objeto que habrá de auditarse. • Algunos otros elementos importantes de Windows que los intrusos pueden tomar como objetivos son las claves criptográficas y los archivos de configuración de .NET Framework.
REFERENCIAS Y LECTURAS ADICIONALES Referencia
Ubicación
Herramientas gratuitas User2sid/sid2user
www.chem.msu.su/~rudnyi/NT/
DumpTokenInfo
www.windowsitsecurity.com/Articles/Index.cfm?ArticleID=15989
wsname
http://mystuff.clarke.co.nz/MyStuff/Default.asp
Referencias generales Architectura de Windows NT
http://en.wikipedia.org/wiki/Architecture_of_Windows_NT
Explotación 802.11 de vulnerabilidad de unidad inalámbrica en Windows
http://uninformed.org/?v=6&a=2&t=sumry
Incidente con el “rootkit” de Sony
www.securityfocus.com/brief/45
Omisión de PatchGuard en Windows x64
http://uninformed.org/?v=3&a=3&t=sumry
Subversión de PatchGuard versión 2
http://uninformed.org/?v=6&a=1&t=sumry
Modelo de control de acceso
http://msdn2.microsoft.com/en-us/library/aa374876.aspx
Objetos asegurables
http://msdn2.microsoft.com/en-us/library/aa379557.aspx
Seguridad en Windows Vista y mejoras en la protección de datos, incluido el endurecimiento del servicio
http://technet.microsoft.com/en-us/windowsvista/aa905073.aspx
Control obligatorio de integridad (MIC)
http://blogs.technet.com/steriley/archive/2006/07/21/442870.aspx
Herramientas y configuraciones de directivos de seguridad
http://technet2.microsoft.com/windowsserver/en/library/1bc9569c4ef1-40d2-822d-19d9a2a7665d1033.mspx?mfr=true
51
52
Hackers en Windows
Referencia
Ubicación
Guía de seguridad de Microsoft’s Windows Server 2003
http://microsoft.com/downloads/details.aspx?FamilyId= 8A2643C1-0685-4D89-B655-521EA6C7B4DB
Criterios comunes para evaluación de la seguridad en tecnología de la información (CCITSE) o Criterios comunes (CC)
www.commoncriteriaportal.org
Revisión general de Active Directory de Microsoft
http://en.wikipedia.org/wiki/Active_Directory
Derechos de usuario en Windows Server 2003
http://www.microsoft.com/resources/documentation/windows/xp/ all/proddocs/en-us/uratopnode.mspx?mfr=true
Windows Vista para desarrolladores, parte 4: control de cuenta de usuario
http://weblogs.asp.net/kennykerr/archive/2006/09/29/Windows-Vistafor-Developers-_1320_-Part-4-_1320_-User-Account-Control.aspx
Q143475, “Clave de Windows NT del sistema permite cifrado seguro del SAM”
http://support.microsoft.com/support/kb/articles/q143/4/75.asp
Sitio de Luke Kenneth Casson Leighton, un gran recurso para información de autentificación en Windows
www.cb1.com/~lkcl/
Referencias de .NET Framework Página principal de .NET Framework en la red de desarrolladores de Microsoft
http://msdn.microsoft.com/netframework/
GotDotNet, mantenido por empleados de Microsoft en el equipo de desarrollo de .NET Framework
www.gotdotnet.com
Libros recomendados Inside Windows 2000, 3a edición
por Solomon & Russinovich. Microsoft Press (2000)
Undocumented Windows NT
por Dabak, Phadke, and Borate. IDG Books (1999)
DCE/RPC over SMB: Samba and Windows NT Domain Internals
por Luke Kenneth Casson Leighton. SAMS (1999)
.NET Framework Security
por Brian A. LaMacchia et al. Pearson Education (2002)
Hacking Exposed Web Applications, 2a. Edición
por Joel Scambray, Mike Shema y Caleb Sima. McGraw-Hill (2006)
CAPÍTULO
3
N Ó I C C E L O C RE N Ó I C A M R O F DE IN O E R T S Y RA 53
54
Hackers en Windows
T
odos hemos oído la frase “espiar el establecimiento”, porque se usa para describir las fases preparatorias de un robo bien planeado. La recolección de información y el rastreo son el equivalente digital de espiar el establecimiento. La recolección de información podría considerarse el equivalente de buscar en el directorio telefónico los números y las direcciones relacionados con un objetivo corporativo, mientras que el rastreo (exploración) es similar a ir al lugar en cuestión e identificar cuáles edificios están ocupados y cuáles puertas y ventanas pueden estar disponibles para acceso. La recolección de información y el rastreo representan la identificación de destinos en los que se puede irrumpir y las vías disponibles de entrada y son el primer paso crítico en la metodología del atacante de Windows. Resulta claro que atacar la casa equivocada o pasar por alto la puerta de al lado que no tiene cerradura puede descarrilar rápidamente un ataque o la auditoría de penetración legítima de una organización.
RECOLECCIÓN DE INFORMACIÓN Recolección de información es el proceso de creación de un perfil completo de la situación en tecnología de la información (IT, Information Technology) del objetivo, que suele abarcar las siguientes categorías: • Internet Nombres de dominio de red (sistema de nombres de dominio o DNS), bloques de direcciones de red y ubicación de sistemas críticos como servidores, hosts de intercambio de correo, gateways, etcétera. • Intranet En esencia, los mismos componentes que la categoría de Internet, pero específica para redes internas con su propio separador dirección/espacio de nombres, si es aplicable. • Acceso remoto Puntos de acceso de marcado telefónico y redes privadas virtuales (VPN, Virtual Private Networks). • Extranet Organizaciones socias, subsidiarias, redes, conectividad de terceros, etcétera. • Varios Categoría general para cualquier fuente de información que no caiga de manera explícita en las demás categorías, incluidos Usenet, mensajería instantánea, bases de datos de la comisión de valores e intercambio, o bolsa de valores (SEC, Securities and Exchange Commission), perfiles de empleados, etcétera. Desde la perspectiva del probador profesional de penetraciones, al recolectar información lo que se busca es, principalmente, delimitar el trabajo de manera completa. Debe probar la recolección de información de cada una de las categorías de IT de la organización de una manera metodológica y completa para asegurar que ningún aspecto de la situación digital de la organización se pase por alto en la posterior prueba de rastreo y penetración. Por supuesto, tal vez la postura del hacker malicioso sea la misma: busca las partes olvidadas de una infraestructura que esté sin protección, con deficiencias de mantenimiento, configurada de manera insegura, o cualquier combinación de estos tres factores. Una vez dicho esto, la revisión de muchos de estos componentes está fuera del alcance de este libro, que se concentra en Windows. Por ejemplo, la recopilación de información de la presencia de acceso remoto de un objetivo suele hacerse al analizar los registros telefónicos y realizar una guerra de marcado, que no es un proceso específico de Windows. La delimitación física
Capítulo 3:
Recolección de información y rastreo
de esta guerra que gira alrededor de las oficinas distribuidas de la corporación, o la evaluación de los sistemas de punto de venta también son buenos ejemplos de tipos de investigación no orientada a Windows. No se quiere decir con esto que este análisis no sea crítico para estimar la postura general de una organización, sino que suele requerir técnicas analíticas interdisciplinarias que no necesariamente están centradas en Windows. Nos concentraremos brevemente en la recopilación de información de sistemas de Windows vía Internet, porque suele ser la fuente de las fugas de información más peligrosas acerca de la presencia en línea de una organización.
Whois Popularidad:
6
Simplicidad:
9
Impacto:
1
Clasificación de riesgo:
5
Pueden usarse muchas herramientas para recopilar información de la presencia en Internet de una organización, pero la más completa y efectiva es whois, la utilería estándar para consulta de registros de Internet. Proporciona varios tipos de información acerca de la presencia en Internet de una organización, incluida la siguiente: • • • • •
Datos de registradores de Internet Información de la organización Servidores del sistema de nombres de dominio (DNS, Domain Name System) Asignaciones de bloques de direcciones de red Información de punto de contacto (POC, Point Of Contact)
Los datos consultados mediante whois están dispersos en diversos servidores de todo el mundo por razones técnicas y políticas. Para complicar las cosas, la sintaxis de consulta de WHOIS, el tipo de consultas permitido, los datos disponibles y el formato de los resultados puede variar ampliamente entre un servidor y otro. Más aún, muchos de los registradores están restringiendo activamente las consultas a spammers combativos, hackers y sobrecarga de recursos (por cierto, la información para .mil y .gob se ha extraído por completo de la vista del público debido a problemas de seguridad nacional). Por último, los nombres de dominio de Internet (como winhackingexposed.com) están registrados de manera separada de las direcciones numéricas [como direcciones IP, bloques de red, números de sistema autónomo del protocolo de gateway límite (BGP, Border Gatewy Protocol), etc.], de modo que deben aplicarse generalmente dos metodologías separadas de whois para desarrollar información completa acerca de un objetivo. A pesar de estas peculiaridades, whois sigue siendo una de las herramientas disponibles más efectivas para minado de datos de presencia de Internet, de modo que analizaremos aquí algunas de las técnicas más prominentes para explotarlo. Una estupenda herramienta para la realización de muchos tipos de consultas en Internet es Sam Spade, que se incluye en la versión Win32 y cuya interfaz Web está disponible junto con la versión en http://sampspade.org. La herramienta de Sam Spade se muestra en la figura 3-1, realizando una consulta de nombre de dominio que revela números telefónicos de contacto administrativos.
55
56
Hackers en Windows
Figura 3-1 La herramienta de consulta whois de Sam Spade revela información de punto de contacto acerca de un objetivo corporativo
Mucha de la información revelada por whois puede parecer inocua, pero para resaltar los posibles riesgos, siempre nos gusta relatar una de nuestras anécdotas favoritas de consultoría, relacionada con una compañía de tecnología de tamaño medio que publicó el nombre de su director de información, línea de teléfono directo y dirección de correo electrónico como información de punto de contacto para la organización en uno de los grandes registros de Internet. Por tanto, la obtención de esta información era trivial empleando una consulta whois POC. Utilizando esta información para hacernos pasar como el director de información, rápidamente obtuvimos acceso remoto a varios recursos internos valiosos en el cliente y unos días después habíamos comprometido toda la infraestructura de red de la compañía. Sam Spade es eficiente en varios tipos de consulta whois y puede buscar en muchas bases de datos whois diferentes en Internet (registros de nombre de dominio, bases de datos de direcciones IP, etc.). También realiza muchas tareas más que sólo whois, incluidas ping, traza de ruta, búsqueda a profundidad, transferencias de zona DNS, revisión de retransmisión SMTP, rastreo de sitios Web y mucho más. Realmente es una utilería práctica. Como se indicó antes, la información de dirección IP se almacena en un conjunto separado de registros de datos de nombre de dominio. Aunque Sam Spade puede consultar registros de direcciones IP, en ocasiones nos resulta útil visitarlos directamente. El American Registry for Internet Numbers (ARIN) es el cuerpo oficial para asignar bloques de direcciones IP en Estados Unidos y ofrece una herramienta whois basada en Web para búsqueda en su base de datos en http://arin.net/whois. Por supuesto, necesitará consultar otros registros como Asia-Pacific Network Information Center (APNIC) y Réseaux IP Européens (RIPE) para bloques que no se
Capítulo 3:
Recolección de información y rastreo
encuentran en Estados Unidos. En la figura 3-2 se muestra una consulta de ejemplo contra el nombre de empresa “Foundstone” que se ejecutó usando la herramienta whois Web de ARIN.
Contramedidas ante la recopilación de información con whois El etos original libre y abierto de Internet deja una gran cantidad de información accesible para el público y hoy en día sigue siendo el caso predeterminado. A medida que ha madurado el mercado de registro de nombres de dominio en Internet, las opciones para proteger mejor esta información se han extendido más. Por ejemplo, compañías de host de Internet como Verio ahora ofrecen “registro privado” que oculta los datos críticos de registro de nombre de dominio (el nombre, la dirección y el número de teléfono para contactos administrativos y técnicos se cambiará por información genérica relacionada con Verio), reduciendo, así, la posibilidad de estar sujeto a robo de identidad y envío de correo basura no deseado. Verio cobra una cuota anual por esta característica, lo que nos parece un tanto indeseable (¿deben cobrar la cuota para publicar los datos o, quizás, cobrar a quienes ejecutan la consulta?). ARIN permite que la información de punto de contacto se designe como privada, con la excepción de que la información de por lo menos un punto de contacto debe ser visible. Ya sea que se marque como privada, o no, las organizaciones deben dar algunos pasos para limitar la calidad de la información que ponen a disposición mediante whois o consultas similares. Una regla de oro es que la información proporcionada a los registradores de Internet debe limpiarse de información de contacto directo con personal específico de la empresa u otra información inapropiada. Recuerde la historia acerca del director de información que hizo que su información de contacto se publicara en datos de whois.
Figura 3-2 Una consulta contra “Foundstone” ejecutada mediante la herramienta Web whois de ARIN proporciona los bloques de direcciones IP que definen la presencia en Internet de la empresa
57
58
Hackers en Windows
Motores de búsqueda de Internet Popularidad:
6
Simplicidad:
9
Impacto:
1
Clasificación de riesgo:
5
La identificación en Internet de sistemas de Windows dentro de sitios o dominios específicos es muy fácil utilizando un motor de búsqueda estándar. Uno de nuestros favoritos es Google, que puede encontrar apariciones de rutas de archivo y convenciones de nombre comunes de la familia NT en todo Internet o sólo dentro de un sitio o dominio. En la figura 3-3 se muestra un ejemplo de una búsqueda con Google del dominio .com de Internet para la ruta raíz de Web común de NT/2000 C:\Inetpub. Observe que esta búsqueda identificó casi 48 000 coincidencias en 0.23 segundos. La búsqueda de elementos más jugosos es tan fácil como imaginarlos y buscarlos mediante Google (piense en contraseñas, topologías y cadenas de conexión). La búsqueda podría fácilmente crearse y estrecharse a la medida de un sitio o dominio específico, como www.victima. com o victima.com, empleando la opción Búsqueda avanzada de Google. En la tabla 3-1 se muestran algunas otras cadenas de búsqueda interesantes usadas para identificar sistemas de Windows en Internet vía los motores de búsqueda como Google. El asistente mejor conocido
Figura 3-3
Uso de Google para encontrar sistemas de Windows en el dominio de nivel superior “.com”
Capítulo 3:
Recolección de información y rastreo
Cadena de búsqueda
Posible resultado
c:\winnt
Muestra servidores con páginas que hacen referencia a la carpeta del sistema estándar de NT/2000
c:\inetpub
Revela servidores con páginas que hacen referencia a la carpeta raíz de servicios de Internet estándar de NT/2000
TSWeb/default.htm
Identifica los Servicios de terminal de Windows Server 2003 accesibles mediante el control ActiveX incrustado en el explorador
Tabla 3-1
Cadenas de búsqueda de ejemplo y sus resultados
para usar Google con el fin de encontrar los datos más alarmantemente confidenciales es j0hnny, cuya Google Hacking Database en http://johnny.ihackstuff.com/ghdb.php simplemente lo dejará perplejo con las cosas que pueden encontrarse con búsquedas simples. El principal culpable detrás de este problema es la colocación de rutas de archivo reveladoras en el HTML de una página Web. Debido a que los motores de búsqueda como Google simplemente indizan el contenido de los sitios de Internet, lo convierten en un índice práctico de los sitios que contienen cadenas como c:\winnt y similares. Uno de los mejores ejemplos de esto es cuando el título de una página Web contiene información acerca de la ruta a un documento. (El título puede encontrarse dentro de las etiquetas .) En ocasiones, Microsoft FrontPage inserta automáticamente la ruta completa a un documento cuando genera HTML, de modo que esté consciente de que este comportamiento puede ofrecer más información acerca de sus sistemas de la que quisiera compartir.
Contramedidas ante la recopilación de información con motores de búsqueda Para evitar que su sitio se muestre en una búsqueda simple en Internet, necesita eliminar referencias a cadenas reveladoras en su HTML. Si cree que no le gustará explorar su propio HTML en busca de estas minas, siempre puede usar un motor de búsqueda para descubrirlas. Aunque tenga éxito en la eliminación de datos inapropiados de su contenido Web, usted debe estar consciente de que Internet tiene memoria. Aplicaciones como la caché de Google y la Wayback Machine en web.archive toman instantáneas de contenido Web que data desde 1996. El único recurso que conocemos para estos casos es acercarse a los propietarios de la aplicación (como Google) y solicitar que se elimine o purgue la información en caché de los datos ofensores. En el resto de este capítulo y, por cierto, de todo el libro, supondremos que se ha hecho el trabajo crucial de recopilar información. Esto no significa disminuir el papel crítico que juega la recopilación de información en la metodología general de un ataque. Evidentemente, si los pasos básicos de cualquier metodología no se realizan con deliberación y precisión, el resto del proceso padece inmensamente (¡sobre todo en seguridad, donde un servidor o una línea de módem descuidado puede ser su ruina!).
59
60
Hackers en Windows
RASTREO Suponiendo que se ha obtenido una adecuada recopilación de información, el siguiente paso es identificar cuáles sistemas están “vivos” dentro de los rangos de red y qué servicios ofrecen. Para regresar brevemente a nuestra analogía de espiar el establecimiento, el rastreo es como identificar la ubicación del establecimiento y catalogar sus puertas y ventanas. El rastreo abarca estos tres componentes principales: • Barridos de ping • Rastreo de puertos • Obtención de anuncios En esta sección hablaremos de cada una de estas técnicas. Sugerencia
Una vez más, aquí nos concentraremos en Windows, pero resulta evidente que el rastreo es aplicable a todas las tecnologías, sean fabricadas por Microsoft o no.
Barridos de ping Popularidad:
5
Simplicidad:
5
Impacto:
1
Clasificación de riesgo:
4
La solicitud de eco del protocolo de mensajes de control de Internet (ICMP, Internet Control Message Protocol), mejor conocida como ping, por la utilería que realiza esas solicitudes, se ha usado tradicionalmente para determinar si un host TCP/IP está vivo. Es probable que cualquier persona que esté leyendo este libro haya usado ping en un momento u otro, pero he aquí una rápida ilustración de la utilería ping integrada de Windows para aquellos pocos que han pasado su vida entre algodones hasta este punto. C:\>ping www.victima.tst Haciendo ping a www.victima.tst [192.168.2.5] con 32 bytes de datos: Respuesta Respuesta Respuesta Respuesta
desde desde desde desde
192.168.2.5: 192.168.2.5: 192.168.2.5: 192.168.2.5:
bytes=32 bytes=32 bytes=32 bytes=32
tiempo