Populární linuxový ImageMagick je děravý jako ementál. Drobným hackem jsme smazali soubory

Hromada webových služeb běžících na linuxovém serveru používá k operacím s obrázky nástroje z balíku ImageMagick. Ty mohou třeba ořezávat a generovat fotografie, provádět jejich konverzi mezi formáty aj. Takovým typickým příkladem použití by mohla být třeba práce s úpravou profilové fotografie uživatele na nějakém webu.

ImageMagick je rychlý a mocný, nabízí totiž obrovské množství konverzních funkcí včetně generování animovaných gifů aj. Jenže kvůli této komplexnosti obsahuje také hromadu kritických chyb (CVE-2016-3714), na které nyní upozornil třeba docela adekvátně pojmenovaný web ImageTragick.

Díky těmto zranitelnostem lze poměrně snadno zneužít konverzní funkce ImageMagicku k nejrůznějším operacím v systému. Pokud například ImageMagick dostane za úkol převést grafiku ve formátu SVG, MVG aj. do něčeho jiného – třeba do rastru PNG, může vstupní soubor obsahovat příkazy, které povedou ke smazání nějakého souboru (pokud na to bude mít ImageMagick práva), ke spuštění příkazu, zavolání HTTP GET, stažení zákeřného kódu z webu aj.

Okamžitě po zveřejnění tedy hackeři vytvořili zákeřné obrázky, které zkoušejí nahrávat na nejrůznější weby, které pracují s grafikou a ví se, že používají ImageMagick. Některé velké hostingové/CDN systémy jako třeba CloudFlare a další už na tyto útoky pamatují ve svých firewallech.

Příklad útoku pomocí zákeřného obrázku

Jak může být takový útok snadný, ukážeme v příkladu níže.

Nejprve si vytvořím zákeřný soubor smazat.mvg v textovém formátu MVG (Magick Vector Graphics):

push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'ephemeral:/tmp/pokus.txt'
pop graphic-context

Soubor obsahuje textové instrukce k vytvoření plátna o velikost 640×480 pixelů, na které se má vykreslit na pozici 0;0 obrázek ze souboru /tmp/pokus.txt. Před adresou souboru je ale klíčové slovo ephemeral, které ImageMagicku říká, aby tento soubor poté smazal.

Problém spočívá v tom, že se vůbec nejedná o obrázek, ale že to může být vlastně jakýkoliv soubor, k jehož smazání bude mít proces ImageMagicku právo.

Pokud bych takový soubor poté nahrál na nějakou službu s ImageMagickem, který se na serveru pokusí o konverzi do nějakého jednotného formátu, třeba PNG, provedl by podobnou operaci takto:

convert smazat.mvg smazat.png

V rámci zpracovávání souboru smazat.mvg by pak ImageMagick smazal soubor /tmp/smazat.txt

Klepněte pro větší obrázek
ImageMagick je velmi snadno zneužitelný k nekalým operacím

Další příklady primitivních a o to nejbezpečnějších útoků najdete na webu ImageTragick, který zároveň nabízí rady, jak balík aktuálně co nejlépe zabezpečit.

Témata článku: Web, Bezpečnost, Linux, Programování, Open source, SVG, Vector, Convert

14 komentářů

Nejnovější komentáře

  • Honza Skýpala 11. 5. 2016 19:39:50
    To se používá? Na linuxu jedu už tak pět šest let, a tohle jsem nikdy...
  • Albert Kratky 11. 5. 2016 10:41:16
    tak image mgick som nepouzil ani nepamatam. ale mam navrh na novinku...
  • matelko 2 10. 5. 2016 22:25:23
    :-) Ty brďo to abych se bál. :-D Ale, že jste tady nepsali o tomhle. To...
Určitě si přečtěte

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

Operační systém běžným počítačům nedal Bill Gates, ale Gary Kildall

** Gary Kildall pochopil, že levné výpočetní čipy mohou posloužit jako univerzální počítače pro všechny ** Připravil pro ně proto první operační systém ** Později mu systém vyfoukl Microsoft a nazval ho MS DOS

23.  4.  2017 | Pavel Tronner | 56

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

Umělá inteligence je sice v plenkách, už teď ale přestáváme rozumět, jak vlastně funguje. To je problém

** Už je to tady, lidé přestávají chápat počítače ** Systémy neuronových sítí začínají pracovat tak, že ani jejich tvůrci přesně neví, co se uvnitř děje ** Do budoucna to může být závažný problém

24.  4.  2017 | Jakub Čížek | 112

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

Před 35 lety měl premiéru legendární počítač ZX Spectrum. Připomeňte si „Gumáka“

** Slavný osmibitový počítač Sinclair ZX Spectrum byl uveden právě před 35 lety ** Připomeňte si tento průkopnický počítač v tematických článcích ** Podívejte se, jak funguje dnes

23.  4.  2017 | Pavel Tronner | 13

Správný počítač má alespoň dva monitory. Anebo je to jinak?

Správný počítač má alespoň dva monitory. Anebo je to jinak?

** David si nedokáže představit práci bez dvou a více monitorů ** Kubovi naopak stačí jeden a ve více displejích se ztrácí ** Jaký přístup je lepší?

23.  4.  2017 | Jakub Čížek | 59

Brněnské soudy daly stop Uberu. Je to dobře, nebo krok zpět?

Brněnské soudy daly stop Uberu. Je to dobře, nebo krok zpět?

** Před několika měsíci začal Uber nabízet své služby i v Brně ** Nyní ale narazil, soudům se to totiž nelíbí ** Má sdílená ekonomika dostat zelenou?

22.  4.  2017 | Jakub Čížek | 28


Aktuální číslo časopisu Computer

Supertéma: moderní cestování

Kdy opravdu přijdou nové baterie?

Velké testy: 6 herních notebooků a 8 volantů

Recenze: AMD Ryzen řady 5