Een Nederlandse beveiligingsonderzoeker heeft een kwetsbaarheid ontdekt in de feature om met TouchID op Apple-sites en iCloud in te loggen. Zo kon hij accounts overnemen. Voor het uitbuiten was ook een kwetsbaarheid op Apple-websites nodig. Het lek is inmiddels gedicht.
Het lek zat in pagina's waar gebruikers met hun Apple ID konden inloggen, en dan specifiek in domeinen die eindigen op apple.com, icloud.com en icloud.com.cn. Het inloggen op een iCloud-account gebeurt op basis van OAuth2, dat met een redirect-uri verifieert of een client-id rechtmatig kan inloggen op een Apple-pagina. Beveiligingsonderzoeker Thijs Alkemade van Computest ontdekte echter dat die verificatie op een andere manier loopt als een gebruiker inlogt met TouchID. Door een kwetsbaarheid daarin zou het mogelijk zijn voor derden om in te loggen op accounts van gebruikers.
Bij het inloggen met TouchID wordt er een proces genaamd AKAppSSOExtension aangeroepen, dat communiceert met AuthKit-daemon of akd. Dit proces verifieert het client-id niet via de redirect-uri. In plaats daarvan wordt een whitelist gebruikt die alle apple.com-, icloud.com- en icloud.com.cn-domeinen automatisch doorlaat. Volgens Alkemade zou het in theorie mogelijk zijn om die domeinen te misbruiken om een client-id te laten verifiëren zonder authenticatie.
Daarvoor is het echter wel nodig om JavaScript op het domein of een subdomein uit te voeren. Dat maakt een aanval in de praktijk lastig. Een aanvaller moet bijvoorbeeld een subdomein overnemen, of er een cross-site-scripting-bug op vinden. Ook een subdomein dat via een http-verbinding kan worden bezocht zou kwetsbaar zijn.
Alkemade beschrijft verschillende methodes om het lek in de praktijk uit te buiten. "De aanval kon worden uitgevoerd vanaf de pagina die automatisch geopend wordt wanneer je op een wifi-netwerk zit waar je eerst voorwaarden moet accepteren, zoals vaak voor de netwerken in een hotel of op een vliegveld", vertelt hij. "Dat opent automatisch captive.apple.com, waardoor gebruikers door alleen een TouchID-prompt van die pagina te accepteren een aanvaller toegang geven tot hun account."
Alkemade meldde het lek eerder dit jaar aan Apple. Het bedrijf heeft de kwetsbaarheid inmiddels verholpen. De verificatieserver gebruikt nu geen whitelist meer, maar controleert of het client-id geauthenticeerd kan worden.