¿Por qué los atacantes se molestan (trivialmente) en ofuscar su código fuente?

16

Un amigo mío descubrió recientemente y me envió una pequeña colección de scripts troy php que se cargaron en su máquina. Aquí hay un ejemplo:

eval(gzinflate(str_rot13(base64_decode('huge-string'))));
die;

¿Por qué los atacantes se molestan en hacer todo esto? Cualquier desarrollador puede trivialmente revertir estos pasos para ver el código fuente.

El único motivo por el que puedo imaginarlo es un intento de evitar la detección de antivirus en una base de código existente (base64 () la secuencia de comandos, tiene un virus 'nuevo', al menos durante unos minutos).

Este vector se ve mitigado en gran medida por cosas como la detección de virus heurísticos, que busca precisamente fragmentos sospechosos de fuentes como esta.

    
pregunta msanford 01.08.2012 - 21:35
fuente

1 respuesta

22

Esto no apunta a derrotar el análisis humano, apunta a derrotar los sistemas de prevención / detección de intrusos y otros análisis automatizados, a medida que el código entra en la red.

PHP es un lenguaje completo de Turing, lo que significa que una sola pieza de código puede representarse en un número casi infinito de formas. Los sistemas automatizados tienen recursos limitados y están diseñados teniendo en cuenta este hecho: intentarán desentrañar la ofuscación básica y otros trucos sencillos, pero no tiene mucho sentido intentar analizar e identificar todas las técnicas posibles de ofuscación. Es una batalla perdida, y el tiempo de sus desarrolladores se gasta mucho mejor implementando otras características.

Una vez que el código ingresa a un sistema interno, puede ser escaneado por un software anti-malware. Estos sistemas tienen acceso al código mientras se ejecuta, por lo que se puede identificar mucho más fácilmente. No tiene sentido analizar todo el código de empaquetado complejo cuando pueden identificar la cadena de memoria desempaquetada con una simple firma de detección.

    
respondido por el Polynomial 01.08.2012 - 21:39
fuente

Lea otras preguntas en las etiquetas