¿Por qué el malware no se escribe comúnmente en Haskell?

1

Hace poco empecé a aprender Haskell y he estado leyendo acerca de muchos de los ventajas que se supone que ofrece sobre la programación imperativa tradicional. Me encontré con esta publicación sobre el código Haskell de ingeniería inversa, y me pregunté malware escrito en Haskell.

  • ¿Hay casos conocidos de malware escritos en Haskell? (Quick Googling no obtuvo ningún resultado para mí).
  • ¿La naturaleza compleja de los programas compilados de Haskell lo convierte en una opción atractiva como lenguaje de desarrollo de malware?

Mi suposición es que las barreras de entrada para el aprendizaje de Haskell son demasiado altas para el malware rudimentario, y que aquellos con el tiempo / la capacidad para aprenderlo están escribiendo un malware más complejo que requiere las características de bajo nivel de un lenguaje como el C. ¿Se sabe que este es el caso?

    
pregunta jstrieb 04.08.2017 - 16:49
fuente

1 respuesta

2

[Descargo de responsabilidad: no es mi área de especialización]

Sí, supongo que haskell es demasiado alto.

Las cosas que el malware quiere, en orden de prioridad: cumplir su tarea, engañar a los analizadores antivirus en el objetivo, resistir la ingeniería inversa y el análisis en un laboratorio.

La naturaleza compleja de Haskell compilado probablemente ayuda con el tercero, pero probablemente hace que los dos primeros sean más difíciles. Por ejemplo, las siguientes son tareas comunes de malware que probablemente son difíciles de realizar en Haskell:

  • insértese en otra aplicación o documento tal que aún sea ejecutable ( comportamiento del virus )
  • ofuscar / encriptar sus propias constantes de cadena para evitar la fácil exploración del binario
  • reescriba su propio código dinámicamente para cambiar su huella digital y engañar a los antivirus
  • otras técnicas de evasión
  • use y manipule los archivos DLL que encuentre en la máquina de destino
  • leer / modificar la memoria que pertenece a otros procesos
  • leer / modificar datos del sistema, como el registro de inicio maestro

Si está en el nivel de sofisticación en el que está preocupado por la ingeniería inversa, no puedo imaginar que cualquier lenguaje compilado sea muy atractivo; probablemente pase la mitad de su tiempo trabajando directamente con el ensamblaje.

    
respondido por el Mike Ounsworth 04.08.2017 - 17:18
fuente

Lea otras preguntas en las etiquetas