Drown: Ny sårbarhed rammer hobevis af SSL-servere

Adskillige SSL-servere er sårbare overfor et sikkerhedshul, der udspringer af den amerikansk begrænsning på kryptering i 90'erne.

DROWN (Decrypting RSA using Obsolete and Weakened eNcryption) er navnet på en nyopdaget angrebsteknik, der underminerer krypteringen på adskillige SSL-servere verden over. Forskerne, der har opdaget angrebsteknikken, har lavet en detaljeret rapport om metoden(PDF) og en hjemmeside, der beskriver angrebet på et mere overordnet niveau.

Forskerne har scannet sig frem til, at ca. 33 pct. af alle HTTPS-servere skulle være sårbare overfor DROWN 1. marts, da de fremlagde sårbarheden.

Angrebet lader sig gøre i kraft af den begrænsning på eksport af stærk kryptering, som USA havde i 90'erne. Det var også denne begrænsning, der sidste år muliggjorde en anden sårbarhed, LogJam, der dukkede op i maj sidste år.

Drown udnytter, at mange servere stadig understøtter SSLv2-protokollen. Og selvom moderne browsere ikke vil røre en SSLv2-forbindelse med en ildtang, men i stedet anvender den mere sikre TLS-protokol, så er det nok at serveren understøtter SSLv2 for at udføre Drown.

Ren gift

Angrebet forudsætter, at en server anvender den samme private RSA-nøgle til både SSLv2 og TLS. Og det er ofte tilfældet, bemærker professor ved John Hopkins University Matthew Green i et længere og pædagogiske indlæg om Drown.

»Hvis du kører en webserver konfigureret til at bruge SSLv2, og særligt en der kører OpenSSL (selv med SSLv2 ciphers slået fra), så kan du være sårbar over for et angreb, der dekrypterer mange lagrede TLS-forbindelser lavet til den box. Det mest bekymrende er, at angrebet ikke kræver, at klienten nogensinde selv opretter en SSLv2-forbindelse, og det er ikke et downgrade-angreb. (et angreb, hvor klient og server narres til at bruge en svagere krypteringsstandard, end de egentlig understøtter, red.),« skriver professoren i en opsummering af problemstillingen og fortsætter:

Drown-angrebet er både muligt mod en server, der understøtter SSLv2, og mod en server, der anvender samme offentlige nøgle, som en server, der understøtter SSLv2. (Kilde: drownattack.com)

»I stedet hviler det på det faktum, at SSLv2 - og særligt de legacy ciphersuites, den indbefatter - er den rene gift, og alene det at have disse aktive på serveren er nok til at ugyldiggøre sikkerheden for alle forbindelser, der bliver lavet til enheden.«

Modsat TLS så afslører en SSLv2-server hvorvidt en ciffertekst sendt i forbindelse med et handshake er gyldig eller ej. Og ved at sende modificerede udgaver af den ciffertekst klienten sender, kan en angriber gætte sig til sessionsnøglen via SSLv2-forbindelsen.

Flere varianter

Drown findes i flere udgaver. Den generelle udgave, hvor en server understøtter SSLv2. Dette angreb er muliggjort af 90'ernes krypto-begrænsning på 40-bit, og gør det muligt at brute-force sig til sessionsnøglen via SSLv2, bemærker forskerne i skrivet på hjemmesiden.

Et typisk scenarie i den forbindelse vil kræve, at en angriber observerer 1.000 TLS-handshakes for herefter at initiere 40.000 SSLv2-forbindelser. Og herefter kræves en del computerkraft for at afkode indholdet. Forskerne anslår dog, at det kan gøres for omkring 440 dollars via Amazons EC2.

Et anden udgave af Drown udspringer af en sårbarhed i OpenSSL, som flere servere har været berørt af. Her kan angriberen nøjes med 17.000 SSLv2-forbindelser, og det er muligt at udføre dette angreb fra en almindelig PC på mindre end et minut. Dette angreb er hurtigt nok til, at udgøre et egentligt man-in-the-middle-angreb, bemærker forskerne. Det vil sige, at angriberen kan give sig ud for at være den legitime server overfor offeret i real tid.

Drown kan være problem uden SSLv2

Forskerne anbefaler en række tiltag, så det er muligt at undgå Drown. Og her er det ikke nok, at en enkelt server ikke understøtter SSLv2.

For selvom en server ikke understøtter SSLv2, så kan Drown stadig lade sig gøre mod serveren, hvis andre servere - eksempelvis en mail-server - understøtter SSlv2 og anvender samme offentlige nøgle som en ikke-SSLv2-server. Så det er altså ikke nok, at SSLv2 er slået fra på en server, for at undgå Drown. Serverens offentlige nøgle må ikke anvendes til SSLv2-kryptering på andre servere.

Udover at fjerne SSLv2-understøttelse, så det en god idé at opdatere OpenSSL, hvis en server har en sårbar udgave. Forskerne råder i den forbindelse til at opdatere til OpenSSL 1.0.2g. OpenSSL 1.0.1-brugere bør opdatere til 1.0.1s.

På hjemmesiden om angrebsteknikken fortæller forskerne desuden, at serveren private nøgle ikke bliver afsløret af angrebet, og at det derfor ikke skulle være nødvendigt at skifte denne.

Forskerne er: Nimrod Aviram, Sebastian Schinzel, Juraj Somorovsky, Nadia Heninger, Maik Dankel, Jens Steube, Luke Valenta, David Adrian, J. Alex Halderman, Viktor Dukhovni, Emilia Käsper, Shaanan Cohney, Susanne Engels, Christof Paar og Yuval Shavitt

De har lavet en hjemmeside, hvor det er muligt at scanne domæner og servere for de forskellige udgaver af Drown-sårbarheden.

Følg forløbet

Kommentarer (2)

Esben Madsen

Jeg må nok tilstå at jeg er lidt skyldig der, med både mailserver og webserver (på samme host) der bruger den samme... Det burde jeg nok gøre noget ved... til gengæld har mine tidligere indsatser for at sikre begge tilsyneladende båret frugt, og der har umiddelbart ikke været noget tilgængeligt hul i nogen af dem i denne omgang...

Log ind eller opret en konto for at skrive kommentarer

JobfinderJob i it-branchen