Vista: Mehr Sicherheit

02.03.2007 von Martin Kuppinger
Das Thema Sicherheit bewegt Microsoft ebenso wie die Anwender mehr als jedes andere Thema. Daher ist es auch nicht überraschend, dass gerade bei Windows Vista sehr viel Arbeit in den Bereich Sicherheit gesteckt wurde – von Maßnahmen im Entwicklungsprozess bis hin zu neuer Funktionalität.

Es ist mittlerweile vier Jahre her, dass Microsoft seine Idee des Trustworthy Computing angekündigt hat. Die Zielsetzung dabei ist, eine Umgebung zu schaffen, in der verschiedene Systeme in sicherer Weise miteinander kommunizieren können. Um das zu erreichen, sind Maßnahmen auf mehreren Ebenen erforderlich:

Als Ergebnis ist eine schon vom Design her sichere Betriebssystemplattform erforderlich, die Anforderungen wie die Isolation von Code vor Angriffen, mehrstufige Authentifizierungsmechanismen, effiziente Lösungen für die Zugriffskontrolle und ein anwendungsübergreifendes Auditing unterstützt.

Security Development Lifecycle

Die Trustworthy Computing-Initiative wurde von Microsoft als Konsequenz auf die vielfältige und durchaus berechtigte Kritik an den vielen Sicherheitsmängeln in Windows-Betriebssystemen entwickelt. Ein wesentliches Element darin ist der Security Development Lifecycle (SDL), mit dem in jeder Phase der Softwareentwicklung darauf geachtet wird, dass der erzeugte Code so sicher wie möglich ist. Zwar gilt auch weiterhin das Axiom, dass ab einer gewissen (relativ früh erreichten) Komplexität von Software keine Fehlerfreiheit mehr zu erreichen ist und dass es damit auch keinen zu 100% sicheren Code geben kann, doch durch die richtigen Maßnahmen lässt sich das erreichbare Niveau der Sicherheit deutlich erhöhen. Windows Vista ist das erste Clientbetriebssystem (und entsprechend Longhorn das erste Serverbetriebssystem), das vollständig entsprechend dieses Lifecycles entwickelt wurde. Einige andere Produkte wurden bereits nach dem SDL entwickelt, ebenso wie Service Packs für die Windows-Betriebssysteme.

Im Rahmen des SDL wurden unter anderem mehr als 1.400 Modelle möglicher Sicherheitsrisiken definiert und getestet. Microsoft arbeitet mit einem eigenen Team von „in-house hackern“, die permanent nach Schwachstellen suchen. Daneben hat Microsoft eigene Tools entwickelt, um systematisch nach Fehlern zu suchen, die von bestimmten definierten Angriffsvarianten genutzt werden können. Insbesondere wurde darauf geachtet, dass alle Puffer, die von Funktionen des Betriebssystems genutzt werden, beschrieben sind, um diese Funktionen überprüfen zu können.

Die Änderungen gehen so weit, dass über 100 interne APIs entfernt und durch neue, sichere Varianten ersetzt wurden. Diese Anstrengungen werden dazu führen, dass vor allem wiederkehrende Schwachstellen wie die Anfälligkeit des Betriebssystems gegenüber Angriffen, die Pufferüberläufe nutzen, seltener werden. Dennoch wird es auch damit kaum gelingen, ein völlig sicheres Betriebssystem zu schaffen – weil Fehler passieren und weil es dazu auch noch anderer Maßnahmen bedarf.

Windows Service Hardening

Eine dieser Maßnahmen ist das Windows Service Hardening. Die Dienste sind bei Windows ein beliebtes Angriffsziel, da sie in der Regel mit hohen Berechtigungen – häufig als lokales Systemkonto mit administrativen Rechten – ausgeführt werden. Ein erfolgreicher Angriff auf einen solchen Dienst gibt dem Angreifer entsprechend volle administrative Berechtigungen zumindest für das lokale System.

Bei Windows Vista wurde daher das Konzept der eingeschränkten Dienste (restricted services) eingeführt. Die eingeschränkten Dienste können mit einem Minimum an Berechtigungen ausgeführt werden, und ihre Aktivitäten sind auf die lokale Maschine oder das Netzwerk beschränkt. Im Rahmen dieses Konzepts wird beschrieben, welche Privilegien welche Dienste benötigen, welche Regeln für den Zugriff auf Systemressourcen gelten und welche ein- und ausgehenden Ports verwendet werden dürfen. Die Einhaltung dieser Regeln wird von anderen Systemkomponenten wie der Windows Firewall überwacht.

Die Funktionalität ist für den Endanwender und Administrator weitgehend transparent, weil die Einstellungen für die Dienste von Microsoft bzw. Drittanbietern vorgenommen werden.

