• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Evolución de las soluciones antimalware
 

Evolución de las soluciones antimalware

on

  • 1,627 views

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.

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.

Statistics

Views

Total Views
1,627
Views on SlideShare
1,627
Embed Views
0

Actions

Likes
0
Downloads
56
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Evolución de las soluciones antimalware Evolución de las soluciones antimalware Presentation Transcript

    • 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.
        • El componente técnico
        • 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.
      • Ejemplo
        • En 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.
        • Ver el fichero como un conjunto de bytes.
        • Emulación del código del programa.
        • Tecnologías de virtualización.
        • Monitorización de eventos.
        • 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:
        • La comparación simple.
        • La comparación compleja.
        • Sistemas complejos de análisis.
        • 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 = a 0 + a 1 X 1 + a 2 X 2 + …. + a n X n
      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 = a 0 + a 1 X 1 + a 2 X 2 + …. + a n X n
        • Función discriminante2=> D2 = a 01 + a 11 X 1 + a 22 X 2 + …. + a nn X n
      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