Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIVERSISDAD NACIONAL AUTÓNOMA DE MÉXICO _______________________________________ _______________________________________ FACULTAD DE INGENIERÍA “Análisis forense en sistemas Windows” T E S I S QUE PARA OBTENER EL TÍTULO DE Ingeniero en Computación P R E S E N T A LUIS FERNANDO FUENTES SERRANO DIRECTOR DE TESIS: ING. RUBÉN AQUINO LUNA 2007 UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. Agradecimientos A la Universidad Nacional Autónoma de México y especialmente a mi querida Facultad de Ingeniería por todo el conocimiento obtenido, las oportunidades que me brindó y sobre todo por los momentos inolvidables que he vivido en ella. A mi familia que fue esencial para alcanzar este objetivo… ustedes saben por cuantas cosas hemos pasado juntos. Todo su apoyo y cariño incondicionales me ayudaron a salir adelante en los momentos difíciles. A mi papá y a mi mamá a quienes orgullosamente les dedico este logro. A los ingenieros Jesús Jiménez Rojas y Rubén Aquino Luna por compartir sus conocimientos y apoyarme en la dirección y revisión de esta tesis. A mis amigos de la Facultad, de UNICA y del UNAM-CERT que alegraron todo momento que compartimos juntos. A todas aquellas personas especiales que estuvieron conmigo y que fueron muy importantes en alguna etapa de mi vida. Índice general 1. Introducción 1.1. Introducción a la seguridad en cómputo …………………………………………......... 1.1.1. Seguridad en cómputo ………………………………………………………….. 1.1.2. Vulnerabilidad ………………………………………………………………….. 1.1.3. Amenaza ……………………………………………………………………….. 1.1.4. Ataque ………………………………………………………………………….. 1.2. ¿Qué es el análisis forense? …………………………………………………………… 1.3. Legislación en el análisis forense en México ……………………………………......... 1.3.1. Problemática de la legislación en México ……………………………………... 1.3.2. La protección jurídica de la información personal …………………………….. 1.3.3. La protección jurídica del software …………………………………………….. 1.3.4. Ámbito intelectual ……………………………………………………………… 1.3.5. El flujo de datos transfrontera ………………………………………………….. 1.3.6. Los delitos informáticos …………………………………………....................... 1.3.7. Código penal del estado de Sinaloa ………………………………………......... 1.4. Políticas y procedimientos en el análisis forense ……………………………………... 1.4.1. Los limites ……………………………………………………………………… 1.4.2. Antes del análisis forense …………………………………………………......... 1.4.3. Antes del incidente ………………………………………………....................... 1.4.3.1. Incidentes externos ………………………………………………………… 1.4.3.2. Incidentes internos ………………………………………………………… 1.5. Herramientas forenses ………………………………………………………………… 1.5.1. Computadora para respuesta a incidentes ……………………………………… 1.5.2. ¿Qué herramientas? …………………………………………………………….. 2. Imágenes 2.1. ¿Qué es una imagen de disco? ………………………………………………………… 2.2. Herramientas para la creación de imágenes …………………………………………… 2.3. Creando una imagen de disco ……………………………………………………......... 2.3.1. Creando una imagen con dd ………………………………………………......... 2.3.2. Clonando un disco duro con ghost ………………………………....................... 3. Recolección de la evidencia 3.1. Información del sistema ……………………………………………………………….. 3.1.1. Terminología ……………………………………………………........................ 3.1.2. Herramientas para obtener información del sistema ……………........................ 3.2. Procesos de inicio del sistema …………………………………………........................ 1 1 1 2 3 8 8 9 10 11 11 11 12 12 12 13 13 14 15 15 15 15 16 16 19 19 19 22 22 23 27 28 28 30 34 3.2.1. Herramientas para visualizar procesos de inicio del sistema ……....................... 3.3. Procesos en ejecución …………………………………………………......................... 3.4. Cuentas de usuario y contraseñas ………………………………………....................... 3.4.1. Herramientas de auditoria de contraseñas ………………………........................ 3.5. Escaneo remoto (identificación de puertos abiertos) ………………………………….. 3.5.1. Herramientas para la identificación de puertos …………………........................ 3.6. Servicios en ejecución …………………………………………………........................ 3.6.1. Herramientas para identificar servicios ……………………………………….. 3.7. Sistema de archivos (Particiones FAT o NTFS) ………………………....................... 3.8. Archivos temporales …………………………………………………………………... 3.8.1. Herramientas para visualizar archivos temporales …………………………….. 3.9. Papelera de reciclaje …………………………………………………………………... 3.10. Archivos eliminados ……………………………………………………………….. 3.10.1. Herramientas de recuperación de archivos …………………………………….. 3.11. Bitácoras del sistema ……………………………………………………………….. 3.11.1. Herramientas para el análisis de bitácoras ……………………………………... 3.12. Recolección de evidencias en la red ……………………………………………….. 4. Análisis de evidencias 4.1. Identificación y análisis de procesos maliciosos ……………………………………… 4.2. Análisis de puertos abiertos …………………………………………………………… 4.3. Análisis de cuentas de usuario ………………………………………………………… 4.4. Cracking del SAM …………………………………………………………………….. 4.5. Análisis de código malicioso encontrado ……………………………………………... 4.6. Análisis de archivos creados en fechas cercanas al compromiso ……………………... 4.7. Análisis de cambios en el registro …………………………………………………….. 4.8. Análisis de archivos temporales de Internet …………………………………………... 4.9. Análisis de archivos recuperados ……………………………………………………… 5. Resultados del análisis forense 5.1. Veredicto sobre el sistema comprometido …………………………………………….. 5.2. Motivo del compromiso ……………………………………………………………….. 5.3. Fecha del compromiso ………………………………………………………………… 5.4. Origen de la intrusión ……………………………………………………………......... 5.5. Elaboración de un reporte técnico …………………………………………………….. 6. Herramienta de análisis forense 6.1. Objetivo de la herramienta …………………………………………………………….. 6.2. Justificación y herramientas adicionales …………………………………………........ 6.3. Desarrollo de la herramienta …………………………………………………………... 6.4. Compatibilidad de la herramienta ……………………………………………………... 6.5. Descripción y justificación de los datos obtenidos ………………………………......... 34 36 37 38 40 41 44 44 46 47 47 50 50 51 53 53 56 57 57 60 61 62 64 67 69 69 70 73 73 73 74 74 75 77 78 78 80 82 83 Índice de figuras 2.1. Herramienta dd.exe ………………………………………………………………………... 2.2. Herramienta Ghost ………………………………………………………………………… 2.3. Clonando un disco duro …………………………………………………………………… 2.4. Clonando una partición ……………………………………………………………………. 2.5. Unidades de disco vistas por Ghost ……………………………………………………….. 3.1. Comando winver en Windows XP ....................................................................................... 3.2. Herramienta WinAudit ......................................................................................................... 3.3. Microsoft BaseLine Security Analyzer ................................................................................3.4. Ejecutando PsInfo ..………………………………………………………………………... 3.5. Regedit …………………………………………………………………………………….. 3.6. Interfaz gráfica de la herramienta Autoruns ………………………………………………. 3.7. Línea de comandos de la herramienta Autoruns ………………………………………….. 3.8. Herramienta Process Explorer …………………………………………………………….. 3.9. Obteniendo hashes con pwdump versión 3 ……………………………………………….. 3.10. Ejecución de LC5 ………………………………………………………………………... 3.11. Ejecución de la herramienta SAMInside ………………………………………………… 3.12. Herramienta John the ripper ……………………………………………………………... 3.13. Comando netstat con el argumento –na …………………………………………………. 3.14. Ejecución de la herramienta Nmap para Windows ……………………………………… 3.15. Ejecución de la herramienta SuperScan …………………………………………………. 3.16. Análisis de puertos con ScanLine ………………………………………………………... 3.17. Ejecución del comando net Start ………………………………………………………… 3.18. Consola de servicios de Windows ……………………………………………………….. 3.19. Ubicación de los servicios a través del registro de Windows ……………………………. 3.20. Análisis de IE a través de IEHistoryView ……………………………………………….. 3.21. Herramienta IECookiesView …………………………………………………………….. 3.22. Análisis de cookies mediante MozillaCookiesView …………………………………….. 3.23. Análisis del archivo index.dat mediante la herramienta pasco …………………………... 3.24. Recuperación de archivos eliminados con EasyRecovery ………………………………. 3.25. Ejecución de File Scavenger ……………………………………………………………... 3.26. Proceso de la herramienta GetDataBack para sistema de archivos NTFS ………………. 3.27. Visor de sucesos de Windows …………………………………………………………… 3.28. Análisis de bitácoras mediante LogParser ……………………………………………….. 4.1. Identificación de procesos maliciosos mediante Process Explorer ……………………….. 23 24 24 25 25 31 32 33 34 35 35 36 37 38 39 40 40 42 42 43 44 45 45 46 48 48 49 50 51 52 53 55 56 58 4.2. Propiedades de un proceso mediante Process Explorer …………………………………… 4.3. Ruta del proceso malicioso ………………………………………………………………... 4.4. Salida de fport en el sistema comprometido ………………………………………………. 4.5. Análisis de puertos abiertos mediante el comando netstat ………………………………... 4.6. Análisis de bitácoras del sistema ………………………………………………………….. 4.7. Utilizando Lophcrack para la auditoria de contraseñas …………………………………… 4.8. Auditoria de contraseñas mediante L0phcrack ……………………………………………. 4.9. Laboratorio para el análisis de malware …………………………………………………... 4.10. Búsqueda de información en fechas cercanas al compromiso …………………………... 4.11. Búsqueda de archivos a través de sus tiempos MAC ……………………………………. 4.12. Análisis de archivos temporales de Internet ……………………………………………... 4.13. Recuperación de archivos mediante File Scavenger …………………………………….. 4.14. Línea de tiempo (TimeLine) ……………………………………………………………... 6.1. Inicio del script para la función “info” …………………………………………………… 6.2. Fragmento de la función “envia_rutina” ………………………………………………….. 6.3. Fragmento de la rutina “info” ……………………………………………………………... 6.4. Archivo infoSys.html ………………………………………...…………………………… 6.5. Menú de inicio de la herramienta de análisis forense ……………………………………... 59 59 60 61 62 63 64 66 68 68 70 71 72 80 81 81 81 82 Índice de tablas 6.1 Herramientas de análisis forense …………………………………………………………... 77 Prefacio Conforme el software e Internet se han vuelto más poderosos, han dejado de utilizarse únicamente en ambientes técnicos y se han desplazado hacia muchas otras áreas. Su uso se ha vuelto más común en ambientes de negocios y militares, lo que hace que los sistemas de cómputo almacenen cada vez información más confidencial y se conviertan en un medio que incite a los delincuentes cibernéticos a obtener un beneficio económico a través del robo de información. Actualmente no hace falta contar con algún armamento para realizar históricos asaltos bancarios o dejar sin funcionamiento toda una corporación que base sus operaciones en sus redes de cómputo sino basta con comprometer un sistema computacional y realizar actividades maliciosas. Como contraparte a las actividades maliciosas y delitos informáticos surgen especialidades dentro de la seguridad informática dedicadas a identificar las causas por las que un sistema de cómputo fue comprometido. Esta especialidad se trata del cómputo forense. Cuando escuchamos el término de análisis forense lo asociamos directamente a las técnicas empleadas por los médicos para determinar las causas que llevaron a un individuo a la muerte. En el rubro de la seguridad informática existe una analogía con este concepto. En el análisis forense de los sistemas de cómputo se determinan las causas por las que un sistema fue comprometido. En este análisis se reconstruyen los hechos en base a las pruebas que se recolectan del sistema vulnerado y se determinan las debilidades que hicieron posible la violación de sus mecanismos de seguridad. No existe un método exacto para recabar estas pruebas y en la mayoría de las ocasiones el investigador se basa simplemente en sus conocimientos, en la experiencia adquirida a través de la atención a incidentes de seguridad y en la evolución de las técnicas para estas investigaciones. Otro de los propósitos de las investigaciones forenses en los dispositivos digitales y sistemas de cómputo es que pueden ayudar a detectar posibles abusos o delitos en los sistemas. Además, en una investigación forense los hallazgos encontrados pueden servir para deslindar responsabilidades, ya que es importante resaltar que, por sí mismo, un reporte de análisis forense no acusa a una persona. Los reportes que se realizan son un elemento importante que valora la persona o personas que tienen que emitir un juicio. El objetivo de mi tesis es establecer un proceso para llevar a acabo la recolección y análisis de datos de un equipo Windows comprometido a través de herramientas libres y con el desarrollo de una herramienta que permita automatizar la recolección de evidencias en los análisis forenses. A través de los capítulos 3 (Recolección de la evidencia) y 4 (Análisis de evidencias) mencionaré los puntos principales que se deben tomar en cuenta al realizar un análisis forense de un sistema Windows comprometido, de dónde obtener datos que ayuden a justificar los hechos y a través de que herramientas se pueden obtener. Sin embargo, antes de abordar estos aspectos es preciso listar las posibles amenazas que acechan un sistema de cómputo conectado a Internet (el capítulo 1 “Introducción” aborda estos tópicos) y como es posible realizar una imagen del sistema para no alterar la evidencia en una investigación forense (Capitulo 2 “Imágenes”). A lo largo de los capítulos posteriores menciono una propuesta para elaborar un informe final acerca del análisis realizado (Capítulo 5 “Resultado del análisis forense”) y en el último capítulo (Capítulo 6 “Herramienta para la recolección de evidencias”) se describe el desarrollo de una herramienta para análisis forense de sistemas Windows. Adicionalmente de enunciar un panorama general de las distintas amenazas que ponen en riesgo el adecuado funcionamiento de los sistemas de información y cómo llevar a cabo un análisis “post mortem”. En la sección de apéndices (Apéndice B) se agregan algunas recomendaciones para robustecer la seguridad de un sistema Windows. El trabajo que a continuación presento no contiene un caso particular sobre un determinado sistema comprometido ni para una versión de Windows específica. Sin embargo, con el propósito de ilustrar algunos de los puntos abordados en este trabajo he acudido a diversas imágenes de sistemas atacados y una de ellas ha sido la imagen utilizada para el concurso Reto Forense Episodio III llevado a cabo por el Departamento de Seguridad en Cómputo UNAM-CERT donde actualmente soy el responsable del proyecto Malware de la UNAM y participé en la creación de dicha imagen. Al finalde esta tesis se mencionan los sitios oficiales de donde se puede descargar tanto la imagen de Reto Forense como algunos sitios que fueron vitales para la culminación de mi trabajo. 1 Capítulo 1 Introducción 1.1. Introducción a la seguridad en cómputo La proliferación de sistemas informáticos conectados a Internet ha hecho más frecuentes los casos de ingresos no autorizados a estos sistemas, robo de información y mal uso de los recursos. Actualmente los sistemas de cómputo y de comunicación son parte de nuestras vidas y día a día son más las organizaciones que basan su operación en estos sistemas por lo que es evidente la necesidad de contar con equipos de respuesta con personal capaz de analizar un equipo cuando ha ocurrido una intrusión. Para poder comprender el contexto de esta tesis, se deben abordar previamente algunos conceptos de donde parte toda esta investigación; la seguridad en cómputo, las amenazas y los principales ataques informáticos a los cuales los sistemas de cómputo están expuestos. 1.1.1. Seguridad en cómputo No existe una definición de seguridad en cómputo universalmente aceptada. La seguridad se puede entender desde dos puntos de vista: el práctico y el funcional. Desde un punto de vista práctico “un sistema de cómputo es seguro si se puede confiar en que se comportará como se espera que lo haga”. Este punto de vista tiene unas explícitas implicaciones de confianza. Pero la confianza no se puede medir. No se puede confiar en que un sistema se comporte como debe. Nadie nos puede asegurar que un sistema se está comportando como realmente tiene que hacerlo. La definición anterior significa que un sistema de cómputo se considera seguro si solamente realiza las funciones para la cual fue destinado. Desde el punto de vista funcional la seguridad en cómputo se basa en los siguientes aspectos principales: • Confidencialidad. Consiste en proteger la información de ser leída o copiada por cualquier persona que no esté autorizada para ello. • Integridad. Consiste en proteger la información para que no sea borrada o modificada sin el permiso del propietario de la misma. Capítulo 1. Introducción 2 • Disponibilidad. Se refiere a la capacidad de acceder a la información siempre que se requieran. Para lograr esta propiedad de la seguridad se deben proteger los servicios de manera que no puedan ser deshabilitados sin autorización. • Autenticación. Se refiere a la capacidad de identificar al usuario para que el origen de la información y los usuarios de la misma sean autorizados. 1.1.2 Vulnerabilidad Una vulnerabilidad se puede definir simplemente como un error en el software o en el hardware del sistema que derive en un problema de seguridad. Por esto, las vulnerabilidades son las compuertas a través de las cuales las amenazas se convierten en pérdidas o destrucción de información. Hoy en día varias de las vulnerabilidades que se descubren son aprovechadas para desarrollar códigos de exploit y gusanos de Internet. 1.1.3. Amenaza La amenaza se puede interpretar como algo que está latente, algo a lo que nos podemos enfrentar y que puede desencadenar un incidente de seguridad, produciendo daños materiales, robo de información o incluso pérdidas humanas. Históricamente los sistemas de cómputo se han visto envueltos en una serie de problemas de seguridad de diferente índole, muchos de los cuales aún se siguen repitiendo debido a la ignorancia o falta de entrenamiento de los involucrados. Aunado a esto, la diversidad de métodos y técnicas de las que se valen los intrusos para explotar las vulnerabilidades aumenta a diario. A continuación mencionaré algunas de las amenazas más comunes en los sistemas de cómputo en general, con las que comúnmente los intrusos se apoyan para comprometerlos. • Contraseñas débiles Las contraseñas son la primera medida de defensa y casi podría decirse que la más importante en la seguridad del sistema debido a que son el mecanismo común con el cual los usuarios son autenticados para el ingreso a los recursos de un equipo o la red. Los problemas en las contraseñas pueden ser de dos índoles: la forma en que son empleadas y la forma en que son creadas. Para aclarar el problema en como los usuarios emplean sus contraseñas, estás preguntas darán algunas respuestas. 3 • ¿Su contraseña es utilizada en otros equipos para realizar tareas administrativas? • ¿Utiliza la misma contraseña para ingresar a diferentes servicios como a un sistema de cómputo, a un sitio Web, a un servidor de mensajes instantáneos, o alguna otra aplicación ubicada en Internet? • ¿Utiliza la misma contraseña para dos diferentes arquitecturas, para conectarse a una red Windows y a un sistema Unix? • ¿Utiliza la misma contraseña en múltiples equipos? Para resolver el problema de las amenazas en cómo está conformada la contraseña se puede responder a estas otras preguntas: • ¿Evita utilizar contraseñas con una asociación obvia, como lo es el nombre de un miembro de la familia o el de su mascota? • ¿Utiliza contraseñas de longitud considerable debido a que son más difíciles de descifrar? • ¿Utiliza una combinación de letras mayúsculas y minúsculas y caracteres no alfanuméricos? • ¿Siempre asigna una contraseña para la cuenta “Administrador” con el objetivo de prevenir acceso total no autorizado al sistema? Un problema común en las redes de cómputo es el tipo de usuarios que las conforman, mi intención no es menospreciar a nadie, sin embargo, generalmente hay usuarios a los que la menor preocupación que tienen es a la seguridad de su información y frecuentemente tienen contraseñas débiles, las cuales son fáciles de adivinar, e incluso se dan peores casos, como el pegar en el monitor un postip con su contraseña. Queda en la responsabilidad del administrador el disminuir este tipo de amenazas. • Ingeniería social Un ataque de ingeniería social es una técnica de engaño donde el intruso emplea la interacción con el hombre (habilidad social) para conseguir su beneficio u objetivo. Un ejemplo de ingeniería social ocurre cuando el atacante pretende hacerse pasar por el administrador del sistema y aprovecha este engaño para robar datos del usuario (generalmente su nombre de usuario y su contraseña). Este tipo de ataques a menudo son los más exitosos, ya que la mayoría de los usuarios actúan de buena fe y no se percatan que son víctimas de un engaño. • Ataques de memoria y buffers overflow Los buffers Overflow son un intento activo de manipular el espacio de memoria de un proceso en ejecución para ejecutar código arbitrario insertado por el atacante. Capítulo 1. Introducción 4 Los buffers overflow han llegado a ser un mecanismo muy popular para obtener acceso remoto a los sistemas. El primer exploit de buffer overflow ampliamente conocido fue el exploit al demonio fingerd en sistemas VAX ejecutando BSD 4.3. Este overflow fue uno de los mecanismos de propagación del Gusano de Morris en 1988. Los intrusos intentan ataques de buffer overflow al enviar grandes cadenas de entrada a los programas. Estos ataques son exitosos debido a que muchos programadores no siempre validan la longitud de entrada que reciben los programas y aceptan entradas grandes de datos, las cuales pueden causar sobrescritura en la memoria permitiendo que el programa realice actividades maliciosas.. • Virus Los virus son programas informáticos o secuencias de comandos que intentan propagarse sin el consentimiento y conocimiento del usuario. Algunas de sus principales características se listan a continuación: • Son archivos ejecutables. • No se auto reproducen. • La mayoría de las veces requieren de la intervención del usuario para activarse o propagarse. • Su código es pequeño. • Realizan una acción maliciosa mediante una funcionalidadconocida como payload o carga útil. • Son multiplataforma, es decir, pueden afectar tanto a sistemas Windows como del tipo UNIX. • Caballos de Troya Los caballos de Troya (troyan horse en inglés) o simplemente troyanos son programas maliciosos que no son lo que dicen ser. Es decir, no realizan la función que dicen hacer sino que realizan acciones maliciosas en el sistema. Se les llama troyanos en semejanza a la estrategia bélica empleada en la batalla de Troya donde los griegos ingresaron a un gran caballo de madera a la ciudad de Troya haciéndoles creer que era un trofeo de guerra. Dentro de este caballo se escondieron varios soldados griegos, quienes aprovechando la noche, procedieron a abrir las puertas de la ciudad a sus tropas para realizar el ataque. De esta misma forma sucede con los troyanos en el sistema, disfrazan la actividad maliciosa debido a que un programa es almacenado para realizar una tarea específica y en realidad realiza una actividad maliciosa o queda en espera de alguna instrucción para realizar su cometido. 5 • Puertas traseras (Backdoors) Son programas o técnicas utilizadas comúnmente para mantener el acceso al sistema sin pasar por los mecanismos comunes de seguridad. Algunas de sus características pueden ser las que se listan a continuación: • Abren un puerto en el equipo. • Instalan servicios. • Habilita la entrada al intruso. • Son el resultado de un ataque previo. • Permiten al intruso el control remoto del equipo. • Rootkit Es un empaquetado de programas maliciosos en un solo archivo. Un rootkit puede contener un arsenal de software malicioso (un troyano, una puerta trasera, un virus, un gusano, spyware, etc.). Muchas veces, estos kits de herramientas contienen propiedades para ocultar la actividad e identidad del usuario que las instala. Los intrusos experimentados pueden hacer algo más que sólo obtener privilegios de administrador y tomar el control total del sistema atacado. Por lo general un intruso desea pasar inadvertido en el sistema comprometido y para lograrlo cambia algunos programas del sistema operativo con el objeto de esconder sus actividades mediante resultados falsos que arrojan los programas cambiados. Las herramientas del atacante son empaquetadas en un "rootkit", con lo que evaden la detección. Los rootkits contienen programas compilados y generalmente son dependientes del sistema operativo. Algunas de las actividades más comunes que realizan algunos rootkits son: • Esconder archivos. Programas como dir son reemplazados por programas troyanos para ocultar archivos. • Ocultar procesos. • Encubrir conexiones de red. Comando como ipconfig no reportan que la tarjeta de red está en modo promiscuo o en modo scanner. • Netstat no muestra conexiones de algunos equipos/dominios o los puertos que se tienen en modo de escucha. • Instalación de puertas traseras. Son capaces de instalar programas para garantizar acceso futuro del intruso. • Keyloggers Es un software malicioso que se ejecuta en segundo plano para que no lo perciba el usuario. En un principio este tipo de malware sólo capturaba todo lo escrito desde Capítulo 1. Introducción 6 el tecleado del equipo, sin embargo, la técnica ha evolucionado y actualmente son capaces incluso de capturar pantallas y enviar los datos al intruso a través de correo electrónico. Algunos keyloggers trabajan bajo algún patrón definido, esto es, cuando la víctima accede a alguna página o dominio determinado (generalmente organizaciones bancarias) se activan para realizar su actividad maliciosa, como por ejemplo, la captura de datos en busca de contraseñas e información confidencial del usuario. • Ataques de negación de servicio (DoS) Un ataque de negación de servicio, DoS por sus siglas en inglés (Denial of Service) es un ataque a un sistema de cómputo o a una red de equipos que causa que un servicio se inaccesible. Estos ataques se generan la mayoría de las ocasiones por la saturación de peticiones enviadas al servidor, haciendo que éste se sobrecargue y no pueda atender ni una petición más. • Ataques de negación de servicio distribuido (DDoS) Los ataques DDoS (Distributed Denial of Service) son ataques derivados de los DoS. Sin embargo, para el ataque de negación de servicios distribuido se coordinan y sincronizan varios equipos remotos con la intención de que el ataque sea masivo hacia un solo objetivo (ya sea un servidor o una red corporativa), por lo que al igual que los DoS provocan la saturación de un determinado servicio y con esto la negación del acceso a los usuarios legítimos. • Gusano Es un programa malicioso con capacidad de autoreplicarse, el cual se propaga a través de la red aprovechando alguna vulnerabilidad en un sistema operativo y usualmente no requiere de la interacción con el usuario para activarse y propagarse. Algunas de sus principales características son las siguientes: • No requiere de la intervención del usuario. • Se autoreplican por si mismos. • Atacan vulnerabilidades específicas. • Generalmente están hechos para plataformas específicas. • Para el caso de Windows, casi siempre modifican las llaves del registro. Algunos de los efectos de los gusanos se listan a continuación: • Ataques DDoS (Distributed Denail of Service). • Instalación de puertas traseras. • Degradación de recursos (ancho de banda). 7 Medios de propagación: • A través de la red (abriendo varios puertos en el equipo infectado y realizando escaneos a otros equipos en la red). • Por medio de correo electrónico. • Código malicioso móvil Es código móvil que hace que el sistema realice algo que no se quiere que haga. Considere un control AciveX incrustado en una página Web que su navegador solicitó de un sitio remoto. Si el control se comporta como se espera, por ejemplo, que pruebe la velocidad de su conexión de Internet para ayudarle a tener un mejor desempeño del sistema, esto puede ser muy útil. Sin embargo, si en lugar de eso, el programa descargado inesperadamente cambia la página de inicio del navegador y lo redirecciona a otra página, entonces este código se puede considerar como código malicioso. Entre otras cosas, el código malicioso puede: • Monitorear las actividades de navegación de un usuario en Internet. • Obtener acceso no autorizado al sistema de archivos. • Infectar el sistema con un código malicioso. • Secuestrar el navegador de Internet para visitar sitios que el usuario no deseaba visitar. • Sobrecargar el sistema para generar un ataque de negación de servicio (DoS). • Mostrar mensajes en la pantalla del usuario. • Scripts en el navegador Web Comúnmente los desarrolladores incorporan a sus páginas html piezas de código en algún lenguaje de scripts como JavaScripts, JScript o VBScript para darles mejor presentación y funcionalidad a sus sitios Web. El uso de estos scripts en el navegador contienen las siguientes amenazas para el usuario: • Agotamiento de los recursos. Mediante el uso de funciones de los lenguajes de scripts, se pueden generar rutinas con ciclos infinitos que utilicen sin medida algún recurso de la computadora provocando una negación de servicio (DoS). • Secuestro del navegador. Se le llama así al proceso de controlar el navegador Web del usuario por parte de un intruso. • Cross-Site Scripting Este tipo de ataque consiste en inyectar código malicioso dentro de un sitio Web vulnerable de tal forma que lo ejecute inadvertidamente el navegador del usuario. Este código tiende a estar en la forma de un script del navegador, y frecuentemente Capítulo 1. Introducción 8 es configurado para robar cookies que fueron puestas por el sitio Web o para interactuar con la sesión de navegación de la víctima. • Phishing scam El phishing se vale de la ingeniería social y generalmente utilizacorreos electrónicos y sitios Web maliciosos para robar información confidencial y hoy en día pueden también distribuir códigos maliciosos por medio de estos sitios. El caso típico de estos ataques es aquel donde se envían correos aparentemente de alguna compañía financiera o institución similar con el objetivo de dirigir a la victima hacia un sitio Web “aparentemente idéntico” al de su banco, sin embargo, es un sitio falso controlado por el atacante. Esta técnica evoluciona día con día y actualmente se combinan distintos métodos para engañar a las victimas y aprovecharse de la información que les ha sido robada. 1.1.4. Ataque Un ataque informático se puede definir como una acción que intenta violar los sistemas y mecanismos de seguridad de un sistema. Según el efecto que producen, se pueden dividir en: interrupción, intercepción y modificación y por su actuación pueden ser pasivos, si no modifican el estado del sistema, y activos, si lo alteran. Para definir fácilmente los tipos de ataque citaré un ejemplo. Si coloco un sniffer en la red de alguna organización y no altero los datos pero el sólo hecho de capturar y observar información confidencial me lleva a realizar un ataque del tipo pasivo. Sin embargo, si penetro un sistema de cómputo y ejecuto un script que borre toda la información del sistema de archivos caeré en el caso de ataque activo. 1.2. ¿Qué es el análisis forense? El análisis forense es una de las áreas de la seguridad en cómputo que más ha evolucionado en los últimos años debido al crecimiento de Internet. El objetivo del análisis forense en cómputo es reconstruir lo hechos pasados en base a la evidencia que se recolecta y preservar la información que pueda ser usada como evidencia de un equipo que ha sido comprometido. El análisis forense busca las respuestas a preguntas que se suelen hacer ante un ataque informático: • ¿Quién lo realizó? • ¿Cuándo sucedió? • ¿Cómo fue realizado? • ¿De dónde provino? 9 Para contestar las preguntas anteriores es necesario buscar datos que signifiquen huellas o rastros que dejan los intrusos, se hacen investigaciones acerca del sistema, se estudian los procesos y las actividades que ocurren en el equipo dependiendo si el sistema se analiza en tiempo real o mediante una copia o imagen del disco del equipo comprometido. Sin duda, al hacer algunas analogías, el cómputo forense se asemeja bastante a la vida real de nosotros los seres humanos. En medicina definen al análisis forense de la siguiente manera: Forense: Conjunto de conocimientos médicos relacionados con la administración de la justicia, especialmente identificación personal, diagnostico de causas de muerte, etc. En tanto que el manual del investigador de crimen de alta tecnología dice: Aplicación de métodos, protocolos y técnicas suficientes legales para reunir, analizar y preservar la información computacional. El análisis forense surge de la necesidad de investigar y darle respuesta a los incidentes de Seguridad en Cómputo. El análisis forense, además de descubrir el origen del ataque, identifica las acciones realizadas por el intruso, las herramientas empleadas para llevar a cabo su cometido y los métodos empleados para esto. El conocer estos datos permite también descubrir vulnerabilidades y nuevos métodos de intrusión a los equipos por lo que se puede contrarrestar futuros ataques informáticos. No existe un método definido o reconocido para llevar a cabo un análisis forense, en este trabajo de tesis propongo una metodología que he formado de acuerdo a mi experiencia. A continuación definiré qué es una evidencia en el análisis forense. Una evidencia es cualquier cosa que pueda demostrar la prueba. Las evidencias pueden estar en el sistema operativo, datos en línea, discos duros, discos flexibles, cintas, CD- ROM, cualquier tipo de notas, etc. Saber qué tomar, dependerá de los puntos relevantes en la investigación, así como de todo lo que se ha autorizado. El proceso forense se puede resumir a través de los siguientes puntos: • Recolección de la evidencia. • Análisis de la evidencia. • Reportar los resultados. 1.3. Legislación en el análisis forense en México El derecho es el conjunto de normas jurídicas dictadas por el Estado con el objeto de regular las conductas de los gobernados en lo social, político y económico. El discurso jurídico está basado en un sistema normativo, que parte de proposiciones lógicas en cuanto al ser y al deber ser, y de la combinación en una cierta estructura Capítulo 1. Introducción 10 surge el ordenamiento jurídico, que constituye el objeto mismo de la ciencia del derecho. 1.3.1. Problemática de la legislación en México Todo cuerpo normativo desde su perspectiva de disciplina debe respaldarse de normas sustantivas como por normas adjetivas, o bien, reglas propias reguladoras del ser, hacer, o no hacer, como de reglas propias para la solución de sus controversias. En nuestro país es casi inexistente la localización de normas sustantivas que regulen a la informática, también nos encontramos con un vacío formal de normas adjetivas. De ahí que sea prudente resaltar que el encuentro que sufran, por un lado, el avance de la tecnología y, por el otro, el derecho deberán ser resueltas por las reglas jurídicas y no por las reglas informáticas de tal relación; esto es, el derecho no debe supeditarse a la informática; por tal motivo, el derecho de la informática como tal no existe. En el caso particular de México resulta prioritario meditar si es necesario establecer la materia informática como una materia federal. Al estar constituido nuestro país como una República representativa, democrática, federal, en la que los Estados que la integran son libres y soberanos en cuanto a su régimen interior, si bien unidos por el pacto federal, encontramos que en la actualidad, los asuntos informáticos que inciden en el ámbito del Derecho Civil o Penal, pueden ser regulados por cada una de las Entidades Federativas a su libre y mejor parecer. El Congreso Federal, constitucionalmente, tiene facultades exclusivas para legislar sobre: hidrocarburos, minería, industria cinematográfica, comercio, juegos con apuestas y sorteos, intermediación y servicios financieros, energía eléctrica y nuclear, derecho marítimo, ciudadanía, migración, vías generales de comunicación, correos, aguas, moneda, delitos federales, coordinación en materia de seguridad pública, fiscalización superior de la federación, leyes del trabajo reglamentarias del artículo 123 Constitucional, nacionalidad y extranjería, migración, salubridad , coordinación de la educación, generación, difusión y aplicación de conocimientos científicos y tecnológicos, entre otras. De lo anterior podemos observar que todo el comercio electrónico, contratos electrónicos mercantiles, fenómenos informáticos que afecten vías generales de comunicación, delitos informáticos regulados por el Código Penal Federal (piratería, destrucción de información), los contenidos de Internet que impliquen delito federal (pornografía, casinos), el correo electrónico (si legalmente se equiparara al correo convencional) constituyen materia federal y por tanto, son o deberán ser regulados por leyes federales. Sin embargo, los Estados pueden regular, en el ámbito de su competencia, las materias que no están expresamente reservadas a la Federación; por lo que en esta esfera entrarían los contratos civiles electrónicos, los delitos informáticos que incidan en el orden común, la admisión de documentos o medios electrónicos como prueba en los procesos penales o civiles, la protección a bases de datos privadas y todo aquel asunto que no toque materia federal. 11 En realidad, es cuestionable todavía hoy día si en verdad existe esta disciplina como tal, por lo que una gran mayoría de estudiosos de la materia han preferido mejor estudiar lospuntos siguientes: • La protección jurídica de la información personal. • La protección jurídica del software. • El flujo de datos transfrontera. • Los convenios o contratos informáticos. • Los delitos informáticos. • El valor probatorio de los documentos electromagnéticos. 1.3.2. La protección jurídica de la información personal La protección de los datos computarizados en esta sociedad moderna caracterizada por su avanzada tecnología que implica proteger algunos datos que se desea que no sean del dominio público. Categorías de datos personales: • Nombre y apellidos. • Rasgos físicos particulares. • Fecha y lugar de nacimiento. • Sexo. • Nacionalidad. • Dirección postal (calle, ..., país). • Información patrimonial. • Información bancaria (los estados de cuenta, las salidas del dinero al exterior). • El monto del pago de los impuestos. 1.3.3. La protección jurídica del software La protección de la propiedad intelectual en el mercado mundial ha tomado creciente significación en los recientes años. Los propietarios de tecnología del mundo desarrollado, particularmente los estadounidenses, han presionado recientemente para obtener un régimen legal de propiedad intelectual fuerte y relativamente uniforme, como piedra de toque para obtener un tratamiento equitativo en el sistema global del comercio que emerge. 1.3.4. Ámbito intelectual Por derecho intelectual se entiende el conjunto de normas que regulan las prerrogativas y beneficios que las leyes reconocen y establecen a favor de los autores y de sus causahabientes por la creación de obras artísticas, científicas, industriales y comerciales. Estas son algunas de las leyes para la protección del software en México. • Artículo 101 LFDA. (Ley Federal del Derecho de Autor). Se entiende por programa de computación la expresión original en cualquier forma, lenguaje o Capítulo 1. Introducción 12 • código, de un conjunto de instrucciones que, con una secuencia, estructura y organización determinada, tiene como propósito que una computadora o dispositivo realice una tarea o función específica. • Artículo 102 LFDA. Los programas de computación se protegen en los mismos términos que las obras literarias. Dicha protección se extiende tanto a los programas operativos como a los programas aplicativos, ya sea en forma de código fuente o de código objeto. Se exceptúan aquellos programas de cómputo que tengan por objeto causar efectos nocivos a otros programas o equipos. • Artículo 106 LFDA. El derecho patrimonial sobre un programa de computación comprende la facultad de autorizar o prohibir: La decompilación, los procesos para revertir la ingeniería de un programa de computación y el desensamblaje. 1.3.5. El flujo de datos transfrontera Ley Federal de Telecomunicaciones • Artículo 71. Las infracciones a lo dispuesto en esta ley, se sancionarán por la Secretaría de conformidad con lo siguiente: Con multa de 10,000 a 100,000 salarios mínimos por interceptar información que se transmita por las redes públicas de telecomunicaciones. 1.3.6. Los delitos informáticos Para poder determinar la posible existencia de los delitos informáticos, es necesario determinar que se debe recurrir precisamente a las dos materias que integran la relación de esta investigación como son la informática y el derecho, en la cual cada una aporta su horizonte de proyección. Respecto a la informática, necesitamos recurrir a ella para conocer cuáles son las conductas que la comunidad científica tecnológica considera que deben protegerse por el derecho, mientras que el derecho debe indagar qué es el delito para posteriormente cuestionar si la utilización masiva de las computadoras y las telecomunicaciones pueden cambiar la naturaleza y alcance de la ley penal. Las estadísticas sobre tipos penales varían, podemos afirmar que, con excepción del estado de Sinaloa, en nuestro país, ya sea a nivel federal o local, los delitos informáticos, como tales, no existen, ya que los mismos no se encuentran tipificados. 1.3.7. Código Penal del estado de Sinaloa • Artículo 217. Comete delito informático, la persona que dolosamente y sin derecho: 13 I. Use o entre a una base de datos, sistema de computadoras o red de computadoras o a cualquier parte de la misma, con el propósito de diseñar, ejecutar o alterar un esquema o artificio, con el fin de defraudar, obtener dinero, bienes o información. Donde se configuran: Acceso ilícito, daño a la información y robo de información para su uso en un fin ilícito. II. Intercepte, interfiera, reciba, use, altere, dañe o destruya un soporte lógico o programa de computadora o los datos contenidos en la misma, en la base, sistema o red. Donde se configura: Daño a sistemas e información así como robo de información. Se impondrá prisión de seis meses a seis años y de trescientos a tres mil días de multa: II. Al editor, productor o grabador que a sabiendas produzca más números de ejemplares de una obra protegida por la Ley Federal del Derecho de Autor, que los autorizados por el titular de los derechos. III. A quien use en forma dolosa, con fin de lucro y sin la autorización correspondiente obras protegidas por la Ley Federal del Derecho de Autor. Se impondrá prisión de tres a diez años y de dos mil a veinte mil días multa: II. A quien fabrique con fin de lucro un dispositivo o sistema cuya finalidad sea desactivar los dispositivos electrónicos de protección de un programa de cómputo. 1.4. Políticas y procedimientos en el análisis forense No existe un método estandarizado o reconocido para llevar a cabo un análisis forense. Los expertos en el tema emplean sus propios mecanismos como resultado de la experiencia, los medios tecnológicos y las herramientas que existen hoy en día. A continuación se citan algunas políticas que se deben tener en cuenta antes de realizar una investigación forense. Estas políticas han sido realizadas de acuerdo a mis experiencias adquiridas. 1.4.1. Los límites Se debe tener presente, especialmente cuando se trabaja en sistemas multiusuario, que con frecuencia nos encontraremos con información que no se tiene "derecho" a examinar. Las ramificaciones legales pueden ser problemáticas, pero las éticas son tantas o más serias. Capítulo 1. Introducción 14 Se deben tener presentes los siguientes puntos: • Manejo de información altamente sensitiva. • Cuidado en el manejo de la información. • No tomar ventajas personales de la información. El analizar las intrusiones y abusos en los sistemas de cómputo no es un trabajo trivial, debido a que el cómputo forense se basa en las evidencias encontradas. Estas evidencias pueden estar en el sistema operativo, en los datos, en los eventos, en los procesos o en sus servicios, por tal motivo, el manejo de la información debe ser lo mas cuidadoso posible para no borrar ni alterar alguna de estas evidencias. 1.4.2. Antes del análisis forense Antes de realizar un análisis forense se deben preparar una serie de antecedentes debido a que el análisis es ante todo un incidente de seguridad en cómputo del cual se debe seguir un procedimiento y una metodología para atenderlo por el equipo de respuesta a incidentes, del cual no quiero entrar mucho en detalle ya que nos desviaríamos demasiado de lo que le incumbe a esta investigación. A continuación se listan algunos pasos previos a realizar. • Preparación del análisis La preparación involucra todo lo que se tiene que hacer antes de que ocurra un incidente de seguridad. Preparación respecto a conceptos previos que se deben conocer, datos, conocimiento del uso de herramientas, etc. El entrenamiento previo que se debe tener para realizar cómputo forense, formar un equipo y definir responsabilidades. En esta etapa conviene responder las siguientes preguntas: ¿El host es de misión crítica?, ¿se sospechaalgo o está confirmado?, ¿contiene información importante?, ¿se cuenta con respaldos?, ¿se desea indagar o perseguir?, ¿hasta dónde pueden llegar las consecuencias? Las respuestas a estas preguntas definen el tipo y la cantidad de recursos que se destinarán a la atención de un incidente. • Respuesta al incidente Herramientas apropiadas para atender el incidente (lo que se puede definir como un kit de respuesta a incidentes), ambiente, entrevistas, recopilación de datos importantes. • Verificación del incidente Verificar que, en efecto, se trata de un incidente y no de una falsa alarma. Acudir físicamente al lugar donde se encuentra el equipo comprometido y realizar el análisis forense (Algunas veces no es posible tener la certeza sobre el incidente sino hasta que se realiza el análisis forense). 15 1.4.3. Antes del incidente Antes de acudir al incidente se debe responder a la siguiente cuestión: ¿Se cuenta con una política de respuesta a un incidente? De acuerdo al tipo de ataque con que se han alterados los mecanismos de seguridad del equipo comprometido, los incidentes de seguridad se pueden dividir en incidentes externos e incidentes internos. 1.4.3.1. Incidentes externos • Intrusiones. • Virus. • Gusanos. • Negación de servicio. • Secuestro de servicios. • Alteración de páginas Web. • Uso de recursos. • Ataque a otras redes. • Robo de información 1.4.3.2 Incidentes internos • Robo de propiedad intelectual. • Intentos maliciosos. • Abuso de las políticas. • Infracciones al contrato En la respuesta a incidentes, regularmente son más importantes los incidentes internos. Los incidentes externos definitivamente son importantes, pero se ha vuelto más fácil para un usuario interno robar o interrumpir el servicio dentro de una organización. Con la proliferación de dispositivos de comunicación personal, acceso remoto, telecomunicaciones, etc., el usuario interno ha tenido más oportunidad de cometer actos que pueden causar más daño a una compañía que un usuario típico. La amenaza interna conoce mejor cómo funcionan las cosas, puede evitar la seguridad y sabe cómo están auditados los sistemas antes de cometer una infracción. ¿Quién sabe mejor que el usuario interno dónde se encuentran las cosas valiosas de la organización?. 1.5. Herramientas forenses No hace mucho tiempo había pocas herramientas para el análisis forense y la mayoría del software y las metodologías eran controladas por el gobierno, sin embargo, muchos investigadores y especialistas en el tema han escrito programas que actualmente se encuentran en uso. Las herramientas más recientes para el análisis forense son más Capítulo 1. Introducción 16 fáciles de utilizar debido a sus interfaces gráficas, las cuales pueden manejar diferentes sistemas operativos y están disponibles al público. Las herramientas para obtener determinada información las mencionaré y emplearé a lo largo de la tesis. Sin embargo, es importante mencionar también la cuestión del equipo antes de abordar un caso. 1.5.1. Computadora para respuesta a incidentes No venden computadoras para análisis forense, se debe hacerla. Estas son sólo algunas sugerencias. 1) PC manejable. • 2 discos IDE principales. Uno con Windows, otro con Linux. • CD-RW. • Cinta. • Discos removibles SCSI e IDE. • Discos externos grandes (interfaces IDE, SCSI). 2) Laptop. • Disco externo (interfaces IDE, SCSI). 3) Equipo de red (hub pequeño). • Usb o CD para respuestas a incidentes. 4) Usb o CD para respuestas a incidentes. • Desde un CD o floppy, deben usarse binarios estáticos que no usen bibliotecas compartidas del sistema. • Si es urgente, pueden utilizarse binarios confiables de un sistema limpio. 1.5.2. ¿Qué herramientas? En general, el software que se utilice convendría almacenarse en un dispositivo que pueda utilizarse en modo de sólo lectura y, de preferencia, que no manejen bibliotecas compartidas, sino que las aplicaciones sean estáticas. Con ello, se evitará que el conjunto de herramientas sea modificado y que se haga uso de información contenida en el sistema comprometido, ya que no se puede confiar en su contenido. Al menos se debe contemplar las herramientas se cubran los siguientes aspectos: • Información sobre procesos. • Información sobre cuentas de usuario. • Información para la revisión de bitácoras o historiales. 17 • Búsqueda de malware. • Información sobre los datos alojados en memoria volátil. • Búsqueda de archivos. • Creación de imágenes. También se deben considerar herramientas adicionales que ayuden a recolectar información sobre el incidente como las que se listan a continuación: • Cámara fotográfica. • Cámara de video. • Lápiz y papel. • Etiquetas para sellar equipos. • Memoria USB para almacenar información. • Herramientas de red (switch, cables, sniffers). 19 Capítulo 2 Imágenes 2.1. ¿Qué es una imagen de disco? Una imagen es una copia bit a bit de la evidencia original o bien de la partición o archivo de un sistema. En un análisis forense es indispensable realizar una copia idéntica del sistema comprometido con el propósito de no alterar la evidencia original. El auditor de seguridad siempre debe trabajar con la imagen creada del o los discos duros del sistema comprometido a la cual le aplicará una serie de herramientas y/o utilerías que le permitan obtener información sobre el motivo de la intrusión. Los discos originales deben mantenerse en un lugar seguro y por ningún motivo deben alterarse o destruirse, ya que si el auditor de seguridad puede rastrear al intruso, la organización puede ejercer acción legal utilizando todos los argumentos y pruebas posibles. Una vez que el incidente haya sido concluido, es posible volver a hacer uso del disco duro, pero solo hasta entonces. 2.2. Herramientas para la creación de imágenes Existen herramientas especialmente para realizar análisis forense, algunas son libres y otras requieren de una licencia comercial para su uso. Estas utilerías pueden realizar varias tareas lo que facilita la recolección de evidencias. Sin embargo, se pueden reunir diferentes herramientas libres específicas para realizar una tarea. Por ejemplo, se puede utilizar alguna que genere una imagen del disco duro y otra que realice búsquedas de archivos por medio de fechas de modificación. En esta sección mencionaré algunas de las herramientas que existen para realizar una imagen del disco o partición, aunque cabe mencionar que día con día surgen mejoras y nuevas herramientas. Capítulo 2. Imágenes 20 • Ghost Ghost es una herramienta desarrollada por Symantec Corp. con la que se pueden realizar imágenes de discos y recuperación de datos. Algunas de sus principales características son las siguientes: • Permite crear imágenes de disco sin reiniciar Windows. • Capacidad para realizar respaldos incrementales. • Permite automatizar los respaldos. • Puede realizar una imagen de todo el disco o de una partición. • Puede trabajar con los siguientes sistemas de archivos: FAT/32, NTFS, EXT2/3. • SafeBack SafeBack es una herramienta usada para crear copias de bit a bit de un disco o de un archivo o partición. SafeBack permite obtener varios sistemas idénticos a través de la misma imagen de disco. Las imágenes creadas por SafeBack se pueden almacenar en cualquier dispositivo magnético, incluyendo unidades de cinta SCSI. SafeBack también puede restaurar la información en otro disco duro de otro sistema. SafeBack opera en dos modos, el primero es el modo Verifica que permite al administrador realizar un análisis de los datos de su respaldo para asegurarse que no hay ningún error en la lectura de los datos. El otro modo de operación es el modo Copia y sirve para llevar a cabola restauración de datos. SafeBack es una herramienta específica para el análisis forense que está basada en DOS y su primera versión fue diseñada por Sydex Inc. en 1990. Esta utilería, fue originalmente un diseño para fines militares y del gobierno e incorpora dos importantes características: la integridad a través de sus algoritmos de cifrado y garantía en exactitud de los datos. Algunas de las ventajas de SafeBack son las siguientes: • Basado en DOS, lo que permite su fácil y rápido uso. • Incorpora dos implementaciones de algoritmos, lo que asegura la integridad de todos los datos contenidos en el dispositivo de almacenamiento. • Permite realizar la copia de respaldo por medio del puerto de impresión. • Permite realizar las imágenes como un archivo muy grande o por medio de archivos pequeños que ayudan a realizar el almacenamiento en dispositivos de menor capacidad como por ejemplo en un CD. 21 • Encase Encase es tal vez la herramienta más conocida para análisis forense. Es una utilería capaz de entregar una investigación comprensible para los que inician en el cómputo forense. Cuenta con una interfaz gráfica muy amigable y con su propio motor de scripts lo que permite realizar complejas investigaciones de análisis. Encase soporta varios sistemas operativos, algunos de ellos son Windows 95/98/NT/2000/XP/2003, Linux, Solaris de 32 y 64 bits. Soporta sistemas de archivos como: FAT12, FAT16, FAT32, NTFS, EXT2/3 (Linux),Reiser (Linux), UFS (Sun Solaris), AIX Journaling File System (JFS y jfs) LVM8. FFS (OpenBSD, NetBSD, y FreeBSD), entre otros. Con esta herramienta se pueden administrar múltiples casos simultáneamente y soporta diferentes configuraciones de discos como RAIDs. Otra de las ventajas de esta herramienta forense es la facilidad para hacer búsquedas y consultas, debido a que durante el análisis de las evidencias es necesario filtrar información que no tenga mucha relevancia o todo lo contrario y Encase facilita estas labores gracias a su entorno gráfico. Lamentablemente Encase es una utilería comercial y bastante costosa por lo que en esta tesis recurriré a otras utilerías. • dd En este trabajo me enfocaré más en las herramientas libres por la facilidad de adquisición y por que son más factibles en ambientes académicos como aquí en la UNAM. Una de estas herramientas gratuitas es dd para Windows, originalmente fue escrita para sistemas UNIX y distribuida bajo licencia Open Source. Dd para Windows es una utilería libre adaptada a los sistemas Windows la cual es manipulada mediante línea de comandos, guardando su esencia original como fue desarrollada para sistemas UNIX. Dd no es una herramienta propia para hacer respaldos, como algunas veces se ocupa, es más bien una utilería de línea de comandos que permite realizar copias de bits de un lugar a otro. Dd copia un simple archivo, una parte de éste o toda una partición. Algunas de las ventajas que dd presenta son las siguientes: • Es libre. • Capacidad para realizar firmas MD5 a los datos. • Checa la integridad de la evidencia mediante firmas MD5. • Puede copiar un simple archivo, una partición, datos de la memoria, archivos de la memoria swap y copiar datos de la entrada y salida estándar. Capítulo 2. Imágenes 22 2.3. Creando una imagen de disco Después de observar qué herramientas se pueden emplear para realizar una imagen a un sistema comprometido mostraré la realización de una imagen (copia) mediante software libre y sólo para fines demostrativos emplearé Ghost para "clonar" un disco duro. 2.3.1. Creando una imagen con dd Empezaré por describir la sintaxis del comando dd.exe: #dd.exe if=Archivo origen of=Archivo destino bs=tamaño de bloques En el argumento "if" se debe colocar el archivo o partición a la cual se quiere tomar la imagen como por ejemplo: boot.ini, CONFIG.SYS, C: etc. En "of" se especifica el archivo en donde se guardará nuestra imagen antes especificada. Con el argumento "bs" se define el tamaño de bloques que se quieren copiar. Esta última opción tendrá más sentido si se utiliza conjuntamente con la opción “count”. Por ejemplo: que tome un count de 4 y un block de 512, con esto se copiará solamente 2048 bytes del archivo origen. Ahora bien, para indicarle a dd que tome una imagen de un dispositivo físico se debe indicar de la siguiente manera: \\.\PhysicalDriveX Donde X representa el número del dispositivo (en el caso de UNIX esto sería /dev/hda por ejemplo) y “\\.” significa que se trata de la máquina local. Para tomar la imagen a un dispositivo lógico o a una partición del disco es común indicárselo simplemente con la letra de esa partición lo que en unix comprendería a indicarle que tome /dev/hda1. Por lo tanto, para indicar a dd que le tome imagen a la partición C: lo hacemos de la siguiente manera: \\.\C: El siguiente comando muestra la forma en como se tendría que utilizar dd para tomar una imagen de toda la partición y guardarla bajo el nombre de C\_drive.img en el directorio C:\imagenes. dd.exe if=\\.\C: of=C:\imagenes\C_drive.img 23 Figura 2.1 Herramienta dd.exe 2.3.2. Clonando un disco duro con ghost La diferencia entre hacer imagen y clonar un disco es que al realizar una imagen se guarda todo el contenido del disco en un único archivo, y al clonarlo se hace una copia exacta de disco a disco. Sin embargo, para un análisis forense esto suele ser tan útil como generar la imagen, esto depende del caso y de los recursos con los que se cuente. El verdadero potencial de Ghost se descubre a la hora de clonar discos. Cuando se desea realizar una copia exacta de un disco duro en otro. Ghost permite realizar esta tarea de clonar. En este caso, sólo se tiene que especificar el disco duro de origen y el disco duro destino y el clonado se realiza sin ningún problema no importando si existen sectores defectuosos en el disco duro de origen, ya que Ghost es capaz de clonar este disco duro a uno nuevo. Ghost permite clonar de disco a disco sin importar por el tipo de sistema de archivos. Es indiferente hacer una imagen de un disco con Windows 98, Windows XP o incluso con Linux. El trabajar con esta herramienta resulta un proceso delicado, ya que es relativamente fácil equivocarse a la hora de clonar discos, por lo que un error aquí significaría perder todos los datos del sistema comprometido. Para utilizar Ghost se debe crear un disco de inicio de esta herramienta e iniciar el sistema a través de él. A continuación describiré a grandes rasgos el proceso para clonar un disco duro mediante esta herramienta propietaria de Symantec. Una vez que el sistema inicia con el disco previamente creado se ejecuta el comando ghost2k3.exe que mostrará una imagen similar a la siguiente: Capítulo 2. Imágenes 24 Figura 2.2 Herramienta Ghost Para iniciar el proceso de clonación del disco me dirijo a la siguiente ruta: Local -> Disk -> To Disk y a continuación selecciono en el menú la unidad de origen y la unidad destino y en seguida ghost se encargará de realizar la copia. Figura 2.3 Clonando un disco duro De igual forma, Ghost también permite realizar una copia de una partición del disco duro. Sin embargo, la mayoría de las ocasiones resulta mejor crear un clon del disco completo debido a que de esta manera se permite iniciar el sistema en otro equipo como si se tratase del sistema original. 25 Si se desea realizar solamente la copia de una partición se deberá elegir las siguientes opciones del menú: Local -> Partition -> To Partition y a continuación se elige el destino donde se alojará la copia de esta partición, la cual se puede almacenar en el mismo disco duro. Para nuestro propósito, esta tarea es poco recomendable debido a que si se escribe en el disco duro del sistema comprometido se altera la información de la evidencia. A continuaciónse muestra la pantalla que aparece al elegir la opción que copia solamente una partición: Figura 2.4 Clonando una partición Continuando con el proceso de clonación del disco, una vez elegida la opción de copiar de disco a disco aparecerán los dos dispositivos detectados por Ghost donde se distingue el disco original y el disco “forense” (si son de distinta capacidad). Si los discos son del mismo tamaño se deberá ser muy cuidadoso, ya que se puede llegar a confundir el disco de origen y realizar una copia errónea (lo que significaría borrar toda la evidencia). Por lo general el primer disco detectado por Ghost suele ser el disco original, y por tanto, el disco de origen como se muestra en la siguiente imagen. Figura 2.5 Unidades de disco vistas por Ghost 26 Después de los pasos anteriores sólo basta esperar para que Ghost termine de copiar todos los datos. El tiempo que demore este proceso dependerá de la cantidad de datos y la capacidad del disco duro de origen. Es importante mencionar que Ghost no sólo se limita a realizar copias de discos o de particiones sino también puede realizar una restauración de los datos copiados. Sin embargo, esta opción suele utilizarse poco en las investigaciones forenses. 27 Capítulo 3 Recolección de la evidencia Todo análisis forense se basa en las evidencias encontradas. Una evidencia es simplemente cualquier dato que pueda demostrar la prueba y en base a estas evidencias es como se justifica el veredicto final. No es una tarea sencilla ya que la intrusión puede ir desde algo muy común por medio de un intruso novato hasta el uso de sofisticados métodos y herramientas de intrusión que no dejan rastro alguno y que pueden ser ejecutadas por un individuo con gran experiencia y habilidad en sus ataques. Incluso, se pueden dar casos en los que difícilmente se podrá dar una respuesta justificable debido a las pocas pruebas encontradas, ya que se debe tener claro que el análisis se basa en información digital que generalmente es muy volátil. Afortunadamente, casi siempre hay alguna pista en los sistemas informáticos que permiten responder una o mas preguntas planteadas en una investigación forense. Cuando los atacantes son individuos experimentados y poseen conocimientos avanzados en la manera en que operan las herramientas forenses saben qué información borrar para evitar ser descubiertos. La mejor manera de corromper un equipo es aquella donde ni siquiera el administrador del sistema sabe que ha sufrido una intrusión no autorizada. En éste capítulo de la investigación mencionaré algunos puntos donde se pueden encontrar evidencias así como algunas de las herramientas que ayudan a obtenerlas. Sin embargo, cada quien hace su propia metodología a la hora de recolectar pruebas. A continuación listaré la metodología que propongo a través de este trabajo de tesis, la cual la he desarrollado a través de mi experiencia al recabar información. El orden y el empleo de cada uno de los siguientes puntos dependen del escenario y las condiciones en que se realice la investigación forense. 1. Recabar la información del sistema comprometido. 2. Observar e identificar los procesos de inicio del sistema comprometido. 3. Observar e identificar los procesos en ejecución. 4. Auditar las cuentas de usuario y contraseñas del sistema comprometido. 5. Identificación de puertos abiertos y conexiones en el sistema analizado. 6. Análisis de los servicios en ejecución. 7. Análisis del sistema de archivos. 8. Revisión de archivos temporales del sistema comprometido. 9. Análisis de la papelera de reciclaje. 10. Análisis de archivos eliminados. Capítulo 3. Recolección de la evidencia 28 11. Análisis de bitácoras del sistema comprometido. 12. Recolección de evidencias en la red. 3.1. Información del sistema Cuando se está frente al equipo comprometido se debe recolectar toda la información necesaria siendo cuidadosos de no borrar ni alterar algún archivo, ya que se modificarían los tiempos MAC (tiempos de modificación, acceso y cambio de los archivos), estas propiedades de los archivos ayudan a determinar la fecha de cuando se llevó a cabo la intrusión. Los primeros pasos para comenzar con el análisis es obtener la información básica del equipo. Pudiera ser que el análisis se resuelva rápidamente sin necesidad de llevarse una imagen para analizarla posteriormente, rara vez se dan estos casos pero suelen ocurrir. Comenzar por revisar las cuestiones más esenciales de seguridad del equipo es lo primero que se debe contemplar. Entre las que se encuentran: • Versión del sistema operativo. • Idioma del sistema operativo. • Procesador. • Memoria RAM. • Capacidad del disco duro. • Hardware y software instalado. • Nombre del host. • Dirección IP. • Dirección MAC. • Fecha de instalación del sistema operativo. • Service Pack instalado. • Actualizaciones de seguridad instaladas (hotfixes). 3.1.1 Terminología Los sistemas operativos y las aplicaciones pueden ser muy complejos. Están formados por millones de líneas de código y son obra de muchos programadores diferentes. Es fundamental que el software funcione de manera confiable y no ponga en peligro la seguridad ni la estabilidad del entorno de TI. Para reducir al mínimo los problemas, los programas se comprueban exhaustivamente antes de salir al mercado. Sin embargo, es imposible prever todos los ataques que pueden ocurrir en el futuro y siempre hay personas dedicadas a buscar las debilidades del software. Las compañías de software producen actualizaciones para resolver las debilidades del código o de la implementación que se descubren después de comercializar el producto. Cada vez más, estos problemas están relacionados con la seguridad, a medida que el número de atacantes aumenta, sus métodos se vuelven más sofisticados y se crea nuevo código malicioso para aprovechar los puntos vulnerables. No obstante, también puede haber actualizaciones diseñadas simplemente para agregar funcionalidad al producto. 29 Las actualizaciones de seguridad suponen un reto específico para la mayoría de las organizaciones. Una vez que se han detectado las debilidades del software, los atacantes generalmente difunden esta información rápidamente a toda la comunicad. Las compañías de software intentan producir una revisión de seguridad lo antes posible. Hasta que no se implemente la revisión, la seguridad que espera tener y de la que depende puede verse reducida notablemente. • Hotfixes QFE (Quick Fix Engineering – Ingeniería de Conexión Rápida) es un grupo dentro de Microsoft que produce hotfixes, parches de código para los productos. Estas revisiones se envían a clientes específicos que experimentan problemas críticos para los que no existe una solución factible. En ocasiones, en la documentación técnica se hace referencia a las revisiones como QFE. Las revisiones no se someten a pruebas regresivas exhaustivas y son específicas para cada problema; sólo deben aplicarse si se experimenta el problema exacto que abordan y si está utilizando la versión del software actualizada con el Service Pack más reciente. Periódicamente, se incorporan grupos de revisiones a los Service Packs, se someten a comprobaciones más rigurosas y se ponen a disposición de todos los clientes. Después de seis a nueve meses, todos los hotfixes actuales serán agrupados y combinados en un nuevo Service Pack. Hasta que un nuevo Service Pack sea liberado, se deben aplicar los hotfixes que pongan en riesgo la seguridad de los sistemas. Si estas suscrito a la lista de boletines de seguridad recibirás un correo cuando un nuevo hotfix este disponible. Microsoft hoy en día tiene una política de liberar un conjunto de boletines de seguridad (y por lo tanto, los hotfixes asociados a estos) sobre las vulnerabilidades descubiertas el segundo martes de cada mes Puedes suscribirtede forma gratuita para que recibas los boletines de seguridad de Microsoft en: Microsoft Security Notification Service http://www.microsoft.com/technet/security/bulletin/notify.mspx Se deben descargar los últimos hotfixes de: http://www.microsoft.com/technet/Security/default.mspx En éste sitio se debe dar clic en Latest Security Bulletins para que aparezca la página Security Bulletin Search, la cual tiene organizados boletines y hotfixes, por producto y Service Pack. Los correos de boletines de seguridad de Microsoft contienen también vínculos para que sean descargados los hotfixes a los que hacen referencia. Capítulo 3. Recolección de la evidencia 30 • Service Packs Es un conjunto paquete acumulativo de revisiones de todos los hotfixes creados y las correcciones para errores encontrados internamente desde la publicación del producto. Los Service Packs pueden contener también un número limitado de peticiones del cliente para cambios de diseño o características. Éstos son ampliamente distribuidos y por tanto probados arduamente. Los Service Packs mantienen el producto actualizado, corrigen los problemas conocidos y también pueden ampliar la funcionalidad del equipo. Incluyen herramientas, controladores y actualizaciones, así como mejoras desarrolladas después de la comercialización del producto. Todo esto se agrupa en un solo paquete que puede descargarse fácilmente. Los Service Packs son específicos para cada producto y por lo tanto, existen distintos Service Packs para los diferentes productos. No obstante, generalmente se usa el mismo para distintas versiones del mismo producto. Por ejemplo, se utiliza el mismo Service Pack para actualizar Windows 2000 Server y Windows 2000 Professional. También son acumulativos; cada Service Pack nuevo contiene todas las reparaciones incluidas en los anteriores, además de las nuevas reparaciones y modificaciones del sistema recomendadas desde el último. No necesita instalar el Service Pack anterior antes de instalar el más reciente. El último Service Pack para Windows 2000 es el Service Pack 4 y puede descargarse de: http://www.microsoft.com/windows2000/downloads/servicepacks/sp4/default.asp El último Service Pack para Windows XP es el Service Pack 2 y puede descargarse de: http://www.microsoft.com/windowsxp/sp2/default.mspx El Service Pack más reciente para Windows Server 2003 es el Service Pack 2 y puede descargarse de: http://technet.microsoft.com/en-us/windowsserver/bb229701.aspx 3.1.2 Herramientas para obtener información del sistema. Existen distintas herramientas que ayudan a obtener información necesaria del sistema operativo, a continuación mencionaré algunas de ellas: • Winver Se puede recabar información de los Service Packs con que cuenta el equipo mediante el comando del sistema winver. 31 El comando winver arroja, entre otra información, el sistema operativo que se utiliza y la versión de Service Pack que está instalado. Figura 3.1 Comando Winver en Windows XP • WinAudit WinAudit es una herramienta para realizar un análisis de configuración del hardware y software del equipo. Es una utilería muy pequeña y no requiere de una configuración previa para utilizarla. Entre otra información, WinAudit brinda información del sistema, configuraciones de seguridad, información del sistema operativo, información de usuarios y sus privilegios en el sistema, información de actualizaciones de seguridad y mucho más. WinAudit es una herramienta libre y se puede ejecutar bajo todas las versiones de Windows. Se puede obtener desde la siguiente dirección electrónica: http://www.pxserver.com/WinAudit.htm Capítulo 3. Recolección de la evidencia 32 Figura 3.2 Herramienta WinAudit • Hfnetchk Para observar qué hotfixes hacen falta y el histórico de los que se han instalado podemos utilizar la herramienta hfnetchk, la cual se descarga desde la siguiente dirección electrónica: http://www.microsoft.com/technet/Security/tools/hfnetchk.mspx. Hfnetchk es una herramienta de línea de comandos que se puede ocupar para evaluar si un equipo o un determinado grupo de equipos cuentan o no con actualizaciones de seguridad. Puede evaluar el estado de las revisiones para los sistemas Windows y algunos de sus servicios como: Internet Information Server (IIS) 4.0, IIS 5.0, SQL Server 7.0 y SQL Server 2000 e Internet Explorer 5.01 y posterior. Esta utilería está integrada en la herramienta MBSA (Microsoft BaseLine Security Analyzer) que explicaré a continuación. • MBSA Existen otras herramientas que dan información más detallada por medio de una interfaz gráfica como lo es Microsoft Baseline Security Analizer (MBSA) que es una herramienta diseñada para determinar el estado de seguridad de acuerdo a las recomendaciones de seguridad ofrecidas por Microsoft. Además obtiene información acerca de las configuraciones del equipo como estado de las contraseñas, auditoria de 33 servicios y estado de las actualizaciones. Sin embargo, a estas alturas del análisis no es necesario emplear esta herramienta, la cual se puede obtener de la siguiente dirección: http://www.microsoft.com/technet/security/tools/mbsahome.mspx Figura 3.3 Microsoft BaseLine Security Analyzer • PsInfo Otra opción para recolectar información del equipo es la herramienta libre PsInfo. Psinfo.exe es una herramienta de línea de comandos que recolecta información de un equipo local o remoto, incluyendo el tipo de instalación, kernel, memoria física, procesador, versión del software, entre otros datos. Actualmente PsInfo la distribuye Microsoft Corp. debido a una asociación con la firma sysinternals. Esta herramienta continúa siendo gratuita y se puede descargar desde la siguiente dirección electrónica: http://www.microsoft.com/technet/sysinternals/utilities/psinfo.mspx De manera predeterminada, PsInfo muestra información del sistema local, sin embargo, si se especifica el nombre del equipo remoto o su dirección IP y mediante una cuenta con acceso permitido, psinfo obtiene información del registro de Windows del sistema remoto. Capítulo 3. Recolección de la evidencia 34 Algunos de los parámetros más importantes para la recolección de datos con PsInfo son los siguientes: • -h Lista los hotfixes instalados. • -s Lista las aplicaciones instaladas. • -d Muestra información del volumen del disco. Figura 3.4 Ejecutando PsInfo 3.2 Procesos de inicio del sistema La mayoría de los intrusos esconden códigos maliciosos en el equipo a través de determinadas llaves del registro de Windows por lo que aún eliminando los procesos de memoria las actividades maliciosas continúan apareciendo cuando se reinicia el sistema. Muchos de los códigos maliciosos como virus, gusanos, troyanos y puertas traseras usan esta técnica para asegurar su ejecución cuando inicia el equipo, por lo que es importante revisar las llaves de registro para averiguar qué procesos arrancan cuando inicia el sistema operativo. 3.2.1 Herramientas para visualizar procesos de inicio del sistema • Regedit Para analizar y editar las llaves del registro de Windows se puede utilizar herramientas como regedit.exe. 35 Regedit es una herramienta propia del sistema que permite editar el registro de Windows. Para ejecutar regedit simplemente se ejecuta la siguiente instrucción Inicio\Ejecutar , se escribe el comando regedit.exe. Figura 3.5 Regedit • Autoruns Otra herramienta muy útil para ver los programas de inicio y sus respectivas llaves del registro en donde se ubican es autoruns de Sysinternals (http://www.sysinternals.com). Es una utilería gratuita muy pequeña que puede ejecutarse tanto en modo gráfico como en la línea de comandos. Entre otras funcionalidades, autoruns posee una sección llamada “logon” donde se observan los procesos
Compartir