Wie so oft bei solchen Neuerungen wird es allerdings einige Zeit dauern, bis dieses Konzept auf breiter Basis die erforderliche Akzeptanz gefunden hat. Die Problematik liegt darin, dass zwar Microsoft selbst seine Dienste entsprechend beschreiben und damit schützen kann, was bei Windows Vista auch bei den zentralen Diensten der Fall ist. Bis aber alle Dritthersteller von Anwendungen ihre Dienste entsprechend modifiziert haben, wird noch einige Zeit vergehen. Zudem ist das Konzept aus Gründen der Kompatibilität optional – ein Dienst kann also auch weiterhin ohne die zusätzlichen Schutzmechanismen des Windows Service Hardenings betrieben werden.

Hardwareschutz

Schon beim Service Pack 2 für Windows XP und beim Service Pack 1 für den Windows Server 2003 wurde die Unterstützung der so genannten NXTechnologie von Prozessoren eingeführt, mit der die Hardware über Zugriffe auf Speicherbereiche wacht. Diese Funktionalität wurde bei Windows Vista noch ausgebaut. Anwendungsentwickler können ihre Programme als NX-konform markieren. Damit werden die von diesen Anwendungen genutzten Speicherbereiche auch bei der 32-Bit-Version von Windows Vista durch die NXHardware – soweit vorhanden – geschützt.

Neu ist auch das Konzept der ASLR (Address Space Layout Randomization), mit dem gängige Systemkomponenten beim Start einem zufällig unter 256 möglichen Bereichen ausgewählten Speicherblock zugeordnet werden. Damit werden Angriffe schwieriger, weil es nicht mehr so einfach vorhersagbar ist, wo sich welche Systemkomponente im Speicher gerade befinden.

Kernel-Schutz bei 64-Bit-Systemen

Bei 64-Bit-Systemen gibt es weitere Schutzmechanismen. Mit der Kernel Patch Protection wird verhindert, dass Kernel-Module durch nicht autorisierte Software ausgetauscht werden können. Außerdem müssen alle Kernel-Module und Treiber digital signiert werden.

Microsoft hat das nur für die 64-Bit-Systeme umgesetzt, weil die dadurch erforderlichen Änderungen in der Programmierung bei der vergleichsweise geringen Anzahl von 64-Bit-Anwendungen mit Kernel-Modulen und Treibern relativ leicht umzusetzen sind und frühzeitig – auch schon für Windows XP und den Windows Server 2003 – kommuniziert werden konnten. Für die 32-Bit-Versionen von Windows gibt es dagegen so viel Software von Drittherstellern, dass eine solche Umstellung zu vielen Kompatibilitätsproblemen mit Anwendungen führen würde.

Zugriffschutz mit User Account Control

Eines der größten Probleme für die Sicherheit ist, dass sehr viele Benutzer mit vollen administrativen Berechtigungen angemeldet sind und Angreifer bei erfolgreichen Angriffen dann auch die volle Kontrolle über das angegriffene System erhalten.

Mit dem Ansatz der User Account Control (UAC) versucht Microsoft, das Problem zu minimieren. Dabei werden die Standardprivilegien von Benutzern für normale Zugriffe genutzt. Falls administrative Aktivitäten erfolgen, werden die Benutzer – soweit sie überhaupt höhere Rechte erhalten dürfen – gefragt, ob sie bestimmte Aktivitäten mit erhöhten Berechtigungen durchführen möchten (Bild 1).

Bild 1: Die User Account Control fragt, bevor Anwendungen mit erhöhten Berechtigungen ausgeführt werden.

Damit können beispielsweise auch Administratoren nun mit einem Benutzerkonto arbeiten. Solange sie Standardaufgaben wie den Zugriff auf ihre E-Mails durchführen, arbeitet das System mit eingeschränkten Berechtigungen. Falls administrative Aufgaben ausgeführt werden müssen, wird in den Modus mit höheren Berechtigungen geschaltet.

Die UAC ist ein Verfahren, das einen Kompromiss zwischen der Sicherheit und der Nutzbarkeit des Systems sucht. Grundsätzlich kann man auch heute schon unterschiedliche Benutzerkonten definieren und beispielsweise einzelne administrative Anwendungen mit Ausführen als im Kontext eines anderen Benutzers starten. Das ist aber unbequem und wird daher wenig genutzt. Mit der UAC erfolgt kein Wechsel zwischen Benutzerkonten. Vielmehr arbeitet das System in den meisten Situationen mit reduzierten Privilegien und wechselt nur in Ausnahmefällen in einen Modus mit umfassenderen Berechtigungen.

Der Ansatz der UAC wird derzeit noch optimiert. Die Zielsetzung ist dabei, mit möglichst wenigen Abfragen an Benutzer auszukommen, gleichzeitig aber sicherzustellen, dass kritische Aktivitäten im System, die administrative Berechtigungen erfordern, ausschließlich mit einer Bestätigung erfolgen und damit auch nicht mehr von einem Angreifer ohne Sichtbarkeit für den Benutzer durchgeführt werden können. Das Konzept werden wir in einer der folgenden Ausgaben von Expert’s inside Windows NT/2000 näher betrachten.

Neue Architektur für die Anmeldung

