Die Techniken, mit denen Hacker und Online-Kriminelle ihre Schadprogramme vor Entdeckung per Viren-Signatur schützen, werden immer raffinierter: Polymorphe Viren, modularer Schadcode oder Zeroday Exploits machen den Entwicklern von Viren-Scannern zunehmend das Leben schwer. Whitelisting – also die Software-Steuerung nach einer Liste "erlaubter" Programme – scheint hier die logische Alternative. Doch die neue Technik gilt als schwer zu handhaben und wirft die Frage auf, wer eigentlich bestimmen soll, was "erlaubt" ist.
Die Situation hinsichtlich der kursierenden Schadprogramme hat sich in den letzten Jahren grundlegend geändert: Waren es früher jugendliche Hacker oder "Skript-Kiddies", die aus Spaß und für zweifelhaften Ruhm in der Szene Viren verbreitet haben, so stecken heute hochprofessionelle kriminelle Organisationen dahinter, die ausschließlich nach Profit streben und eine ebenso profitorientierte kriminelle Kundschaft bedienen. In dieser Branche lauern Milliardenumsätze, die mit erbeuteten Kontodaten, dem Verkauf von ausgespähten Betriebsgeheimnissen oder der Vermietung von Rechnerkapazitäten zum Verschicken von Spam-Mails gemacht werden. Hochbezahlte Profis entwickeln schwer zu entdeckende und dabei für den kriminellen Abnehmer leicht zu bedienende Schadsoftware. Klassische Virenschutzsoftware tut sich mit dem Erkennen und Entschärfen derartiger Programme zunehmend schwer und zwangsläufig können Updates mit den benötigten Signaturen immer erst kurz nach dem Auftreten neuer Bedrohungen fertig sein. Diese Schwierigkeit hat sich sogar noch vergrößert, weil die Intervalle, in denen neue Schadsoftware in Erscheinung tritt, immer kürzer werden.
Ein Beispiel dafür, wie schnell und gezielt Schadprogramme heute innerhalb dieser Untergrundwirtschaft verbreitet werden, ist das Schwarzmarkt-Software-Paket MPack. Alles was der Angreifer in spe braucht, ist ein betriebsbereiter PHP-Server, auf dem MPack als Anwendung installiert werden kann. Danach muss er sich lediglich darum kümmern, Internetnutzer anzulocken. Dazu wird sich oft in häufig besuchte Webseiten eingehackt, um dort kleine Code-Teile einzufügen, die den Browser eines Besuchers automatisch auf den MPack- Server umleiten. Oder es werden eigene Webseiten erstellt, deren Domain-Name die geringfügige Abwandlung einer bekannten Internetseite darstellt. Nutzer, die sich beim Eingeben der legitimen Adresse vertippen, landen automatisch auf dem infizierten Server.
Der MPack-Server analysiert daraufhin die HTTP-Anfrage dahingehend, welcher Internet-Browser und welches Betriebssystem auf dem PC des Besuchers verwendet werden. Wenn diese Informationen vorliegen, verschickt MPack Schadcode (Exploits) an diesen Rechner, um eventuelle Programmier-Schwachstellen auszunutzen. Dem Server stehen dabei eine Vielzahl möglicher Exploits zur Verfügung, die direkt mitgeliefert werden.
Befindet sich beispielsweise im Browser auf dem Ziel-PC eine Schwachstelle, weil der entsprechende Patch noch nicht installiert – oder womöglich noch nicht verfügbar – war, veranlasst der erfolgreich ausgeführte Exploit das Herunterladen weiterer Malware, die dann die eigentliche Schadfunktion auf dem Zielrechner implementiert. In der Datenbank des MPack-Servers wird abschließend ein Eintrag generiert, der die Informationen zur Adresse, zum erfolgreichen Exploit und zum Land des infizierten PCs enthält.
An diesem Beispiel sind zwei Aspekte besonders auffällig: erstens die Leichtigkeit, mit der MPack von einem Abnehmer in Betrieb genommen werden kann – zweitens passt sich der Schadcode an die Gegebenheiten auf dem Ziel-PC an und lädt benötigte Programmteile Stück für Stück aus dem Internet nach. Es existiert also keine einheitliche Signatur, die einem Viren-Scanner eine einfache Erkennung ermöglichen würde.
Pakete wie MPack sind eine der Ursachen dafür, dass schädliche Software heute ungeahnte Ausmaße annimmt. Nach Symantec-Untersuchungen werden mittlerweile mehr schädliche Programme auf der Welt veröffentlicht als gutartige. Diese Entwicklung hat sich in den letzten Monaten noch beschleunigt. Einige Experten gehen davon aus, dass man dieser wachsenden Bedrohungen nur durch einen Paradigmenwechsel wirkungsvoll begegnen kann: Anstatt schädliche Programme durch Virensignaturen und andere Mittel auszusperren, sollte man lieber eine "weiße Liste" von Applikationen führen, die unbedenklich genutzt werden können. An die Stelle der Blockierung aller als schädlich bekannten Software träte dann also das exklusive Zulassen von als ungefährlich eingestuften Programmen. Ein solcher Paradigmenwechsel wird dabei nicht selten an die Annahme gekoppelt, dass Whitelisting den klassischen Virenschutz über kurz oder lang ersetzen würde.
Grundlage für ein Whitelisting ist in jedem Fall eine umfassende Datenbank, in der alle harmlosen und ungefährlichen Programme verzeichnet sind. Falls ein neues Programm nicht in der Datenbank erscheint, würde seine Ausführung verhindert. Das Problem der zuverlässigen Erkennung neuer Schadcodes würde dadurch theoretisch komplett entfallen: Ein Virus oder Trojaner würde einfach keinen Eintrag in die Whitelist bekommen und deshalb auf keinem derart gesicherten PC ausgeführt werden.
Hier stößt man allerdings auch schon auf die ersten Probleme: An welcher Stelle soll denn die benutzte Whitelist geführt werden? Auf Unternehmensebene wäre das in vielen Fällen zu aufwändig, sodass realistischerweise spezialisierte Anbieter das Mittel der Wahl sein könnten, die vorgefertigte Listen anbieten. An dieser Stelle könnten wirtschaftliche Interessen genau so ein Problem werden wie fehlendes Know-how: In ersterem Fall fehlt vielleicht die Software der Konkurrenz in der Whitelist, im zweiten Fall ist die Liste mit zugelassener Software vielleicht nicht umfangreich genug, um auch weniger verbreitete Programme zu enthalten. Beide Male liegt die Konsequenz darin, dass möglicherweise unschädliche und nützliche Software auf dem durch eine Whitelist geschützten PC nicht ausgeführt werden kann.
Doch auch Anbieter, die eine solche Liste erstellen wollten, hätten ihre Schwierigkeiten: Die Zahl der Programme, die auf der ganzen Welt verfügbar sind, lässt sich nicht einmal genau beziffern. Täglich kommen neue hinzu, die möglichst schnell in kommerzielle weiße Listen aufgenommen werden müssten. Neben der großen Anzahl der Programme birgt auch die Einstufung als "unbedenklich" erhebliche Herausforderungen: Wie soll etwa mit Open-Source-Software verfahren werden oder mit anderen Programmen, für die kein namhaftes Unternehmen garantiert? Prüfungen auf eventuellen Schadcode wären noch vor der Aufnahme in eine kommerzielle oder unternehmensinterne Whitelist notwendig. Hier würde eine erhebliche Definitionsmacht in den Händen der Listen-Anbieter liegen, wenn man komplett auf Whitelisting umschwenken würde.
Die zweite große Herausforderung bestünde darin, dass jedes Update, das ein in der Whitelist verzeichnetes Programm erfährt, dort ebenfallas vermerkt werden müsste. Ansonsten führt die Aktualisierung dazu, dass der Eintrag ungültig wird und die Software nicht mehr benutzt werden kann. Bei den Datenbanken größerer Unternehmen fiele also ein enormer Aktualisierungsaufwand an. Auch diese Leistung könnte vermutlich nur ein Unternehmen erbringen, das über eine entsprechende Anzahl von Mitarbeitern und Informationsquellen verfügt, um die Neuerungen jeden Tag in ein Update der Whitelist umzusetzen. Hier stoßen auch professionelle Anbieter von proprietärem Whitelisting aufgrund der Vielzahl weltweit verfügbarer Programme schnell an ihre Grenzen.
Die Zukunft von Sicherheitsprogrammen kann sicherlich nicht ausschließlich in der althergebrachten Erkennung auf Signaturbasis bestehen, die grundsätzlich nur reaktiv vorgeht. Eine Sicherung allein auf der Grundlage einer Whitelist birgt allerdings derzeit noch viele ungeklärte Fragen. Man sollte daher eher auf Lösungen setzen, die Whitelist-Verfahren mit klassischem Virenschutz kombinieren.
Ein Schritt in diese Richtung ist die Integration von Applikationskontrolle in Sicherheitslösungen: Sie ermöglicht Administratoren, den Zugang zu Prozessen, Dateien und Ordnern für bestimmte Benutzer und Anwendungen einzuschränken. Eine Möglichkeit ist hierbei beispielsweise einen "Snapshot" sämtlicher aktuell vorhandener, ausführbarer Dateien (exe, .com, .dll, .ocx usw.) aufzuzeichnen und anschließend die Ausführung auf diese bekannten Programme zu beschränken (so arbeitet u. a. Symantecs Endpoint-Security-Lösung). Ein System, das auf diese Weise geschützt ist, verwehrt zusätzlichem Code die Ausführung und verhindert auch die Manipulation vorhandener Dateien, die bereits auf der "Snapshot-Whitelist" enthalten sind.
Ein derart restriktives Vorgehen allerdings auf das gesamte Netzwerk auszudehnen, würde vermutlich zu deutlichen Produktivitätseinbußen führen. Daher erscheint nur eine Kombination verschiedener Techniken in Bereichen mit unterschiedlichen Sicherheitsanforderungen gangbar: etwa Applikationskontrolle als Schutz für die hochsensitiven Bereiche im Unternehmen verbunden mit flächigem klassischem Blacklist-Virenschutz – idealerweise ergänzt um weitere Erkennungsmethoden, wie Behavior Blocking. So lässt sich erhöhte Sicherheit, da wo sie unabdingbar ist, mit größerer Flexibilität "in der Breite" erreichen.
Olaf Lindner ist Senior Director Symantec Consulting Services.
© SecuMedia-Verlags-GmbH, 55205 Ingelheim (DE),
<kes> 2007#5, Seite 75
tag:kes.info,2007:art:2007-5-075