13. August 2007

Vista Treiber Teil 1

Category: Hacking,Produkte — Christian @ 17:47

Microsoft hat mit Vista im 64-Bit Modus strenge Richtlinien eingeführt, welche Treiber von Vista in den Kernel geladen werden und welche nicht. Die wichtigste Anforderung von Kernel-Mode Treibern ist, dass alle Treiber von Microsoft digital signiert werden müssen (KMCS – Kernel Mode Code Signing). Die vollständigen Anforderungen beschreibt Microsoft in den Driver Signing Requirements for Windows.

Microsoft begründet diese Anforderung damit, ihre Kunden vor bösartigem Programmcode schützen zu wollen. Kernel-Mode Rootkits, die nicht über eine digitale Signatur verfügen, werden nicht mehr in den Vista Kernel geladen und können daher auch ihre Schadwirkung nicht mehr entfalten. Im Grunde eine sinnvolle Funktion. Aber mit einem Haken. Microsoft lässt den Kunden keine Wahl mehr, ob sie andere Treiber vielleicht doch laden wollen. Gut, es gibt eine spezielle Boot-Option mit der man diese Anforderung deaktivieren kann, aber diese Option muss bei jedem Neustart mit angegeben werden. Außerdem funktioniert eine Reihe anderer Software (hauptsächlich Mediensoftware) nicht, wenn Vista ohne KMCS gestartet wurde. Praktisch ist daher nicht wirklich nutzbar. Bei Windows XP möchte das Betriebssystem ebenfalls einen signierten Treiber und wenn die Signatur fehlt, bekommt der Anwender einen Hinweis, kann sich aber entscheiden den Treiber doch noch zu installieren. Bei Vista geht nichts mehr.

Die Firma Linchpin Labs hat nun am 20.07.2007 einen signierten Treiber namens Atsiv veröffentlicht, der mit einem eigenen PE-Loader ausgestattet ist und damit beliebige, auch unsignierte Treiber und Bibliotheken in den Vista-Kernel nachladen kann. Aus der Beschreibung von Linchpin Labs:

Atsiv is a command line tool that allows the user to load and unload signed or unsigned drivers on 32 bit (x86) and 64 bit (x64) versions of Windows XP, Windows 2K3 and Windows Vista. Atsiv is designed to provide compatibility for legacy drivers and to allow the hobbyist community to run unsigned drivers without rebooting with special boot options or denial of service under Vista.

Als Anwender oder Entwickler ist das eine praktische Sache. Man kann so Treiber für eigene Hardware entwickeln oder andere Erweiterungen programmieren, ohne auf die Signatur von Microsoft angewiesen zu sein. Das hilft, weil es eine Reihe von Treibern auch für aktuelle Hardware gibt, die nicht digital signiert ist. Diese Hardware kann vom Anwender mit Hilfe des Atsiv-Moduls genutzt werden. Das hilft auch, weil es die geschlossene Vista-Plattform für Funktionen öffnet, die Microsoft vielleicht nicht vorgesehen hat, die ich als Anwender vielleicht aber machen möchte.

Bereits am 03.08.2007 hat Microsoft reagiert. Scott Field, der Windows Security Architect schreibt in seinem Blog, welche Maßnahmen Microsoft dagegen ergriffen hat: Das an Linchpin Labs ausgestellte Zertifikat wurde am 02.08.2007 zurückgezogen. Auf Drängen von Microsoft hat Verisign das Zertifikat auf die Revocation List gepackt, das Zertifikat wird folglich nicht mehr anerkannt. Das Microsoft Sicherheitsteam hat das gesperrte Zertifikat zusätzlich in die Kernel-interne Sperrliste aufgenommen, die mit dem nächsten Update aktualisiert wird. Das Update der internen Sperrliste erfordert allerdings einen Systemreboot. Und damit nicht genug, der Atsiv-Treiber wird von Microsoft Defender als Schadprogramm eingestuft und vom System des Benutzers entfernt.

Spätestens jetzt bekomme ich Bauchschmerzen. Es ist eine Sache, wenn z.B. mein Virenscanner ein Programm wie Cain & Abel, das sich auf meinem Rechner befindet, als Schadprogramm charakterisiert und mir anbietet es zu entfernen. Die Wahl darüber bleibt schließlich weiterhin bei mir und ich kann meinem Virenscanner beibringen dieses (und andere Hackingtools) auf meinem Rechner zu ignorieren. Vista gibt mir diese Möglichkeit nicht mehr. Das Zertifikat wurde gesperrt und der Treiber ist damit nicht mehr funktionsfähig. Nur um das klarzustellen, eigene Treiber im Betriebssystem sind eine vollkommen legale und legitime Angelegenheit. Dabei handelt es sich weder um einen Urheberrechtsverstoß (solange die verwendete Vista-Version legal erworben wurde), noch um einen Lizenzverstoß (da 3rd-Party Treiber ja generell erlaubt sind). Trotzdem verbietet Microsoft es mit über technische Maßnahmen, das Betriebssystem so zu nutzen wie ich möchte. Ohne, dass ich gefragt wurde, werde ich als Anwender bevormundet.

Oder mit den Worten von Peter Gutmann: the longest suicide note in history.