La noción de un programa informático que se reproduce a sí mismo se remonta a las teorías iniciales sobre el funcionamiento de los autómatas complejos. [1] John von Neumann demostró que, en teoría, un programa podría reproducirse a sí mismo. Esto constituyó un resultado de plausibilidad en la teoría de la computabilidad . Fred Cohen experimentó con virus informáticos y confirmó el postulado de Neumann e investigó otras propiedades del malware, como la detectabilidad y la auto-ofuscación mediante cifrado rudimentario. Su tesis doctoral de 1988 trató sobre el tema de los virus informáticos. [2]
El consejero de la facultad de Cohen, Leonard Adleman , presentó una prueba rigurosa de que, en el caso general, la determinación algorítmica de la presencia de un virus es indecidible . [3] Este problema no debe confundirse con el de la determinación dentro de una amplia clase de programas de que no existe un virus. Este problema se diferencia en que no requiere la capacidad de reconocer todos los virus.
La prueba de Adleman es quizás el resultado más profundo en la teoría de computabilidad de malware hasta la fecha y se basa en el argumento diagonal de Cantor, así como en el problema de la detención . Irónicamente, Young y Yung demostraron más tarde que el trabajo de Adleman en criptografía es ideal para construir un virus que sea altamente resistente a la ingeniería inversa al presentar la noción de un criptovirus . [4] Un criptovirus es un virus que contiene y utiliza una clave pública y un vector de inicialización de cifrado simétrico (IV) y clave de sesión (SK) generados aleatoriamente .
En el ataque de extorsión criptoviral, el virus híbrido encripta datos en texto plano en la máquina de la víctima usando el IV y SK generados aleatoriamente. A continuación, los IV + SK se cifran utilizando la clave pública del escritor del virus . En teoría, la víctima debe negociar con el escritor del virus para recuperar el IV + SK con el fin de descifrar el texto cifrado (asumiendo que no hay copias de seguridad). El análisis del virus revela la clave pública, no el IV y SK necesarios para el descifrado, o la clave privada necesaria para recuperar el IV y SK. Este resultado fue el primero en mostrar que la teoría de la complejidad computacional se puede utilizar para diseñar malware que sea robusto contra la ingeniería inversa.
Un área cada vez mayor de la investigación de virus informáticos consiste en modelar matemáticamente el comportamiento de infección de los gusanos utilizando modelos como las ecuaciones de Lotka-Volterra , que se han aplicado en el estudio de virus biológicos. Los investigadores han estudiado varios escenarios de propagación de virus, como la propagación de virus informáticos, la lucha contra virus con virus como códigos depredadores, [5] [6] la eficacia de los parches, etc.
La detección de malware de comportamiento se ha investigado más recientemente. La mayoría de los enfoques para la detección del comportamiento se basan en el análisis de las dependencias de las llamadas al sistema . El código binario ejecutado se rastrea usando strace o un análisis de taint más preciso para calcular las dependencias del flujo de datos entre las llamadas al sistema . El resultado es un gráfico dirigido de modo que los nodos son llamadas al sistema y los bordes representan dependencias. Por ejemplo, si un resultado devuelto por una llamada al sistema (ya sea directamente como resultado o indirectamente a través de parámetros de salida) se usa más tarde como un parámetro de la llamada al sistema . Los orígenes de la idea de utilizar llamadas al sistema para analizar software se pueden encontrar en el trabajo de Forrest et al. [7] Christodorescu y col. [8] señalan que los autores de malware no pueden reordenar fácilmente las llamadas al sistema sin cambiar la semántica del programa, lo que hace que los gráficos de dependencia de llamadas al sistema sean adecuados para la detección de malware. Calculan una diferencia entre los gráficos de dependencia de llamadas del sistema de malware y goodware y utilizan los gráficos resultantes para la detección, logrando altas tasas de detección. Kolbitsch y col. [9] precalcular expresiones simbólicas y evaluarlas en los parámetros syscall observados en tiempo de ejecución.
Detectan dependencias observando si el resultado obtenido por evaluación coincide con los valores de los parámetros observados en tiempo de ejecución. El malware se detecta comparando los gráficos de dependencia de los conjuntos de entrenamiento y prueba. Fredrikson y col. [10] describen un enfoque que descubre características distintivas en los gráficos de dependencia de llamadas del sistema de malware. Extraen comportamientos importantes mediante el análisis de conceptos y la minería de pasos. [11] Babic y col. [12] propuso recientemente un enfoque novedoso para la detección y clasificación de malware basado en la inferencia gramatical de los autómatas de árbol . Su enfoque infiere un autómata a partir de gráficos de dependencia y muestran cómo dicho autómata podría usarse para la detección y clasificación de malware.
En la actualidad, también se están realizando investigaciones para combinar técnicas de análisis de malware estáticas y dinámicas con el fin de minimizar las deficiencias de ambos. Estudios de investigadores como Islam et al. [13] están trabajando para integrar técnicas estáticas y dinámicas con el fin de analizar y clasificar mejor el malware y las variantes de malware.
Ver también
Referencias
- ^ John von Neumann, "Teoría de los autómatas que se reproducen", Parte 1: Transcripciones de conferencias impartidas en la Universidad de Illinois, diciembre de 1949, Editor: AW Burks, Universidad de Illinois, Estados Unidos, 1966.
- ^ Fred Cohen, "Virus informáticos", Tesis doctoral, Universidad del Sur de California, ASP Press, 1988.
- ^ LM Adleman, "Una teoría abstracta de virus informáticos", Avances en criptología --- Crypto '88, LNCS 403, págs. 354-374, 1988.
- ^ A. Young, M. Yung, "Criptovirología: Amenazas y contramedidas de seguridad basadas en la extorsión", Simposio de IEEE sobre seguridad y privacidad, págs. 129-141, 1996.
- ^ H. Toyoizumi, A. Kara. Depredadores: Los códigos móviles de buena voluntad luchan contra los virus informáticos. Proc. del Taller de 2002 Nuevos paradigmas de seguridad, 2002
- ^ Zakiya M. Tamimi, Javed I. Khan, Análisis basado en modelos de dos gusanos que luchan , IEEE / IIU Proc. de ICCCE '06, Kuala Lumpur, Malasia, mayo de 2006, Vol-I, p. 157-163.
- ^ S. Forrest, SA Hofmeyr, A. Somayaji, TA Longstaff, Thomas A .: Un sentido del yo para los procesos Unix , Proc. del IEEE Symp de 1996. sobre seguridad y privacidad, 1996, p. 120-129.
- ^ M. Christodorescu, S. Jha, C. Kruegel: Especificaciones mineras de comportamiento malicioso , Proc. de la 6ª reunión conjunta de la conf. europea de ingeniería de software. y el síntoma ACM SIGSOFT. sobre Los fundamentos de la ingeniería de software, 2007, p. 5-14
- ^ C. Kolbitsch, P. Milani, C. Kruegel, E. Kirda, X. Zhou y X. Wang: Detección eficaz y eficiente de malware en el host final , el 18º Simposio de seguridad de USENIX, 2009.
- ^ M. Fredrikson, S. Jha, M. Christodorescu, R. Sailer y X. Yan: Sintetizar especificaciones de malware casi óptimas a partir de comportamientos sospechosos , Proc. del Simposio sobre seguridad y privacidad del IEEE de 2010, 2010, pág. 45-60.
- ^ X. Yan, H. Cheng, J. Han y PS Yu: Minería de patrones de gráficos significativos mediante búsqueda de salto en Actas de la Conferencia Internacional ACM SIGMOD de 2008 sobre Gestión de Datos (SIGMOD'08). Nueva York, NY, EE. UU .: ACM Press, 2008, págs. 433-444
- ^ D. Babic, D. Reynaud y D. Song: Análisis de malware con inferencia de autómatas de árbol , en Proceedings of the 23rd Int. Conferencia sobre verificación asistida por computadora, 2011, Springer.
- ^ R. Islam, R. Tian, LM Batten y S. Versteeg: Clasificación de malware basada en características estáticas y dinámicas integradas, Journal of Network Computer Applications, 2013, p. 646-656.