Man skulle tro at sikkerhetsprogramvare fra erfarne og anerkjente leverandører ikke inneholder innlysende sikkerhetssvakheter, men stadig vekk oppdages det slike tilfeller.
I går offentliggjorde sikkerhetsforskeren Tavis Ormandy i Googles Project Zero detaljer om en kritisk sårbarhet som skal ha berørt alle de 400 millioner brukerne av Kasperskys Anti-Virus-produkt. Den svekker sikkerheten når brukere besøker for eksempel nettsteder som leveres med HTTPS-protokollen.
Les også: Superpinlig sårbarhet funnet i antivirus-verktøy
Avskjæres
Når en pc med dette produktet laster inn data via en kryptert SSL/TLS-forbindelse, blir denne vanligvis avskåret og dekryptert av Kaspersky-programvaren for at innholdet skal kunne bli inspisert. Deretter krypteres innholdet på nytt og sendes videre til for eksempel brukerens nettleser.
Sikkerhetssertifikatet til den opprinnelige forbindelsen erstattes av et sertifikat som genereres av Kaspersky-programvaren, signert med et sertifikat som programvaren har lagt i systemets liste over klarerte sertifiseringsinstanser. I en nettleser ser det derfor ut som at sertifikatene til ulike nettsteder i de fleste tilfeller er utstedt av «Kaspersky Anti-Virus Personal Root».
I stedet for å generere disse sertifikatene hver gang en bruker ber om en ny forbindelse til det samme nettstedet, mellomlagres sertifikatene og de tilhørende krypteringsnøklene i et binærtre i minnet.
Les også: Derfor er sårbarheter i antivirus ekstra ille
Kollisjoner
Problemet med Kasperskys programvare er at denne mellomlagringen bare bruker de 32 første bitene av en MD5-hash av verdiene serialNumber||issuer som nøkkel til binærtreet hvor sertifikatet og krypteringsnøklene er lagret.
– Dersom en nøkkel finnes fra før, hentes det tidligere genererte sertifikatet og nøkkelen ut av binærtreet og blir brukt til å videresende data til brukeragenten, skriver Ormandy.
– Du behøver ikke være kryptograf for å forstå at en 32-bitsnøkkel ikke er nok til å hindre at «brute-forcing» av en kollisjon kan gjøres på sekunder. Faktisk er det trivielt å produsere en kollisjon med ethvert annet sertifikat.
Innen kryptografi er en kollisjon et tilfelle hvor to ulike dataverdier genererer den samme hash- eller nøkkelverdien.
Les også: Alvorlige sårbarheter fjernet fra populært passordprogram
Eksempel
Ormandy nevner et konkret eksempel på hvordan dette kan utnyttes under en man-in-the-middle-angrep.
- Angriperen ønsker å avskjære mail.google.com-trafikken. 32-bitsnøkkelen til dette sertifikatet er for eksempel 0xdeadbeef.
- Angriperen sender først brukeren det virkelige sertifikatet til mail.google.com, som Kasperskys programvare validerer og deretter genererer sitt eget sertifikat og nøkkel for.
- Neste gang det opprettes en forbindelse, sender angriperen et kolliderende, gyldig sertifikat tilhørende et vilkårlig «commonName» (vertsnavnet som er assosiert med sertifikatet), for eksempel attacker.com. Også verdiene i dette sertifikatet gir den samme 32-bitsnøkkelen, altså 0xdeadbeef.
- Angriperen kan nå omdirigere mail.google.com til attacker.com i DNS. Kaspersky vil begynne å bruke det mellomlagrede sertifikatet, noe som gir angriperen kontroll over mail.google.com.
Slike kollisjoner kan ha skjedd også uten at noen angriper har vært involvert. Ifølge Ormandy har for eksempel news.ycombinator.com og autodiscover.manchesterct.gov samme 32-bits hashverdi for serialNumber/issuer.
Kaspersky fjernet denne sårbarheten den 28. desember i fjor, nesten to måneder etter at selskapet ble varslet. Men på systemer hvor Kaspersky-programvaren ikke er oppdatert, vil man, dersom man først besøker det ene av de to nettstedene og deretter det andre, få en spesiell feilmelding.
Men denne feilmeldingen vil ikke bli vist dersom en angriper tilsynelatende sender datapakker fra det stedet som nettleseren forventer.
Berørte produkter
Kaspersky har i ettertid kommet til digi.no med en oversikt over produktene som er berørt av denne sårbarheten. Dette er:
Kaspersky Small Office Security for Windows
Kaspersky Fraud Prevention for Windows
Kaspersky Anti-Virus 2016 and 2017
Kaspersky Internet Security for Windows 2016 and 2017
Kaspersky Total Security for Windows 2016 and 2017
Safe Kids for Windows 1.1
Leste du denne? «Brotli» er enda en grunn til å levere websidene med HTTPS