Tags: Sicherheit, Malware
Es gibt keinen besseren Schutz gegen Malware, als nur vertrauenswürdige Anwendungen zuzulassen und alle anderen zu blockieren. Was in der Theorie einleuchtet, scheitert in der Praxis oft an der Pflege der Whitelist. Die SecuLution GmbH unterstützt Anwender bei dieser Aufgabe mit einer Cloud-Datenbank.
Viele Unternehmen setzen hunderte, manche auch tausende Windows-Anwendungen ein. Angesichts dieser Zahlen und der laufenden Änderungen (Updates und neue Programme), scheint es aussichtslos, eine aktuelle Liste aller zuverlässigen Applikationen bereitzustellen.
IT-Abteilungen schrecken nicht nur vor diesem Aufwand zurück, sondern auch von den Folgen einer unvollständigen Whitelist. Fehlen darin Anwendungen, die von Mitarbeitern benötigt werden, dann lassen sie sich nicht starten und der Anruf beim Helpdesk ist unvermeidlich.
Bordmittel ohne eigene Whitelist
Zu den Bordmitteln von Windows gehören gleich 3 verschiedene Mechanismen für das Application Whitelisting, nämlich die Richtlinien für Software-Einschränkung (SRP), AppLocker und Windows Defender Application Control (siehe dazu meinen Vergleich dieser Tools).
Keiner davon bringt ein ausgearbeitetes Regelwerk geschweige denn eine umfassende Whitelist für vertrauenswürdige Anwendungen mit. Am nächsten kommt dem noch WDAC, wenn Anwender den Cloud-Service Intelligent Security Graph abonnieren, der Signale von zahlreichen Windows-Systemen verarbeitet und so häufig genutzte Programme kennt.
Pfadregeln als Kompromiss
Um sicherzustellen, dass keine schädlichen Anwendungen ausgeführt werden, ohne dass man deren Herkunft verifiziert oder sie als explizit vertrauenswürdig einstuft, bieten die Windows-eigenen Lösungen mehrere Regeltypen an.
Dazu gehört etwa, dass ausführbarer Code über Pfadregeln auf jene Verzeichnisse eingeschränkt wird, in die nur Administratoren schreiben dürfen. Zuletzt erhielt auch WDAC diese Option. Damit lässt sich zwar kein vollständiger Schutz erreichen, aber viele der gängigen Angriffe würden dadurch mit geringem Aufwand abgewehrt.
SecuLution erlaubt Programme via Datei-Hashes
Die in Werl ansässige SecuLution GmbH verfolgt mit ihrer gleichnamigen Lösung dagegen einen Whitelisting-Ansatz im engeren Sinn. Anwendungen laufen nur dann, wenn sie in der Datenbank über ihren Hash-Code identifiziert werden können und als ausreichend vertrauenswürdig eingestuft sind.
Da sich die Herkunft einer Software nicht immer verlässlich verifizieren lässt und es zudem einen Unterschied macht, auf welchem Weg ein Hash in die Datenbank gelangt, klassifiziert SecuLution Anwendungen nicht bloß als sicher oder unsicher.
Dafür verwendet der Hersteller so genannte Trust-Levels mit Werten von 0 bis 10. Ab Trust-Level 4 sind genügend Indikatoren vorhanden, um die Software als vertrauenswürdig einzustufen.
Faktoren für die Vergabe von Vertrauensstufen
Ist eine Anwendung von einem bekannten Hersteller signiert und kommt sie noch dazu über sichere Verbindung zum Anbieter in das Unternehmen, zum Beispiel über Windows Update, dann wird man ihr einen hohen Wert zuweisen.
Beschränkt sich dagegen der Nachweis für die Herkunft eines Open-Source-Tools ausschließlich darauf, dass es über eine SSL-Verbindung von der Website der Entwickler heruntergeladen wurde, dann erhält es wahrscheinlich einen geringen Vertrauensbonus.
In letzter Instanz geht es also immer darum, die Herkunft von Code zu verifizieren und abhängig von der Quelle zu bewerten. Eine Analyse von Programmen und eine Überprüfung auf suspektes Verhalten, wie dies einige Security Tools tun, finden beim Whitelisting nämlich nicht statt.
Hash-Updates aus der Cloud
Um das Ausführen von nicht genehmigten Programmen zu unterbinden, benötigt SecuLution einen Agent auf jedem Client. Möchte ein User eine Anwendung starten, dann berechnet der Agent deren Hash-Code und gibt ihn an die lokale Datenbank im Unternehmen weiter. Ist er dort als vertrauenswürdig eingestuft, dann läuft die Software.
Findet sich der Hash-Code dort jedoch nicht, dann kontaktiert das System die Datenbank, welche SecuLution in der Cloud bereitstellt und laufend aktualisiert. Die Hashes müssen nämlich schon beim geringsten Update der Software neu errechnet werden.
Kennt der Cloud-Service den Hash, dann gibt er der lokalen Datenbank den Trust-Level für die Anwendung zurück. Abhängig von den Vorgaben des Unternehmens startet dann das Programm und der Hash wird in das lokale System übernommen.
Laut Hersteller deckt der Cloud-Service über 99 Prozent der Abfragen durch die Kunden ab. Es liegt jedoch auf der Hand, dass dort Informationen über Software, die von Firmen intern entwickelt wurde, und Individuallösungen fehlen.
Erfassen unbekannter Anwendungen
Das ist nur ein Grund, warum es nicht damit getan ist, SecuLution zu installieren und mit einer leeren Datenbank zu starten, die man dann aus der Cloud füttert. Alleine Windows und Office enthalten unzählige .exe-Dateien, von denen jede einzelne freigegeben werden müsste. Da ist es nicht sinnvoll, sämtliche Hashes erst in die Cloud zu schicken, um sie dort überprüfen zu lassen.
Die Whitelisting-Lösung von SecuLution kennt daher mehrere zusätzliche Methoden, um das lokale System zu trainieren. Dem genannten Problem mit den Systemdateien lässt sich am besten begegnen, indem man einen Musterrechner importiert.
Sinnvollerweise installiert man dort auch gleich die im Unternehmen am häufigsten genutzten Anwendungen. SecuLution scannt dann dieses System und übernimmt alle Hashes für die gefundenen Programme in die Datenbank.
Lernmodus und Lernbenutzer
Darüber hinaus kennt die Software auch einen Lernmodus, der bei anderen Lösungen auch als Audit Mode bezeichnet wird. In dieser Betriebsart füttert der Agent die Datenbank mit den Hashes der ausführten Programme, ohne diese zu blockieren. In diesem Zustand befindet sich SecuLution nach der anfänglichen Bereitstellung.
Wer aber möchte, dass nur ausgewählte Mitarbeiter neue Hashes einpflegen, kann den Lernmodus auf bestimmte User und Gruppen aus dem Active Directory oder bestimmte IP-Adressen eingrenzen. Zudem lassen sich eigene Lernbenutzer definieren, wobei die von ihnen gestarteten Programme automatisch in der Whitelist landen.
Signierte Programme freischalten
SecuLution kann aber auch Software in die Whitelist aufnehmen, wenn diese von einem Hersteller signiert wurde, den der Anwender als vertrauenswürdig hinterlegt hat. In der Praxis prüft das System die Signatur aus Performance-Gründen nicht bei jedem Aufruf, sondern generiert beim ersten Start ebenfalls einen Hash. Gleich mehrere Signaturen von Microsoft gehören zum Lieferumfang und können direkt übernommen werden.
Eine weitere Möglichkeit, Hashes in die Datenbank zu bekommen, besteht in der Definition eines Importverzeichnisses. Alle Anwendungen, die man dort ablegt, werden automatisch in die Whitelist übernommen.
In dieser kann man anhand der (automatischen) Klassifizierung erkennen, wie der Hash in die Datenbank gelangt ist und abhängig davon einen Trust-Level vergeben. Bei einigen Varianten, wie etwa beim Import aus einem Verzeichnis, legt man die Vertrauensstufe gleich bei der Konfiguration fest.
Offline-Szenarien
Das bisher beschriebene Szenario geht davon aus, dass sich die Clients im lokalen Netzwerk befinden und permanent eine Verbindung zur Datenbank haben. Für Notebook-Benutzer ist diese Voraussetzung nicht immer gegeben, so dass ein Application Whitelisting auch dann funktionieren muss, wenn Mitarbeiter länger unterwegs sind.
Für diesen Fall hält der Client eine Kopie der Fingerabdrücke aus der Datenbank lokal vor. Aber wenn zum Beispiel der Auto-Updater von Adobe über das Hotel-WLAN eine neue Version des Readers eingespielt hat, dann läuft dieser beim nächsten Start ohne Kontakt zur Datenbank nicht mehr.
Für solche Situationen hält SecuLution mehrere Optionen bereit. Die unsicherste besteht naturgemäß darin, die Ausführung aller Programme offline zu erlauben.
Alternativ schaltet der Benutzer blockierte Programme über ein Passwort oder ein Challenge-Response-Verfahren frei. Für die ausgewählte Methode kann der Admin zudem individuelle Einstellungen pro AD-User oder IP-Adresse definieren.
PowerShell und Java
Das Whitelisting von SecuLution betrifft nur Win32-Anwendungen inklusive Treiber, auf Wunsch auch DLLs. Separate Regeln für Scripts oder Store Apps, wie von AppLocker bekannt, bietet die Software nicht. Deshalb kann man keine Hashes von PowerShell-Scripts erstellen, um sie gezielt zuzulassen und alle anderen zu unterdrücken.
Da PowerShell für die Systemverwaltung kaum verzichtbar ist, gleichzeitig aber erhebliches Gefahrenpotenzial birgt, bietet SecuLution als Lösung an, powershell.exe für Standardbenutzer zu blockieren und für Admins freizugegeben.
Ansonsten sollten Anwender die Sicherheitsmechanismen von PowerShell selbst einsetzen, um sich gegen bösartige Scripts abzusichern. Einer davon ist der Constrained Language Mode, der sich über AppLocker, SAFER oder WDAC recht einfach erzwingen lässt. SecuLution dagegen sieht das nicht vor.
Eine vergleichbare Situation ergibt sich für das Whitelisting bei Java, wo nur die Ablaufumgebung als Win32-Anwendung vorliegt, aber die eigentlichen Programme als Java-Bytecode. Hier beschränkt sich SecuLution aber nicht nur auf das Management der JRE, sondern kann auf Wunsch auch jede individuelle Java-Anwendungen überprüfen.
Installation und Wartung
Wie bereits erwähnt, besteht die Lösung von SecuLution aus einer zentralen Datenbank mit den Hashes, Trust-Levels und eine Reihe weiterer Metadaten. Hinzu kommen die Agents auf den PCs und eine Admin-Konsole, vom Hersteller als AdminWizard bezeichnet.
Die Server-Komponente wird als Virtual Appliance ausgeliefert und auf einen gängigen Hypervisor wie ESXi oder Hyper-V importiert. Die Konfiguration, auch des Netzwerks, erfolgt vorab durch den Hersteller und kann, wenn notwendig, durch den Anwender verändert werden.
Das Deployment des Agents kann über Tools wie SCCM geschehen. Alternativ erlaubt es SecuLution, in der Konsole auf einfache Weise den Agent auf ausgewählte AD-Computer zu verteilen. Über dieses Feature lässt er sich auch wieder entfernen oder auf die neueste Version aktualisieren.
Darüber hinaus enthält das Tool Funktionen zur Automatisierung von wiederkehrenden Aufgaben, wie etwa die Bereinigung der Datenbank von ungenutztes Hashes, Backup der Datenbank oder die Synchronisierung mit dem Active Directory.
Fazit
Indem das Application Whitelisting von vorneherein die Ausführung aller Programme verhindert, die nicht explizit als vertrauenswürdig gelten, erreicht es ein hohes Maß an Schutz vor allen Arten von Malware.
Diese eigentlich triviale Einsicht in eine praktikable Lösung umzusetzen, ist die Herausforderung für Hersteller und Anwender. SecuLution geht hier mit seinem Cloud-Service weit über das hinaus, was etwa die Windows-eigenen Mittel bieten und vereinfacht so das Führen der Whitelist.
Dennoch sollte man nicht erwarten, dass die bloße Einführung des Systems schon ausreicht und die Pflege der zulässigen Anwendungen komplett an den Hersteller übertragen werden kann.
Dieser kümmert sich zwar um die Masse der Standard-Software, aber eine reibungslose Funktion, bei der Mitarbeiter nicht von benötigten Anwendungen ausgesperrt werden, erfordert eine regelmäßige Wartung durch die IT.
Verfügbarkeit
Die SecuLution GmbH bietet ihre Software kostenlos für 60 Tage zum Testen an und bietet während dieses Zeitraums vollen Support. Eine Teststellung kann auf der Website des Herstellers angefordert werden.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- Übersicht: Die wichtigsten Features von Windows Defender
- Überwachter Ordnerzugriff: Ransomware-Schutz mit Gruppenrichtlinien und PowerShell konfigurieren
- Reduktion der Angriffsfläche in Microsoft Defender mit Gruppenrichtlinien oder PowerShell aktivieren
- Schädliche Apps und unsichere Treiber mit Microsofts WDAC-Regeln blockieren
- KrbRelayUp: Domänen-Controller gegen Angriffe auf Resource-based constrained Delegation absichern
Weitere Links
4 Kommentare
Ich finde den Ansatz mit einer Whitelist sehr gut, allerdings finde ich die Generierung des "Trust-Levels" schwierig.
Zitat:
"und kommt sie noch dazu über sichere Verbindung zum Anbieter in das Unternehmen,[...]dann wird man ihr einen hohen Wert zuweisen."
Spätestens seit der "Asus Supply Chain Attack" ist es bekannt, dass die Quelle des Codes kein zuverlässiges Kriterium ist. Auch Petya wurde teilweise über ein Auto-Update verteilt.
Als Alternative könnte Panda Adaptive Defense 360 getestet werden, dort wird der "Unbekannte" Code durch den Hersteller geprüft und bewertet.
Die SecuLution GmbH hat ein Team, das sich ausschließlich mit der Pflege der TrustLevel Datenbank beschäftigt, sodass natürlich auch Daten über Schadsoftware in die TrustLevel Datenbank eingepflegt werden (Schadsoftware hat einen schlechten TrustLevel). Dass Schadsoftware keinen guten TrustLevel bekommt, garantiert SecuLution sogar schriftlich.
Der Ansatz "'Unbekannte' Code durch den Hersteller geprüft und bewertet" ist genau das, was alle Virenscanner seit Jahrzehnten versuchen. Den (Miss-) Erfolg dieses Ansatzes sieht man darin, dass allein in Deutschland mehrere tausend Angriffe auf Business-Netzwerke erfolgreich sind, obwohl jeder einen Virenscanner im Einsatz hat, der "Code prüft und bewertet".
Unserer Ansicht nach ist die Quelle des Codes das bei weitem verlässlichste Kriterium.
Das größte Problem ist, dass die Betreiber von Firmennetzwerken nicht die notwendigen Personalressourcen für eine optimale sicherheitstechnische Betreuung des Netzwerkes aufbringen können. Dies wird durch die TrustLevel Datenbank kostengünstig an Fachkräfte ausgelagert.
[Ich bin der GF der Firma SecuLution.]
Nach Lesen des Artikels habe ich den Eindruck, dass dieses Produkt nur ein Aufsatz auf Applocker, SRP und WDAC ist. Denn Pfadregeln, Dateihashes, und Herstellerzertifikate können diese MS-Lösungen auch, zusätzlich teils noch IP basierte Regeln. Der Aufsatz besteht dann nur noch aus einer Whitelist-Datenbank, welche mit dem Client bei Bedarf die bestehenden Windows-Funktionen mit neuen Regeln füttert.
Nein, SecuLution ist völlig unabhängig von den Bordmitteln und bietet wie beschrieben die komplette Infrastruktur für das Whitelisting. Dazu gehört auch ein Agent auf den Clients, der die Ausführung von nicht vertrauenswürdigen Programmen verhindert. Pfadregeln kennt SecuLution übrigens nicht, das habe ich ebenfalls im Text erwähnt.
Aber der eigentliche Mehrwert besteht in der Cloud-Datenbank, die der Hersteller laufend aktualisiert. Bei den Bordmitteln müsste man diese Arbeit selbst leisten und eine Liste aller vertrauenswürdigen Programme selbst pflegen.