Può semplicemente decomprimere un'immagine JPEG per attivare un exploit?

100

Il romanzo Demone viene spesso elogiato per essere realistico nel suo ritratto piuttosto che come semplice parola d'ordine.

Tuttavia, questo mi è sembrato irrealistico:

Gragg's e-mail contained a poisoned JPEG of the brokerage logo. JPEGs were compressed image files. When the user viewed the e-mail, the operating system ran a decompression algorithm to render the graphic on-screen; it was this decompression algorithm that executed Gragg's malicious script and let him slip inside the user's system—granting him full access. There was a patch available for the decompression flaw, but older, rich folks typically had no clue about security patches.

C'è una cosa del genere? Questa descrizione si basa su qualche vero exploit?

Questo è stato pubblicato nel dicembre 2006.

È ragionevole dire che "il sistema operativo" stava decomprimendo l'immagine per renderla?

Nota che questo non ha nulla a che fare con la sicurezza degli script di caricamento delle immagini PHP. Sto chiedendo del processo di decodifica di visualizzazione di un JPEG , non di script che prendono input da utenti remoti, né di file con nome errato come .jpeg . Il doppio flag che sto rispondendo sembra scadente anche per una corrispondenza di parole chiave; davvero niente di diverso oltre a menzionare i file immagine.

    
posta JDługosz 26.08.2015 - 21:00
fonte

5 risposte

178

Is there such a thing?

Assolutamente. L'immissione di input dannosi su un parser è uno dei modi più comuni per creare un exploit (e, per un JPEG, "decompressione" è "parsing").

Is this description based on some real exploit?

Potrebbe essere basato sulla vulnerabilità di overflow del buffer GDI di Microsoft Windows :

There is a buffer overflow vulnerability in the way the JPEG parsing component of GDI+ (Gdiplus.dll) handles malformed JPEG images. By introducing a specially crafted JPEG file to the vulnerable component, a remote attacker could trigger a buffer overflow condition.

...

A remote, unauthenticated attacker could potentially execute arbitrary code on a vulnerable system by introducing a specially crafted JPEG file. This malicious JPEG image may be introduced to the system via a malicious web page, HTML email, or an email attachment.

.

This was published in December 2006.

La vulnerabilità di parsing JPEG GDI + è stata pubblicata nel settembre 2004.

Is it sensible to say "the operating system" was decompressing the image to render it?

Certo; in questo caso, era una libreria di sistema che richiedeva una patch del fornitore del sistema operativo per correggerla. Spesso tali librerie vengono utilizzate da più pacchetti software, rendendoli parte del sistema operativo piuttosto che specifici dell'applicazione.

In realtà, "l'applicazione di posta elettronica ha richiamato una libreria di sistema per analizzare un JPEG", ma "il sistema operativo" è abbastanza vicino per un romanzo.

    
risposta data 26.08.2015 - 21:10
fonte
47

Accordarsi con gli altri per dire sì è assolutamente possibile, ma anche aggiungere un aneddoto interessante:

Joshua Drake (@jduck), ha scoperto un bug basato su un concetto molto simile (le immagini vengono interpretate dal sistema operativo) che ha finito per essere chiamato "Stagefright" e ha interessato un numero ridicolo di dispositivi Android .

Ha anche scoperto un bug simile a un'immagine in libpng che causerebbe il blocco di alcuni dispositivi. Ha twittato un esempio dell'exploit in pratica dicendo "Ehi, dai un'occhiata a questo fantastico PNG malizioso che ho creato, probabilmente manderà in crash il tuo dispositivo", senza rendersi conto che Twitter ha aggiunto il rendering automatico delle immagini in linea. Inutile dire che molti dei suoi follower hanno iniziato a far crashare le loro macchine nel momento in cui il browser ha provato a caricare la miniatura dell'immagine nel loro feed.

    
risposta data 27.08.2015 - 05:18
fonte
10

Unrealistic? C'era un bug critico recente nell'analisi delle definizioni dei font: link e i cambiamenti di libjpeg sono pieni di avvisi di sicurezza. L'analisi dei file [1] è difficile: overflow, underflow, accesso fuori limite. Recentemente sono stati sviluppati molti strumenti di fuzzing per il rilevamento semiautomatico di input che può causare crash.

[1] o pacchetti di rete, XML o query SQL.

    
risposta data 27.08.2015 - 17:48
fonte
1

Come altri hanno sottolineato, tali attacchi di solito sfruttano il buffer overflow.

Riguardo ai dadi e bulloni di come, si chiama un attacco distruttivo. Comprende la corruzione dello stack di chiamate e la sovrascrittura di un indirizzo in codice legittimo da eseguire con un indirizzo al codice fornito da un utente malintenzionato, che viene eseguito invece.

Puoi trovare i dettagli su insecure.org/stf/smashstack.html .

    
risposta data 30.08.2015 - 21:42
fonte
0

Sì, questo è possibile:

A new variant of the nefarious Zeus banking trojan – dubbed ZeusVM – is concealed in JPG image files, according to the collaborative findings of Jerome Segura, senior security researcher with Malwarebytes, and French security researcher Xylitol.

The act is known as steganography – concealing messages or images in other messages or images.

In the case of ZeusVM, the malware's code is hidden in unassuming JPG images, a Monday blog post by Segura revealed. These photos serve as misdirection for ZeusVM to retrieve its configuration file.

“The JPG contains the malware configuration file, which is essentially a list of scripts and financial institutions - but doesn't need to be opened by the victim themselves,” Segura told SCMagazine.com in a Tuesday email correspondence. “In fact, the JPG itself has very little visibility to the user and is largely a cloaking technique to ensure it is undetected from a security software standpoint.”

Source .

    
risposta data 26.08.2015 - 21:08
fonte

Leggi altre domande sui tag