O bibliotecă de linkuri dinamice este un sistem utilizat de Microsoft pentru a permite mai multor aplicații să acceseze aceeași secțiune de cod în Windows® în același timp. Aceasta este una dintre cheile pentru funcționarea eficientă a multitasking-ului. În 2010, cercetătorii în domeniul securității au descoperit că lacuna în modul în care funcționa sistemul de bibliotecă de legături dinamice ar putea fi exploatată de hackeri. Acest lucru a condus la o dilemă cu privire la modul de remediere fără a afecta capacitatea de utilizare a aplicațiilor.
Pentru a înțelege modul în care funcționează o bibliotecă de legături dinamice, este important să înțelegeți diferența dintre Windows® și aplicațiile software. Windows® este un sistem de operare care există în mare măsură pentru a coordona modul în care aplicațiile individuale, cunoscute și sub numele de programe, accesează abilitățile de procesare ale computerului. Windows® în sine este, în cele din urmă, un set de coduri de computer care acționează efectiv ca un manual de reguli sau un ghid pentru modul în care aplicațiile interacționează între ele și cu hardware-ul.
Biblioteca de link-uri dinamice este sistemul prin care aplicațiile pot accesa și rula secțiuni individuale ale codului Windows®. Un exemplu ar fi secțiunea Windows® responsabilă cu tipărirea documentelor. Majoritatea aplicațiilor trebuie să acceseze această caracteristică la un moment dat, dar dacă fiecare aplicație ar încărca codul relevant în memoria computerului de îndată ce aplicația a început să ruleze, ar fi o utilizare ineficientă a resurselor și ar putea provoca conflicte.
Pentru a rezolva acest lucru, codul Windows® pentru o anumită funcție, în acest caz imprimarea, este stocat ca un mic program cunoscut sub numele de bibliotecă de link dinamic sau fișier DLL. Dacă un utilizator rulează o aplicație, cum ar fi un procesor de text, acest fișier nu este deschis automat. În schimb, procesorul de text deschide și activează fișierul doar pe măsură ce este necesar, în acest caz când utilizatorul dorește să imprime un document.
Din punct de vedere istoric, mulți dezvoltatori de aplicații au scris pur și simplu cod care spunea cum se numea biblioteca de link-uri dinamice relevante, mai degrabă decât să specifice exact unde ar trebui să fie localizată pe computer. Pentru a evita acest lucru, Windows® are un sistem stabilit pentru localizarea fișierelor DLL lipsă prin căutarea într-o listă setată de locații într-o ordine definită. Deși, teoretic, acest lucru ar putea fi exploatat dacă un fișier rău intenționat deghizat în fișier DLL a fost plasat la locul potrivit și, astfel, găsit și deschis înainte de fișierul legitim, acest lucru nu a fost considerat un risc major de securitate deoarece hackerii ar avea nevoie de acces fizic la o mașină pentru a obține fișierul rău intenționat pe loc.
În 2010, s-a descoperit că hackerii ar putea, teoretic, să obțină astfel de fișiere prin intermediul unei conexiuni de la distanță: adică prin Internet. Acest lucru însemna că zeci de aplicații Windows® erau vulnerabile la atacuri folosind această metodă. Comunitatea de securitate a fost împărțită cu privire la dacă ar fi mai bine ca aplicațiile individuale să fie rescrise pentru a specifica locația fișierului DLL legitim, care se baza pe fiecare dezvoltator să ia măsuri, sau ca Microsoft să schimbe modul în care Windows® tratează astfel de fișiere, ceea ce ar putea cauza aplicațiile să nu mai funcționeze corect.