Sehr grundlegend adressiert Microsoft das Thema der Authentifizierung. Seit der ersten Windows NT-Version gibt es die GINA (Graphical Interactive Network Authentication), eine Komponente, die von Entwicklern erweitert werden kann. Eine der Schwachstellen dabei ist aber, dass sich dort einerseits zusätzliche Authentifizierungsmechanismen wie biometrische Verfahren nur schwer integrieren lassen und zudem nicht mehrere GINAs genutzt werden können – und damit nicht mehrere unterschiedliche Authentifizierungsverfahren unterschiedlicher Anbieter kombinierbar sind.

Microsoft möchte mit Vista und Longhorn die Nutzung von Smartcards für die Authentifizierung stark vorantreiben. Das macht es erforderlich, dass unterschiedliche Anmeldeverfahren einfach kombiniert werden können. Um dieses Problem zu adressieren, können nun unterschiedliche Credential Provider – also Komponenten, die Authentifizierungsinformationen liefern – eingebunden und kombiniert werden. Über eine neue API können Anwendungen für die Authentifizierung realisiert werden. Mit den Umstellungen wird es einfacher, zusätzliche Authentifizierungsmechanismen einzubinden.

Zusätzlich hat Microsoft auch die Unterstützung von Smartcard-Infrastrukturen verbessert. Es wird nun unter anderem mit einem Basis-CSP (Cryptography Service Provider) gearbeitet, der alle Basisfunktionen für den Umgang mit Smartcards bereitstellt und damit den Implementrierungsaufwand für Drittanbieter reduziert.

Windows Defender und Windows Firewall

Mit dem Windows Defender hat Microsoft erstmals auch eine eigene Anti Spyware-Funktion in das Betriebssystem integriert (Bild 2). Damit wird, zusammen mit der Windows Firewall, ein Basisschutz der Systeme geboten. Der Windows Defender kann auch mit anderen Lösungen für den Schutz von Systemen zusammenarbeiten. Microsoft wird die Lösung auch als kostenloses Download für alle Betriebssysteme ab Windows 2000 bereitstellen.

Bild 2: Der Windows Defender schützt Systeme vor kritischen Anwendungen.

Eine der Funktionen des Windows Defender ist der Software Explorer (Bild 3). Mit diesem lassen sich alle laufenden Anwendungen analysieren. Zu den Anwendungen werden umfassende Informationen geliefert, mit denen man sehr viel einfacher als bisher erkennen kann, um was für eine Anwendung es sich eigentlich handelt. Das Problem ist derzeit ja häufig, dass Software ausgeführt wird, bei der man gar nicht mehr weiß, von wem sie eigentlich stammt. Mit dem Software Explorer können etwas erfahrenere Benutzer das nun aber relativ leicht herausfinden.

Bild 3: Mit dem Software Explorer können Details zu Software ermittelt werden.

Funktional deutlich erweitert wurde die Windows Firewall. Sie unterstützt nun unter anderem sowohl die Filterung eingehender als auch ausgehender Pakete. Damit kann beispielsweise erkannt werden, dass ein Systemdienst versucht, nicht zugelassene Pakete über das Netzwerk zu senden.

Mit einem weiteren Tool lässt sich fehlerhafte Software von Systemen entfernen. Es war bisher noch ein Add-On und ist nun standardmäßig Teil des Betriebssystems.

Internet Explorer 7

Auch beim Internet Explorer 7, der – wie der Windows Defender und andere Komponenten – auch für ältere Windows-Versionen verfügbar wird, gibt es viele Verbesserungen zugunsten der Sicherheit. Das beginnt damit, dass direkt beim ersten Start gefragt wird, ob der automatische Filter gegen das Phishing aktiviert werden soll (Bild 4). Es gibt aber noch etliche weitere Verbesserungen:

Bild 4: Beim Internet Explorer 7 gibt es nun einen Phishing- Filter.

Weitere Maßnahmen

Eine weitere wichtige Neuerung ist der geänderte Ansatz für den Schutz von Datenträgern. Mit der BitLocker Drive Encryption steht ein hardwarebasierender Mechanismus für die Verschlüsselung von Datenträgern zur Verfügung, der auf dem TPM (Trusted Platform Module) 1.2 basiert. Der Mechanismus ist eng mit dem Active Directory integriert.

Dieser Mechanismus bedeutet aber nicht, dass es nun kein EFS (Encyrpting File System) mehr gibt. Letzteres ist aber eine reine Softwarelösung, die zukünftig vor allem für Systeme ohne TPMHardware von Bedeutung sein wird. Auch findet man im Detail Verbesserungen bis hin zur Client Side Encryption, mit der Dateien bereits beim Vista-Client verschlüsselt werden, bevor sie auf Longhorn-Server übertragen werden.

Neu ist auch, dass der Client für die Microsoft Rights Management Services (RMS) nun standardmäßig bei Windows Vista mitgeliefert wird. Microsoft hat zudem die Programmierbarkeit der RMS deutlich verbessert. Schließlich ist noch die bereits im Artikel zu den geänderten Funktionen der Gruppenrichtlinien beschriebene USB Device Control erwähnenswert.