Estensioni file
L'estensione del file non ha assolutamente nulla a che fare con i dati nel file o come questi dati sono strutturati. A Windows piace farti pensare che l'estensione sia in qualche modo magica - non lo è, è solo una parte del nome del file e indica a Windows quale programma avviare quando apri il file. (Linux / Android e MacOS / iOS usano ancora le estensioni di file un po ', ma non quasi nella stessa misura in cui Windows funziona.)
Hai completamente ragione che puoi scaricare alcuni dati in un file, chiamarlo virus.png
e verrà aperto da un visualizzatore di immagini. Chiamalo virus.docx
e verrà aperto da MS Word.
Dati imprevisti
Se si prende un programma ben scritto e si alimenta il file contenente dati non previsti, non dovrebbe accadere nulla di entusiasmante. Il programma dovrebbe dare un errore su un "file danneggiato" o qualcosa di simile e andare avanti con la sua vita. Il problema si verifica quando il programma non è ben scritto, in genere a causa di qualche piccolo bug come un programmatore che dimentica di controllare i limiti di un array, dimenticando di controllare i puntatori nulli o dimenticando di mettere le parentesi graffe {
}
su un % dichiarazione diif
.
Anche se c'è un bug, il 99,999% dei dati non validi otterrà l'errore "file danneggiato". Solo se costruisci i dati molto con attenzione puoi far succedere qualcosa di malizioso. Per un esempio concreto, vedi la sezione su StageFright di seguito.
(Grazie a il commento di @ octern per questo).
Carichi utili dannosi in file apparentemente innocenti
Sì, quello che stai descrivendo è in realtà un vettore di attacco comune - da qui la paura generale di aprire allegati e-mail sconosciuti.
Come attaccante, se sai che esiste una vulnerabilità in un programma specifico, ad esempio il visualizzatore di immagini di Windows predefinito, puoi creare un file dannoso progettato per sfruttarlo. Di solito questo significa che tu sai che una determinata riga di codice nel visualizzatore non controlla i limiti di un array, quindi crei una .png
malformata specificamente progettata per fare un attacco di overflow del buffer e ottieni il programma per eseguire il codice che hai inserito.
exploit PNG
Ad esempio, ecco un rapporto sulle vulnerabilità sulla libreria open source libpng [CVE -2004-0597] .
Multiple buffer overflows in libpng 1.2.5 and earlier, as used in multiple products, allow remote attackers to execute arbitrary code via malformed PNG images in which (1) the png_handle_tRNS function does not properly validate the length of transparency chunk (tRNS) data, or the (2) png_handle_sBIT or (3) png_handle_hIST functions do not perform sufficient bounds checking.
A parte: una vulnerabilità ed esposizioni comuni (CVE) è un modo per tenere traccia delle vulnerabilità note nel software pubblico. L'elenco delle vulnerabilità note può essere cercato qui: link
Se cerchi CVE per "png" troverai centinaia di vulnerabilità e attacchi proprio come quello che hai immaginato nella tua domanda.
Android StageFright
La StageFright La vulnerabilità di Android di aprile 2015 era molto simile: c'era una vulnerabilità di buffer overflow nel nucleo di Android libreria multimediale e inviando un file audio / video non valido tramite MMS (messaggio multimediale), un utente malintenzionato potrebbe ottenere il controllo completo del telefono.
L'exploit originale di questa vulnerabilità era che un utente malintenzionato inviasse un file audio / video 3GPP in cui sembrava un file audio / video valido, tranne che uno dei campi interi nei metadati era anormalmente grande, causando un overflow intero . Se il grande "intero" in realtà conteneva codice eseguibile, questo potrebbe finire per essere eseguito sul telefono, motivo per cui questo tipo di vulnerabilità viene definita "vulnerabilità di esecuzione arbitraria di codice".
exploit PDF e MS Word
Se cerchi i CVE per "pdf" o "word" troverai un intero mucchio di vulnerabilità di esecuzione di codice arbitrario che le persone sono state in grado di sfruttare con questi tipi di file (wow - alcuni di quelli molto recenti per Word anche, pulito). Ecco perché .pdf
e .docx
vengono comunemente usati come allegati di posta elettronica contenenti virus.