Na Google I/O jsme se dozvěděli o vylepšeních, která Android Q přináší. Nové funkce zabezpečení a ochrany soukromí a vylepšení jsou v celém novém operačním systému Android.
Každá nová verze operačního systému Android přináší vylepšení téměř všech aspektů od designu, funkcí, rozhraní API a dalších. Na Google I/O začátkem tohoto měsíce jsme se dozvěděli o všech vylepšení, která Android Q přinese a na konferenci samozřejmě nebyla opomenuta ani nová oznámení o ochraně soukromí a zabezpečení. Zabezpečení platformy je jedním z nejdůležitějších aspektů operačního systému, zejména u operačního systému, který nosíme všude s sebou v kapse. Pokud by Android nebyl bezpečný, nevěřili bychom mu s polovičním počtem funkcí než my. NFC platby by nepřicházely v úvahu, sdílení souborů by bylo přinejlepším pochybné a připojování k jiným zařízením by bylo vyloženě šílenství. Navzdory dlouhotrvajícímu problému fragmentace verzí se Googlu velmi dobře podařilo udržet počet bezpečnostních problémů na minimu.
Android dospěl v OS, který je bohatý na funkce a je vysoce bezpečný. Ale vždy je samozřejmě co zlepšovat. K tomuto zabezpečení přispívá mnoho faktorů a několik z nich se v systému Android Q nějakým způsobem zlepšuje.
Šifrování
Protože se jedná o jednu z nejzákladnějších metod zabezpečení, je důležité, aby každé zařízení podporovalo silné šifrování. Mnoho výrobců OEM dnes dodává svá zařízení s vyhrazeným šifrovacím hardwarem. I když je to výhodné, je to také drahé. Jako takový byl vyhrazený hardware obvykle omezen na zařízení střední až vyšší úrovně. To neznamená, že low-end zařízení nemůže podporují šifrování, ale bez hardwarově akcelerovaného šifrování je celkový uživatelský dojem zhoršený kvůli pomalému čtení/zápisu. To je místo, kde přichází Adiantum.
Adiantum
V únoru Google oznámil Adiantum jako alternativu šifrovací algoritmus pro telefony nižší třídy které nepodporují běžné instrukční sady AES. Adiantum je speciálně navrženo tak, aby fungovalo bez vyhrazeného hardwaru. Slouží jako lehčí alternativa k běžnému AES šifrování Androidu. Benchmarky Google řekněte nám, že je ve skutečnosti 5x rychlejší než AES, přičemž nevýhodou je, že mírně snižuje zabezpečení. Díky tomu je ideálním kandidátem pro telefony nižší třídy, jako jsou ty, které využívají Android Go Edition. Adiantum je také pro produkty, jako jsou chytré hodinky a různá zařízení internetu věcí.
Doposud bylo Adiantum nepovinné; výrobci jej mohli povolit na zařízeních se systémem Android Pie, ale nebyl to výchozí šifrovací algoritmus. Nyní je Adiantum zahrnuto nativně jako součást Android Q. To znamená, že všechna zařízení spouštěná pomocí Q budou muset bez výjimky šifrovat uživatelská data. Výsledkem je, že zařízení se systémem Android Q mají zaručeno šifrování úložiště, ať už přes Adiantum nebo ne.
Bezpečnostní knihovna Jetpack
Jetpack je sada knihoven podpory pro Android a jeden z nejnovějších přírůstků je ve verzi alfa: bezpečnostní knihovna Jetpack. Knihovna zjednodušuje proces zabezpečení vaší aplikace tím, že zpracovává věci, jako je správa úložišť klíčů podporovaných hardwarem a generování a ověřování klíčů.
TLS 1.3
Úložiště však není jedinou oblastí, ve které bylo vylepšeno šifrování. Komunikace s ostatními zařízeními se výrazně zlepšila zavedením Podpora TLS 1.3 ve výchozím stavu. TLS 1.3 je nejnovější síťový kryptografický standard, dokončený IETF v srpnu 2018. TLS 1.3 poskytuje více soukromí pro výměnu dat tím, že zašifruje více vyjednávacích handshaků. Navíc je rychlejší než TLS 1.2 díky tomu, že celá zpáteční cesta je odříznuta od navázání spojení. Ve spojení s efektivnějšími moderními algoritmy to umožňuje až 40% zvýšení rychlosti.
TLS je nyní aktualizovatelné přímo z Google Play, protože je součástí komponenty „Conscrypt“. Můžete si přečíst více o tom a Project Mainline tady.
Vzhledem k tomu, že denně důvěřujeme tolika citlivým transakcím na našich zařízeních, je vylepšený protokol TLS důležitější než kdy jindy. Ukládání podobných palubních lístků – a dokonce digitální řidičské průkazy někdy v budoucnu - na Androidu znamená, že všechna zařízení by měla šifrovat uživatelská data co nejlépe. Adiantum a vynucené šifrování připraví cestu k tomu, aby i ta nejcitlivější data byla uložena na nejlevnějších zařízeních. Šifrování však není jediný způsob, jak Google zvyšuje zabezpečení Androidu ve verzi Q.
Změny oprávnění a ochrany osobních údajů v systému Android Q
Scoped Storage
Scoped Storage je nová ochrana, která se používá k omezení aplikací ve čtení/zápisu souborů v externím úložišti, které nejsou obsaženy v jejich vlastním izolovaném adresáři aplikace. Cíl Google je trojí: lepší přiřazování toho, které aplikace mají kontrolu nad kterými soubory, ochrana dat aplikací a ochrana uživatelských dat.
Google zdvojnásobuje rozhraní MediaStore API pro sdílený obsah zvuku, videa a obrázků. Ve výchozím nastavení mohou všechny aplikace vkládat, upravovat nebo mazat své vlastní soubory do MediaStore. Obrázky, MediaStore. Video a MediaStore. Zvukové sbírky bez nutnosti jakýchkoli oprávnění. Android Q také přidává novinku MediaStore. Stahování kolekce pro ukládání obsahu staženého uživateli, ke kterému mohou přispívat všechny aplikace využívající MediaStore API. Zatímco soubory uložené v adresářích specifických pro aplikace v izolovaném prostoru jsou po odinstalaci odstraněny, všechny soubory přidané do sbírek MediaStore přetrvávají i po odinstalaci.
Pro přístup k souborům vytvořeným jinou aplikací – ať už je soubor v jedné z kolekcí MediaStore nebo mimo ně – musí aplikace používat Storage Access Framework. Kromě toho jsou metadata EXIF obrázků redigována, pokud vaše aplikace nemá uděleno nové oprávnění ACCESS_MEDIA_LOCATION. V Androidu Q mohou aplikace také řídit, na jakém úložném zařízení se mají média přiložit dotazem na název svazku pomocí getExternalVolume().
Google zpočátku uvalil omezení Scoped Storage na všechny aplikace v Android Q bez ohledu na jejich cílové úrovně API, ale po zpětné vazbě společnost dává vývojářům více času provést úpravy. Úplné podrobnosti o změnách Scoped Storage naleznete na této straněa můžete se dozvědět více o doporučeních Google ohledně osvědčených postupů pro sdílené úložiště od sledování tohoto Google I/O mluvit.
Upozornění pro aplikace cílené na úroveň API < 23
Tím však omezení povolení nekončí. Instalace aplikace, která cílí na úroveň rozhraní API nižší než 23 (Android Lollipop nebo starší), způsobí, že operační systém uživateli zobrazí varování, pokud tato aplikace při instalaci vyžaduje citlivá oprávnění. Před instalací budou mít uživatelé možnost ručně zadat, jaká oprávnění chtějí aplikaci udělit, než budou pokračovat. Android Q tedy již aplikacím neumožňuje obcházet oprávnění za běhu.
Případná SYSTEM_ALERT_DEPRECATION ve prospěch Bubbles API
Bubbles API v akci. Zdroj: Google.
Oprávnění k překryvné vrstvě (SYSTEM_ALERT_WINDOW) již nelze udělovat aplikacím běžícím na Androidu Q (Go Edition). U zařízení, která nejsou ve verzi Go, Google tlačí vývojáře k novému Bubbles API. Bubbles API je funkce představená v Android Q Beta 2 což umožňuje funkce, které jsou jako chatovací hlavy Facebook Messengeru. Oznámení z aplikací se zobrazují jako malé bublinky na okrajích obrazovky, které se po klepnutí uživatelem rozbalí. V rámci bubliny může aplikace zobrazit aktivitu.
Tato změna byla nezbytná, protože umožnit aplikacím volně vykreslovat překryvy přes jiné aplikace představuje zjevná bezpečnostní rizika. Neslavný"Plášť a dýka“ exploit tuto slabinu hojně využíval. Funkčnost překryvného API byla omezena již v systému Android Oreo, ale nyní verze Go systému Android Q zcela odstranila přístup k rozhraní API s budoucí verzi, aby ji plně zavrhl.
Omezení spouštění aktivity na pozadí
Aplikace na pozadí již nemohou automaticky spouštět aktivitu, když je telefon odemčený, bez ohledu na jejich cílovou úroveň API. Existuje celý seznam podmínek, za kterých mohou aplikace nyní spouštět aktivity, který si můžete přečíst tady. Aplikace na pozadí, které nesplňují tyto podmínky a chtějí urychleně spustit nějakou aktivitu, budou nyní muset o tom uživatele informovat prostřednictvím upozornění. Pokud je oznámení vytvořeno s nevyřízeným záměrem na celou obrazovku, pak se záměr spustí okamžitě, pokud je obrazovka vypnutá – užitečné pro budíky nebo příchozí hovory.
Omezení přístupu ke schránce na pozadí
Přístup do schránky na pozadí je již není možné. Jakákoli aplikace, která není v popředí nebo není nastavena jako výchozí metoda zadávání, nebude moci číst vaši schránku žádným způsobem. Zvláště tvrdě to zasáhne aplikace, jako jsou správci schránky. Google říká, že tato změna se týká pouze aplikací, které cílí výhradně na Android Q, ale naše testování ukazuje, že omezení nediskriminuje; žádná aplikace, kterou jsme zkoušeli, neviděla schránku.
Tato změna má samozřejmě smysl. Do schránky často kopírujeme citlivé informace – věci jako hesla a podrobnosti o kreditních kartách –, ale přesto je škoda vidět, jak manažeři schránky jdou dolů.
Přístup k poloze pouze při používání aplikace
Nové uživatelsky povolené nastavení umožňuje aplikacím dosáhnout vaší polohy pouze tehdy, když je aplikace používána. Nejnovější beta verze Androidu Q také přidala upozornění, které vám připomene, zda jste aplikaci udělili trvalý přístup k místu.
Role
Bylo přidáno nové „Roles“ API. Role jsou v podstatě skupiny s přednastavenými oprávněními přístupu. Například aplikace s rolí galerie mohou mít přístup k vašim složkám médií, zatímco aplikace s rolí vytáčení mohou zvládat hovory. Aplikace, kterým uživatel přidělí určitou roli, musí mít také požadované součásti. Například aplikace s rolí galerie musí mít filtr záměru akce android.úmysl.akce.HLAVNÍ a filtr záměru kategorie android.intent.category. APP_GALLERY se v nastavení zobrazí jako aplikace galerie.
Dlaždice Rychlé nastavení jsou vypnuté senzory
K dispozici je nová dlaždice rychlého nastavení „Sensors off“, která vypíná čtení z Všechno senzory (akcelerometr, gyroskop atd.) na vašem zařízení pro skutečné soukromí. Tato dlaždice Rychlá nastavení je ve výchozím nastavení skrytá, ale lze ji aktivovat tak, že v možnostech vývojáře přejdete do části „rychlé nastavení pro vývojáře“.
Omezení na /proc/net
Aplikace již nemohou přístup proc/net, takže služby jako netstat již nejsou životaschopné. To chrání uživatele před škodlivými aplikacemi, které sledují, ke kterým webům a službám se připojují. Aplikace, které potřebují nepřetržitý přístup, jako jsou VPN, potřebují používat NetworkStatsManager a ConnectivityManager třídy.
Randomizované MAC adresy
Vaše MAC adresa je jedinečný identifikátor, který sítě používají k zapamatování, které zařízení je které. V systému Android Q použije vaše zařízení pokaždé, když se připojíte k nové síti, novou náhodnou MAC adresu. Jako výsledek, sítě nemohou sledovat vaši polohu porovnáním WiFi sítí, ke kterým se připojujete, s MAC adresou vašeho telefonu. Skutečnou tovární MAC adresu zařízení mohou aplikace stále získat prostřednictvím getWifiMacAddress() příkaz.
Platform Hardening v Android Q
Jediná chyba v Androidu neznamená, že útočníci nyní mají plný přístup k OS nebo že mohou obejít jakékoli bezpečnostní systémy. To je částečně způsobeno řadou bezpečnostních opatření, jako je izolace procesů, redukce povrchu útoku, rozklad architektury a zmírnění zneužití. Tato ochranná opatření znesnadňují nebo dokonce znemožňují zneužití zranitelnosti. Výsledkem je, že útočníci obvykle potřebují velké množství zranitelností, než mohou dosáhnout svých cílů. V minulosti jsme byli svědky útoků jako DRAMMER které fungují řetězením více exploitů dohromady.
Android Q přebírá takovéto záruky a aplikuje je na citlivější oblasti, jako jsou média a komponenty Bluetooth spolu s jádrem. To přináší určitá výrazná zlepšení.
- Omezený sandbox pro softwarové kodeky.
- Zvýšené výrobní používání dezinfekčních prostředků ke zmírnění celých tříd zranitelností v komponentách, které zpracovávají nedůvěryhodný obsah.
- Shadow Call Stack, který poskytuje integritu řízení toku zpětné hrany (CFI) a doplňuje ochranu na přední hraně, kterou poskytuje LLVM CFI.
- Ochrana před úniky adres ASLR (Address Space Layout Randomization) pomocí eXecute-Only Memory (XOM).
- Zavedení vylepšeného alokátoru Scudo, který ztěžuje zneužití řady zranitelností souvisejících s haldou.
To je hodně softwarového žargonu. Podstatou je, že softwarové kodeky nyní běží v sandboxech, které mají méně privilegií, což znamená, že méně pravděpodobné, že škodlivý software bude schopen spouštět příkazy, které by mohly poškodit vaše zařízení, jako například v případě z Tréma ještě v roce 2015.
Za druhé, Android nyní kontroluje přístup k polím mimo hranice na více místech a také přetečení. Prevence přetečení a instruování procesů k bezpečnému selhání výrazně snižuje procento zranitelností v uživatelském prostoru. To znamená, že pokud se škodlivý program pokusí způsobit selhání něčeho úmyslným pokusem získat přístup k datům, která neexistují, Android to nyní rozpozná a místo toho program ukončí shazovat.
Za třetí, Shadow Call Stack chrání zpáteční adresy tím, že je ukládá do samostatného stínového zásobníku, takže jsou nepřístupné pro běžné programy. Návratové adresy jsou obvykle ukazatele na funkce, takže ochrana těchto adres je důležitá, aby se zajistilo, že útočníci nebudou mít přístup k funkcím, které by neměli mít.
Za čtvrté, ASLR je metoda ochrany, která náhodně rozděluje, kde jsou programy uloženy v paměti, čímž se stává těžší zjistit, kde jsou programy uloženy v paměti na základě umístění jiných programy. Paměť eXecute to posiluje tím, že kód je nečitelný.
A konečně, Scudo je dynamický alokátor haldy, který proaktivně spravuje paměť způsobem, díky kterému je mnohem těžší zneužít zranitelnosti založené na haldě. Můžete si o tom přečíst více tady.
Autentizace
Aktualizace BiometricPrompt v Androidu Q
Google představil nové API BiometricPrompt před více než rokem, v Android P Developer Preview 2. Mělo to být generická výzva pro Android pro biometrické metody odemykání. Myšlenka je taková, že zařízení, která podporují více než jen snímání otisků prstů, např. skenování duhovky na lince Samsung Galaxy S bude moci použít tyto metody, když aplikace požádají o ověření.
Android Q přidává robustní podporu pro ověřování obličeje a otisků prstů a také rozšiřuje API pro podporu implicitní autentizace. Explicitní autentizace vyžaduje, aby se uživatel před pokračováním nějakým způsobem autentizoval, zatímco implicitní nevyžaduje žádnou další interakci uživatele.
Kromě toho mohou aplikace nyní zkontrolovat, zda zařízení podporuje biometrické ověřování prostřednictvím jednoduchého volání funkce, což jim umožňuje neztrácet čas vyvoláním BiometricPrompt na zařízeních, která tak neučiní podpořit to. Ideální použití by bylo, pokud by aplikace chtěly nastavit „Povolit biometrické přihlášení“ na základě toho, zda zařízení podporuje biometrické ověřování.
Stavební bloky pro podporu elektronického ID
Začátkem tohoto roku jsme objevili důkazy, že Google ano pracuje na podpoře elektronických průkazů totožnosti v systému Android. Na I/O nás Google informoval o průběhu této funkce. Google říká, že spolupracují s ISO na standardizaci implementace mobilních řidičských průkazů, přičemž se pracuje na elektronických pasech. Pro vývojáře Google poskytne knihovnu Jetpack, aby se mohly začít vytvářet aplikace pro identitu.
Project Mainline v systému Android Q
Project Mainline je hlavním počinem společnosti Google, jehož cílem je snížit fragmentaci určitých systémových modulů a aplikací. Google bude prostřednictvím Obchodu Play ovládat aktualizace asi 12 systémových komponent. Mluvili jsme o Project Mainline do hloubky v předchozím článku pokud máte zájem přečíst si více.
Závěr
Zabezpečení bylo vždy hlavní součástí vývoje Androidu. Google odvedl působivou práci při udržování Androidu v aktuálním stavu s nejnovějšími bezpečnostními funkcemi a také při vytváření některých vlastních inovací. Pokračují v tomto vývojovém procesu se systémem Android Q, který je plný bezpečnostních funkcí, které zajistí, že vaše data budou bezpečnější než kdykoli předtím.
Zdroj 1: Co je nového v zabezpečení Android Q [Google]
Zdroj 2: Zabezpečení na Androidu: Co dál [Google]
Zdroj 3: Queue the Hardening Enhancements [Google]
Se vstupem od Mishaala Rahmana a Adama Conwaye.