Steeds meer mensen zeggen hun desktop of laptop vaarwel en gebruiken voor alles - dus ook hun bankzaken,Steeds meer mensen zeggen hun desktop of laptop vaarwel en gebruiken voor alles - dus ook hun bankzaken,belastingaangifte of declaraties bij de zorgverzekeraar – een smartphone. Is dat veilig? Lees en huiver...

Henk van de Kamer

android stack

Figuur 1: de onderdelen van Android   

Tegenwoordig gaan overheid en het bedrijfsleven ervan uit dat iedereen een smartphone heeft. We kunnen uitgebreiddiscussiëren over de gevolgen van deze vergaande automatisering, maar in dit artikel wil ik de aandacht vestigen op iets dat in deze discussie bijna nooit genoemd wordt: de kwetsbare hardware van die telefoons.

UPDATES?
Hoewel er meerdere besturingssystemen voor smartphones bestaan, heeft de markt dat voor nu beperkt tot Android (Google) en iOS (Apple). Iedereen met een Android­smartphone ziet het apparaat regelmatig updates doorvoeren. Dat klinkt goed, toch?
In figuur 1 zie je alle onderdelen die tezamen het Android­besturingssysteem vormen. Heb je je wel eens afgevraagd welk van de zes gekleurde onderdelen worden geüpdatet? Allemaal? Fout! De updates die Android automatisch doorvoert, zijn bedoeld voor het lichtblauwe blok ‘System Apps’.

