Postřehy z bezpečnosti: zero day pro MySQL

19. 9. 2016
Doba čtení: 6 minut

Sdílet

Dnes se podíváme na dvě kritické chyby všech bežně používaných větví MySQL umožňující plné ovádnutí cílového systému, na zranitelnosti Xenu, behaviorální detekci malwaru na macOS a backdoor v telefonech Xiaomi.

Dawid Golunski objevil dvě kritické chyby v MySQL (a jeho klonech: MariaDB, PerconaDB) umožňující změnu konfiguračního souboru a tím vzdálené spuštění kódu a eskalaci oprávnění. Postižené jsou verze <= 5.7.14, 5.6.32, 5.5.51 a Dawid informoval projekty o zranitelnostech již 29. července. CVE-2016–6662 umožňuje vzdálenou změnu konfigurace MySQL (my.cnf). K tomu vám stačí oprávněný účet, nebo využití SQL Injection chyby webové aplikace používající postiženou verzi MySQL. Využitím této chyby je možné spustit vlastní kód s oprávněním roota. Před zneužitím chyby vás neochrání ani standardní politiky SELinux či AppArmor.

Každá instalace MySQL obsahuje mysqld_safe script sloužící pro inicializaci databáze a aktivaci základních bezpečnostních prvků. Tento script ale obsahuje SUID (Set owner User ID up on execution) bit a kdokoliv script spustí, tak běží s oprávněním roota. To není nic neobvyklého, ale je dobrým zvykem držet počet takových programů na naprostém minimu. Sami si to můžete ověřit na vlastním systému a odebrat SUID/SGID s root oprávněním, kde je to jen možné.

find / ! \( -wholename '/proc/*' -prune \) -perm -u=s -o -perm -g=s ! -type d

Script dále obsahuje parametr umožňující načíst knihovnu před spuštěním MySQL daemona, a to je ta kritická část, protože pak tato knihovna bude spuštěna s oprávněním roota při dalším restartu databáze/systému. Cílem je spuštění mysqld_safe s parametrem –malloc-lib nebo změnit jeden z konfiguračních souborů a přidat parametr malloc_lib s cestou ke knihovně útočníka. Pokud tedy útočník bude mít dostatečné oprávnění (FILE) v MySQL prostředí a bude schopen vložit do systému vlastní kód, tak mu tato chyba umožní plně ovládnout celý systém. První omezení oprávnění by měla řešit druhá chyba (CVE-2016–6663), která se týká zmíněné eskalace oprávnění. Detaily nejsou známy, ale Dawid by je měl (včetně PoC kódu) zveřejnit během několika dnů.

Jeden z příkladů změny konfiguračního souboru:

mysql> set global general_log_file = '/var/lib/mysql/my.cnf';
mysql> set global general_log = on;
mysql> select '
    '>
    '> ; injected config entry
    '>
    '> [mysqld]
    '> malloc_lib=/var/lib/mysql/mysql_hookandroot_lib.so
    '>
    '> [separator]
    '>
    '> ';
1 row in set (0.00 sec)
mysql> set global general_log = off;

Podobná chyba se objevila již v roce 2003 a tento vektor útoku od té doby neměl být možný, avšak Dawid svým PoC kódem dokázal, že tato zranitelnost stále existuje. Především na sdíleném webhostingu je pravděpodobnost zneužití a ovládnutí celých serverů velmi vysoká.

MariaDB a PerconaDB již vydali opravu, Oracle (MySQL) však stále ne (očekává se až 18. října). Dawid doporučuje jako dočasnou ochranu změnit vlastníka konfiguračních souborů MySQL na roota a vytvořit prázdné my.cnf konfigurační soubory ve všech cestách kde je MySQL očekává při startu. Vzhledem ke kompatibilitě klonů s MySQL, jednoduché migraci, použití nejmodernějších technologií, rychlejšímu vydávání oprav, otevřenosti a mnohem vyššímu výkonu (např. XtraDB, Galera) možná bude nejlepším doporučením přejít z MySQL na Mariu, či Perconu.

Naše postřehy

Nová verze Xenu, který je používán cloudovými službami jako AWS, Linode, Rackspace apod. opravuje čtyři bezpečnostní chyby. CVE-2016–7093 postihuje HVM (Hardware Virtual Machines) a umožňuje eskalaci oprávnění na úroveň hosta. CVE-2016–7092 se opět týká eskalace oprávnění, ale u paravirtualizovaných virtuálních mašin, a poslední dvě (CVE-2016–7154 a CVE-2016–7094) umožňují denial-of-service s tím, že u 7154 nelze vyloučit i eskalaci oprávnění.

