Erhöhung der Computersicherheit: das Konzept einer vertrauenswürdigen Umgebung

Inhalt

    Einleitung

    In den letzten paar Jahren steigt die Zahl von Schadprogrammen in geometrischer Folge. Selbst die effektivsten Antiviren-Technologien unterschiedlicher Hersteller werden nicht immer mit diesen Unmengen von Bedrohungen fertig. Wenn vor 10-15 Jahren eine Erkennungsquote von 99,9% noch bedeutete, dass das AV-Produkt ein bis zwei Schadprogramme der im letzten Jahr neu entwickelten 10.000 Schädlinge nicht erkennt, so bedeutet ein solcher Prozentsatz heutzutage, dass das AV-Produkt einige tausend des Millionenheeres neuer Schädlinge nicht detektiert. Keine Neuigkeit ist auch die immer häufiger werdende Ausnutzung von Zero-Day-Sicherheitslücken in Software durch Cyberkriminelle.

    Diese Umstände zwingen große Unternehmen schon heute dazu, ihre Sicht auf die von ihnen verwendeten Schutzsysteme zu ändern. Im Rahmen ihrer Tätigkeit operieren Mitarbeiter mit Unternehmensdaten, die sich im Unternehmensnetz befinden. Folglich haben Cyberkriminelle – wenn sie Zugriff auf einen Computer aus dem Netz erhalten – die potentielle Möglichkeit an Daten zu kommen, die unter Umständen ein Geschäftsgeheimnis darstellen. Für die meisten Unternehmen ist das besonders gefährlich, da das Risiko von Verlusten in Millionenhöhe entstehen könnte. Immer häufiger werden zum Schutz von Informationen, die im Unternehmensnetzwerk kursieren, Lösungen eingesetzt, die auf einem Ansatz basieren, der sich prinzipiell von einem Antiviren-Ansatz unterscheidet. Die Idee ist simpel: Erlaubt ist der Start nur solchen Programmen, die auf einer bestimmten Liste stehen – die Ausführung aller anderen Anwendungen wird blockiert. Für viele Organisationen hat die Sicherheit des Netzwerks allerhöchste Priorität. Die Flexibilität des Systems wird dabei aber verringert: Den Mitarbeitern wird auf den Arbeitsrechnern die Benutzung nur solcher Software erlaubt, die für die Erfüllung ihrer Aufgaben im Unternehmen unerlässlich ist. Dieser Ansatz ist nicht unbedingt neu und auch bekannt unter den Bezeichnungen Default Deny Mode oder Lock Down Mode.

    Häufig wird die Methode Default Deny ohne gleichzeitige Verwendung einer Antiviren-Lösung angewandt. Die Experten von Kaspersky Lab sind allerdings der Meinung, dass ein komplexer Ansatz am effektivsten ist, der sowohl Komponenten von Default Deny als auch Komponenten des Antiviren-Schutzes miteinander vereint. Dafür gibt es einige ernsthafte Gründe, wie zum Beispiel: die Existenz von Exploits, die schädliche Aktivität ausführen ohne Dateien auf dem Computer zu erstellen; die Verbreitung von Makroviren in Office-Dokumenten (solche Dateien können nicht im Modus Default Deny kotrolliert werden, da an ihnen ständig Veränderungen vorgenommen werden); die Verwendung von bedingt legitimer Software durch Cyberkriminelle, die von ihnen für die Ausführung schädlicher Funktionen speziell konfiguriert wurden. So verwandeln bestimmte Einstellungen in der Konfigurationsdatei Programme für die Registrierung von Tastaturbetätigungen in Spionage-Trojaner. In dieser Situation ist ein komplexer Schutz wesentlich effektiver als die Anwendung nur eines der genannten Ansätze.

    Der Einsatz der Methode Default Deny ist in großen Unternehmen mit einer in sich geschlossenen Infrastruktur effektiv, Bedarf an einem zuverlässigen Schutz ihrer Daten haben allerdings auch kleinere Unternehmen sowie auch der durchschnittliche Heimanwender. Identifizierungsdaten der Anwender in elektronischen Bezahlsystemen und sozialen Netzwerken, Hardwareressourcen des Computers sowie Internet-Traffic stellen keinen geringen Wert dar und sind für Cyberkriminelle eine willkommene Beute.

    Doch gleichzeitig wollen PC-Nutzer ständig neue Software installieren oder vorhandene aktualisieren, Dateien aus dem Internet und aus P2P-Netzen laden und selbstverständlich möchten sie im World Wide Web surfen. Doch die für den Unternehmensbereich angebotene Lösung Default Deny ist häufig nicht flexibel genug, um den Bedürfnissen von Heimanwendern gerecht zu werden. Aus eben diesem Grund sehen sich auch viele Unternehmen gezwungen, auf den Einsatz von Default Deny zu verzichten: Für den reibungslosen Ablauf aller Geschäftsprozesse ist eine größere Flexibilität des Systems erforderlich, als sie bei der Anwendung der Lösung Default Deny möglich ist.

    In dem vorliegenden Artikel liefern wir eine Beschreibung des Konzepts einer „vertrauenswürdige Umgebung“, das in sich die Vorteile des Schutzes, den die Lösung Default Deny bietet, mit der Flexibilität vereint, die bei dem Einsatz von Antiviren-Lösungen erreicht werden kann.

    Funktionsschema von Default Deny

    Um die Gründe für die mangelnde Flexibilität von Schutzsystemen zu verstehen, die auf dem Konzept Default Deny beruhen, sollte man sich zunächst einmal mit der Funktionsweise dieser Lösung vertraut machen (eine detaillierte Beschreibung der Technologie Default Deny finden Sie in diesem Artikel).

    Die Standardlösung Default Deny führt bei Bereitstellung die folgenden Schritte in dieser Reihenfolge durch:

    • Auf dem Computer wird eine Inventarisierung durchgeführt – eine Suche nach Dateien, die in der Lage sind, Code auszuführen: Anwendungen, dynamische Bibliotheken und Skripte.
    • Es wird eine Entscheidung über die Vertrauenswürdigkeit der gefundenen Dateien getroffen.
    • Der Modus Default Deny wird aktiviert.

     

    Nach Aktivierung des Modus‘ Default Deny erfolgt der Start von Anwendungen, Skripten oder der Download von dynamischen Bibliotheken nach dem folgenden Algorithmus:

    • Das Betriebssystem initiiert den Start der Anwendung, des Skriptes oder der Bibliothek.
    • Das Sicherheitssystem überprüft unter Verwendung von Listen vertrauenswürdiger Objekte, ob die Anwendung, die Bibliothek oder das Skript vertrauenswürdig ist.
    • Wenn das Objekt als vertrauenswürdig eingestuft wurde, wird der Start erlaubt, im entgegengesetzten Fall wird der Start blockiert.

     

    Ausführungsverbot für nicht vertrauenswürdigen Code: das Fehlen von Flexibilität

    Der unbestreitbare Vorteil des Ansatzes Default Deny liegt in der Schaffung eines isolierten Systems, in dem es keine Möglichkeit gibt, nicht vertrauenswürdigen Code auszuführen. Im Fall des klassischen Modus‘ Default Deny fällt die Flexibilität der Sicherheit zum Opfer. Der größte Nachteil dabei ist die Unmöglichkeit, neue Software zu installieren bzw. die vorhandene zu aktualisieren. Daher sehen moderne Default Deny-Lösungen spezielle Programm-Kategorien vor, und zwar „Vertrauenswürdige Programme Updates“ und „Vertrauenswürdige Installer“. Solchen Programmen wird es erlaubt, im System andere Programme zu erstellen, die ebenfalls als vertrauenswürdig eingestuft werden.

    Dieser Ansatz wird erfolgreich in Organisationen angewandt, in denen die Auswahl der auf den Computern verwendeten Programme streng von dem Systemadministrator vorgegeben und aus dem Unternehmensnetz so ein separates geschlossenes System gemacht wird. Im System wird die ungehinderte Aktualisierung und Installation ausschließlich von vorher festgelegten Programmen erlaubt.

    Die meisten Informationssysteme sind allerdings offen und interagieren miteinander. Jeder Computer erfüllt eine Vielzahl von Aufgaben, deren Kreis erweitert werden kann. Zudem verfügt nahezu jeder Computer über einen Internetzugang.

    Für Heimcomputer und für Organisationen, in denen die zu installierende Software nicht strengsten Kontrollen unterliegt, ist die Erstellung der oben erwähnten vertrauenswürdigen Kategorien ganz sicher nicht ausreichend, um das geforderte Maß an Flexibilität des Systems zu gewährleisten.

    Vom Ausführungsverbot für nicht vertrauenswürdigen Code zur Unterstützung einer vertrauenswürdigen Umgebung  5

    Wie kann man ein System ausreichend flexibel gestalten und gleichzeitig ein hohes Maß an Sicherheit gewährleisten? Eine Lösung ist der Übergang von einem Ausführungsverbot für nicht vertrauenswürdigen Code zu der Unterstützung einer vertrauenswürdigen Umgebung.

    Was ist eine vertrauenswürdige Umgebung?

    Bei der Inventarisierung der Software wird eine Liste mit vertrauenswürdigen Objekten erstellt (Anwendungen, dynamische Bibliotheken und Skripte), denen die Ausführung in dem entsprechenden System erlaubt ist. Die Ausführung von Code anderer Objekte wird blockiert.

    Woher kann man während des Inventarisierungsprozesses Gewissheit erlangen, dass diese oder jene Datei vertrauenswürdig ist?

    Zweifellos ist es unerlässlich, dass die Vertrauenswürdigkeit einer Datei bestätigt wird. Eine solche Bestätigung ist eine elektronisch-digitale Signatur, die bezeugt, dass die zu überprüfende Datei von einem vertrauenswürdigen Hersteller entwickelt und nicht von Dritten geändert wurde.

    Allerdings haben recht viele Anwendungen, die von großen Software-Herstellern entwickelt wurden, keine digitale Signatur. Kleinere Softwareschmieden „signieren“ ihre Produkte auch nur recht selten. Zudem gibt es auch Fälle, in denen digitale Zertifikate gestohlen und von Cyberkriminellen missbraucht wurden.

    Auf welche Weise lässt sich also Gewissheit darüber erlangen, dass eine unsignierte Datei oder auch ein Zertifikat selbst vertrauenswürdig ist? Die Lösung dieses Problems liegt in der Nutzung einer Wissensdatenbank, die Daten zu allen legitimen Software-Produkten enthält, und die von Entwicklern von Schutzsystemen zur Verfügung gestellt wird.

    Häufig ist die Datenbank der vertrauenswürdigen Software derart groß und wird so schnell aktualisiert, dass es nicht – wie im Fall von Antiviren-Datenbanken – möglich ist, aktuelle Daten in Form von Updates bereitzustellen. Hier greifen vielmehr Cloud-Technologien und dynamische Weiße Listen. Werden Informationen über ein Objekt benötigt, so wendet sich das Schutzsystem an die Cloud. Die Cloud teilt daraufhin mit, ob die angefragte Datei vertrauenswürdig ist oder nicht.

    Nachdem die Inventarisierung abgeschlossen und die Auswahl der vertrauenswürdigen Dateien getroffen wurde, kann jeglicher Code, der im System ausgeführt werden darf, als vertrauenswürdig angesehen werden, und folglich ist auch das gesamte System selbst vertrauenswürdig.

     

    Ist ein System vertrauenswürdig, so kann man davon sprechen, dass die vertrauenswürdigen Anwendungen – bei Abwesenheit von Kontakten mit der äußeren, nicht vertrauenswürdigen Umgebung – im System vertrauenswürdige Objekte erstellen, was wiederum die Eigenschaft der Vertrauenswürdigkeit des Systems im Ganzen nicht beeinträchtigt. Diese Eigenschaft erlaubt es uns, von dem System als von einer vertrauenswürdiger Umgebung zu sprechen

    Gewährleistung, Programme installieren und aktualisieren zu können

    Um entscheiden zu können, wie die Installation neuer und die Aktualisierung bestehender Programme gewährleistet werden kann, muss man sich zunächst einmal klar machen, auf welche Weise neue Anwendungen ins System gelangen. Meist werden neue Anwendungen aus dem Netz oder von externen Datenträgern geladen, daher ist es unmöglich zu garantieren, dass eine Datei, die von einer vertrauenswürdigen Anwendung erstellt wurde, die in der externen Umgebung verwendet wird, ebenfalls vertrauenswürdig ist. So kann der Browser beispielsweise eine vertrauenswürdige Anwendung sein, doch er kann für den Download von nicht vertrauenswürdigen Anwendungen aus dem Internet benutzt werden. Solche Anwendungen können nicht ohne weitere Überprüfung als vertrauenswürdig angesehen werden. Der Überprüfungsalgorithmus, der garantiert, dass eine Anwendung vertrauenswürdig ist, wird später beschrieben.

    Ist eine Anwendung bereits im System installiert und gilt diese als vertrauenswürdig, so wird eine neue Version der Anwendung, die aus einer vertrauenswürdigen Quelle geladen wurde, ebenfalls als vertrauenswürdig angesehen, weil sie in einer vertrauenswürdigen Umgebung empfangen wurde. Das ermöglicht Programmen, die bereits im System installiert sind, sich ungehindert zu aktualisieren, ohne dabei die Vertrauenswürdigkeit des Systems zu untergraben. So gibt es keine Probleme mit den Updates der installierten Software.

     

    Wie sieht es mit der Installation neuer Programme aus?

    Es gibt drei populäre Methoden zur Installation von Software:

    • Installation unter Verwendung eines Web-Installers.
    • Installation unter Verwendung eines einheitlichen Installationspakets.
    • Installation unter Verwendung eines fragmentierten Installationspakets.

    Im Fall des Web-Installers wiederholt sich die Logik der Updates von vertrauenswürdigen Programmen: Für das Schutzsystem ist es ausreichend zu wissen, dass das Installationsprogramm vertrauenswürdig ist und daher das Update von einer vertrauenswürdigen Webressource geladen wird. In diesem Fall werden alle Dateien, die im Verlauf des Installationsprozesses erhalten wurden, aufgrund des Hauptmerkmals der vertrauenswürdigen Umgebung ebenfalls als vertrauenswürdig angesehen.

    Wird ein einheitliches Installationspaket verwendet, muss man sich lediglich davon überzeugen, dass das Installationspaket vertrauenswürdig ist. Für die Installation des Installationspakets werden spezielle Installer-Programme verwendet, die Teil des Betriebssystems sind, unter anderem die Anwendung msiexec.exe. Und gerade weil diese Anwendung Teil des Betriebssystems ist, ist sie vertrauenswürdig. Wenn das Installationspaket, das vom Installer-Programm verwendet wird, vertrauenswürdig ist, so beeinträchtigen die Dateien, die aus dem entsprechenden Paket herausgezogen werden, die Vertrauenswürdigkeit der Umgebung nicht, und folglich können sie als vertrauenswürdig eingestuft werden.

    Verwendet der Installer zur Installation mehrere Dateien, z.B. im Falle einer Installation über CAB-Dateien, so wird dieses Szenario ebenfalls mit den Eigenschaften der vertrauenswürdigen Umgebung beschrieben: Wenn alle Dateien, die zur Installation benutzt werden, vertrauenswürdig sind, so sind die erhaltenen Dateien ebenfalls vertrauenswürdig.

    Nutzung von vertrauenswürdigen externen Quellen

    Wir haben das Problem mit den lokalen Installern gelöst, doch häufig wird Software aus dem lokalen Netz oder dem Internet geladen. Das Sicherheitssystem weiß nicht, ob die entsprechenden Objekte vertrauenswürdig sind oder nicht. Hinzu kommt, dass die Installer sich mit Internet-Ressourcen verbinden könnten, um zusätzliche Informationen für die Installation zu erhalten, doch die Kommunikation mit dem Netz verletzt die grundlegende Regel der vertrauenswürdigen Umgebung, da nicht bekannt ist, ob der Netzknoten vertrauenswürdig ist oder nicht.

    Dieses Problem kann folgendermaßen gelöst werden: Vom Hersteller der Lösung wird im Vorwege eine Liste der Netzknoten erstellt (sowohl lokaler als auch Internetknoten), die vertrauenswürdig sind. Bei einer Verbindung mit solchen Knoten verliert die Anwendung, die Teil der vertrauenswürdigen Umgebung ist, nicht die Eigenschaft der Vertrauenswürdigkeit und kann im System vertrauenswürdige Objekte erstellen.

    Wie aber kann die Liste der vertrauenswürdigen Netzknoten korrekt zusammengestellt und auch sichergestellt werden, dass die Knoten nicht kompromittiert sind? Dieses Problem löst jeder Anbieter von Default Deny-Lösungen aufgrund seiner Fachkenntnisse und eines fortwährenden Monitorings der Netzressourcen, die als vertrauenswürdig eingestuft wurden.

    Unterstützung der Integrität der vertrauenswürdigen Umgebung

    Nach dem Aufbau einer vertrauenswürdigen Umgebung und der Aktivierung des Modus‘ Default Deny besteht die wichtigste Aufgabe in der Unterstützung der Integrität der vertrauenswürdigen Umgebung. Es muss eine Garantie dafür geben, dass bestehenden Anwendungen nicht unter Umgehung des Schutzsystem geändert werden und keine neuen Anwendungen hinzukommen.

    Nehmen wir einmal an, das hier vorgeschlagene Schutzsystem wird von irgendeinem Unternehmen oder von einer großen Zahl von Computernutzern verwendet. Cyberkriminelle wissen, dass diese Anwender neue Schutzmethoden verwenden und daher die üblichen Mittel zum Start von Schadcode nicht funktionieren.

    Was wird also ein Online-Gangster tun, der an die vertraulichen Informationen des Anwenders kommen oder aber die Ressourcen des Computers nutzen möchte? Ganz sicher wird er nach anderen Wegen suchen, den Schadcode auszuführen, indem er versucht, das Schutzsystem zu umgehen. Am kritischsten an dieser Stelle ist die Ausnutzung von Sicherheitslücken in der vertrauenswürdigen Software.

    Bei erfolgreicher Ausnutzung einer Sicherheitslücke in der Software kann ein Krimineller die Eigenschaften der vertrauenswürdigen Umgebung gegen das Schutzsystem selbst verwenden: Da der vom Exploit ausgelöste Schadcode in einem vertrauenswürdigen Prozess ausgeführt wird, werden alle Aktionen, die von diesem Code ausgelöst werden, als vertrauenswürdig eingestuft. So wird beispielsweise nach dem Besuch einer schädlichen Website mit Exploit im Browser des Anwenders schädlicher Code ausgeführt. Dieser Schadcode läuft aber in einem vertrauenswürdigen Prozess, daher wird jede beliebige Aktivität, die in diesem Moment vom Browser verursacht wird, als erlaubt angesehen. Wenn ein Exploit allerdings versucht, eine geladene Schaddatei auszuführen, so wird der Start blockiert. Daher sind die Möglichkeiten des Schadcodes auf die Aktivität in dem infizierten Prozess reduziert. Um die Auswahl der möglichen Aktivitäten zu erweitern, wird der Cyberverbrecher versuchen, das Schutzsystem auszutricksen, indem er zum Beispiel den Bootsektor modifiziert oder einen Treiber installiert, der noch vor Ausführung des Schutzsystems gestartet wird. Dem Cyberkriminellen steht eine recht große Auswahl solcher Aktivitäten zur Verfügung, und alle führen auf die eine oder andere Weise zum Verlust von Anwenderdaten oder zur zielgerichteten Ausnutzung des Computers.

    Wie lässt sich dieses Problem lösen? Betrachtet man die vertrauenswürdigen Prozesse genauer, so stellt man fest, dass die in der Geschäftslogik der Anwendung begründeten Funktionen reichlich begrenzt sind und keine potentiell gefährliche Aktivität in ihr angelegt ist. Die Geschäftslogik des Browsers besteht beispielsweise in der Darstellung von Internet-Seiten und dem Download von Dateien. Aktionen wie das Ändern von Systemdateien oder die Modifikation des Bootsektors sind dem Browser grundsätzlich fremd. Die Geschäftslogik eines Texteditors liegt im Öffnen und Speichern von Textdokumenten, jedoch nicht im Speichern von neuen Anwendungen auf der Festplatte oder in deren Ausführung.

    Aus solchen Betrachtungen ergibt sich die Idee der Unterstützung der Integrität der vertrauenswürdigen Umgebung, die auf der Kontrolle der Aktivität potentiell angreifbarer Anwendungen fußt, wie etwa: Browser, IM-Clients, Office-Anwendungen, P2P-Clients, Dateimanager und andere. Für jede potentiell angreifbare Anwendung wird im System eine Liste von erlaubten Aktionen erstellt, die von den Entwicklern in der Anwendungslogik angelegt wurden. Andere Aktivitäten, die von den Entwicklern der Anwendung nicht vorgesehen wurden, werden vom Systemschutz blockiert.

    IM-Programmen sind beispielsweise Aktionen wie der Versand und Empfang von Daten über das Netz erlaubt, ebenso wie das Erstellen von Dateien auf der Festplatte mit einer darauffolgenden Überprüfung auf Vertrauenswürdigkeit sowie das Öffnen von bestehenden Dateien. Aktivitäten wie das Einschleusen von Code in andere Prozesse, die Änderung von Systemdateien und Abschnitten der Windows-Registrierung hingegen werden für Programme dieser Art verboten.

     

    Ein solcher Ansatz erlaubt es, die Möglichkeiten von Schadcode durch die Geschäftslogik einer angreifbaren Anwendung einzugrenzen, die für die Ausführung von schädlicher Aktivität im System nicht ausreichend ist.

    Empfang von Informationen über neue Anwendungen

    Was aber ist zu tun, wenn eine legitime Datei, die dem System nicht bekannt ist, aus unbekannter Quelle empfangen wurde, z.B. von einem Wechseldatenträger oder unter Verwendung des Dateiübertragungsdienstes Skype?

    Sobald das Schutzsystem Informationen darüber erhalten hat, dass versucht wird, eine neue Software zu starten, wendet es sich an die Cloud, die im Gegenzug mitteilt, ob die gegebene Datei vertrauenswürdig ist oder nicht. Ist die Anwendung vertrauenswürdig, so wird ihr Start erlaubt, ist die Anwendung der Cloud nicht bekannt oder ist sie nicht vertrauenswürdig, so wird der Start blockiert. Dieser Ansatz verleiht dem System zusätzliche Flexibilität, ohne die Grundidee einer vertrauenswürdigen Umgebung zu beeinträchtigen oder den Schutz des Systems zu verringern.

    Dieselbe Aktion führt das Schutzsystem beim Start einer Anwendung durch, die mit einem unbekannten digitalen Zertifikat signiert ist: Das Schutzsystem wendet sich an die Cloud und erhält Angaben darüber, ob die digitale Signatur vertrauenswürdig ist oder nicht.

    Fazit

    Im ersten Teil unseres Artikels haben wir einen Schutzansatz betrachtet, der das hohe Sicherheitsniveau, das Lösungen des Typs Default Deny bieten, mit dem Maß an Flexibilität vereint, das bei der täglichen Arbeit mit dem Computer unerlässlich ist. Dem beschriebenen Ansatz liegt das Konzept des Aufbaus und der darauffolgenden Unterstützung einer vertrauenswürdigen Umgebung zugrunde.

    Der hier vorgeschlagene Schutzansatz ist sowohl für Heimanwender als auch für Organisationen, ganz gleich welcher Größe, anwendbar. Die Aufgabe des Aufbaus und der Unterstützung einer vertrauenswürdigen Umgebung wird von dem Schutzsystem selbst erfüllt, wobei es sich an den folgenden Punkten orientiert:

    • Ergebnisse einer Inventarisierung aller Dateien im System;
    • Prinzip der Vererbung von Vertrauenswürdigkeit (eine von einer vertrauenswürdigen Anwendung erstellte Datei ist selbst auch vertrauenswürdig);
    • aus der Cloud erhaltene Informationen über die Reputation von Dateien;
    • Listen vertrauenswürdiger digitaler Signaturen;
    • Listen vertrauenswürdiger Websites im Internet.

    Dabei ersetzt das Konzept einer vertrauenswürdigen Umgebung nicht den Einsatz von AV-Schutztechnologien, deren Anwendung in Kombination mit einer vertrauenswürdigen Umgebung den Aufbau eines effektiven Computer-Schutzsystems ermöglicht.

    Keine Theorie und kein Ansatz sind von Bedeutung, wenn sie nicht praktisch umgesetzt werden. Über die Umsetzung des Konzepts einer vertrauenswürdigen Umgebung durch Kaspersky Lab, das diesen Ansatz als erstes Unternehmen im Produkt Kaspersky Internet Security 2014 angewendet hat, berichten wir hier.

    Ähnliche Beiträge

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.