LINUX-KERNEL
Het hart van elk besturingssysteem is de kernel. Deze verzorgt de toegang tot de hardware en kan dus overal bij. Een bug in de kernel kan bijvoorbeeld de microfoon en/of camera aanzetten, schermafdrukken maken en versturen via de netwerkverbinding, bluetooth­ en gps­informatie uitlezen en nog veel meer.
Dit soort bugs worden uiteraard ook regelmatig in de Linux-kernel ontdekt, waar alle Android-tostellen op draaien. Het blijft tenslotte mensenwerk. Meestal worden ze zeer snel opgelost. Vervolgens moet de kernel opnieuw gecompileerd worden met de gewenste instellingen en drivers voor de aanwezige hardware.
Op mijn desktop draait Debian Buster en dit besturingssysteem wordt regelmatig voorzien van updates. De basis van een Linux­distributie ­ het paarse, zeegroene en rode blok ­ is hetzelfde als die in Android of Chrome OS. Met enige regelmaat zie ik een nieuwere versie van de kernel geïnstalleerd worden.
Voor een smartphone is het updaten van alles behalve de apps een stuk lastiger. Soms krijg je een OTA (Over the Air)­update van Android zelf. Meestal betreft dat het groene en oranje blok.De overige drie blokken updaten is uiteraard mogelijk, maar als het om wat voor reden dan ook misgaat, kan alleen een expert de telefoon weer tot leven wekken. Om die reden laten fabrikanten het vaak achterwege. Mede omdat gebruikers menen dat hun toestel up­to­date is door het zichtbare proces voor het lichtblauwe deel. De meeste Android­smartphones bevatten daaromal snel na aanschaf een verzameling bugs in de kernel en andere onderdelen die geen updates krijgen. Onacceptabel, maar als zelfs een rechter dit geen probleem vindt... (zie https://www.consumentenbond.nl/nieuws/2018/teleurstellende­-uit­spraak­-in­-rechtszaak-­tegen-­samsung).

ANDROID X86 
In plaats van afhankelijk te zijn van lakse fabrikanten, willen we het heft weer in eigen handen nemen. De broncode van de Linux­kernel is beschikbaar, dus waarom niet zelf een versie voor de smartphone compileren? Helaas is de hardware daarvan minder standaard dan die van gewone computers. Met veel moeite weet een handjevol mensen alsnog de drivers voor hun smartphone te maken en zo uiteindelijk een nieuwe versie van de kernel te verkrijgen. Maar als je die kennis niet hebt, moet je hopen tot iemand dezelfde smartphone heeft weten uit te pluizen. 
Op de meeste computers kun je probleemloos een Linux­distributie installeren. Omdat de broncode voor een standaard Android ­ deze wordt door telefoonfabrikanten vaak flink aangepast- eveneens beschikbaar is, heeft een aantal vrijwilligers een versie voor de x86­processoren gemaakt (https://www.android­x86.org). Op de meeste smartphones wordt een ARM­processor gebruikt. Hiermee hebben we dus een Android die we zelf gemakkelijk van updates kunnen voorzien!

HARDWARE
Voor dit experiment heb ik via het Chinese Bang­ good­warenhuis in Tsjechië een BMAX­notebook (model Y11) besteld. Omdat het product daarmee al in de Europese Unie is, worden zo verrassingen door de douane voorkomen. Deze machine heeft een omklapbaar 11,6inch full hd­touchscreen, zodat het ook als tablet gebruikt kan worden.Verder een Intel Gemini Lake N4100­processor, 8 GB geheugen en een 256 GB M.2 SATA­ssd. Let op: dit is geen M.2 NVMe ssd­-aansluiting die op steeds meer moederborden aanwezig is!
Zo dadelijk laten we zien dat het installeren via een live versie van Android x86 wordt uitgevoerd. Omdat apps en instellingen na elke reboot ver­loren gaan, is installatie voor serieuze experimen­ten noodzakelijk. Dit kan op de ssd door ruimte af te snoepen van de reeds aanwezige Windows 10 met legale licentie. Je begrijpt dat vooraf een goede back­up maken geen overbodige luxe is. Er is nog een reden om een exacte kopie van de ssd te maken: met name Amerika beweert dat Chinese bedrijven door hun overheid worden verplicht om spionagesoftware te installeren. Dít testen was voor mij een tweede reden om een Chinees huismerk te bestellen. Met de back­up achter de hand kan meermaals gecontroleerd worden of Windows 10 tijdens de eerste keer opstarten stiekeme dingen doet. Voor het uitlezen van de M.2 op een andere computer zijn een aantal spullen besteld. Deze kwamen jammer ge­noeg te laat binnen, waardoor het installeren van Android x86 op de ssd nog niet is uitgevoerd.
 

android live 2

Figuur 2: de virtuele Android x86

DAN MAAR VIRTUEEL
Nu zullen de meeste lezers niet aparte hardware bestellen om een veilige Android­omgeving te krijgen. Een betere optie is een virtuele machine. In de documentatie worden VirtualBox en QEMU beschreven. Beide zijn beschikbaar voor Windows, macOS en Linux­distributies. De laatste heeft een KVM (Kernel Virtual Machine)-­module en dat maakt QEMU supersnel.
Het maken van een virtuele computer is afhankelijk van je software. In VMware moet je de standaard SCSI­harddisk vervangen door een IDE­exemplaar. Aangezien beide virtueel zijn, kost je dat geen cent. In alle drie kun je een gedownloade .iso in de virtuele cd­romspeler plaatsen en hiervanaf opstarten. Met de juiste software ­ voor Windows bijvoorbeeld Win32 Disk Imager ­ kan de .iso ook naar een usb­flashdrive worden geschreven om zo een fysieke computer te starten. In alle gevallen zie je het blauwe deel uit figuur 2. Zoals gezegd is dit een live omgeving en deze wordt automatisch gestart als je niets kiest.
Met een derde optie kunnen we Android permanent op een harddisk installeren. Op een virtuele computer is dat gewoon een bestand op de fysieke computer. Hierdoor kun je rustig experimenteren zonder bang te hoeven zijn dat je een bestaand besturingssysteem overschrijft. Dat is namelijk een risico als je het geheel op een fysieke harddrive wilt installeren. Het programma kan een lege partitie gebruiken, maar ook alles par­ keren in de partitie met een bestaande Windows­ of Linux­omgeving. De keuze is aan jou, maar doe de fysieke installatie alleen als je een goede back-up hebt of een lege harddisk gebruikt.

asnbank app

Figuur 3: ASN Bank-app onder Android x86

BANKIEREN
Nu de PSD2 -  de tweede versie va de Payment Services Directory  - door banken is ingevoerd, moet je als klant door allerlei vreemde hoepels springen als je via een gewone computer inlogt. Bij de ASN Bank raden ze mij aan om hun app te gebruiken. Ten eerste omdat het (ahum…) veiliger zou zijn, maar ook veel simpeler. In figuur 3 zie je deze app op onze virtuele Android­-‘tablet’ in werking. Inderdaad veel simpeler! Na het instellen alleen een vijf­cijferige pincode die je zelf mag kiezen. Niet moeizaam elke keer het tien­cijferige serienummer van de digipas op de website ingeven, vervolgens de pincode op de digipas invoeren, de zes cijfers die de website toont hierop intikken en vervolgens het antwoord opde website ingeven. Geen idee waarom opeens op de website een naam en wachtwoord voor het inloggen niet meer mag volgens de PSD2, terwijl het op een smartphone met alleen een pincode kan. Hoezo veiliger?

TOT SLOT
De ASN Bank­app is slechts een voorbeeld. Stel je je eens voor dat een kwaadwillende door de lakse houding van fabrikanten een lek in je smartphone kan misbruiken om zo uit jouw naam te bankieren? Je mag zelf gaan nadenken of je nog rustig kunt slapen...