Hva er et Dynamic Link Library?
Et dynamisk koblingsbibliotek er et system som brukes av Microsoft for å la flere applikasjoner få tilgang til den samme delen av koden i Windows® på samme tid. Dette er en av nøklene til multitasking som fungerer effektivt. I 2010 oppdaget sikkerhetsforskere at smutthull i måten det dynamiske linkbiblioteksystemet fungerte kunne utnyttes av hackere. Dette førte til et dilemma over hvordan du fikser det uten å påvirke bruken av applikasjoner.
For å forstå hvordan et dynamisk koblingsbibliotek fungerer, er det viktig å forstå forskjellen mellom Windows® og programvare. Windows® er et operativsystem som i stor grad eksisterer for å koordinere måten individuelle applikasjoner, også kjent som programmer, får tilgang til datamaskinens prosesseringsevner. Windows® i seg selv er til syvende og sist et sett med datakoder som effektivt fungerer som regelbok eller guide for hvordan applikasjoner interagerer med hverandre og maskinvaren.
Det dynamiske koblingsbiblioteket er systemet der applikasjoner kan få tilgang til og kjøre individuelle deler av Windows®-koden. Et eksempel er delen av Windows® som er ansvarlig for utskrift av dokumenter. De fleste applikasjoner trenger tilgang til denne funksjonen på et tidspunkt, men hvis hver applikasjon lastet inn den relevante koden i datamaskinens minne så snart applikasjonen begynte å kjøre, ville det være en ineffektiv ressursbruk og kan forårsake konflikter.
For å løse dette, lagres Windows®-koden for en bestemt funksjon, i dette tilfellet utskrift, som et lite program kjent som et dynamisk koblingsbibliotek eller DLL-fil. Hvis en bruker kjører et program som tekstbehandler, åpnes ikke denne filen automatisk. I stedet åpnes og aktiverer tekstbehandleren filen bare når den er nødvendig, i dette tilfellet når brukeren ønsker å skrive ut et dokument.
Historisk nok skrev mange applikasjonsutviklere ganske enkelt kode som sa hva navnet på det relevante dynamiske linkbiblioteket ble kalt, i stedet for å spesifisere nøyaktig hvor det skulle være plassert på datamaskinen. For å komme rundt dette har Windows® et settesystem for å finne manglende DLL-filer ved å søke i en angitt liste over steder i en definert rekkefølge. Selv om dette teoretisk kunne utnyttes hvis en ondsinnet fil som er forkledd som en DLL-fil ble plassert på rett sted og dermed ble funnet og åpnet før den legitime filen, ble dette ikke ansett som en stor sikkerhetsrisiko da hackere ville trenge fysisk tilgang til en maskin for å få den ondsinnede filen på plass.
I 2010 ble det oppdaget at hackere teoretisk sett kunne få slike filer på plass via en ekstern tilkobling: det vil si over Internett. Dette betydde dusinvis av Windows®-applikasjoner som var sårbare for angrep ved bruk av denne metoden. Sikkerhetsfellesskapet var uenig om hvorvidt det var bedre for individuelle applikasjoner å bli skrevet om for å spesifisere plasseringen av den legitime DLL-filen, som var avhengig av at hver utvikler iverksatte tiltak, eller at Microsoft endret måten Windows® håndterer slike filer, som kan føre til at applikasjoner slutter å fungere ordentlig.