Android Q bude lépe chránit vaše soukromí pomocí nových funkcí

Analýza uniklého sestavení Android Q ukazuje, že na Android přichází další upgrady ochrany osobních údajů: blokování čtení ze schránky na pozadí, lepší ochrana médií a další.

Každá nová verze Androidu přichází s novými funkcemi, což znamená, že Android potřebuje nová oprávnění k bránění přístupu k těmto funkcím. V rámci Android Q jsem našel spoustu nových oprávnění (ne všechna v tomto článku popíšu, protože mnoho z nich není zajímavých). Některá oprávnění, která jsem našel, neměla žádný popis, ale jejich názvy jsou každopádně docela samozřejmé. Pojďme se ponořit a diskutovat o nových zákulisních vylepšeních ochrany osobních údajů v systému Android Q a také o několika dalších zajímavých funkcích, které jsem našel.

Zvláštní poděkování společnosti PNF Software za poskytnutí licence k použití JEB dekompilátor. JEB Decompiler je profesionální nástroj zpětného inženýrství pro aplikace Android.

Blokování přístupu do schránky na pozadí

Věděli jste, že každá aplikace v Androidu může číst vaši schránku

a nemusíte jim k tomu udělit runtime oprávnění? Mnoho lidí pravděpodobně kopíruje citlivé informace, jako jsou uživatelská jména, hesla, adresy atd. neustále, takže pro jakoukoli aplikaci by bylo snadné seškrábat tato data na pozadí. To je důvod, proč se mnoho aplikací pro správu hesel líbí KeepPass mají své vlastní klávesnice, pomocí kterých můžete obejít správce schránky Android. Aplikace pro správu hesel často vymazávají schránku poté, co cokoli zkopírujete a vložíte. Důvod, proč aplikace pro Android potřebují číst schránku, je ten, že bez ní nemohou přijmout žádný text ze schránky, což znamená, že nemůžete vložit žádný text, který jste zkopírovali. Android Q se to naštěstí snaží změnit.

Bylo přidáno nové oprávnění s názvem „READ_CLIPBOARD_IN_BACKGROUND“, což zní, že udělá přesně to, co říká: omezí, jaké aplikace mohou číst schránku na pozadí. Úroveň ochrany tohoto oprávnění je „podpis“, což znamená, že toto oprávnění mohou získat pouze aplikace podepsané výrobcem OEM.

<permissionandroid: name="android.permission.READ_CLIPBOARD_IN_BACKGROUND"android: protectionLevel="signature"/>

Podpora pro downgrade aplikací?

Už se vám někdy stalo, že jste si na Google Play nainstalovali aktualizaci aplikace a hned jste toho litovali? Někdy vývojář podá aktualizaci, která poruší něco, co neočekávali, ale jakmile byla aktualizace odeslána a nainstalována, je příliš pozdě s tím něco dělat. Vývojář musí rychle vydat opravu hotfix a uživatel buď musí přestat používat aplikaci, dokud nebude vydána aktualizace, nebo aplikaci odinstalovat a načíst starší verzi. Neexistuje způsob, jak downgradovat aplikaci, pokud nemáte rootované zařízení s aplikací jako Titanium Backup, protože správce balíčků Androidu blokuje instalaci starších verzí aplikací. Existuje k tomu dobrý důvod, protože instalace starší verze aplikace by mohla vést k poškození, pokud by data aplikace nejsou vymazána, nebo by mohla vystavit uživatele nebezpečí, pokud je starší verze zranitelná vůči zabezpečení vada.

I když si nejsme jisti, zda Google uživatelům umožní vrátit aplikace na starší verzi, našli jsme v Android Q několik oprávnění a příkazů, které naznačují, že to bude možné. Za prvé, nový „PACKAGE_ROLLBACK_AGENT" a "MANAGE_ROLLBACKSOprávnění naznačují, že předinstalovaná aplikace Market může fungovat jako agent pro správu vrácení verzí aplikací. První oprávnění je „podpis“, zatímco druhé je „instalátor“ nad „podpis“, takže to znamená pouze aplikaci podepsanou platformou s možností instalace aplikací (obvykle pouze správce balíčků, Obchod Google Play nebo jiné obchody s aplikacemi první strany, v závislosti na zařízení) mohou tato oprávnění používat. Byly přidány dva nové chráněné vysílací záměry: „PACKAGE_ENABLE_ROLLBACK" a "PACKAGE_ROLLBACK EXECUTED.“ Tato vysílání nemohou být odesílána aplikacemi třetích stran a jejich účelem je pravděpodobně umožnit postižené aplikaci vědět, kdy byla downgradována (velmi například to, jak se aplikacím říká, když byly aktualizovány, což jim dává možnost zobrazit nějakou zprávu při příštím spuštění.) Nakonec byl přidán nový příznak "pm install” příkaz shellu. Vlajka zvaná „--enable-rollback,“ vám umožní vrátit aplikaci na dřívější verzi. Nemohl jsem to však uvést do provozu.

