Evolución de las soluciones antimalware
-
Upload
eventos-creativos -
Category
Technology
-
view
1.194 -
download
5
description
Transcript of Evolución de las soluciones antimalware
EVOLUCIÓN DEL MALWARE
Módulo: Entendiendo los modelos de infección del software
malicioso
Antonio Ramos Varón / Rubén Martínez Sánchez
Programación de malware
Evolución de virus informáticos
• En 1939, el matemático John Von Neumann, escribió el artículo "Teoría y organización de autómatas complejos“.
• Demostraba la posibilidad de desarrollar pequeños programas que pudiesen tomar el control de otros, de estructura similar.
• En 1949, en los laboratorios de la Bell Computer, Robert Thomas Morris creó el juego CoreWar, inspirado en la teoría de John Von Neumann.
• Este “juego” tenía la capacidad de reproducirse cada vez que se ejecutaba y podía llegar a saturar la memoria del equipo de otro jugador.
• En 1972 Robert Thomas Morris crea el virus Creeper que atacaba a la IBM 360.
• En 1988 Robert Tappan Morris, difundió un virus a través de ArpaNet, logrando infectar 6,000 servidores conectados a la red.
• A partir de aquí, y hasta 1995, se van desarrollando los tipos de códigos maliciosos que hoy conocemos: aparecen los primeros virus de macro, los virus polimórficos…
• Un acontecimiento cambió radicalmente el panorama vírico mundial, y fue el uso masivo de Internet y el correo electrónico.
Antonio Ramos Varón / Rubén Martínez Sánchez
Programación de malware
Comunidad Malware Open Source
• La generalización de Internet propició la aparición de canales de IRC, foros y blogs en los que se publican códigos de virus y troyanos.
• Se pueden encontrar desde proyectos personales de códigos maliciosos hasta proyectos “comunitarios” donde la gente va aportando módulos.
• Ejemplo: malware básico “propagadorvirus.bat”.
• Ejemplo código cliente-servidor en Java para posible troyano.
• Código del servidor de un troyano
procedure TForm1.ServerSocket1ClientRead (Sender:TObject;Socket:TCustomWinSocket); var Command:integer; FullCommand,st:string; begin FullCommand:=Socket.ReceiveText; st:=copy(FullCommand,1,2); Command:=StrToInt(st); case Command of 01:beep; 02: begin ShowMessage(st); st:='The message '''+st+''' has been received'; Socket.SendText(st); end; end; end;
Antonio Ramos Varón / Rubén Martínez Sánchez
Primer ejemplo práctico prueba de concepto: malware básico
“propagadorvirus.bat”
Segundo ejemplo práctico prueba de concepto: Código java para troyano
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Objetivos
• Dificultar que el virus sea detectado mediante métodos de firmas.
• Dificultar el análisis del código del virus a los especialistas.
• Dificultar la detección del programa nocivo en el sistema.
• Entorpecer el funcionamiento de los programas de protección (antivirus, cortafuegos, etc).
Técnicas de autodefensa
• Polimorfismo y cifrado.• Empaquetadores (packers).• Rootkits.• Pronósticos y tendencias.
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Polimorfismo y cifrado
• Los virus polimórficos tratan de evadir la detección cambiando su patrón de byte con cada infección, así que no existe una secuencia de bytes constante que un programa antivirus pueda buscar.
• Algunos virus polimórficos utilizan distintas técnicas de cifrado para cada infección.
• La ofuscación en sí sólo dificulta el análisis, pero si es diferente en cada copia del programa nocivo, obstaculiza a su vez la detección por firmas.
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Empaquetadores (packers)
• Los creadores de malware utilizan empaquetadores para disminuir el tamaño de los virus y así incrementar la dificultad en su análisis, ya que el hecho de desempaquetar un objeto a través métodos aún desconocidos requiere tiempo y puede ser complejo.
• Los empaquetadores poseen capacidad de configuración que permite a los creadores de malware lograr que sus códigos maliciosos detecten cuando están siendo ejecutados en entornos controlados, es decir, en máquinas virtuales, dificultando así su análisis.
• ¿Deben ser detectados los packers como herramientas para camuflar software malicioso?
• Comparación entre un fichero comprimido (izquierda) y descomprimido (derecha).
Antonio Ramos Varón / Rubén Martínez Sánchez
Tercer ejemplo práctico prueba de concepto: Haciendo indetectable un
malware mediante una de las técnicas expuestas
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Rootkits
• Conjunto de herramientas que consiguen el control del usuario root y de los procesos del sistema operativo, a la vez que permanecen indetectables a dicho sistema operativo, y por tanto, al usuario.
• Para que una aplicación sea catalagoda como rootkit debe realizar alguna de las siguientes actividades:
• Conseguir acceso privilegiado al sistema y mantenerlo.
• Ocultar procesos, threads, directorios, ficheros, claves de registro, puertos, etc.
• Tiene que ser capaz de mostrar al sistema operativo una imagen limpia de sí mismo, para así pasar desapercibido.
• Hay 2 tipos de rootkits: modo usuario y modo kernel.
• Modo usuario: mediante procedimientos de hooking reemplazan o modifican programas que se ejecutan en modo usuario (anillo 3). Capaces de ocultar sus procesos al administrador de tareas.
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Rootkits
• Modo kernel: modificación de componentes del kernel del S.O. (anillo 0) que no pueden ser modificados mediante un proceso sin privilegios.
Las API
• Funciones, procedimientos y bibliotecas que proporcionan acceso a servicios del SO.
• Evitan al desarrollador volver a programar rutinas que son realizadas frecuentemente en el SO,
• Estas funciones son el blanco para cualquiera que quiera controlar el sistema operativo, ya que cada vez que se invoque a una API, se estará llamando al código malicioso.
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Rootkits
Las API
• Un ejemplo podría ser una rootkit que intercepte la API de manejo de teclado, de forma que cada tecla presionada es registrada por un keylogger y el usuario no note dicha intercepción.
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Rootkits
Las API
• Hooking, es un mecanismo por el que una función del rootkit se engancha con una función original del SO, redireccionando el flujo de ejecución normal. Ejemplo de hooking realizado por un virus.
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Pronósticos y tendencias
• Evitar la detección de comportamientos sospechosos (heurística)• Desarrollo de tecnologías que detecten el entorno de ejecución.• Algunos programas maliciosos se “suicidan” al detectar que
están siendo ejecutados en un entorno virtual.• Esto último es una medida de protección de los desarrolladores
de malware, ya que algunos antivirus tienden a analizar el software en entornos virtuales.
Cuarto ejemplo práctico prueba de concepto:Técnica de secuestro de threads para intentar evadir
técnicas heurísticas. Fuente y desarrollo por c0de9037.
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Pronósticos y tendencias
• Debido a la gran evolución en técnicas de inteligencia artifical de los antivirus, se tiende a atacar mediante ingeniería social a la parte más débil de toda la cadena: el usuario.
Quinto ejemplo práctico prueba de concepto:Ingeniería social mediante: Tabbnabing + extensión con
javascript para detectar páginas visitadas
Antonio Ramos Varón / Rubén Martínez Sánchez
Autodefensa del malware
Referencias
• Rootkit.com• jbyte-security.blogspot.com• BitDefender Labs• Viruslist.com• Ghostwriting desarrollado por c0de9037 • Indetectables.net
Antonio Ramos Varón / Rubén Martínez Sánchez
EVOLUCIÓN DE LAS SOLUCIONES ANTIMALWARE
Módulo: Entendiendo los modelos de defensa de los sistemas
antivirus contra software malicioso
Antonio Ramos Varón / Rubén Martínez Sánchez
Introducción
• La existencia de un punto de rotura en la avanzada de la tecnología antivirus:
• Tecnología de reconocimiento basada en firmas.• Tecnologías “no basadas en firmas”.
• Un programa malicioso será: un fichero con un determinado contenido, un conjunto de acciones en el SO y un conjunto de efectos sobre el SO, esto va a permitir varios niveles de detección: según cadenas de bytes, acciones y efectos en el sistema principalmente.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Los componentes que entran en juego:Podremos destacar dos componentes que entra en juego el ámbito de las tecnologías de protección, que a nivel funcional pueden ser diferenciados de manera más nítida.
1. El componente técnico
2. El componente analítico.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
El componente técnico:• Este componente consta de una serie de
funciones y algoritmos de uso del sotfware que recopilan y proporcionan datos al componente analítico.
• Siendo estos datos: secuencias de texto dentro del fichero inspeccionado, acciones del programa sobre el sistema operativo y/o combinaciones de ambas.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
El componente analítico:•Este componente será el encargado de tomar las decisiones= emitir un juicio sobre la información suministrada.Las acciones desencadenadas dependerán de este juicio o valoración y estarán sujetas a su política de seguridad definida: poner en cuarentena, borrar, renombrar, bloquearlo, etc.
EjemploEn un sistema tradicional de comparación por firmas el componente técnico toma información sobre el fichero y su contenido y el componente analítico es una simple comparación de esta información en su base de datos de firmas.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Desarrollando el componente técnico• Podremos hablar de distintos métodos de recolección de
datos que participan en menor o mayor medida de forma coordinada.
1. Ver el fichero como un conjunto de bytes.
2. Emulación del código del programa.
3. Tecnologías de virtualización.
4. Monitorización de eventos.
5. Búsqueda de anomalías.
Esto permite a su vez establecer un orden en el tiempo en la evolución de la tecnologías de los fabricantes que han ido de manera
cronológica avanzando en esta línea.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Gráfico evolución
Fuente: Viruslist.com (Alisa Shevchénko)
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Escaneo de ficheros• La extracción de unos conjuntos
de bytes del fichero que serán transmitidos al componente analítico. En ningún momento se entra en estudiar el comportamiento.
Emulación del código del programa
• Se divide el código del fichero en instrucciones y se ejecuta cada una de estas en un entorno virtual. Como particularidad no pone en riesgo el sistema y actúa como complemento al método de firmas.
Virtualización• Ya se lanza el programa en un
entorno virtual controlado, para determinar su comportamiento ante una ejecución por parte del usuario. Es un paso mas avanzado a la emulación, aparece el concepto de Sandbox. Y según el motor de virtualización puede ofrecerle al ejecutable de manera virtualizada el registro, sistema de archivos, etc. Siempre se teme un impacto negativo en términos de recurso de la máquina pero esto empieza a quedar lejano debido a las técnica de optimización en los motores de virtualización.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Monitorizar eventos• Consiste en la observación o
seguimiento de los programas, mediante interceptar funciones del sistema operativo, con lo cual es avisado cuando un programa realiza una llamada para ejecutar acciones en el sistema, esta información es analizada estadísticamente y enviada al componente analítico.
La búsqueda de anomalías• El concepto de sistema “saludable” o
sistema “enfermo”, pero la complejidad de determinar un patrón saludable del sistema requiere de modelos complejos de análisis multivariable, que pueden hacer complejo el método en si.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Desarrollando el componente analítico• Podremos hablar de distintos métodos que vamos a englobar
(aunque existen múltiples variantes intermedias) en:
1. La comparación simple.
2. La comparación compleja.
3. Sistemas complejos de análisis.
4. El análisis humano.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
La comparación simple
• La decisión se toma mediante el resultado de una comparación de un objeto con la muestra de que disponemos.
La comparación compleja• La decisión se toma mediante el resultado de una comparación de varios objetos con las muestras de que disponemos.
Los modelos complejos de análisis• La decisión se basará en modelos predictivos / probabilísticos. En función de comportamientos=>puntuaciones específicas de las múltiples variables observadas y el peso de estas en sistemas de ecuaciones.
El humano
Nada que decir sobre este modelo de decisión
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Entendiendo uno de los modelos complejos
• Modelo discriminante multivariable
Este tipo de modelo tiene una amplia aplicación en muchas de las áreas de nuestro conocimiento (financiera, sociologica, política, biología, informática, etc, etc.)
Cuando se trata de una decisión dicotómica (nocivo, no nocivo) el modelo tiene muchas similitudes al calculo de una ecuación de regresión múltiple.
Función discriminante=> D1 = a0 + a1X1 + a2X2 + …. + anXn
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Modelo multivariante discriminante
Si la decisión es una terna (sospechoso, nocivo, no nocivo) se precisará del calculo de dos funciones discriminantes, con lo cual siempre tendremos k-1 funciones discriminantes, siendo k el
número de categorías donde clasificar.
Función discriminante1=> D1 = a0 + a1X1 + a2X2 + …. + anXn
Función discriminante2=> D2 = a01 + a11X1 + a22X2 + …. + annXn
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Modelo multivariante discriminante¿Qué hacen estas funciones? “discriminan” el espacio de
decisión entre las categorías a clasificar. De manera que un programa nocivo del cual obtenemos datos de las distintas variables que hemos observado de el (sus llamadas, su forma, tamaño, su ejecución, etc.), mediante su puntuación en estas funciones podremos con un probabilidad más que aceptable saber de que se trata. En definitiva podemos tomar una decisión y clasificarlo.
Antonio Ramos Varón / Rubén Martínez Sánchez
Modelos de defensa aplicables
Modelo multivariante discriminante
• Por último y de manera muy resumida viene el problema de clasificar. La toma de decisión a que categoría o grupo corresponde el código analizado. Son múltiples los mecanismos de clasificación utilizados conocidas las funciones discriminantes y las puntuaciones obtenidas en estas, 2 de los métodos a destacar son:
1. Método de proximidad a los CENTROIDES.
2. Método de probabilidad bayesiano.
Antonio Ramos Varón / Rubén Martínez Sánchez
Como optar por una solución antimalware
Visto lo visto la toma de decisión vuelve a estar en nuestro lado, el lado humano:
La realización de pruebas independientes y evaluación de los resultados obtenidos sería lo que demanda el
sentido común junto a una comparativa de precios en el mercado, análisis que siempre nos llevará a ……
Antonio Ramos Varón / Rubén Martínez Sánchez