Sono un ingegnere del software e I ancora non capisco come funzioni il malware o quale sia un exploit in termini di ingegneria del software. In che modo i contenuti di un sito Web, ad esempio, o un allegato di file a un'e-mail, diventano codice eseguibile su un PC?
I formati di file come HTML, JPEG, MP3, PNG, BMP, ecc. sono tutti letti da un altro software e quindi dovrebbero essere solo in grado di fare ciò che quel lettore gli permette di fare. Qualcosa che legge un file JPEG può fondamentalmente accendere pixel usando determinati valori RGB in una finestra di visualizzazione; non c'è nulla nelle specifiche JPEG che dice "crea un file .exe e mettilo qui nel file system e poi eseguilo". Quindi, come fanno a corrompere un file JPEG per ottenerlo? Perché un lettore JPEG legittimo ha la capacità di eseguire codice arbitrario su un PC e in che modo questi bit vengono scritti sul PC?
Anche javascript, che è un linguaggio di scripting, è ancora letto da un interprete e non ha accesso diretto al file system dell'host - è in modalità sandbox e non può scrivere direttamente sul file system dell'host.
I moderni linguaggi di programmazione non hanno nemmeno accesso diretto alla memoria con puntatori come eravamo abituati a fare con C negli anni '80 e presumo che le vulnerabilità "sovraccarico di buffer" che esistevano nei vecchi tempi siano un ricordo del passato con i moderni Sistemi operativi e gestione della memoria hardware. Quindi, anche se volessi, non so come scriverei bit in un blocco di memoria a cui non avevo accesso legale, e anche se fossi riuscito a farlo, come avrei ingannato il sistema operativo nel trattare quei bit come codice eseguibile ed eseguirli?
Quindi, come fa esattamente un sito Web malvagio a creare un codice eseguibile su un PC moderno con un sistema operativo moderno?