Kaspersky krijgt kwetsbare API niet gepatcht

Een kwetsbaarheid in software van Kaspersky stelt een interne API bloot voor misbruik. Verschillende pogingen om het lek te dichten zijn tot nog toe gefaald.

Dat schrijft ZDNet op basis van onderzoek van software-ontwikkelaar Wladimir Palant. Die boog zich over de Web Protection-functies in Kaspersky-software, waaronder Internet Security 2019. Web Protection scant zoekresultaten voor malafide links, blokkeert advertenties en voorkomt tracking van surfgedrag.

Palant stelde al in december vorig jaar vast dat Web Protection kwetsbaarheden bevat, die door elke website kunnen worden misbruikt. Om goed te functioneren, communiceert Web Protection op een beveiligde manier met de Kaspersky-applicatie via een geheime sleutel. Die sleutel is in principe onbekend voor websites, maar kan door het lek (CVE-2019-15685) toch vrij eenvoudig worden achterhaald.

Dat laat websites in theorie toe om zelf een beveiligde verbinding met de Kaspersky-applicatie op te zetten en commando’s te versturen alsof ze van Web Protection afkomstig zijn. “Websites kunnen deze kwetsbaarheid gebruiken om bijvoorbeeld ongemerkt adblocking en trackingpreventie uit te schakelen”, vertelt Palant aan ZDNet. “Ze zouden ook een paar andere dingen kunnen doen waarvan de impact niet zo zichtbaar is.”

Poging 1

Palant maakte zijn ontdekking kenbaar aan Kaspersky, dat in juli van dit jaar een patch uitrolde om toegang tot sommige functies voor websites in zijn producten te blokkeren. Dat bleek evenwel maar een halve oplossing: bepaalde commando’s, zoals het whitelisten van websites in adblockers, konden wel nog worden doorgegeven.

Bovendien doken met deze patch twee nieuw problemen op. Websites kregen plots toegang tot gebruikersdata, inclusief unieke identificatiegegevens van de Kaspersky-installatie op een pc (CVE-2019-15687). Een tweede nieuwe kwetsbaarheid kon daarnaast worden misbruikt om het antivirusproces te laten crashen (CVE-2019-15686).

Poging 2 en 3

Kaspersky ondernam daarna een nieuwe poging, die het lekken van gebruikersdata alvast verhielp en ook de crashproblemen grotendeels, maar niet volledig, oploste. Websites konden niet langer een crash veroorzaken, maar browserextensies en lokale applicaties mogelijk wel.

Deze week, op 28 november, werd ten slotte een derde en voorlopig laatste patch beschikbaar gemaakt. Palant is evenwel niet overtuigd dat de problemen daarmee volledig van de baan zullen zijn.

Probleem

Het probleem is dat Kaspersky zijn scripts rechtstreeks in een webpagina injecteert, wanneer geen browserextensie wordt gebruikt. Dat leidde tot de eerste kwetsbaarheid waarmee websites de geheime sleutel konden achterhalen en blijft volgens Palant inherent een onveilige methode.

“Misschien is Kaspersky zo gehecht aan het rechtstreeks injecteren van scripts in webpagina’s omdat het als een onderscheidende functie van zijn product kan worden gezien. Het werkt zelfs wanneer de gebruiker afwijst om de extensie te installeren. Maar die functie is ook een securitygevaar en blijkt niet volledig te kunnen worden hersteld”, besluit de ontwikkelaar.