<protected-broadcast android: name="android.intent.action.PACKAGE_ENABLE_ROLLBACK"/>
<protected-broadcast android: name="android.intent.action.PACKAGE_ROLLBACK_EXECUTED"/>
<permissionandroid: name="android.permission.PACKAGE_ROLLBACK_AGENT"android: protectionLevel="signature"/>
<permissionandroid: name="android.permission.MANAGE_ROLLBACKS"android: protectionLevel="installer|signature"/>

Zabezpečení souborů na externím úložišti

Ukládání dat v systému Android zahrnuje „interní úložiště“ (/data s výjimkou /data/média) a „externí úložiště“ (/data/média a jakékoli připojené karty SD nebo jednotky USB). Soubory APK a jejich nejcitlivější data jsou uložena v interním úložišti, zatímco jakákoli sdílená média, jako jsou dokumenty, obrázky, videa atd. jsou uloženy v externím úložišti. Ve výchozím nastavení mohou aplikace číst a zapisovat soubory pouze do jednoho adresáře v externím úložišti: /data/media/[uživatel]/Android/data/[název_balíčku]. (Chcete-li se o tomto chování dozvědět více, doporučuji vám přečíst si můj článek o sdcardfs v systému Android Oreo.) Jakmile uživatel udělí aplikaci jakékoli oprávnění v rámci skupiny oprávnění externího úložiště (READ_EXTERNAL_STORAGE nebo WRITE_EXTERNAL_STORAGE), aplikace pak může číst nebo zapisovat jakýkoli soubor v externím úložišti. To je problematické, protože dáváte aplikaci možnost potenciálně sklízet o vás spoustu dat, když jste ji chtěli nechat číst nebo zapisovat určité soubory. Zdá se, že Google zavádí několik nových oprávnění souvisejících s externím úložištěm v systému Android Q, aby to napravil. Oprávnění zablokují následující funkce:

  • Schopnost číst umístění z vašich médií. (Ve výchozím nastavení pravděpodobně blokuje přístup k metadatům obrázků.)
  • Možnost přístupu k hudebním souborům.
  • Možnost přístupu k fotografiím.
  • Možnost přístupu k videím.

U aplikací, které již obsahují READ_EXTERNAL_STORAGE nebo WRITE_EXTERNAL_STORAGE oprávnění před aktualizací Android Q, získají nové číst oprávnění, ale ne nové napsat oprávnění. Například aplikace, která již byla udělena READ_EXTERNAL_STORAGE uživatelem bude automaticky uděleno READ_MEDIA_IMAGES povolení, ale ne WRITE_MEDIA_IMAGES povolení.

Relevantní řetězce z framework-res systému Android Q

<stringname="permgroupdesc_aural">access your musicstring>
<stringname="permgrouplab_visual">Photos & Videosstring>
<stringname="permgrouprequest_aural">Allow <b>%1$s</b> to access your music?string>
<stringname="permgroupdesc_visual">access your photos & videosstring>
<stringname="permgrouplab_activityRecognition">Activity recognitionstring>
<stringname="permgrouplab_aural">Musicstring>
<stringname="permdesc_videoRead">Allows the app to read your video collection.string>
<stringname="permdesc_videoWrite">Allows the app to modify your video collection.string>
<stringname="permdesc_imagesRead">Allows the app to read your photo collection.string>
<stringname="permdesc_imagesWrite">Allows the app to modify your photo collection.string>
<stringname="permdesc_audioRead">Allows the app to read your music collection.string>
<stringname="permdesc_audioWrite">Allows the app to modify your music collection.string>
<stringname="permlab_audioRead">read your music collectionstring>
<stringname="permlab_audioWrite">modify your music collectionstring>
<stringname="permdesc_mediaLocation">Allows the app to read locations from your media collection.string>



