Apple používá bezpečnost Leoparda jako jeden z bodů, které mají přesvědčit uživatele, aby si systém zakoupili. Jürge Schmidt z Heise Security se rozhodl, že otestuje nový firewall v Leopardovi a výsledky ho příliš nepotěšili.
Nejdůležitější úlohou jakéhokoliv firewallu je udržení nezvaných hostů mimo vaši síť či počítač. To znamená zapečetění všech lokální služeb tak, aby nebyly přístupné z potencionálně nepřátelské sítě jako například internet nebo bezdrátové sítě.
Rychlý pohled na konfiguraci firewallu v Mac OS X ukazuje, že není schopen toho docílit. Základní nastavení "Allow all incoming connections" je deaktivováno. Ještě horší je, že uživatel, který si dal práci a nastavil firewall v předchozí verzi Maca, po upgradu jej bude mít deaktivován.
Na rozdíl od například Windows Vista, Leopardí nastavení firewallu nerozlišuje mezi sítěmi, jako jsou chráněné sítě firmy a potencionálně nebezpečnýchm sítěmi jako třeba bezdrátové spojení s AirPortem nebo přímé spojení s internetem.
Zapnuto
Prvním krokem po nastartování Leoparda by měla být aktivace firewallu. Obvyklou volbou je "Set access to specific services and programs", tedy povolení specifických služeb a programů. Mac OS X automaticky vloží všechny sdílené služby nastavené uživatelem jako "Vzdálený přístup" pro SSH servery .
Bohužel již úvodní testy vás vyvedou z iluzí vylepšené bezpečnosti. Ke službám spuštěným pro testovací účely jsou přístupné bez jakýchkoliv problémů. Firewall pouze zaznamená jejich přítomnost, ale nevidí žádný důvod proč by jim měl zamezit.
Je zřejmé, že Apple zamýšlel aby každý proces spuštěný uživatelem se dostal automaticky na seznam výjimek. To může pomoci trojskému koni nastavit zadní vrátka do systému a prakticky pouze Apple může vysvětlit o co tady jde.
Sdílení
Další testy vynesly na světlo další nekonzistence. Aby uživatel zjistil, jaké nechtěné služby běží, pravděpodobně zkusí grafické rozhraní ("System preferences / Sharing"). Bohužel i když zde není zobrazeno nic aktivního, na pozadí stále běží služby na pozadí, které jsou přístupné. Ty mohou být detekovány například příkazem lsof (konkrétně sudo lsof -i udp)
Záznamy zahrnují časový server a NetBIOS služby ze Samby. Není zcela jasné za jakých okolností Mac OS X spouští kterou službu - time server však byl spuštěný vždy. Ihned po instalace zde byl aktivní i server Kerberos, který nebyl nastartován po restartu systému.
Ačkoliv tyto služby nebyly uvedeny ve výjimkách firewallu, bylo možné s nimi normálně komunikovat bez omezení. Internet time server předával čas, NetBIOS služba poskytovala informace. Bonjour - služba známá jako MDNS nebo Zeroconf hraje speciální úlohu - broadcastuje dostupnost služeb jako SSH na lokální síť.
Bojujeme s mouchami
Uživatelé, které chtějí zvýšit bezpečnost operačního systému pravděpodobně volí "Block all incoming connections" v naději, že skutečně odeženou veškeré dotazy na síťové služby.
Úvodní testy vypadaly velmi dobře. SSH server aktitovaný pro testovací účely a primitivní zadní vrátky nebylo možné aktivovat z vnější sítě. Firewall dokonce zablokoval přístup na test server z UDP portu.
Nicméně skenování portů ukázalo předčasný optimismus. Vypadá to, že porty k již dříve objeveným systémovým službám jsou stále přístupné. Ve skutečnosti, dokonce i v této konfiguraci firewallu bylo stále možné komunikovat s ntpd démonem (časový server) z vnější sítě.
Jestliže Mac OS X spouští také NetBIOS jmenný server, ten může být také přístupný přes nastavení firewallu. NetBIOS služba je pak přístupná i v bezdrátové síti.
Při testování se také objevilo několik nesrovnalostí. Nově nastartovaný MacBook se odmítl synchronizovat a povolil synchronizaci jen o pár chvil později bez zřejmého důvodu či změn v nastavení. Stále není jasné kdy Mac OS X startuje tu kterou službu a jakým způsobem rozhoduje o tom, které budou přístupné a které nikoliv.
A hlavně to znamená, že uživatelé nemohou spoléhat na firewall. Dokonci i když uživatelé chtějí blokovat veškerou příchozí komunikaci, potencionální útočníci mohou pokračovat v komunikaci se systémovými službami jako je časový server nebo NetBIOS jmenný server.
Rizika
Jestli přístupné služby v současné době představují bezpečnostní riziko je velmi těžké posoudit. Fakt, že Apple používá open source software ve kterém jsou známé chyby popsané vývoji stojí k zamyšlení. Apple používá ntpd 4.2.2 a současný verze je 4.2.4. (Mimochodem běžná praxe v linuxovém světě je mít vypnutého tohoto démona a místo něj spouštět pravidelnou aktualizaci času pomocí jiného nástroje). Není zcela jasné, zda opravy jsou relevantní a zde Apple backportoval opravy z posledních verzí. Totéž platí u balíčku Samba (3.0.25-apple), kde verze 3.0.25c a 3.0.26a obsahují mnoho oprav.
Obě systémové služby běží jako administrativní uživatel a nevypadají že využívají funkce sandboxu. Pokud se tedy najde chyba v těchto službách, útočník je může zneužít a získat tak kontrolu nad celým operačním systémem.
Náhradní řešení
V současné době existují dvě - odpojení se od sítě nebo návrat k otestovanému BSD ipfw firewallu. Ten je stále přítomen a jeho základní konfigurace je povolit vše.
$ sudo ipfw list 65535 allow ip from any to any
Uživatelům, kteří si vytvořili vlastní sady pravidel se doporučuje pokračovat v jejich používání i pod Leopardem. Jak generovat tyto pravidla je však již mimo rozsah tohoto článku.
Rozsudek
Firewall v Leopardovi selhal ve všech ohledech. Není aktivován v základním nastavení a i když je aktivován, nechová se podle očekávání. Mohou být vytvořena spojení k neautorizovaným službám. I při nejrestriktivnějším nastavení je stále povolen přístup k systémovým službám z internetu. Ačkoliv to nelze označit za vulnerabilitu, která by se dala využít pro vlámání se do Maca, Apple by měl velmi rychle toto chování opravit.
Apple zde ukazuje stejný přístup k bezpečnostním otázkám, které měl Microsoft před čtyřmi lety, kdy uváděl Windows XP s podobným nastavením firewallu. Byl to také případ systémových služeb, které reprezentovaly potencionální přístupový bod pro malware. I přes roky varování bezpečnostních expertů, bezpečnost se nesměla dostat do cesty skvělým síťovým funkcím.
No a pak se objevily wormy Lovsan/Blaster a Sasser, které velmi rychle nakazily milióny počítačů Windows přes bezpečnostní chyby v systémových službách a způsobili milióny dolarů škody. Dokonce i dnes nepatchované Windows systémy bez aktivního firewallu mohou být nakaženy během několika minut. Microsoft se tehdy poučil a udržovatelný firewall byl aktivován od začátku instalace od Service Packu 2. Windows ve standardní konfiguraci nemají žádnou službu přístupnou z internetu.