Bezpečnostní chyba v Safari může ohrozit vaše data

20. 05. 2004, 10:35 · Nakousnutá jabka

Bohužel žádný systém není 100% bez chyb – jen obsahuje chyby, na které zatím nikdo nepřišel. Chyby objevené nyní v Mac OS X asi patří k těm, kde prostě nebyly domyšleny možné následky, které mohou být velmi závažné. Tuto chybu je možné zneužít poměrně snadno jen tím, že uživatel navštíví “špatnou” stránku na internetu, takže si oprávněně zaslouží označení jako kritická

O chybě, která dovoluje z internetu spustit libovolný program na počítači, a o které první informoval asi server Insercure.ws byl Apple informován již v únoru – Apple však nijak nereagoval, nakonec tento týden vydal prohlášení, že bezpečnost systému mu samozřejmě dělá starosti a že chyba je zkoumána. V poslední době se již několikrát snesla kritika na hlavu Apple za to, že před uživateli zatajuje některé chyby a jejich opravy a bagatelizuje jejich nebezpečnost. Zatímco obvykle se jedná o chyby, které lze zneužít relativně komplikovaně, v tomto případě je situace horší, chyba se týká internetových prohlížečů pod Mac OS X, a dá se využít k poškození obsahu počítače velmi snadno.

Základem jsou URI

Základem je zpracování požadavků, které dostávají programy v podobě tzv. URI – Uniform Resource Identifier – například http://www.maler.cz je typický příklad URI. Běžně se uživatel setká pouze s několika typy URI, jako je http://, ftp:// či mail:. Odkaz tímto říká, že se jedná o zdroj daného typu a má určitou adresu – v případě webu adresu stránky, v případě mailu mailovou adresu. Programy se samozřejmě chovají podle nějakých definovaných pravidel – když klepnete v mailu na link na web, otevře se vám váš přednastavený prohlížeč, a naopak když na webu klepnete na mail, otevře se vám přednastavený mailový program. Tyto pravidla, který program obsluhuje který typ URI jsou nastavená v systému, který tak programům poskytuje své služby, aby nebylo nutné toto řešit vždy znova. Apple v Mac OS 9 poskytoval poměrně komfortní nástroj pro nastavení toho, které programy jsou za jaké typy odkazů zodpovědné, bohužel v Mac OS X je nutno si pomoci nástrojem MisFox, aby bylo možné vůbec změnit například standardního FTP klienta na něco jiného než tragický Finder.

