Estoy estudiando las características comunes del malware, y me cuesta un poco entender las opciones de diseño que toman los autores del malware. Muchas de dichas opciones parecen girar y dificultar la vida de un analista humano a la hora de desarmar el malware, mientras que potencialmente lo hacen muy fácil para que un sistema automatizado lo identifique como "probablemente malicioso". Tengo curiosidad por ver si alguien me puede decir cuál es la razón detrás de tales opciones de diseño.
Por ejemplo, algunas tácticas de ingeniería anti-reversa. Sí, pueden hacer que sea más difícil para el analista revertir el malware, pero tácticas como las devoluciones de llamada TLS podrían marcarse como sospechosas, especialmente porque el malware casi nunca está firmado, mientras que la mayoría del software legítimo que usa tales técnicas para propósitos anti-RE es.
Otro ejemplo sería tácticas anti-VM. La mayoría de los emuladores de AV expiran después de un corto período No hay necesidad de detectar el emulador. Solo haga hacer algo durante unos segundos (aparte de algo que obviamente se está demorando, como llamar a sleep ()), en lugar de hacer verificaciones extremadamente ruidosas como intentar abrir un montón de claves de registro de VMWare y VirtualBox. El único caso en el que no puede durar más que la VM es cuando hay un humano analizando la muestra, y si un humano suficientemente motivado está analizando un programa, va para poder revertirlo eventualmente , entonces, ¿por qué molestarse?
Tal vez no tenga suficiente conocimiento en el campo de la creación de malware para comprender el propósito de todo esto, pero me parece que el tipo de sistemas que un autor de malware intentaría evitar sería mayormente sistemas automatizados. Por ejemplo, los motores antivirus o las estaciones de pruebas automáticas que usan las compañías de audio y video para analizar nuevas muestras potencialmente maliciosas que clasifican dichas muestras en "definitivamente no maliciosas; descartar" y "potencialmente maliciosas, enviarlas a revisión humana". El objetivo principal del autor del malware parece ser evitar que esos sistemas automatizados marquen el programa como sospechoso para reducir la posibilidad de que el malware termine frente a un analista humano para comenzar, sin frustrar un poco al analista humano que finalmente estará capaz de analizar el malware de todos modos.
Sé que algunos autores de malware son solo guiones de script, pero supongo que al menos algunos de ellos se esfuerzan por tomar decisiones de desarrollo de software. Supongo que saben más que yo sobre el tema, ya que hacen el desarrollo de malware para ganarse la vida. Pero no puedo entender algunas de las decisiones de diseño que toman. ¿Puede alguien explicarme la razón detrás de estas decisiones?