Mac OS X Leopard sebou nese velkou řadu vylepšení i v oblasti bezpečnosti.
Time machine
Pokud se bavíme o bezpečnosti, asi bychom měli začít touto technologií, protože nebývá často zmiňována jako bezpečnostní mechanismus. Informační bezpečnost se ale skládá ze tří hlavních kritérií - Utajenost, Integrita a Dostupnost. Zatímco bývají tendence se zaměřovat na utajení informací a zabránění měnění dat (integrita), dostupnost dat je neméně důležitá součást bezpečnostních opatření. O Time Machine zde na stránkách již bylo psáno hodně, takže vás odkáži na stránky o Time Machine.
Přetečení bufferu
Jak to tak bývá, největší bezpečností aktualizace v Loepardovi je ta, kterou neuvidíte, ale která způsobí nemalé bolesti hlavy a frustraci všem, kdo by se chtěli do vašeho Maca nabourat. Technologii Apple nazývá Library Randomization (také známá jako Memory Randomization či Address Space Layout Randomization ve Windows Vista). Abychom pochopili, jak tato technologie funguje, musíme si povědět něco o chybách, exploitech a přetečení bufferu
Buffer overflows neboli chyba přetečení bufferu je skupina chyb, které jsou zodpovědné za většinu úspěšných útoků na počítače. Většina škodících programů (wormů či virů) spoléhají na buffer overflow aby převzaly kontrolu nad operačním systémem. Pokud mluvíme o vulnerability (náchylnosti, teď nevím přesný český ekvivalent), máme na mysli chybu nebo defekt, který může dovolit někomu narušit utajenost, integritu nebo dostupnost služby nebo dat. Je to analogie k rozbitému oknu v domě, který může využít zloděj. Buffer overflow je vulnerabilita, kde útočník posílá na vstup programu více dat, než se očekává. Programátor, který psal software zapomněl nastavit omezení tohoto vstupu a data tak mohou přesáhnout očekávané limit a přepisovat jiné části paměti. Protože paměť ve většině operačních systémů je jen velká hromada příkazů a dat, jestliže víte přesně kolik dat je třeba vložit do příkazu, můžete přinutit počítač aby spustil váš příkaz jednoduše tím, že mu přepíšete legitimní instrukce v paměti svými.
Asi vás napadne, proč programátoři jednoduše lépe nekontrolují všechny vstupy, aby se to nestávalo? Důvod je prostý. Moderní počítačové systémy jsou již tak komplexní, že často znovu využívají kód napsaný někým jiným. Například zveřejněná chyba iPhone 1.1.1, byl způsobena tím, že byla použita knihovna libtiff pro načítání TIFF obrázků. Kód této knihovny obsahoval chybu buffer overflow a dovolil útočníkům vytvořit speciální TIFF soubory, které umožnovaly převzetí iPhone. A tomu se říká exploit - jestliže můžete zneužít nějakou vulnerabilitu a udělat s ní něco.
Buffer overflow chyba se objevila poprvé okolo roku 1988, kdy byla použita v prvním Internetovém wormu - Morris. V roce 1996 byly popsány návody, jak využít takovýchto chyb.
A tady přichází chvíle pro Library Randomization. Vložit škodící kód do paměti operačního systému není totiž snadné. Útočník musí velmi dobře znát chování a vkus operačního systému a poukázat na přesné místo v paměti, aby vulberabilitu mohl zneužít. Většina operačních systémů ukládá vlastní interní příkazy do známého statického místa v paměti. Takže útočník se může odvolat na tyto příkazy a použít vlastní nástroje operačního systému pro svůj prospěch. Library Randomization dělá to, že náhodně distribuuje tyto příkazy po celé paměti vždy po té, co systém nastartuje. Takže i když útočník najde buffer overflow a bude zkoušet spouštět příkazy na vašem operačním systému, bude pro něj extrémně náročné aby z vulnerability udělal expoit.
To je také důvod proč se Library Randomization nazývá anti-exploitation technologií - i když se najdou vulnerability (a ony se najdou) bude stále velmi obtížené napadnou operační systém. To je velký krok od spoléhání na programátory, že napíší dokonalý krok, Apple následujíc Micorosft a některé varianty Unixu/Linuxu přitvrzuje svůj operační systém. Apple nastartoval tuto cestu již s Mac OS X 10.4.7, když uvolnil Data Execution Protection technologii. Funkci která na některých procesorech umožňuje programátorům označit část paměti jako paměť určenou pro data a znemožňující útočníkům aby do ní zapisovali příkazy.
Lze celkem bezpečně říci, že se pravděpodobně časem objeví cesta, jak se této technologii vyhnout, ale první znamení z jiných operačních systémů indikují, že Library Randomization je vážnou překážkou pro celou třídu útoků.
Identifikace špatných Aplikací
Tak jak se postupně rozšířují firewall řešení, je stále těžší se nabourat do počítač pouze pomocí sítě. Mnoho proto přešlo k jiným útokům - spouštění kódu ze systému pomocí e-mailů, www stránek a stažených souborů. Ačkoliv Apple nemůže zakázat uživatelům stahování nebezpečných souborů, Leopard má novou funkci, kterou může označit staženou aplikaci jako applikaci z Internetu.
Když si poprvé spustíte tuto aplikaci, Mac se vás zeptá na váš souhlas a řekne vám, kdy byla stažena, kterou aplikací a odkud přišla. To je funkce, která pomůže omezit spouštění programů bez vašeho souhlasu. Otázkou je, zda si Apple poradil s tím, že by aplikace mohla podvrhnout svůj původ.
Apple také přidal podpis aplikací. Apple a jakýkoliv jiný vývojář, který se chce účastnit, můžete digitálně podepsat svou aplikaci. Digitální podpis je neocenitelný nejen pro potvrzení od koho pochází aplikace, ale také že vám dá jistotu, že aplikace nebyla změněna. Jestliže někdo upraví podepsanou aplikaci ve vašem systému, modifikovaná aplikace nebude souhlasit s podpisem a Mac OS X ji pak nespustí.
Sandboxing
Leopard nabízí funkci "sandboxing", což je technika která omezuje specifické aplikace tak, že nemohou provádět některé úlohy, jako omezují soubory se kterými mohou pracovat, aplikace se kterými mohou komunikovat nebo co mohou provádět na síti. Některé aplikace mohou být vždy větším rizikem pro ostatní, takže sandboxing pomáhá zakázat těmto aplikacím zneužití v jiných částech operačního systému. Stránky o Leopardu zmiňují aplikace Bonjour, Spotlight a Quick Look, které tuto technologii využívají.
Další vylepšení
Mac OS X firewall postavený na open source programu ipfw byl vylepšen a nyní umožňuje blokovat síťový přístup k individuálním aplikacím.
Keychain umožňuje spravovat více uživatelských certifikátů pro kódování e-mailů a digitální podpis. Kódované diskové obrazy používají 256-bitový klíč místo původního 128-bitového. Ačkoliv se zatím nenašel nikdo komu by se podařilo prolomit 128-bit klíč. Díky tomu, jak AES kódování funguje, výkon nebude příliš narušen.
Vylepšila se nativní podpora VPN, přibylo podepisování Windows SMB paketů, takže bude možné komunikovat s kódujícími Windows souborovými servery. Apple také vylepšil sdílení souborů s mnohem podrobnějším nastavení kdo může přistupovat k čemu. Ačkoliv to lze využít kdekoliv, předpokládá se, že tato funkce vznikla hlavně kvůli konkurenci z Windows.
Další zajímavou funkcí je účet host, který dovolí připojení k emailu či webu, ale po odhlášení je celý účet vyčištěn a vrácen do stavu před přihlášením.