Hay varias técnicas diferentes, según el nivel de habilidad del autor del malware:
- Metadatos incorporados: los programas compilados pueden contener detalles sobre sus autores. Esto se ve con más frecuencia en programas legítimos y se muestra en la pantalla de detalles si observa las propiedades de Windows. Los atacantes que están fuera de la fama pueden poner detalles de identificación en estos campos
- Incrustación accidental: los compiladores suelen incluir detalles sobre los indicadores de compilación utilizados, que pueden incluir rutas a los archivos de origen. Si el archivo de origen estaba en
/users/evilbob/malware
, puedes hacer una buena suposición de que Bob Bob lo escribió. Hay formas de desactivar estas inclusiones, pero todos cometen errores a veces
- Código común: los autores de malware son como cualquier otro programador y reutilizarán partes útiles de código del trabajo anterior. A veces es posible detectar que una sección del código compilado coincide con una sección del código previamente descubierta tan cerca que parece probable que se haya utilizado el mismo código fuente para cada una. Si ese es el caso, puede deducir que el segundo autor tuvo acceso al código desde el primero, o puede ser la misma persona.
- Cadena de herramientas común: si un desarrollador tiende a usar Visual Studio, sería inesperado ver su código compilado con GCC. Si usan un empaquetador específico, sería extraño verlos usando un empaquetador diferente. No es perfecto, pero podría sugerir una distinción.
- Técnicas comunes: similares a las anteriores, los codificadores a menudo tienen patrones específicos de codificación. Es poco probable que las personas cambien de patrón, por lo que puede hacer una conjetura razonable de que si algún código compilado no pudo haberse generado en un estilo de codificación en particular, probablemente no haya sido escrito por alguien que se sabe que usa un estilo diferente. Esto es mucho más fácil con lenguajes interpretados, ya que ver el uso consistente de, por ejemplo,
for
loops en lugar de while
loops es más fácil que detectar las diferencias entre los resultados compilados de cada uno (los compiladores modernos pueden reducirlos al mismo conjunto) de instrucciones).
- Origen de malware: ¿de dónde viene? ¿Tiene algún texto en idiomas específicos o errores tipográficos que sugieren un fondo en particular? (por ejemplo,
colour
sugeriría que el autor no era estadounidense, generale
podría sugerir que alguien esté acostumbrado a escribir en una lengua románica como el francés o el italiano)
Ninguno de estos es por sí solo lo suficiente como para determinar un autor, pero combinados, pueden sugerir un autor común con malware anterior o incluso con otro código conocido (por ejemplo, de proyectos de SO).