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?