Potresti scrivere dati personalizzati su un file di un'estensione specifica e usarlo per hackerare un programma una volta aperto il file?

16

Da quello che capisco le estensioni di file non influenzano affatto i dati contenuti al loro interno. Semplicemente danno al tuo computer un suggerimento su cosa sono i dati, come sono strutturati e il tuo computer quindi trova il miglior programma per gestire quel tipo di file specifico.

Quindi la mia domanda è: se potessi scrivere dati personalizzati, ad esempio, su un file .png che in realtà contiene valori diversi da quello che è composto da un normale file .png , quindi aprire un programma, potresti fagli fare qualcosa di malizioso?

    
posta Edward Severinsen 06.04.2016 - 00:18
fonte

2 risposte

29

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.

    
risposta data 06.04.2016 - 00:45
fonte
5

Bene, questa domanda è abbastanza ampia. Ma in breve:

Estensione file

Un bel po 'di virus utilizza semplicemente / -ed Windows, una grande funzionalità di nascondere le estensioni di file. Per esempio. il file someimg.jpg.exe verrebbe visualizzato come someimg.jpg per l'utente, che lo aprirà senza sapere che ha eseguito codice dannoso.

Hak più specifici

Ci sono stati (probabilmente) alcuni virus drive-by, che utilizzavano un bug nella libreria di immagini di Windows che era in grado di eseguire codice nascosto nel jpg. È noto che anche Flash è soggetto agli attacchi di overflow del buffer. Inserendo un frame più grande di quanto specificato, si potrebbe causare un overflow del buffer che consentiva l'esecuzione del codice. I file PDF su Adobe consentono l'incorporamento del codice javascript, che può essere utilizzato anche maliziosamente, e AdobeReader ha un bug che consentiva l'esecuzione di eseguibili incorporati all'interno del file pdf. La lista potrebbe essere condotta all'infinito.

Questi tipi di hack richiedono una conoscenza precisa del software specifico e sono punti deboli. Ma non c'è alcuna opzione per rinominare semplicemente .exe in .jpg e sperare che l'immagine-lib lo esegua, o qualcosa di simile.

    
risposta data 06.04.2016 - 00:44
fonte

Leggi altre domande sui tag