"android.permission.READ_EXTERNAL_STORAGE"

targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>

"android.permission.WRITE_EXTERNAL_STORAGE"
targetSdk="10000">
<new-permission name="android.permission.READ_MEDIA_AUDIO" />
<new-permission name="android.permission.READ_MEDIA_VIDEO" />
<new-permission name="android.permission.READ_MEDIA_IMAGES" />
split-permission>

Přečtěte si více

Návrat přístupu k poloze na pozadí

Android Oreo a Android 9 Pie udělaly velké kroky vpřed v zabezpečení soukromí uživatelů, ale někteří uživatelé měli pocit, že Google zašel příliš daleko. Jedna taková oblast, kterou lze považovat za regresi funkcí, je in přístup k poloze na pozadí. Přístup k poloze v systému Android Oreo a novějším je silně omezen, pokud není přímo zablokován pro aplikace běžící na pozadí, takže aplikace musí být buď v popředí, nebo musí mít spuštěnou službu na popředí, pokud chtějí neustále dotazovat umístění. To brání aplikacím ve špehování vaší polohy na pozadí, ale také brání uživateli v mapování vlastní polohy pomocí aplikace na pozadí. Toto je problém, kterého jsme se dotkli v samostatném článku, a vypadá to, že Google přidává nové oprávnění do Androidu Q, aby řešil obavy těchto vývojářů a uživatelů.

V Androidu Q bylo přidáno nové oprávnění, které aplikaci umožňuje přístup k poloze zařízení na pozadí. Popis oprávnění pro uživatele varuje, že „aplikace bude mít vždy přístup k umístění, i když aplikaci nepoužíváte“. Toto povolení může získat oprávnění „dodatečně k přibližné nebo přesné poloze“, aby aplikace „měla přístup k poloze při běhu na pozadí“. V porovnání, povolení pro přibližnou polohu může zjistit vaši polohu pouze na základě síťových zdrojů, jako jsou mobilní věže nebo sítě Wi-Fi, ale pouze v případě, že je aplikace v popředí.

Relevantní řetězce z framework-res systému Android Q

<stringname="permgroupbackgroundrequest_location">Always allow <b>%1$s</b> to access this device’s location?string>
<stringname="permgroupbackgroundrequestdetail_location">The app will always have access to the location, even when you’re not using the app.string>
"permdesc_accessBackgroundLocation">If this is granted additionally to the approximate or precise location access the app can access the location while running in the background.</string>
"permdesc_accessCoarseLocation">This app can get your location based on network sources such as cell towers and Wi-Fi networks, but only when the app is in the foreground. These location services must be turned on and available on your phone for the app to be able to usethem.string>
"android.permission.ACCESS_FINE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>

"android.permission.ACCESS_COARSE_LOCATION"
targetSdk="10000">
<new-permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
split-permission>

Přečtěte si více

Rozpoznávání fyzické aktivity

Do Androidu Q bylo přidáno nové oprávnění, které aplikaci umožňuje „rozpoznat vaši fyzickou aktivitu“. To není technicky nic nového, protože to je již součástí Služeb Google Play, ale může to znamenat, že Google oddělí oprávnění od Služeb Play. Vzhledem k tomu, jak integrální byly Služby Google Play při poskytování základních funkcí Androidu, je dobré vidět, že část jejich výkonu je vrácena AOSP.

<stringname="permgroupdesc_activityRecognition">recognize activitystring>
<stringname="permgrouprequest_activityRecognition">Allow <b>%1$s</b> to recognize your physical activity?string>
<stringname="permdesc_activityRecognition">This app can recognize your physical activity.string>

Další novinky o Androidu Q najdete na naší stránce štítek s nejnovějšími zprávami seřazenými podle data. Nedávno jsme publikovali článek se spoustou důkazů směřujících k tomu, že Google pracuje podporující hardware pro ověřování obličeje podobný Face ID v systému Android Q. Máme také první praktické informace o uniklém sestavení Androidu Q (a dokonce je tam i video), které byste si měli prohlédnout zde. Budeme zveřejňovat další naše zjištění z tohoto raného sestavení Android Q, které jsme získali, takže zůstaňte naladěni.