Google introduceert met Chrome 69 niet alleen een volledig nieuw design voor de browser, maar trapt ook een bug plat die het mogelijk maakt om wifi-wachtwoorden te stelen.
Het probleem is dat oudere versies van Chrome gebruikersnamen en wachtwoorden automatisch invullen in aanmeldingsformulieren die via HTTP worden geladen. Dat kan worden misbruikt om de inloggegevens van wifi-netwerken te stelen, zo bewijst Elliot Thompson, beveiligingsonderzoeker bij het Britse SureCloud.
De techniek die Thompson daarvoor heeft ontwikkeld, bestaat uit verschillende stappen en is behoorlijk complex. Thompson geeft toe dat aan verschillende voorwaarden moet worden voldaan om een succesvolle aanval op te zetten, maar wijst er ook op dat de meeste voorwaarden niet zo moeilijk te bereiken zijn.
De aanval werkt met Chrome op Windows en vereist in de eerste plaats dat de aanvaller dicht genoeg in de buurt is van het wifi-netwerk om deauthentication requests naar de router van het slachtoffer te sturen, zodat die de verbinding verliest. Vervolgens wordt het slachtoffer misleid om met een door de aanvaller opgezet netwerk te verbinden.
Daarmee zijn we meteen bij de eerste voorwaarde. Het slachtoffer moet in het verleden met een open wifi-netwerk verbinding hebben gemaakt en aangevinkt dat automatisch opnieuw verbinden is toegestaan, zodat een Karma-aanval mogelijk is.
HTTP
Vervolgens wacht de aanvaller af tot het slachtoffer een HTTP-pagina probeert te raadplegen. Hoewel al enkele jaren een verschuiving naar HTTPS aan de gang is, wordt nog altijd iets minder dan de helft van de 1 miljoen grootste websites volgens Alexa via HTTP geserveerd. Ook deze voorwaarde is in principe dus niet zo moeilijk te realiseren, maar eerder een kwestie van tijd.
Omdat HTTP-verkeer eenvoudig kan worden gemanipuleerd, vervangt de aanvaller de bedoelde HTTP-pagina door wat schijnbaar een portaalpagina van de router is. Die pagina bevat verborgen invulvelden om in te loggen in het configuratiepaneel van de router. De aanvaller kan de url van deze pagina exact laten overeenkomen met de url van de router in kwestie, waardoor Chrome getriggerd wordt om gebruikersnaam en wachtwoord automatisch in de verborgen velden in te vullen. Voorwaarde drie: het slachtoffer moet de inloggegevens van het configuratiepaneel in Chrome bewaren.
Op dit moment wordt de Karma-aanval stopgezet en keert het slachtoffer terug naar zijn eigen netwerk. Omdat de url van het configuratiepaneel nog altijd open staat, verwijst die nu naar de legitieme inlogpagina, met de inloggegevens ingeladen in JavaScript. De aanvaller kan nu vanop afstand inloggen en de wifi-sleutel stelen of andere aanpassingen in de router uitvoeren.
Responsible disclosure
Thompson heeft zijn ontdekking in maart van dit jaar gerapporteerd aan Google, Microsoft en Asus. Google ondernam ondertussen actie door Chrome niet langer toe te staan om wachtwoorden automatisch in te vullen op HTTP-pagina’s.
Microsoft zag op dit moment geen reden om onmiddellijk actie te ondernemen, bijvoorbeeld door een aparte browser te gebruiken voor het laden van routerportaalpagina’s. Asus, waarvan Thompson een router gebruikte voor zijn proof-of-concept, heeft na maanden discussie nog steeds geen definitief antwoord gegeven op de ontdekking.
Naast Chrome is ook Opera kwetsbaar voor de aanval omdat het eveneens op Chromium is gebaseerd. Opera heeft doorgaans een maand langer tijd nodig dan Google om aanpassingen en patches aan de codebase door te voeren in zijn browser. Firefox, Edge (IE) en Safari zijn niet kwetsbaar voor deze specifieke aanval.