Bij Google I/O leerden we over de verbeteringen die Android Q met zich meebrengt. Nieuwe beveiligings- en privacyfuncties en verbeteringen zijn overal in het nieuwe Android-besturingssysteem te vinden.
Elke nieuwe versie van het Android-besturingssysteem brengt verbeteringen in bijna elk aspect, van het ontwerp, de functies, API's en meer. Bij Google I/O eerder deze maand leerden we over alle verbeteringen die Android Q gaat brengen, en uiteraard werden er op de conferentie ook nieuwe privacy- en veiligheidsaankondigingen niet achterwege gelaten. De platformbeveiliging is een van de belangrijkste aspecten van een besturingssysteem, vooral voor een besturingssysteem dat we overal mee naartoe nemen in onze broekzak. Als Android niet veilig was, zouden we het niet met half zoveel functies vertrouwen als wij. NFC-betalingen zouden uitgesloten zijn, het delen van bestanden zou op zijn best twijfelachtig zijn en het verbinden met andere apparaten zou regelrechte waanzin zijn. Ondanks het al lang bestaande probleem van versiefragmentatie heeft Google er buitengewoon goed aan gedaan om het aantal beveiligingsproblemen tot een minimum te beperken.
Android is uitgegroeid tot een besturingssysteem dat zowel rijk aan functies als zeer veilig is. Maar er is natuurlijk altijd ruimte voor verbetering. Er zijn veel factoren die bijdragen aan deze beveiliging, en een paar daarvan worden op de een of andere manier verbeterd met Android Q.
Encryptie
Omdat het een van de meest elementaire beveiligingsmethoden is, is het belangrijk dat elk apparaat sterke codering ondersteunt. Veel OEM's verzenden hun apparaten tegenwoordig met speciale encryptiehardware. Hoewel dit nuttig is, is het ook duur. Als zodanig is speciale hardware doorgaans beperkt tot apparaten uit het midden- en hogere segment. Dit wil niet zeggen dat het low-end apparaten zijn kan niet ondersteunen versleuteling, maar zonder hardwareversnelde versleuteling wordt de algehele gebruikerservaring verslechterd vanwege de trage lees-/schrijftijden. Dat is waar Adiantum in beeld komt.
Adiantum
In februari kondigde Google Adiantum aan als alternatief versleutelingsalgoritme voor goedkopere telefoons die geen reguliere AES-instructiesets ondersteunen. Adiantum is speciaal ontworpen om te draaien zonder speciale hardware. Het dient als een lichter alternatief voor de reguliere AES-codering van Android. De benchmarks van Google vertel ons dat het eigenlijk 5x sneller is dan AES, met als nadeel dat het een beetje inlevert op de beveiliging. Dit maakt het de ideale kandidaat voor telefoons uit het lagere segment, zoals telefoons met Android Go Edition. Adiantum is ook bedoeld voor producten zoals smartwatches en een verscheidenheid aan Internet of Things-apparaten.
Tot nu toe was Adiantum optioneel; fabrikanten konden het inschakelen op apparaten die werden gestart met Android Pie, maar het was niet het standaard versleutelingsalgoritme. Nu is Adiantum standaard opgenomen als onderdeel van Android Q. Dit betekent dat alle apparaten die starten met Q gebruikersgegevens moeten versleutelen, zonder uitzonderingen. Als gevolg hiervan zijn apparaten die worden gelanceerd met Android Q gegarandeerd opslagversleuteling, of dit nu via Adiantum is of niet.
Jetpack-beveiligingsbibliotheek
Jetpack is een set Android-ondersteuningsbibliotheken, en een van de nieuwste aanwinsten is in alpha: de Jetpack Security Library. De bibliotheek vereenvoudigt het proces van het beveiligen van uw applicatie door zaken als het beheer van door hardware ondersteunde sleutelarchieven en het genereren en valideren van sleutels af te handelen.
TLS 1.3
Opslag is echter niet het enige gebied waarin de encryptie is verbeterd. De communicatie met andere apparaten is veel verbeterd met de introductie van TLS 1.3-ondersteuning standaard. TLS 1.3 is de nieuwste netwerkcryptografische standaard, die in augustus 2018 door de IETF werd afgerond. TLS 1.3 biedt meer privacy voor gegevensuitwisseling door meer onderhandelingshandshakes te coderen. Bovendien is het sneller dan TLS 1.2 omdat een hele retourvlucht wordt afgeschoren van de handshake voor het tot stand brengen van de verbinding. In combinatie met efficiëntere moderne algoritmen zorgt dit voor een snelheidsverhoging tot wel 40%.
TLS kan nu rechtstreeks vanuit Google Play worden bijgewerkt omdat het deel uitmaakt van de component 'Conscrypt'. Daarover en Project Mainline leest u meer hier.
Aangezien we dagelijks zoveel gevoelige transacties op onze apparaten vertrouwen, is de geüpgradede TLS belangrijker dan ooit. Het opslaan van bijvoorbeeld instapkaarten - en zelfs digitale rijbewijzen ergens in de toekomst - op Android betekent dit dat alle apparaten gebruikersgegevens zo goed mogelijk moeten versleutelen. Adiantum en geforceerde encryptie zullen de weg vrijmaken om zelfs de meest gevoelige gegevens op de goedkoopste apparaten op te slaan. Maar encryptie is niet de enige manier waarop Google de beveiliging van Android in de Q-release vergroot.
Machtigingen en privacywijzigingen in Android Q
Omvangrijke opslag
Scoped Storage is een nieuwe beveiliging die wordt gebruikt om te voorkomen dat apps bestanden in externe opslag lezen/schrijven die niet in hun eigen app-specifieke directory in de sandbox staan. Het doel van Google is drieledig: een betere toewijzing van welke apps controle hebben over welke bestanden, de bescherming van app-gegevens en de bescherming van gebruikersgegevens.
Google verdubbelt de MediaStore API voor gedeelde audio-, video- en foto-inhoud. Standaard kunnen alle apps hun eigen bestanden in de MediaStore invoegen, wijzigen of verwijderen. Afbeeldingen, MediaStore. Video en MediaStore. Audiocollecties zonder dat u toestemming nodig heeft. Android Q voegt ook een nieuwe toe MediaWinkel. Downloads verzameling om door gebruikers gedownloade inhoud op te slaan, waaraan alle apps die de MediaStore API gebruiken, kunnen bijdragen. Hoewel bestanden die zijn opgeslagen in app-specifieke mappen in een sandbox worden verwijderd bij het verwijderen, blijven alle bestanden die zijn bijgedragen aan de MediaStore-collecties behouden nadat ze zijn verwijderd.
Om toegang te krijgen tot bestanden die door een andere app zijn gemaakt, ongeacht of het bestand zich in een van de MediaStore-collecties of daarbuiten bevindt, moet de app het Storage Access Framework gebruiken. Bovendien worden EXIF-metagegevens van afbeeldingen geredigeerd, tenzij aan uw app de nieuwe ACCESS_MEDIA_LOCATION-toestemming is verleend. In Android Q kunnen apps ook bepalen op welk opslagapparaat media terechtkomen door de volumenaam op te vragen met behulp van getExternalVolume().
Google legde aanvankelijk Scoped Storage-beperkingen op aan alle apps in Android Q, ongeacht hun doel-API-niveaus, maar na feedback is het bedrijf dat wel waardoor ontwikkelaars meer tijd krijgen aanpassingen te maken. De volledige details over de wijzigingen in Scoped Storage vindt u op deze pagina, en u kunt meer informatie vinden over de aanbevelingen van Google over de beste werkwijzen voor gedeelde opslag op kijken naar deze Google I/O gesprek.
Waarschuwingen voor apps die API-niveau < 23 targeten
Toestemmingsbeperkingen eindigen hier echter niet. Als u een app installeert die zich richt op een API-niveau lager dan 23 (Android Lollipop of ouder), zal het besturingssysteem een waarschuwing aan de gebruiker weergeven als de app tijdens de installatie om gevoelige machtigingen vraagt. Vóór de installatie hebben gebruikers de mogelijkheid om handmatig op te geven welke machtigingen ze de app willen verlenen voordat ze doorgaan. Android Q staat dus niet langer toe dat apps runtime-rechten omzeilen.
Eventuele SYSTEM_ALERT_DEPRECATION ten gunste van de Bubbles API
Bubbles-API in actie. Bron: Google.
De overlay-toestemming (SYSTEM_ALERT_WINDOW) kan niet langer worden verleend voor apps die draaien op Android Q (Go Edition). Voor apparaten die niet van de Go Edition zijn, dringt Google ontwikkelaars aan op de nieuwe Bubbles API. Bubbles API is een functie geïntroduceerd in Android Q Bèta 2 wat functionaliteit mogelijk maakt die lijkt op de chatheads van Facebook Messenger. Meldingen van apps verschijnen als kleine belletjes aan de randen van het scherm, die groter worden wanneer de gebruiker erop tikt. Binnen de ballon kan een app een activiteit weergeven.
Deze verandering was nodig omdat het toestaan van apps om vrijelijk overlays over andere apps te tekenen duidelijke veiligheidsrisico's met zich meebrengt. De beruchte "Mantel en dolk" exploit maakte op grote schaal gebruik van deze zwakte. De functionaliteit van de overlay-API was al in Android Oreo beperkt, maar nu heeft de Go-editie van Android Q de toegang tot de API volledig verwijderd met een toekomstige release om deze volledig af te schaffen.
Beperkingen bij het starten van achtergrondactiviteiten
Apps op de achtergrond kunnen niet langer automatisch een activiteit starten terwijl de telefoon ontgrendeld is, ongeacht hun doel-API-niveau. Er is een hele lijst met voorwaarden waaronder apps nu activiteiten kunnen starten, die je kunt lezen hier. Achtergrondapps die niet aan deze voorwaarden voldoen en met spoed een activiteit willen starten, zullen dit nu via een notificatie aan de gebruiker moeten melden. Als de melding is gemaakt met een intentie tot volledig scherm in behandeling, wordt de intentie onmiddellijk gelanceerd als het scherm is uitgeschakeld: handig voor alarmen of inkomende oproepen.
Toegangsbeperking klembord op de achtergrond
Toegang tot het achtergrondklembord is niet meer mogelijk. Elke toepassing die niet op de voorgrond staat of is ingesteld als de standaardinvoermethode, kan uw klembord op geen enkele manier lezen. Dit treft vooral apps zoals klembordmanagers hard. Google zegt dat deze wijziging alleen van invloed is op apps die uitsluitend op Android Q zijn gericht, maar uit onze tests blijkt dat de beperking niet discriminerend is; elke app die we probeerden, kon het klembord niet zien.
Deze verandering is uiteraard logisch. We kopiëren vaak gevoelige informatie naar het klembord, zoals wachtwoorden en creditcardgegevens, maar het is nog steeds een schande om te zien dat klembordmanagers ten onder gaan.
Locatietoegang alleen als een app in gebruik is
Dankzij een nieuwe, door de gebruiker ingeschakelde instelling kunnen apps uw locatie alleen bereiken terwijl de app in gebruik is. De nieuwste Android Q-bèta heeft ook een melding toegevoegd die je eraan herinnert of je een app permanente toegang tot de locatie hebt verleend.
Rollen
Er is een nieuwe "Rollen"-API toegevoegd. Rollen zijn in wezen groepen met vooraf ingestelde toegangsrechten. Apps met de galerijrol kunnen bijvoorbeeld toegang hebben tot uw mediamappen, terwijl apps met de dialerrol mogelijk oproepen kunnen afhandelen. Apps die door de gebruiker een bepaalde rol krijgen, moeten ook over de benodigde componenten beschikken. Apps met de galerijrol moeten bijvoorbeeld het actie-intentiefilter hebben androïde.bedoeling.actie.VOORNAAMST en het categorie-intentiefilter android.intent.categorie. APP_GALERIJ om te verschijnen als een galerij-app in de instellingen.
Sensoren Uit Tegel Snelle instellingen
Er is een nieuwe tegel voor snelle instellingen "Sensoren uit" die metingen uitschakelt alle sensoren (versnellingsmeter, gyroscoop, enz.) op uw apparaat voor echte privacy. Deze tegel voor snelle instellingen is standaard verborgen, maar kan worden ingeschakeld door naar de "ontwikkelaarstegels voor snelle instellingen" in Opties voor ontwikkelaars te gaan.
Beperkingen voor /proc/net
Apps kunnen niet meer toegang tot proc/net, waardoor diensten als netstat niet langer levensvatbaar zijn. Dit beschermt gebruikers tegen kwaadaardige apps die controleren met welke websites en services ze verbinding maken. Apps die voortdurende toegang nodig hebben, zoals VPN's, moeten de NetwerkStatsManager En Connectiviteitsmanager klassen.
Willekeurige MAC-adressen
Uw MAC-adres is een unieke identificatie die netwerken gebruiken om te onthouden welk apparaat welk apparaat is. In Android Q gebruikt uw apparaat elke keer dat u verbinding maakt met een nieuw netwerk een nieuw, willekeurig MAC-adres. Als gevolg, netwerken kunnen uw locatie niet volgen door de WiFi-netwerken waarmee u verbinding maakt te matchen met het MAC-adres van uw telefoon. Het werkelijke, fabrieks-MAC-adres van het apparaat kan nog steeds door apps worden verkregen via de getWifiMacAdres() commando.
Platformverharding in Android Q
Eén enkele bug binnen Android betekent niet dat aanvallers nu volledige toegang hebben tot het besturingssysteem of dat ze beveiligingssystemen kunnen omzeilen. Dit is gedeeltelijk te danken aan een aantal waarborgen, zoals procesisolatie, verkleining van het aanvalsoppervlak, ontbinding van de architectuur en beperking van exploits. Deze waarborgen maken het moeilijker of zelfs onmogelijk om kwetsbaarheden te misbruiken. Als gevolg hiervan hebben aanvallers doorgaans een groot aantal kwetsbaarheden nodig voordat ze hun doelen kunnen bereiken. In het verleden hebben we aanslagen gezien zoals DRAMMER die werken door meerdere exploits aan elkaar te koppelen.
Android Q neemt dergelijke veiligheidsmaatregelen en past deze ook toe op gevoeligere gebieden zoals de media en Bluetooth-componenten, samen met de kernel. Dit brengt een aantal duidelijke verbeteringen met zich mee.
- Een beperkte sandbox voor softwarecodecs.
- Toegenomen productiegebruik van ontsmettingsmiddelen om hele soorten kwetsbaarheden te verminderen in componenten die niet-vertrouwde inhoud verwerken.
- Shadow Call Stack, dat achterwaartse Control Flow Integrity (CFI) biedt en een aanvulling vormt op de voorwaartse bescherming die wordt geboden door LLVM's CFI.
- Bescherming van adresruimte-indelingsrandomisatie (ASLR) tegen lekken met behulp van eXecute-Only Memory (XOM).
- Introductie van een geharde Scudo-allocator, waardoor een aantal heap-gerelateerde kwetsbaarheden moeilijker te exploiteren zijn.
Dit is veel softwarejargon. De kern hiervan is dat softwarecodecs nu in sandboxes draaien die minder rechten hebben, wat betekent dat het Het is minder waarschijnlijk dat kwaadaardige software opdrachten kan uitvoeren die uw apparaat kunnen beschadigen, zoals in dit geval van Plankenkoorts ver terug in 2015.
Ten tweede controleert Android nu op meer plaatsen op array-toegang buiten het bereik, evenals op overflows. Het voorkomen van overflows en het instrueren van processen om veilig te falen vermindert het percentage kwetsbaarheden in de gebruikersruimte aanzienlijk. Wat dit betekent is dat als een kwaadaardig programma iets probeert te laten crashen door dit opzettelijk te proberen toegang krijgen tot gegevens die niet bestaan, Android zal dit nu herkennen en het programma afsluiten, in plaats van crashen.
Ten derde beschermt Shadow Call Stack retouradressen door ze op te slaan in een aparte schaduwstapel, waardoor ze ontoegankelijk worden voor reguliere programma's. Retouradressen zijn doorgaans verwijzingen naar functies, dus het beschermen van deze adressen is belangrijk om ervoor te zorgen dat aanvallers geen toegang krijgen tot functies die ze niet zouden moeten kunnen.
Ten vierde is ASLR een beveiligingsmethode die willekeurig bepaalt waar programma's in het geheugen worden opgeslagen moeilijker om erachter te komen waar programma's in het geheugen worden opgeslagen op basis van de locatie van andere programma's. eXecute-only geheugen versterkt dit door code onleesbaar te maken.
Ten slotte is Scudo een dynamische heap-allocator die het geheugen proactief beheert op een manier die het lastiger maakt om op heap gebaseerde kwetsbaarheden te misbruiken. Je kunt er meer over lezen hier.
Authenticatie
Updates voor BiometricPrompt in Android Q
Google introduceerde ruim een jaar geleden de nieuwe BiometricPrompt API Preview voor Android P-ontwikkelaars 2. Het was bedoeld als een generieke Android-prompt voor biometrische ontgrendelingsmethoden. Het idee is dat apparaten die meer ondersteunen dan alleen het scannen van vingerafdrukken, b.v. irisscanning op de Galaxy S-lijn van Samsung kan deze methoden gebruiken wanneer apps om verificatie vragen.
Android Q voegt robuuste ondersteuning toe voor gezichts- en vingerafdrukverificatie, en breidt de API uit om impliciete authenticatie te ondersteunen. Expliciete authenticatie vereist dat de gebruiker zich op een of andere manier authenticeert voordat hij doorgaat, terwijl impliciete authenticatie geen gebruikersinteractie meer vereist.
Bovendien kunnen apps nu eenvoudig controleren of een apparaat biometrische authenticatie ondersteunt functieaanroep, waardoor ze geen tijd verspillen met het oproepen van een BiometricPrompt op apparaten die dat niet doen ondersteun het. Een ideaal gebruik hiervoor zou zijn als apps een instelling 'Biometrische aanmelding inschakelen' willen geven op basis van het feit of een apparaat al dan niet biometrische authenticatie ondersteunt.
De bouwstenen voor elektronische ID-ondersteuning
Eerder dit jaar ontdekten we bewijs dat Google dat is werken aan ondersteuning voor elektronische identiteitsbewijzen op Android. Bij I/O heeft Google ons op de hoogte gehouden van de voortgang van de functie. Google zegt dat ze samenwerken met de ISO om de implementatie van mobiele rijbewijzen te standaardiseren, met elektronische paspoorten in de maak. Voor ontwikkelaars zal Google een Jetpack-bibliotheek ter beschikking stellen, zodat er identiteits-apps kunnen worden gemaakt.
Project Mainline in Android Q
Project Mainline is een grote onderneming van Google om de fragmentatie van bepaalde systeemmodules en apps te verminderen. Google zal updates voor ongeveer 12 systeemcomponenten beheren via de Play Store. We hebben uitgebreid over Project Mainline gesproken in een vorig artikel als je meer wilt lezen.
Conclusie
Beveiliging is altijd een belangrijk onderdeel geweest van de ontwikkeling van Android. Google heeft op indrukwekkende wijze Android up-to-date gehouden met de nieuwste beveiligingsfuncties, en heeft ook enkele eigen innovaties doorgevoerd. Ze zetten dit ontwikkelingsproces voort met Android Q, boordevol beveiligingsfuncties die ervoor zorgen dat uw gegevens veiliger zijn dan ooit tevoren.
Bron 1: Wat is er nieuw in Android Q Security [Google]
Bron 2: Beveiliging op Android: wat is het volgende [Google]
Bron 3: Wachtrij voor de verhardingsverbeteringen [Google]
Met input van Mishaal Rahman en Adam Conway.