DLL-hul er svært at lukke

Mindst 200 Windows-applikationer er ramt af en sårbarhed, som ikke kan løses med en opdatering til Windows, skriver Shehzad Ahmad i denne klumme fra Computerworld.

Chefkonsulent Shehzad Ahmad, UNI•C, der leder det danske Computer Emergency Response Team (DK•CERT), skriver hver måned på Computerworld Online om aktuelle it-sikkerhedsspørgsmål. Kommentarerne bringes her, efterhånden som de udkommer.

Hvor kigger Windows efter DLL-filer? Dette uskyldige spørgsmål er kernen i en nyopdaget sårbarhed, der kan berøre hundredvis af Windows-applikationer.

Tilbage i marts måned lukkede Apple et sikkerhedshul i iTunes til Windows. Den 18. august udsendte det slovenske sikkerhedsfirma Acros Security en omtale af sårbarheden, som vakte sikkerhedsforsker H.D. Moores opmærksomhed.

Han fandt ud af, at 40 applikationer til Windows har en lignende sårbarhed.

Derefter oplyste Acros, at de har fundet over 200 applikationer med sårbarheden – og at der sikkert er mange flere.

Sårbarheden ligger som sagt i Windows brug af DLL'er (Dynamic Link Library). Når en applikation har brug for en funktion, der ligger i et eksternt bibliotek, kalder den det pågældende bibliotek via dets filnavn.

Hvis applikationen oplyser den fulde sti til DLL-filen, er der ikke noget problem.

Men hvis applikationen kun kalder fx "filnavn.dll," skal Windows selv finde ud af, hvor filen ligger. Til det formål har Windows en fastlagt rækkefølge for, hvilke mapper den kigger i.

Som standard indgår den aktuelle arbejdsmappe (Current Working Directory, CWD) i listen.

Her ligger sårbarheden.

Over WebDAV eller USB

En angriber kan udarbejde en DLL-fil, der udfører skadelige kommandoer. Den placerer han på en server på internettet, som kan nås via protokollen WebDAV. I samme mappe lægger han et uskyldigt dokument, der har en filtype, som skal åbnes af en applikation, der har sårbarheden.

Derefter skal han lokke sit offer til at åbne filen via den indbyggede Web Client-tjeneste i Windows. Når offeret klikker på filen, starter den sårbare applikation. Den kalder en DLL uden at angive den fulde sti til filen. Derfor åbnes den DLL-fil af samme navn, som ligger på angriberens server.

H.D. Moore har for nylig tilføjet sårbarheden til værktøjet Metasploit, så det vil være forholdsvis let at lave angrebsprogrammer, der udnytter den.

I praksis kræver det dog stadig, at angriberen kan narre sit offer til at åbne en fil via WebDAV. Så sårbarheden er ikke så let at anvende som en, der bare kræver, at man kan sende datapakker til en åben port på en Windows-computer.

Ikke desto mindre har SANS Internet Storm Center allerede modtaget rapporter om de første angreb, der udnytter sårbarheden. De første angreb er rettet mod programmerne uTorrent, Microsoft Office og Windows Mail.

Sårbarheden kan i øvrigt også udnyttes via USB-nøgler, hvor den farlige DLL-fil lægges sammen med et dokument, offeret åbner.

Endelig kan sårbarheden udnyttes over SMB/CIFS (dvs. Windows' fildeling). Generelt set kan den udnyttes alle de steder, hvor en dokumentfil åbnes af den sårbare applikation, direkte hvor den ligger uden først at blive kopieret til en lokal midlertidig folder. På den måde bliver CWD sat til en remote lokation i stedet for en midlertidig folder lokalt på maskinen.

Fordi sårbarheden ligger i de enkelte applikationer snarere end i Windows, er den svær at fjerne. Det bliver op til de enkelte udviklere at sikre deres applikationer.

Værktøjer til hjælp
Det har længe været kendt, at der lå en risiko i Windows' behandling af DLL'er. Derfor anbefaler Microsoft, at udviklere altid
ngiver den fulde sti til DLL-filer.
Hvis man som bruger vil beskytte sig, kan man installere en opdatering fra Microsoft. Den indfører en ny indstilling i registreringsdatabasen ved navn CWDIllegalInDllSearch. Indstillingen kan forhindre, at Windows kigger i den aktuelle arbejdsmappe, når den søger efter DLL-filer. Der er dog en risiko for, at nogle applikationer så vil holde op med at virke.

Der findes i forvejen en indstilling, SafeDllSearchMode, der som standard er slået til i Windows. Den placerer CWD langt nede i hierarkiet af steder, hvor Windows søger efter DLL'er. Dermed er den også med til at beskytte mod udnyttelse af metoden.

H.D. Moore har udviklet et værktøj, DLLHijackAuditKit, som man kan bruge til at undersøge, om applikationer kalder DLL-filer på den risikable måde.

Råd til udviklere
Jeg råder alle, der udvikler applikationer til Windows, til at tjekke, at deres applikationer kalder DLL-filer på den sikre måde.

It-ansvarlige kan afprøve den nye indstilling i registreringsdatabasen, hvis de vil sikre deres systemer.

 

Oprindelig offentliggjort på Computerworld Online fredag den 27. august 2010

LINKS

Sikkerhedsadvarsel fra Microsoft
Acros Securitys beskrivelse af sårbarheden i iTunes
Artikel fra Computerworld US
H.D. Moores værktøj DLLHijackAuditKit til tjek af applikationer
Microsofts CWDIllegalInDllSearch-værktøj
Microsofts beskrivelse af SafeDllSearchMode
SANS Internet Storm Centers omtale af angreb
Denne klumme på Computerworld Online

Keywords: