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.
Problem med at finde filen
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.
Derfor åbnes filen
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.
Allerede modtaget rapporter
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
Risiko har længe været kendt
Det har længe været kendt, at der lå en risiko i Windows' behandling af DLL'er.
Derfor anbefaler Microsoft, at udviklere altid angiver 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.
DK-CERT (www.cert.dk) er det danske Computer Emergency Response Team.
I samarbejde med tilsvarende CERT'er over hele verden indsamler DK-CERT information om internetsikkerhed. DK-CERT udsender advarsler og tager imod anmeldelser af sikkerhedsrelaterede hændelser på internettet. DK-CERT er en tjeneste fra UNI-C, en styrelse under Undervisningsministeriet.
Shehzad Ahmad opdaterer den sidste fredag i hver måned Computerworlds læsere med de seneste tendenser inden for it-sikkerhed.