¿Cómo se convierte el malware en código ejecutable? [cerrado]

2

Soy un ingeniero de software y todavía no entiendo cómo funciona el malware o qué es un exploit en realidad en términos de ingeniería de software. ¿Cómo los contenidos de un sitio web, por ejemplo, o un archivo adjunto a un correo electrónico, se convierten en código ejecutable en una PC?

Los formatos de archivo como HTML, JPEG, MP3, PNG, BMP, etc., son leídos por otra pieza de software y, por lo tanto, solo deben poder hacer lo que el lector le permite. Algo que lee un archivo JPEG puede básicamente iluminar píxeles usando ciertos valores RGB en una ventana de visualización; no hay nada en la especificación JPEG que diga "crear un archivo .exe y ponerlo aquí en el sistema de archivos y luego ejecutarlo". Entonces, ¿cómo corromper un archivo JPEG para lograr eso? ¿Por qué un lector JPEG legítimo tiene la capacidad de ejecutar código arbitrario en una PC y cómo se escribirían esos bits en la PC?

Incluso un intérprete sigue leyendo javascript, que es un lenguaje de secuencias de comandos, y no tiene acceso directo al sistema de archivos del host. Está aislado en un espacio aislado y no puede escribir directamente en el sistema de archivos del host.

Los lenguajes de programación modernos ni siquiera tienen acceso directo a la memoria con punteros como solíamos hacer con C en los 80 y asumo que las vulnerabilidades de "saturación de búfer" que existían en los viejos tiempos son cosa del pasado con el moderno Gestión de sistemas operativos y memoria de hardware. Así que incluso si quisiera, no sé cómo escribiría bits en un bloque de memoria al que no tenía acceso legal, e incluso si lograra hacerlo, ¿cómo podría engañar al sistema operativo para que trate esos bits? ¿Como código ejecutable y ejecutarlo?

Entonces, ¿cómo, exactamente, un sitio web infame crea un código ejecutable en una PC moderna con un sistema operativo moderno?

    
pregunta user316117 15.05.2017 - 23:02
fuente

2 respuestas

2

Muchas de las preguntas en la publicación original ya han sido formuladas y respondidas en otras partes de este sitio. Se han escrito libros enteros sobre algunos de estos temas.

  

Soy un ingeniero de software y todavía no entiendo cómo funciona el malware o qué es un exploit en términos de ingeniería de software.

Si la definición de qué es un exploit en el contexto de la seguridad de la computadora no es lo suficientemente clara, puede ser útil ver ejemplos de código de exploit. exploit-db es un buen recurso para esto.

  

Los formatos de archivo como HTML, JPEG, MP3, PNG, BMP, etc., son leídos por otra pieza de software y, por lo tanto, solo deben poder hacer lo que el lector le permite. Algo que lee un archivo JPEG puede básicamente iluminar píxeles usando ciertos valores RGB en una ventana de visualización; no hay nada en la especificación JPEG que diga "crear un archivo .exe y ponerlo aquí en el sistema de archivos y luego ejecutarlo". Entonces, ¿cómo corromper un archivo JPEG para lograr eso? ¿Por qué un lector JPEG legítimo tiene la capacidad de ejecutar código arbitrario en una PC y cómo se escribirían esos bits en la PC?

Cómo inyectar código ejecutable, malicioso en PDF, JPEG, MP3, etc.?

¿Cómo pueden los archivos normales ocultar un virus?

¿Es posible que un archivo no ejecutable y de solo lectura ejecute código malicioso?

¿Cómo puede existir un virus en una imagen?

  

Los lenguajes de programación modernos ni siquiera tienen acceso directo a la memoria con punteros como solíamos hacer con C en los 80 y asumo que las vulnerabilidades de "saturación de búfer" que existían en los viejos tiempos son cosa del pasado con el moderno Gestión de sistemas operativos y memoria de hardware. Así que incluso si quisiera, no sé cómo escribiría bits en un bloque de memoria al que no tenía acceso legal, e incluso si lograra hacerlo, ¿cómo podría engañar al sistema operativo para que trate esos bits? ¿Como código ejecutable y ejecutarlo?

Desbordamientos de pila - Derrotar a Canaries, ASLR, DEP, NX

  

Entonces, ¿cómo, exactamente, un sitio web infame crea un código ejecutable en una PC moderna con un sistema operativo moderno?

¿Cómo se puede comprometer un sistema moderno de Windows / Linux por un desbordamiento de pila en Chrome?

Explotaciones del navegador: ataques y defensa

El ataque AnC

CWE-94: Control inadecuado de la generación de código ('Inyección de código')

    
respondido por el SYS_V 16.05.2017 - 00:34
fuente
0

Una forma muy común de explotar, por ejemplo, jpeg-viewers y otras herramientas de software inofensivas es desencadenar un desbordamiento de búfer. Y luego podrías hacer todo ...

    
respondido por el user689443 17.05.2017 - 18:42
fuente

Lea otras preguntas en las etiquetas