3 min Security

Duizenden iOS- en macOS apps tien jaar lang kwetsbaar voor hackaanvallen

Duizenden iOS- en macOS apps tien jaar lang kwetsbaar voor hackaanvallen

Duizenden iOS- en macOS apps zijn tien jaar kwetsbaar geweest voor hackaanvallen. Hoewel er geen aanvallen zijn gesignaleerd, zouden kwetsbaarheden in een ‘trunk server’, bedoeld voor het beheer van de CocoaPods-repository, supply-chainaanvallen mogelijk hebben gemaakt.

Eind vorig jaar ontdekten onderzoekers van securityspecialist EVA Information Security drie kwetsbaarheden in een zogenoemde ‘trunk server’van de CocoaPods repository. Deze is bedoeld voor open-source Swift- en Objective-C-projecten voor iOS- en macOS apps. Door deze kwetsbaarheden konden hackers kwaadaardige code toevoegen aan apps.

Via CocoaPods kunnen developers veranderingen aan individuele code packages, zogeheten pods, doorvoeren. Deze veranderingen worden vervolgens automatisch via updates aan apps toegevoegd die van deze code afhankelijk zijn. Hiervoor is geen actie nodig van de eindgebruikers van deze apps. CocoaPods voorziet in zo’n 100.000 libraries, waar meer dan 3 miljoen apps gebruik van maken.

Door het toevoegen van hun kwaadaardige code kunnen hackers hierdoor mogelijk toegang krijgen tot vertrouwelijke gegevens als creditcardinformatie, medische informatie en andere privézaken. Dit kan dan weer leiden tot ransomware-aanvallen, fraude, afpersing of bedrijfsspionage. CocoaPods voorziet in zo’n 100.000 libraries, waar meer dan 3 miljoen apps gebruik van maken.

Drie kwetsbaarheden

De oorzaak van de drie gevonden kwetsbaarheden ligt volgens de securityspecialisten in een onveilig e-mailmechanisme voor verificatie. Dit mechanisme is in gebruik voor het authenticeren van individuele ‘pods’ en van ontwikkelaars. Hierbij geeft de ontwikkelaar zijn e-mailadres op voor zijn pod, waarna de bewuste trunk server antwoordt met een link naar het adres. Wanneer op de link wordt geklikt, krijgt de betreffende ontwikkelaar toegang tot de pod.

De eerste gevonden kwetsbaarheid, CVE-2024-38367, maakt het mogelijk de verstuurde link zo te manipuleren dat deze naar een server verwijst die onder controle staat van hackers. Dit via een zogenoemde ‘spoofed XFH’ of HTTP header voor het identificeren van de target host.

De kwetsbaarheid zit specifiek in de session_controller class van de broncode van de trunk server source code die de validatie-URL afhandelt.

De tweede gevonden kwetsbaarheid, CVE-2024-38368, stelt hackers in staat de controle over pods over te nemen die ontwikkelaars niet meer gebruiken, maar nog wel in gebruik zijn door apps. Via een programming interface kunnen ontwikkelaars zelfs nog pods claimen die tien jaar na de eerste implementatie actief zijn gebleven. Wanneer hackers deze interface vinden en toegang tot de ‘verweesde’ pods krijgen, kunnen zij zonder autorisatie deze pods overnemen. Een migratie in 2014 liet duizenden van dergelijke pods achter.

De derde en laatste aangetroffen kwetsbaarheid, CVE-2024-38366, stelt hackers in staat willekeurige (kwaadaardige) code op de trunk server te draaien. Dit onder meer door een benodigd ‘MX record’ aan te passen met kwaadaardige code.

Session keys verwijderd

De CocoaPods-kwetsbaarheden zijn tien jaar lang onontdekt gebleven en pas in oktober 2023 aan het licht gekomen. Op dat moment zijn ze ook van een patch voorzien. De ontwikkelaars hebben naar eigen zeggen nog geen aanvallen gesignaleerd, maar ze geven hierover geen garanties af en bevestigden dat de scenario’s van EVA Information Security daadwerkelijk kunnen worden uitgevoerd.

Na het bekend worden van de kwetsbaarheden heeft het CocoaPods-team alle session keys verwijderd, omdat die in het slechtste geval kunnen zijn gestolen. Ook zijn nieuwe processen doorgevoerd voor het herstellen van verweesde pods.

De onderzoekers van EVA Information Security geven daarnaast nog een aantal tips voor ontwikkelaars over hoe zij de verschillende kwetsbaarheden kunnen aanpakken. Meer over deze methodes lees je hier.

Lees ook: Apple geeft iOS-updates voor twee misbruikte zeroday-kwetsbaarheden