Wat is een Dynamic Link-bibliotheek?
Een dynamische koppelingsbibliotheek is een systeem dat door Microsoft wordt gebruikt om meerdere toepassingen tegelijkertijd toegang te geven tot hetzelfde codedeel in Windows®. Dit is een van de sleutels tot multitasking om effectief te werken. In 2010 ontdekten beveiligingsonderzoekers dat mazen in de manier waarop het dynamische linkbibliotheeksysteem werkte, door hackers konden worden misbruikt. Dit leidde tot een dilemma over hoe dit te verhelpen zonder de bruikbaarheid van applicaties aan te tasten.
Om te begrijpen hoe een dynamische linkbibliotheek werkt, is het belangrijk om het verschil tussen Windows® en softwaretoepassingen te begrijpen. Windows® is een besturingssysteem dat grotendeels bestaat om de manier te coördineren waarop afzonderlijke toepassingen, ook wel programma's genoemd, toegang krijgen tot de verwerkingsmogelijkheden van de computer. Windows® zelf is uiteindelijk een set computercodes die effectief fungeert als het regelboek of de gids voor hoe applicaties met elkaar en met de hardware omgaan.
De dynamische koppelingsbibliotheek is het systeem waarmee toepassingen afzonderlijke secties van Windows®-code kunnen openen en uitvoeren. Een voorbeeld hiervan is het gedeelte van Windows® dat verantwoordelijk is voor het afdrukken van documenten. De meeste toepassingen moeten op een bepaald moment toegang hebben tot deze functie, maar als elke toepassing de relevante code in het geheugen van de computer laadt zodra de toepassing wordt gestart, zou dit een inefficiënt gebruik van bronnen zijn en tot conflicten leiden.
Om dit op te lossen, wordt de Windows®-code voor een bepaalde functie, in dit geval afdrukken, opgeslagen als een klein programma dat bekend staat als een Dynamic Link-bibliotheek of DLL-bestand. Als een gebruiker een toepassing zoals een tekstverwerker uitvoert, wordt dit bestand niet automatisch geopend. In plaats daarvan wordt de tekstverwerker alleen geopend en geactiveerd als dat nodig is, in dit geval wanneer de gebruiker een document wil afdrukken.
Historisch gezien schreven veel applicatieontwikkelaars eenvoudig code die zei hoe de naam van de relevante dynamische linkbibliotheek werd genoemd, in plaats van precies te specificeren waar deze zich op de computer moest bevinden. Om dit te omzeilen heeft Windows® een vast systeem voor het vinden van ontbrekende DLL-bestanden door een vaste lijst met locaties in een gedefinieerde volgorde te doorzoeken. Hoewel dit theoretisch zou kunnen worden misbruikt als een kwaadaardig bestand, vermomd als een DLL-bestand, op de juiste plaats werd geplaatst en dus vóór het legitieme bestand werd gevonden en geopend, werd dit niet als een groot beveiligingsrisico beschouwd, omdat hackers fysieke toegang tot een machine nodig hadden om het schadelijke bestand op zijn plaats.
In 2010 werd ontdekt dat hackers dergelijke bestanden in theorie via een externe verbinding op hun plaats konden krijgen: dat wil zeggen via internet. Dit betekende dat tientallen Windows®-applicaties kwetsbaar waren voor aanvallen met deze methode. De beveiligingsgemeenschap was verdeeld over de vraag of het beter was om afzonderlijke toepassingen te herschrijven om de locatie van het legitieme DLL-bestand te specificeren, waarbij elke ontwikkelaar actie ondernam, of dat Microsoft de manier moest veranderen waarop Windows® met dergelijke bestanden omgaat kan ervoor zorgen dat applicaties niet meer goed werken.