Che cos'è una libreria a collegamento dinamico?
Una libreria a collegamento dinamico è un sistema utilizzato da Microsoft per consentire a più applicazioni di accedere contemporaneamente alla stessa sezione di codice in Windows®. Questa è una delle chiavi per un multitasking che funzioni efficacemente. Nel 2010, i ricercatori della sicurezza hanno scoperto che una lacuna nel funzionamento del sistema di libreria a collegamento dinamico poteva essere sfruttata dagli hacker. Ciò ha portato a un dilemma su come risolverlo senza influire sull'usabilità delle applicazioni.
Per capire come funziona una libreria a collegamento dinamico, è importante comprendere la differenza tra Windows® e le applicazioni software. Windows® è un sistema operativo che esiste in gran parte per coordinare il modo in cui le singole applicazioni, note anche come programmi, accedono alle capacità di elaborazione del computer. Windows® stesso è in definitiva un insieme di codici informatici che agisce efficacemente come regolamento o guida su come le applicazioni interagiscono tra loro e con l'hardware.
La libreria di collegamento dinamico è il sistema tramite il quale le applicazioni possono accedere ed eseguire singole sezioni del codice Windows®. Un esempio potrebbe essere la sezione di Windows® responsabile della stampa dei documenti. La maggior parte delle applicazioni deve accedere a questa funzione ad un certo punto, ma se ogni applicazione caricasse il codice rilevante nella memoria del computer non appena l'applicazione ha iniziato a funzionare, sarebbe un uso inefficiente delle risorse e potrebbe causare conflitti.
Per risolvere questo problema, il codice Windows® per una particolare funzione, in questo caso la stampa, viene memorizzato come un piccolo programma noto come libreria a collegamento dinamico o file DLL. Se un utente esegue un'applicazione come un elaboratore di testi, questo file non viene aperto automaticamente. Al contrario, il word processor apre e attiva il file solo quando e quando è necessario, in questo caso quando l'utente desidera stampare un documento.
Storicamente, molti sviluppatori di applicazioni hanno semplicemente scritto un codice che diceva come si chiamava il nome della relativa libreria di collegamento dinamico, anziché specificare esattamente dove doveva trovarsi sul computer. Per ovviare a questo, Windows® ha un sistema impostato per l'individuazione dei file DLL mancanti cercando un elenco predefinito di posizioni in un ordine definito. Mentre questo potrebbe teoricamente essere sfruttato se un file dannoso travestito da file DLL è stato messo nel posto giusto e quindi trovato e aperto prima del file legittimo, questo non è stato considerato un grave rischio per la sicurezza in quanto gli hacker avrebbero bisogno dell'accesso fisico a una macchina per ottenere il file dannoso in atto.
Nel 2010, è stato scoperto che gli hacker potevano teoricamente mettere in atto tali file tramite una connessione remota: cioè su Internet. Ciò significava che dozzine di applicazioni Windows® erano vulnerabili agli attacchi con questo metodo. La comunità della sicurezza era divisa sul fatto che fosse meglio riscrivere o meno le singole applicazioni per specificare la posizione del file DLL legittimo, che si basava sull'azione di ogni sviluppatore, o che Microsoft modificasse il modo in cui Windows® gestiva tali file, che potrebbe far sì che le applicazioni smettano di funzionare correttamente.