Jestlipak si ještě pamatujete, jak FBI zaplatila 1.3 milionu dolarů za odemčení iPhonu? Nyní Sergei Skorobogatov publikoval studii, dle které je možné toho docílit za pouhých 100 dolarů. Lze toho docílit pomocí NAND mirroringu, jak se již dříve spekulovalo a o čemž ředitel FBI James Comey řekl: „It does not work“. Když se chce, tak to jde. Sergei zautomatizoval mirroring NAND paměti a bruteforcing hesla a za cca 40 hodin byl schopen prolomit čtyřmístné, číselné heslo. Několik týdnů trvá šestimístné. Útok je možné provést nejen na iPhonu 5C, ale i na iPhonu 6, protože používají stejné typy pamětí. Jestli bude stejným útokem postižená i poslední řada iPhonu, není jisté, ale již dříve se spekulovalo, že Apple implementoval do sedmé řady dodatečné ochrany znemožňující odemčení iPhonu. Rozhodně však i výše popsaný způsob není pro každého. Podle popisu se jednalo o chirurgickou práci o teplotách okolo 700 stupňů, aby se NAND chip nepoškodil.

Behavioral Detection and Prevention on OS X je studie Vincenta Van Mieghema zaměřující se na detekci malwarů za pomocí analýzy vzorců volání systémových funkcí. Díky sekvenční analýze a heatmapě dokázal najít vzor chování malwarů na OS X. Byl schopný takto identifikovat 100 % použitých vzorků. Jedinou nevýhodou je poměrně velké procento false positive, především pak u uživatelů/programátorů s vyšším oprávněním, používajících překladače či interprety jazyků Python a JavaScript.

Firefox 48.0.2 bude opravovat zranitelnost, která již byla opravena v Tor browseru a týká se nedostatečné kontroly při certificate pinning. Útočník v MitM pozici je tak teoreticky schopen podvrhnout webové stránky Mozilly (addons.mozilla.org) a nainstalovat do vašeho prohlížeče „novější“ verze doplňků prohlížeče, které budou obsahovat malware.

Student z Nizozemska objevil na svém Android telefonu Xiaomi Mi4 předinstalovanou aplikaci AnalyticsCore.apk, která běží na pozadí a i když ji smažete, tak se znovu objeví. Když na oficiálním fóru nedostal vysvětlující odpověď, tak se rozhodl „reverznout“ aplikaci, aby zjistil, čeho je schopna. Nejen, že posílá identifikační údaje a ověřuje, jestli na webu Xiaomi není novější verze, ale pokud nová verze existuje, tak ji bez povšimnutí nainstaluje, pomocí vlastního instalačního procesu. To mimo jiné znamená, že Xiaomi je schopna do vašeho telefonu nainstalovat bez povšimnutí jakoukoliv aplikaci. Ještě hůře, útočníci mohou teoreticky zaútočit na web, kde má být nová verze aplikace ke stažení a nainstalovat tak svůj malware (musel by být podepsaný) na stovky milionů zařízení během 24 hodin.

Výzkumníci společnosti CyberArk přišli se způsobem, jak je možné instalovat dodatečný malware, či jak obcházet bezpečnostní aplikace (antiviry, threat detection), ochrany systému Windows, či jak se dostat ke kritickým údajům, které chrání VSM (Virtual Secure Mode) představené ve Windows 10. Používají Safe Mode ve Windows, kdy se systém spustí jen s těmi nejnutnějšími ovladači a službami. Útočník však musí mít na koncové stanici oprávnění administrátora.

DualToy je trojan, který se poprvé objevil na začátku roku 2015. Jeho první verze jen instalovaly nevyžádané aplikace na Android platformu a zobrazovaly placenou reklamu. Po šesti měsících se začal zaměřovat i na iOS a po připojení iZařízení k infikovanému Windows počítači přes USB se snaží nainstalovat další aplikaci pro získání přihlašovacích údajů k Apple účtu. Pro komunikaci s iOS zařízením používá open-source nástroj iphonetunnel-usbmuxconnectbyport. Riziko je však nízké, protože Apple App certifikát je již neplatný.

bitcoin školení listopad 24

Ve zkratce

Pro pobavení

Jedna z mých oblíbených definicí projektového manažera

Závěr

Tento seriál vychází střídavě za pomoci pracovníků Národního bezpečnostního týmu CSIRT.CZ provozovaného sdružením CZ.NIC a redaktorů serveru Security-Portal.cz. Uvítali bychom i vaši spolupráci na tvorbě obsahu tohoto seriálu. Pokud byste nás chtěli upozornit na zajímavý článek, tak nám napište na FB stránku, případně na Twitter. Děkujeme.

ikonka

Zajímá vás toto téma? Chcete se o něm dozvědět víc?

Objednejte si upozornění na nově vydané články do vašeho mailu. Žádný článek vám tak neuteče.

Autor článku

Security Architect, šéfredaktor serveru Security-Portal.cz, spoluorganizátor konference Security Session a hlavní vývojář distribuce Securix GNU/Linux.