V praxi tak je možné si nastavit libovolné URI pro předání informace určité aplikaci (která s tím samozřejmě musí počítat), například lze takto rovnou přístupovat na servery přes programy Hotline a Carracho (pokud jsou odkazy na webové stránce nebo v mailu), stejně funguje i odkazování na stránky v iTunes Music Store přes program iTunes (“protokol” itms://). No a pak jsou v systému evidentně ještě další přednastavené URI, spolu s tím, jaké aplikace mají takto předané požadavky zpracovat. A právě využití dvou takovýchto v systému nastavených indentifikátorů je základem možného ohrožení dat před prohlížeč.

Je nutné zdůraznit, že jelikož se jedná o vyhodnocení a předání informací, které provádí systém, NENĂŤ to chyba prohlížeče, je to chyba systémová a tak může postihnout uživatele pravděpodobně libovolného prohlížeče na Mac OS X – testováno v praxi se Safari, Camino a Internet Explorer. Nejsem schopen ověřit, zda se chyba týká jen Mac OS X, nebo i Mac OS 9, jak tvrdí některé zdroje.

Chyba “disk”

Problém se týká URI “disk” a “help”. První není možná ani tak chyba, jako ne příliš bezpečná funkce – provede se, aniž by to uživatel tušil. URI “disk”, například ve formátu disk://maler.cz/TestDrive.dmg předává požadavek aplikaci DiskImageMounter, a dovoluje připojit obraz disku přímo z internetu, aniž by se stáhnul jako obvykle přímo na disk počítače jako soubor (k nahrání samozřejmě dojít musí). Je to nenápadnější, stahovaného souboru si každý všimne, neboť otevře download manager, ovšem tento způsob ne – ostatně, vyzkoušejte sami, připojený obraz disku budeme za chvíli potřebovat na další pokus. Všimněte si, že si ničeho nevšimnete, zvlášť pokud máte okna Finderu schovaná – pro kontrolu klidně přejděte do Finderu a chvíli čekejte, až se objeví nový disk – imago ma 500 kb, i když aktivně je využito výrazně méně.

Mimochodem, díky tomu je k ničemu vypnutí ochrany proti automatickému zpracování souborů z internetu se známým obsahem v Safari (Open “safe” files) – to se týká jen ochrany proti souborům, které byly standardně nahrané z internetu.

V praxi se tedy nejedná o právě bezpečnou funkci, URI “disk” by asi fungovat nemělo a práce s obrazy disku by měla být ponechána na uživateli. Ovšem o přímé ohrožení bezpečnosti se ještě nejedná.

Chyba “help”

To přijde až nyní. Díky vytvoření určitého odkazu, který začíná “help:” jsme schopni předat aplikaci MacHelp (Nápověda) parametry – například odkaz v podobě help:runscript=MacHelp.help/Contents/Resources/English.lproj/shrd/OpnApp.scpt string=’Applications:iTunes.app:Contents:MacOS:iTunes’ spustí iTunes. Bohužel jednou z možností, kterou aplikace MacHelp disponuje, je spuštění AppleScriptu. A v podstatě každá aplikace pod Mac OS X obsahuje v sobě skript OpnApp.scpt, kde je parametrem, která aplikace se má otevřít (z důvodu snadného adresování se obvykle používá skript přímo v MacHelp, ale relativním adresováním lze spustit libovolný AppleScript na disku). Skript sice obsahuje ochranu proti spouštění souborů z jiného než systémového disku, ale jaksi podle všeho nefunguje – pokud zadáme cestu k připojenému obrazu disku, dokážeme spustit soubor, který se na něm nachází. V praxi tedy aplikace MacHelp dostane příkaz spustit určitý skript, který následně spustí to, co má zadané v řetězci. NAŠTÄšSTĂŤ nejde takto předat i parametr, takže nejde spustit například “rm -rf /”, jinak by ke smazání dat stačilo úplné minimum. Každopádně, pokud bych byl útočník, připojil bych si nejdříve obraz disku s připraveným skriptem a nyní by se již mazaly vaše soubory nejen v domovské složce, ale (pokud používáte admin účet) i aplikace a další soubory. Aktivaci souboru na připojené obrazu disku si můžete zkusit sami (nebojte, je neškodný), nebo klepněte sem a spustí sem například iTunes či TextEdit. Mimochodem, po každém pokusu ukončete program MacHelp, jinak to nebude fungovat.

Nejlepší na tom vše je, že to lze provést BEZ vědomí uživatele – stačí správně přichystat stránku, aby došlo k připojení obrazu disku a vzápětí automatickému spuštění takto nahraného skriptu. Pokud vás při té představě neobchází hrůza, asi nemáte na počítači nic důležitého. Lze takto smazat soubory, spustit libovolný připravený program, který například může zkusit vyhledat osobní údaje a odeslat je pryč, v podstatě cokoliv. Jedinou šancí uživatele je, že si toho všimne – aplikace se spustí tak, že nejdříve se otevře program MacHelp (Nápověda – ikonka záchranného kruhu), následně se spustí terminal, který otevře cílovou aplikaci.

Ochrana

Na internetu se objevila aplikace GURLfinder, která ovšem řeší jen polovinu problému (help:) a k tomu tak, že asi upravuje původní AppleScripty, aby nebylo možné přes ně otevřít aplikace (popisek je relativně vágní), druhý problém neřeší vůbec. Příliš systémové řešení to není a tak je vhodné použít jinou metodu.

Proto v současné době existuje asi jediná opravdu funkční oprava – nastavit v systému oba dva typy URI na aplikace, které nemohou škodit. K tomu použijte program MisFox – v panelu Protokol helpers změňte nastavení protokolu “help” a vytvořte nový protokol “disk”, oboje nastavte na TextEdit – ten škodit nijak nemůže. Protokol “disk” není v seznamu vidět, ale existuje – jako obslužná aplikace je nastaven DiskImageMounter.

Samozřejmě ideální bude, až Apple vypustí patch, který změní Mac OS X – pokud možno tak, aby nešlo tyto funkce již vůbec využít, neboť to samozřejmě bude bezpečnější, než použít jen polovičaté řešení, které může někdo obejít.

Trvalý odkaz na tento příspěvěk

  1. Právě se objevila utilitka Paranoid android od Unsanity,která to prej řeší, nevim…
    http://www.unsanity.com/haxies/pa/

    — macka    20.5.2004 13:09    #

  2. Moc hezky clanek. Jenom bych rad autora upozornil, ze termin “imago” je oznaceni pro dospeleho jedince z tridy hmyzu a nelze ho zamenovat za termin “image” (coz v tomto pripade znamena doslova “obraz” disku).

    — Laredo Lamer    22.5.2004 18:02    #

  3. Pěkný článek, Malére. Jenom jedno doplnění: Apple sice už vypustil update na help:, ale je to ještě horší, než jsi popsal.

    Jason Harrison totiž ve svém článku u Paranoid Androida tvrdí, že si můžeš automaticky zaregistrovat při přimontování obrazu disku nový helper (tedy např xxx-muj-helper://. Tady potom nepomůže ani update na help://, protože jde jako obslužnou aplikaci k tomuto helperu nastavit virus samotný. Pomůže tedy zablokování disk://, ale to se dá zase obejít automatickým stažením (pokud někdo nestihne zastavit image download, nebo si ho nevšimne) a namontováním.

    Přestože jsem si z toho ještě před pár dny dělal legraci, poté co jsem si přečetl o co jde a domyslel důsledky, právě Paranoid Android stahuji a instaluji. ;)

    — zzen    23.5.2004 17:18    #

Související články