Zo’n zeshonderd miljoen Android-smartphones zijn geraakt door een makkelijke manier om ze op afstand ongemerkt te hacken. De door Samsung ingebouwde keyboard-app SwiftKey geeft een geniepig gat. Een reconstructie.
Samsung levert SwiftKey sinds 2013 ingebouwd mee op veel van zijn Android-toestellen. Die toevoeging blijkt kwaadwillenden de mogelijkheid te geven Android-smartphones te hacken, zónder dat gebruikers ook maar iets hoeven aan te klikken. Timing en toeval zijn wel cruciaal: de initiële kwetsbaarheid is er alleen op het random moment dat het ingebouwde soft-keyboard een update aanvraagt, of wanneer het toestel wordt gereboot.
Veelzijdige vulnerability
Na tijdig inhaken op dit event middels een man-in-the-middle (MitM)-aanval kunnen kwaadwillenden hierdoor eigen programmacode uitvoeren op de kwetsbare apparaten. Deze zijn hierdoor af te luisteren, te tracken, te monitoren en geheel over te nemen. De sensoren van gehackte devices zijn toegankelijk, maar ook kunnen er apps naar keuze worden geïnstalleerd. Dit grote gat is vorige week onthuld door securitybedrijf NowSecure, dat de kwestie eind vorig jaar al heeft aangemeld bij toestelfabrikant Samsung en bij Android-maker Google.
De Zuid-Koreaanse fabrikant van Android-toestellen heeft eind maart dit jaar patches voor Android 4.2 en hoger doorgegeven aan telecombedrijven. Die fixes voor dit gapende gat zijn echter niet door alle mobiele operators doorgegeven aan alle gebruikers van kwetsbare Samsung-smartphones. NowSecure heeft afgelopen week nog toestellen getest en kwetsbaar bevonden. Bovendien valt het ingebouwde SwiftKey volgens de securityresearchers niet te deïnstalleren en neemt uitschakelen van het keyboard de kwetsbaarheid niet weg.
Advies: vermijd onvertrouwde Wi-Fi
De ontdekkers bij NowSecure adviseren gebruikers om niet-beveiligde Wi-Fi-netwerken te vermijden, om een ander toestel te gebruiken en om hun telecomaanbieders te vragen naar patches. De kwetsbare toestellen zijn Samsungs veelverkochte Galaxy S4, de afgeleide Galaxy S4 mini, paradepaardje Galaxy S5 en het allernieuwste vlaggenschiptoestel Galaxy S6, inclusief de variant S6 Edge.
Enkele dagen na de publiekelijke onthulling van de kwetsbaarheid zijn SwiftKey en Samsung in actie gekomen. Beide hebben blogposts over de kwestie gepubliceerd, waarbij die van SwiftKey plots offline is gehaald en later in gewijzigde vorm opnieuw is gepubliceerd. SwiftKey geeft in reacties onder zijn blogpost het advies om voorzichtig te zijn met onvertrouwde Wi-Fi-netwerken. Het raadt echter niet aan om tijdelijk andere devices te gebruiken.
Samsung belooft binnen enkele dagen een patch uit te brengen die het actief en buiten de telco’s om zal pushen naar de getroffen toestellen. Dat over-the-air (OTA) pushen gebeurt via Samsungs enterprise securitysoftware Knox, die meekomt op alle vlaggenschip-modellen sinds de Galaxy S4, meldt de leverancier. Voor apparaten die Knox niet standaard aan boord hebben, werkt Samsung nog aan een versnelde firmware-update die na testing en goedkeuring wordt vrijgegeven.
‘Schuld van Samsung’
SwiftKey benadrukt dat de kwetsbaarheid niet van toepassing is op zijn reguliere apps in Google Play (voor Android) en de Apple App Store (voor iOS). NowSecure legt uit dat de fout namelijk schuilt in de implementatie door Samsung, wat SwiftKey bevestigt in de oorspronkelijke blogpost die later is gekuist. ‘Wij leveren Samsung de kerntechnologie die de woordvoorspellingen in hun keyboard aandrijft. Het lijkt erop dat de manier waarop deze technologie is geïntegreerd op Samsung-apparaten de securitykwetsbaarheid heeft geïntroduceerd’, aldus de initiële blogpost.
SwiftKey stelt dat het alles doet om zijn partner Samsung bij te staan in het oplossen van deze belangrijke securitykwestie. De aangehaalde verklaring van Samsung is door dat bedrijf zelf ook aan verschillende media verstrekt. Daarin wordt echter geen gewag gemaakt van welke partij de verantwoordelijkheid draagt voor het introduceren van de kwetsbaarheid.
Twee fundamentele fouten
Het standaard door Samsung ingebakken SwiftKey brengt twee fundamentele fouten met zich mee, meldt NowSecure in een technische blogpost. Ten eerste is het soft-keyboard door de toestelmaker digitaal ondertekend met zijn eigen sleutel en is het voorgeïnstalleerd met diepgaande systeemrechten. Hierdoor draait het op het niveau van systeemgebruiker (uid 1000), wat nog net niet root is op Android, en heeft het schrijftoegang tot grote delen van het hele bestandssysteem.
Ten tweede gebruikt SwiftKey een automatisch en geheel onbeveiligd updatemechanisme. Daarmee worden, via plaintext, taaluitbreidingen en aanvullende talen voor het keyboard gedownload. Deze updates zijn verpakt in een gewoon zip-bestand wat wel wordt gevalideerd maar op een onveilige manier. De inhoud en SHA1 hash van het gecomprimeerde bestand wordt vóór de download doorgegeven middels een manifest-bestand dat gewoon leesbare tekst is.
Het bijwerken van de ingebouwde keyboard-app valt door deze reeks misstappen ‘af te luisteren’, te analyseren en vervolgens te misbruiken. Dankzij Samsungs fout met systeemrechten komt dat misbruik gelijk neer op fundamenteel gevaar voor het hele toestel. Gebruikersactie is hiervoor niet nodig. Een aanvaller hoeft zijn slachtoffers dus niet een sluw opgestelde phishingmail met malware-attachment of een malafide link voor te schotelen.
MitM en specifieke timing
Wel moet een aanvaller die hierlangs Android-toestellen wil hacken het internetverkeer van zijn slachtoffers zien te onderscheppen. Dit gebeurt via een MitM-aanval, waarbij de aanvaller zich een positie verschaft in de verkeersstromen tussen gebruikers en het internet. Zo’n MitM-aanval is makkelijk uit te voeren op lokale Wi-Fi-netwerken, zeker als die onbeveiligd zijn. Vervolgens kan een aanvaller eigen ‘updates’ sturen naar SwiftKey en daarlangs binnendringen op het Android-systeem.
SwiftKey sust in de offline gehaalde mededeling nog dat de Samsung-kwetsbaarheid niet makkelijk valt te misbruiken. Een gebruiker moet verbonden zijn met een gecompromitteerd netwerk (zoals een spoofed publiek Wi-Fi-netwerk), waar een hacker met de juiste tools dan op de loer ligt om toegang te verkrijgen tot een kwetsbaar toestel, legt de app-maker uit. ‘Die toegang is dan alleen mogelijk als het keyboard van de gebruiker op dat specifieke moment een taalupdate uitvoert, terwijl het is verbonden met het gecompromitteerde netwerk.’ Misbruik via dns-kaping of packet injection is echter ook mogelijk, merkt techblog Ars Technica op.
NowSecure stelt in een vervolgpost over detectie en preventie van deze kwetsbaarheid dat het misbruik wel degelijk makkelijk valt te plegen. Daarbij merkt het securitybedrijf op dat het soft-keyboard elke acht uur een updatecheck lijkt uit te voeren en dat patches niet breed zijn uitgerold. ‘We hebben nog geen gepatched toestel gezien.’
De kwetsbaarheid in Samsungs Android-smartphones is eerder deze maand gedemonstreerd op de Black Hat-securityconferentie en eerder vastgelegd in deze video: