Was ist eine Dynamic Link Library?
Eine Dynamic Link Library ist ein von Microsoft verwendetes System, mit dem mehrere Anwendungen gleichzeitig auf denselben Codeabschnitt in Windows® zugreifen können. Dies ist einer der Schlüssel zum effektiven Multitasking. Im Jahr 2010 entdeckten Sicherheitsforscher, dass Hacker Lücken in der Funktionsweise des Dynamic Link Library-Systems ausnutzen können. Dies führte zu einem Dilemma bei der Behebung, ohne die Benutzerfreundlichkeit von Anwendungen zu beeinträchtigen.
Um die Funktionsweise einer Dynamic Link Library zu verstehen, ist es wichtig, den Unterschied zwischen Windows® und Softwareanwendungen zu verstehen. Windows® ist ein Betriebssystem, das weitgehend dazu dient, die Art und Weise zu koordinieren, in der einzelne Anwendungen, auch Programme genannt, auf die Verarbeitungsfunktionen des Computers zugreifen. Windows® selbst ist letztendlich eine Reihe von Computercodes, die effektiv als Regelwerk oder Leitfaden für die Interaktion von Anwendungen untereinander und mit der Hardware dienen.
Die Dynamic Link Library ist das System, mit dem Anwendungen auf einzelne Abschnitte von Windows®-Code zugreifen und diesen ausführen können. Ein Beispiel wäre der Bereich von Windows®, der für das Drucken von Dokumenten zuständig ist. Die meisten Anwendungen müssen irgendwann auf diese Funktion zugreifen. Wenn jedoch jede Anwendung den entsprechenden Code in den Arbeitsspeicher des Computers lädt, sobald die Anwendung ausgeführt wird, ist dies eine ineffiziente Ressourcennutzung und kann zu Konflikten führen.
Um dies zu beheben, wird der Windows®-Code für eine bestimmte Funktion, in diesem Fall das Drucken, als kleines Programm gespeichert, das als Dynamic Link Library oder DLL-Datei bezeichnet wird. Wenn ein Benutzer eine Anwendung wie ein Textverarbeitungsprogramm ausführt, wird diese Datei nicht automatisch geöffnet. Stattdessen öffnet und aktiviert das Textverarbeitungsprogramm die Datei nur bei Bedarf, in diesem Fall, wenn der Benutzer ein Dokument drucken möchte.
In der Vergangenheit haben viele Anwendungsentwickler einfach Code geschrieben, in dem der Name der entsprechenden Dynamic Link Library angegeben war, anstatt genau anzugeben, wo er sich auf dem Computer befinden sollte. Um dies zu umgehen, verfügt Windows® über ein festgelegtes System zum Suchen fehlender DLL-Dateien, indem eine festgelegte Liste von Speicherorten in einer definierten Reihenfolge durchsucht wird. Dies könnte theoretisch ausgenutzt werden, wenn eine als DLL-Datei getarnte schädliche Datei an der richtigen Stelle abgelegt und somit vor der legitimen Datei gefunden und geöffnet wird. Dies wird jedoch nicht als großes Sicherheitsrisiko angesehen, da Hacker physischen Zugriff auf einen Computer benötigen würden, um darauf zugreifen zu können die schädliche Datei vorhanden.
Im Jahr 2010 wurde entdeckt, dass Hacker solche Dateien theoretisch über eine Remoteverbindung, dh über das Internet, an ihren Platz bringen können. Dies bedeutete, dass Dutzende von Windows®-Anwendungen mit dieser Methode für Angriffe anfällig waren. Die Sicherheitsgemeinschaft war gespalten, ob es besser ist, einzelne Anwendungen neu zu schreiben, um den Speicherort der legitimen DLL-Datei anzugeben, die von den einzelnen Entwicklern ausgeführt wird, oder ob Microsoft die Art und Weise ändert, wie Windows® mit solchen Dateien umgeht kann möglicherweise dazu führen, dass Anwendungen nicht mehr ordnungsgemäß funktionieren.