Kwetsbaarheid in wachtwoord herstel van iCloud

Vandaag is een kwetsbaarheid in de wachtwoord herstelprocedure van Apple’s iCloud opgelost. Door de kwetsbaarheid kon een aanvaller het wachtwoord van een willekeurige gebruiker wijzigen op basis van het Apple ID en de geboortedatum. Via Google of Social Engineering is deze informatie meestal eenvoudig te achterhalen.

Het lek is op 22 maart aan Apple gemeld, waarna het bedrijf de functie eerst afschermde met een melding. Het bleek echter nog steeds mogelijk te zijn om een wachtwoord te wijzigen door een URL naar de herstelpagina in de browser te openen. Hierop besloot Apple de functie volledig offline te halen.

Het probleem bestond uit een Cross Site Request Forgery (CSRF) kwetsbaarheid, waarmee de beveiligingsvragen voor het wijzigen van het wachtwoord konden worden overgeslagen.

De oorspronkelijke melding bevat een stappenplan (Proof of Concept) voor een exploit van deze kwetsbaarheid. De stappen zijn:

1. Open de link https://iforgot.apple.com/iForgot/iForgot.html en vul het email adres van het slachtoffer in
2. Kies de optie voor wachtwoord herstel met beveiligingsvragen
3. Vul de geboortedatum van het slachtoffer in wanneer hiernaar wordt gevraagd

4. De browser laadt hierna de volgende URL:
https://iforgot.apple.com/iForgot/validateBirthDate.html?showBirthYear=false&authentication=security&findAccount=false&aolParameter=false&borderValue=true
&myAppleIdImageURL=https://appleid.apple.com/cgi-bin/WebObjects/MyAppleId.woalocalang=en_US
&appendingURL=&mode=1&month=01&date=1&year=1989&urlhit=false

5. Om de beveiligingsvragen over te slaan, vervang je de simpelweg waarde van parameter authentication door null en stuur je de URL (opnieuw) naar de iCloud server:
https://iforgot.apple.com/iForgot/validateBirthDate.html?showBirthYear=false&authentication= null&findAccount=false&aolParameter=false&borderValue=true&myAppleIdImageURL=https://appleid.apple.com/cgi-bin/WebObjects/MyAppleId.woa?localang=en_US&appendingURL=&mode=1&month=01&date=1&year=1989&urlhit=false

6. De parameter authentication wordt door de iCloud software niet goed gevalideerd. Deze parameter geeft aan op welke wijze gebruikers worden gecontroleerd. De waarde is “security” voor de optie om het wachtwoord te wijzigen na het beantwoorden van beveiligingsvragen, en “email” voor wachtwoord herstel via een email. Omdat de waarde “null” niet wordt herkend, voert iCloud helemaal geen controle uit en gaat de website direct door naar de stap voor het invoeren van een nieuw wachtwoord.

Het beveiligingslek is inmiddels door Apple opgelost.

Aanmelden voor onze nieuwsbrief