Vše, co jste o notarizaci chtěli vědět, ale báli jste se zeptat.
Vše, co jste o notarizaci chtěli vědět, ale báli jste se zeptat.
Problematiku notarizace software pro macOS jsme již nakousli v předchozím článku Co je to notarizace a jak ovlivňuje spouštění software.
Rychlá rekapitulace
Společnost Apple již mnoho let tlačí na vývojáře macOS aplikací, aby programy zejména distribuované mimo Mac App Store digitálně podepisovali. Podpis umožňuje ověření, že se spustitelným kódem nebylo manipulováno někým dalším. Rovněž identifikuje vydavatele, který participuje v programu registrovaných vývojářů a společnost Apple mu minimálním způsobem důvěřuje.
Nepodepsaný software sice stále lze spustit, ale uživatel musí udělat několik kroků navíc, které jej mohou odradit od spuštění případného malware. Vývoj kolem systému macOS však nezadržitelně směřuje do stavu, kdy nepodepsaný kód standardně nepůjde spustit vůbec. Digitální podpis však není všespásná ochrana před nekalými živly. Problém si ukážeme na následujících scénářích:
- Do vývojářského programu se zaregistruje fiktivní firma a následně na čas svůj malware bude podepisovat, než si problému někdo všimne a vývojářský certifikát bezpečnostní tým v Apple revokuje.
- Počítač legitimního vývojáře někdo cíleně ovládne či zcizí. Útočník následně do aplikace přibalí malware a podepíše program zcizenou identitou.
- Malware může být do aplikace přibalen omylem. Velké množství software používá kromě systémových knihoven a vlastního kódu také knihovny, které naprogramoval někdo jiný. Pokud útočník nepozorovaně ovládne distribuční kanál nějaké takové knihovny, legitimní vývojáři mohou nevědomky použít kompromitovanou verzi ve vlastním software.
Systém macOS obsahuje několik mechanismů obrany proti malware. Všechny z nich však spoléhají na předchozí detekci ze strany Apple. Než se tak stane, může dojít k rozšíření a napáchání značné škody. Loni oznámená funkce notarizace dává společnosti Apple do rukou nástroj, jak odhalit škodlivý software ještě před jeho distribucí.
Notarizace
Na první pohled notarizace vypadá podobně jako schvalovací proces v Mac App Store. Vývojář zkompiluje svou aplikaci, digitálně ji podepíše a nahraje na server Applu ke kontrole. Další postup se však značně liší. V případě Mac App Store je aplikace podprobena řadě testů. Vyhodnocuje se její stabilita, závadnost obsahu a případný rozpor s pravidly distribuce.
Část kontroly provádí člověk a v horším případě může trvat i několik dní nebo dokonce týdnů. Notarizace je oproti tomu zcela automatický proces, který zkoumá, zda program neobsahuje známý či potenciálně škodlivý kód. Výsledek se dozvíte většinou v řádu minut. Projde-li aplikace notarizací bez problémů,
Apple si přidá do databáze tzv. razítko vázané na unikátní digitální podpis dané aplikace. Pokud se kdokoliv pokusí na svém Macu aplikaci spustit, systém to dovolí jen v případě, když najde razítko v databázi. Pro možnost offline ověření lze rovněž razítko přibalit přímo ke schválené aplikaci.
Kontrolu razítek v omezené míře obsahuje již systém macOS 10.14.5 Mojave, kde se týká nových doplňků jádra a nově registrovaných vývojářů. Verze systému macOS 10.15 Catalina vyžaduje validní razítko pro všechen podepsaný software distribuovaný mimo Mac App Store.
Gatekeeper
Kontrolu podpisu a razítka v macOS zajišťuje technologie Gatekeeper. Její aktivace závisí na tom zda, spouštěný software má značku režimu karantény. Běžné způsoby kopírování software (stažení pomocí Safari, kopie přes USB ve Finderu, apod.) zajišťují přidání značky režimu karantény pro nainstalovaný software.
Catalina zavírá několik zbývajících cest spouštění programů, kdy bylo možné Gatekeeper kontrolu obejít. Otázka, zda se v budoucích verzích systému přestane rozlišovat mezi software v karanténě a mimo ní, nezní zda, nýbrž kdy. Gatekeeper doposud prováděl kontrolu pouze během prvního spuštění aplikace. Nově bude kontrola prováděna periodicky. Další detaily však nebyly uvedeny.
Apple rovněž vysílá jasný signál, že do budoucna se nepočítá s nepodepsaným software pro běžné užívání. Zároveň však dovává, že na Macu vždy bude možnost spustit libovolný kód. Pravděpodobně se dočkáme podobného mechanismu, jako v případě System Integrity Protection, kdy může být potřeba nastartovat Mac z recovery oddílu a spuštění nepodepsaného software (dočasně) umožnit. Budoucnost tedy patří pouze podepsanému a notarizovaném software. Bez výjimky.
Zdroje
- prezentace All About Notarization
- prezentace Advances in macOS Security
- vývojářská dokumentace Notarizing Your App Before Distribution