evolución de las soluciones antimalware

31
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

Upload: eventos-creativos

Post on 12-Jun-2015

1.192 views

Category:

Technology


5 download

DESCRIPTION

Chala de Antonio Ramos y Rubén Martínez de la empresa BitDefender impartida durante el III Curso de Seguridad Informatica de la UEM en Valencia.

TRANSCRIPT

Page 1: 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

Page 2: Evolución de las soluciones antimalware

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

Page 3: Evolución de las soluciones antimalware

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

Page 4: Evolución de las soluciones antimalware

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

Page 5: Evolución de las soluciones antimalware

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

Page 6: Evolución de las soluciones antimalware

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

Page 7: Evolución de las soluciones antimalware

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

Page 8: Evolución de las soluciones antimalware

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

Page 9: Evolución de las soluciones antimalware

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

Page 10: Evolución de las soluciones antimalware

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

Page 11: Evolución de las soluciones antimalware

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

Page 12: Evolución de las soluciones antimalware

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

Page 13: Evolución de las soluciones antimalware

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

Page 14: Evolución de las soluciones antimalware

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

Page 15: Evolución de las soluciones antimalware

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

Page 16: Evolución de las soluciones antimalware

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

Page 17: Evolución de las soluciones antimalware

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

Page 18: Evolución de las soluciones antimalware

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

Page 19: Evolución de las soluciones antimalware

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

Page 20: Evolución de las soluciones antimalware

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

Page 21: Evolución de las soluciones antimalware

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

Page 22: Evolución de las soluciones antimalware

Modelos de defensa aplicables

Gráfico evolución

Fuente: Viruslist.com (Alisa Shevchénko)

Antonio Ramos Varón / Rubén Martínez Sánchez

Page 23: Evolución de las soluciones antimalware

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

Page 24: Evolución de las soluciones antimalware

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

Page 25: Evolución de las soluciones antimalware

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

Page 26: Evolución de las soluciones antimalware

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

Page 27: Evolución de las soluciones antimalware

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

Page 28: Evolución de las soluciones antimalware

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

Page 29: Evolución de las soluciones antimalware

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

Page 30: Evolución de las soluciones antimalware

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

Page 31: Evolución de las soluciones antimalware

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