Im Test: Malware blockieren mit Application Whitelisting von SecuLution

    SecuLution AdminWizardEs gibt keinen besseren Schutz gegen Mal­ware, als nur vertrauens­würdige Anwendungen zuzu­lassen und alle anderen zu blockieren. Was in der Theorie ein­leuchtet, scheitert in der Praxis oft an der Pflege der White­list. Die SecuLution GmbH unter­stützt Anwender bei dieser Auf­gabe mit einer Cloud-Datenbank.

    Viele Unter­nehmen setzen hunderte, manche auch tausende Windows-Anwendungen ein. Angesichts dieser Zahlen und der laufenden Änderungen (Updates und neue Programme), scheint es aus­sichtslos, eine aktuelle Liste aller zuverlässigen Applikationen bereit­zustellen.

    Application Whitelisting sollte keinesfalls Programme blockieren, die von Mitarbeitern benötigt werden.

    IT-Abteilungen schrecken nicht nur vor diesem Aufwand zurück, sondern auch von den Folgen einer unvoll­ständigen Whitelist. Fehlen darin Anwendungen, die von Mitarbeitern benötigt werden, dann lassen sie sich nicht starten und der Anruf beim Helpdesk ist unver­meidlich.

    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 ausge­arbeitetes Regelwerk geschweige denn eine umfassende Whitelist für vertrauens­wü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 sicher­zustellen, dass keine schädlichen Anwendungen ausgeführt werden, ohne dass man deren Herkunft verifiziert oder sie als explizit vertrauens­würdig einstuft, bieten die Windows-eigenen Lösungen mehrere Regeltypen an.

    Dazu gehört etwa, dass ausführ­barer Code über Pfadregeln auf jene Ver­zeichnisse 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 vertrauens­würdig eingestuft sind.

    Im Lernmodus bevölkern nach kurzer Zeit bereits zahlreiche Hashes die Datenbank.

    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 Unter­nehmen, 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 herunter­geladen wurde, dann erhält es wahrscheinlich einen geringen Vertrauens­bonus.

    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 unter­binden, 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 Unter­nehmen weiter. Ist er dort als vertrauens­würdig eingestuft, dann läuft die Software.

    Aufbau und Funktionsweise von SecuLution

    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 Unter­nehmens startet dann das Programm und der Hash wird in das lokale System übernommen.

    Anwender können entscheiden, welchen Trust-Level die Cloud zurückgeben muss, um das Programm in die Whitelist aufzunehmen.

    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 Individual­lö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 System­dateien lässt sich am besten begegnen, indem man einen Musterrechner importiert.

    Programme von Musterrechner oder Verzeichnis importieren

    Sinnvoller­weise installiert man dort auch gleich die im Unter­nehmen 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.

    Hinzufügen einer AD-Gruppe als Lernbenutzer

    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 vertrauens­wü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.

    Importiert man Signaturen vertrauenswürdiger Hersteller, dann gelangen die Hashes ihrer Programme automatisch in die Whitelist.

    Eine weitere Möglichkeit, Hashes in die Datenbank zu bekommen, besteht in der Definition eines Import­verzeichnisses. Alle Anwendungen, die man dort ablegt, werden automatisch in die Whitelist übernommen.

    Die Klassifizierung der Hashes gibt einen Hinweis daraus, aus welcher Quelle sie stammen.

    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 Vertrauen­sstufe 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 Voraus­setzung nicht immer gegeben, so dass ein Application Whitelisting auch dann funktionieren muss, wenn Mit­arbeiter länger unterwegs sind.

    Für diesen Fall hält der Client eine Kopie der Finger­abdrü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.

    Optionen für die Offline-Nutzung von SecuLution

    Für solche Situationen hält SecuLution mehrere Optionen bereit. Die unsicherste besteht natur­gemäß 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 ausge­wä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.

    PowerShell lässt sich bei Bedarf für Standardbenutzer blockieren.

    Da PowerShell für die System­verwaltung kaum verzichtbar ist, gleichzeitig aber erhebliches Gefahren­potenzial birgt, bietet SecuLution als Lösung an, powershell.exe für Standard­benutzer zu blockieren und für Admins freizugegeben.

    Ansonsten sollten Anwender die Sicherheits­mechanismen 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.

    SecuLution erzwingt nicht den Constrained Language Mode von PowerShell.

    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.

    Optional prüft SecuLution auch alle DLLs und Java-Anwendungen

    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.

    SecuLution liefert die Server-Komponente als Virtual Appliance aus.

    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.

    Der Agent lässt sich von der SecuLution-Konsole aus auf ausgewählte Rechner verteilen.

    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 Heraus­forderung 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 ausge­sperrt 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.

    4 Kommentare

    Bild von Mario
    Mario sagt:
    6. August 2019 - 0:16

    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 Unter­nehmen,[...]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.

    Bild von Torsten Valentin
    6. August 2019 - 11:41

    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.]

    Bild von 1ST1
    1ST1 sagt:
    8. August 2019 - 11:04

    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.

    Bild von Wolfgang Sommergut
    8. August 2019 - 11:43

    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.