1 / 28

Análisis Forense. Escenario Malware en entornos Windows

Código: HOL-SEG03. Análisis Forense. Escenario Malware en entornos Windows. Juan Garrido Consultor Seguridad I64 jgarrido@informatica64.com. Agenda Nivel I. Tipos de Troyanos Troyanos de conexión directa Troyanos de conexión inversa Herramientas Netcat Crypcat Rootkits

step
Télécharger la présentation

Análisis Forense. Escenario Malware en entornos Windows

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Código: HOL-SEG03 Análisis Forense.Escenario Malware en entornos Windows Juan Garrido Consultor Seguridad I64 jgarrido@informatica64.com

  2. Agenda Nivel I • Tipos de Troyanos • Troyanos de conexión directa • Troyanos de conexión inversa • Herramientas • Netcat • Crypcat • Rootkits • Rootkits modo usuario • Rootkits modo Kernel • Phishing • Tipos de Phishing • Troyanos bancarios

  3. Agenda Nivel II • Análisis Malware • Análisis estático • Análisis dinámico • Análisis RAM Memory • Volcados de memoria • Volcados de procesos • Tipos de Herramientas

  4. Agenda Nivel III • Malware Indetectable • Antivirus • Verificación firmas • Heurística • Técnicas utilizadas • Encriptación • Morphing • Modificación firmas • Binders • Detección de firmas • Herramientas

  5. Introducción • Los troyanos no son nada nuevo • Desde los 70 ya se conocían troyanos que imitaban la pantalla de Login. • La profesionalización del crimen online los ha “resucitado” como herramienta de fraude. • En el mercado hay tal cantidad de malware, que para las empresas antivirus es prácticamente imposible analizarlas todas.

  6. Introducción • Los métodos tradicionales han ido pasando a la historia • Hoy en día lo que se lleva son los troyanos personalizados y específicos • Están desarrollados pensando en un fin específico • Diversidad en el código fuente (Malware multiplataforma) • Capacidad para adaptarse al entorno (conexiones inversas)

  7. Tipos de Conexión • Conexión directa • Gran auge en los 80 • El atacante tenía que establecer la conexión • Gran facilidad en aquella época (Usabilidad VS Seguridad) • Se ha ido perdiendo con el paso de los años • Conexión Inversa • La seguridad ha avanzado mucho (FW, IDS, etc..) • El troyano se conecta directamente al atacante • Facilidad para pasar Firewalls, burlar antivirus, etc.. • En algunos casos se requiere conocer cómo funciona internamente un SO.

  8. Herramientas • Netcat • La navaja suiza de los administradores • Herramienta adoptada por los atacantes • Detectada por algunos antivirus como Hack-Tool • Permite ejecutar Shell Remotas • Capacidad para compartir conexión con otras aplicaciones • Muy difícil de detectar en ciertas configuraciones • Crypcat • Su homólogo en versión cifrada

  9. Rootkits • Objetivo • Ocultación total • Muy extendidos • En poco tiempo se han convertido en la primera línea de ataque • Técnicas • Inyección • DKOM • Tipos • Usuario • Kernel

  10. Técnicas y Objetivos (Inyección) • Conocer qué aplicación llama a determinada API del sistema • Utilizada ampliamente por spyware y rootkits • Los objetivos son varios • Escuchar mensajes de la aplicación • Modificar datos de la aplicación • Ocultación de todo tipo de elementos del SO • Aplicación original ejecute código nuestro

  11. Arquitectura Windows • La arquitectura i386 admite hasta 4 anillos o niveles de privilegios (0,3) • Impide que código con privilegios inferiores sustituya código y datos de sistema (0) • Anillo 0.- El más elevado • Anillo 3.- Menos elevado (UserLand) • Windows emplea dos niveles de privilegio (0 y 3) • Se diseñó así para que se pudiese ejecutar en arquitecturas que no admitiesen los 4 anillos o niveles

  12. Ejemplos • Nivel 3 (UserLand) • Internet Explorer • Word • Notepad • Etc… • Nivel 0 • Controladores (drivers) • Plug & Play • Memoria virtual • Etc…

  13. Cómo funciona • Aplicaciones de usuario solicitan constantemente información a la capa de Kernel, y ésta al hardware • Estas peticiones se realizan mediante llamadas al sistema. Todo ello conforma el subsistema Win32 • User32.dll • Gdi32.dll • Kernel32.dll • Shell32.dll • Etc…

  14. Caminos a recorrer • Llamada al subsistema • Gestiona la solicitud de forma local, sin realizar llamadas al kernel • Realizar la llamada a un proceso de la capa de usuario (csrss.exe), responsable de mantener todo el susbistema Win32. Éste mantiene la información de los procesos Win32 y se los devuelve a la API que ha efectuado la llamada • Envía una llamada de procedimiento remoto (RPC) para que actúe como enlace (Ej.- Recursos compartidos) • Llama a alguna API que necesite servicios de Kernel. Realizará una llamada a una librería de sistema (ntdll.dll) • Ntdll.dll.- Librería especializada que contiene funciones de soporte interna, distribución de servicios • Kernel32.dll.- Se suele confundir con el kernel de Windows. En realidad es una librería que opera en Ring 3 y únicamente transmite la información o llamadas a la librería ntdll.dll, también cargada en Ring3 • Ntoskrnl.exe.- Contiene las funciones de kernel. Coopera internamente con otro driver de sistema (win32k.sys)

  15. Rootkits • Deben alterar este camino o flujo de ruta para conseguir sus objetivos, sean cuales sean • Este modo de alteración o modificación se puede realizar a través de un proceso llamado “enganche” o “hooking” • La propia arquitectura de Windows permite una rápida implementación de este tipo de técnica, lo que permite flexibilidad y capacidad de ampliación a una herramienta, sea cual sea su fin • Por regla general los rootkits modifican los datos que devuelven las llamadas de funciones del sistema de Windows para ocultar procesos, entradas de registro, etc…

  16. Tipos de Hooks • Los más conocidos • System Hooks (Inyección) • IAT Patching • Información sobre Hooks • http://msdn2.microsoft.com/en-us/library/ms644990.aspx • http://msdn2.microsoft.com/en-us/library/ms997537.aspx

  17. Hooks propiamente dichos • Un hook (gancho) es un mecanismo por el cual una función puede interceptar eventos antes de llegar a su destino, llegando en algún caso a poder modificar el evento. • Hay muchos tipos de hooks • De teclado • De ratón • De mensaje a ventana • De evento a ratón • Etc…

  18. Hooks propiamente dichos • Las funciones que reciben los eventos son llamadas funciones filtro y se clasifican de acuerdo al tipo de evento que interceptan. • Para mantener y acceder a este tipo de funciones, las aplicaciones utilizan las siguientes funciones: • SetWindowsHookEx • UnHookWindowsHookEx

  19. Hooks en Windows • Las aplicaciones basadas en Windows utilizan las siguientes funciones: • SetWindowsHookEx • UnhookWindowsHookEx • CallNextHookEx HHOOK SetWindowsHookEx(int idHook,HOOKPROC lpfn,HINSTANCE hMod,DWORDdwThreadId);

  20. Algunos tipos de Inyección • Inyecciones DLL • Proxy DLL • Parchear llamadas • Parchear la API • Romper las barreras del espacio de memoria • Winsock Hooking

  21. Proxy DLL • Uno de los más fáciles • Muy antiguo • Se logra muy fácilmente creando un proxy dll, la cual contendrá funciones exportadas de la librería original de Windows (Winsock). Si renombramos esta librería a la original de Windows (wsock32.dll) y enlazada en el mismo directorio, la intercepción de mensajes ocurre al instante. • Como contrapartida cabe decir que muchas de las funciones de la librería Winsock de Microsoft, no están documentadas, por lo que una copia de ésta restaría funcionalidad al sistema, siendo más fácil su detección. • +Info: http://www.microsoft.com/msj/0997/hood0997.aspx

  22. Inyección DLL • Nuestro código (el maligno), debe estar en el mismo espacio de memoria que el ejecutable o dll a inyectar • Podemos modificar la librería del ejecutable legítimo • Crear Hilos de forma remota (CreateRemoteThread) • http://msdn2.microsoft.com/en-us/library/ms682437.aspx • Inyección a través de extensión de aplicaciones • Su diseño (IE, Explorador de Windows, etc…) permite que se puedan “extender” sus funcionalidades. • HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_DLLs

  23. Rootkits Modo Kernel • Programación en modo kernel la utilizan habitualmente aplicaciones legítimas (drivers, antivirus, etc…) • Los rootkits en modo kernel necesitan cargarse en el espacio de memoria reservado para el kernel • Una vez que están instalados funcionan de manera similar a como si lo estuviesen haciendo en Ring3, pero con la salvedad de que se están ejecutando en un espacio “reservado” para el Kernel • Entra en juego nuevas técnicas • Modificación de la tabla de descriptores del sistema (SSDT) • Ej.- Crear Carpeta (NTcreateFile) • Kernel32.dll ntdll.dllntoskrnl.exeSSDTCrea Carpeta • Rootkit modificaría la tabla SSDT para que apunte a una función específica del rootkit • Se descubren fácilmente • Se puede comparar la tabla SSDT con el TaskManager para ver los procesos en ejecución

  24. DKOM • Direct Kernel Object Manipulation • Modifica los objetos del kernel directamente • Muy peligroso • Puede dar pantallas azules (BSOD) • Llama directamente al administrador de objetos de Windows (Se puede ver con WinObj) • Al modificar directamente los objetos, éste puede ocultar directamente los procesos sin que pasen a formar parte de una lista interna

  25. http://Windowstips.wordpress.com

  26. http://legalidadinformatica.blogspot.com

  27. TechNews de Informática 64 • Suscripción gratuita en technews@informatica64.com

  28. Contactos • Informática 64 • http://www.informatica64.com • i64@informatica64.com • +34 91 665 99 98 • Profesor • jgarrido@informatica64.com

More Related