PatchGuard = Ende von Rootkits?
-
Jochen Kalmbach schrieb:
Und im Release geht dach nicht mehr... es gilt dann nur für *ein* Bootvorgang... dann ist es wieder aktiviert...
Heisst das dass der Treiber beim nächsten mal booten dann nichtmehr startet, oder bloss dass er sich dann nicht installieren lässt?
Aus diesem Grunde finde ich die Strategie von MS auch sehr gut, obwohl ich mich am Anfang auch sehr unwohl gefühlt habe...
Ich finde die Strategie von MS immer noch Kacke. Dass es Default so ist, ist gut, dagegen sag' ich ja nix.
Dass es aber überhauptgarnichtmehr (sinnvoll) geht, finde ich Kacke^3.Ganz einfach deswegen, weil es dadurch nicht nur bösen Rootkit Programmierern schwer gemacht wird einen Treiber zu installieren, sondern auch genauso diverse Open-Source/Freeware Projekte darunter leiden.
-
ich finde IceMatrix hat recht. Wenn man ein *vernünftiger* Administrator ist, wird man auch wissen, welche Treiber man installieren sollte und welche nicht. Anstatt den Usern mal mehr Freiheit zu geben, wird man immer mehr eingeschränkt.
Und zum Schutz vor Rootkits naja kann man sehen wie man will, wenn man wirklich ne fremde Datei aufmacht oder sonst was, ist man auch durch ein gut geschriebenes Programm im User Mode platt. Windows entwickelt sich wirklich nur noch zu nem OS wo man noch paar klicki bunti Fenster erstellen kann und kaum noch Zugriff auf innereien hat. Wenn das so weitergeht bin auch ich als Windows User bald bei Ubuntu
-
@hustbaer: Die Treiber lassen sich natürlich nicht starten, wenn sie nicht signiert sind und normal gebootet wird...
@GhostRider: Wenn Du mal eine große Server-Farm administrieren musstest und Verfügbarekietn von > 99.9 Prozent garantieren musst, wirst Du nicht mehr so denken... ein Admin installiert nicht, was er für "gut" empfindet (wie soll man sowas entscheiden), sondern was zertifiziert ist; und wenn es Probleme gibt genau gesagt werden kann, wer schuld ist... und das geht nun mal mit der Zertifizierung sehr gut

Das Problem mit OpenSource-Projekte sehe ich auch... wobei jedem freigestellt ist, der so einen Treiber einsetzen will, dieses natürlich selber zertifizieren/signieren kann... aber vermutlich wird das niemand machen... und die Anzahl der OpenSource-Projekte wird hier natürlich schrumpfen...
-
@GhostRider: Wenn Du mal eine große Server-Farm administrieren musstest und Verfügbarekietn von > 99.9 Prozent garantieren musst, wirst Du nicht mehr so denken... ein Admin installiert nicht, was er für "gut" empfindet (wie soll man sowas entscheiden), sondern was zertifiziert ist; und wenn es Probleme gibt genau gesagt werden kann, wer schuld ist... und das geht nun mal mit der Zertifizierung sehr gut
Der Admin kann wohl entscheiden, was in seinem Kernel laufen soll.
Ein Admin, der große Server-Farmen administriert, darf sich auf zertifizierte Treiber beschränken.Ein Hobby-Gamehacker wie ich, der per Kernelmodul Funktionen diverser Anticheat-Engines umgehen möchte sollte aber auch das Recht zum basteln haben. Ich bin mir doch vollkommen im Klaren, dass Instabilitäten etc auf meine Kappe gehen.
Es sollte halt einen Switch geben, den man von mir aus beim Booten aktivieren kann, der das Verhalten steuert...
-
Jochen Kalmbach schrieb:
... wobei jedem freigestellt ist, der so einen Treiber einsetzen will, dieses natürlich selber zertifizieren/signieren kann...
Wie kann man dies eigentlich machen? Gibt es da irgendwo Anleitungen dazu? Gerade als Entwickler wäre dies doch um einiges einfacher als über den Testmode.
Jochen Kalmbach schrieb:
... aber vermutlich wird das niemand machen...
Wieso nicht?
Grüssli
-
@Jochen: ich verstehe deine Argumentation auch nicht ganz. Für einen Admin reicht es doch wenn er...
Sein System so einstellen kann, dass nur zertifizierte Treiber installiert werden können (natürlich nur so lange diese Policy nicht wieder umgestellt wird)
Vor dem Installieren eines unsignierten Treibers eine Warnung bekommt - als "Fallback", falls ein Kollege die oben erwähnte Option umgestellt hat
Er über eine Group-Policy für Mitglieder der Domäne die oben erwähnte Einstellung erzwingen kann, d.h. den "kleinen lokalen" Admins diese Möglichkeit wegnehmen kann
Die Signatur bestehender Treiber anzeigen lassen kann - idealerweise auch als Report über alle Treiber die installiert sind.Alles was darüber hinaus geht, ist Bevormundung seitens Microsoft.
-
Ja, ihr habt vermutlich recht...
Wir reden jetzt also nicht mehr über Server, sondern Enduser...Wenn man dies aus Security-Sicht sieht, hat man trotzdem ein Problem... wenn nämlich ein Benutzer die Einstellung ändern kann, dann kann es auch ein "Trojaner" auf dem Rechner... somit wird es vielleicht auch umgestellt, auch wenn es der Benutzer nie gewollt hat.... das ist vermutlich das was MS verhindern wollte (und den schönen Nebeneffekt, dass man die Schuldigen immer findet).
Aber aus Super-Duper-Programmierer-Sicht ist es natürlich schlecht. Da aber 95% aller Computer Benutzer nicht wissen, was sie tun, ist es so ok

Aber darüber lässt sich vermutlich immer anderer Meinung sein...
Ich hab zumindest bei mir noch keinen Bedarf gesehen, einen Unzertifizierten/unsignierten Treiber auf meinen Win7x64 zu installieren
-
Jochen Kalmbach schrieb:
Ich hab zumindest bei mir noch keinen Bedarf gesehen, einen Unzertifizierten/unsignierten Treiber auf meinen Win7x64 zu installieren
Tja, ich schon. Zum Beispiel habe ich ein Freeware Projekt installiert, welches mir zusätzliche virtuelle Joysticks simuliert hat. Und wie sieht das mit anderen Treibern für Dateisysteme aus? Müssen die nun auch signiert sein? Ein ext3 oder ext4 Treiber zum Beispiel?
Grüssli
-
Bei mir wars ne zeitlang für ShrewVPN nötig...
-
@Jochen Kalmbach:
Sagmal, ganz doofe Frage (doof, weil ich selbst ein Windows 7 x64 betreibe): was passiert eigentlich, wenn man als lokaler Admin einen Treiber installieren möchte, der zwar signiert ist, aber bloss mit einem selbst-signierten Zertifikat (kein VeriSign o.ä.), und auch nicht "zertifiziert"?Geht das wirklich nicht ohne systemweite Änderungen, oder kommt dann einfach statt einem weissen Fenster ein oranges?
Bzw. was müsste man machen (die am wenigsten "intrusive" Lösung), damit man so einen Treiber installiert bekommt? Und was hätte das für Folgen?
Ich hab' dummerweise grad keinen solchen Treiber mit dem ich es ausprobieren könnte, und auch nicht wirklich Lust mir selbst einen Dummy-Treiber zu schreiben, kompilieren und signieren, nur für diesen Versuch.
-
Soweit ich es verstanden habe, musst Du Dein Zertifikat im System einfach als "Trusted" eintragen, dann wird der Treiber geladen.
Aber das mit der Treiber Zertifizierung ist mächtig komplex... es gibt wohl auch Ausnahmen bzgl. DRM... da wird das ganze noch komplexer...
Wenn es Dich genauer interessiert, dann solltest Du Dich mal bei osronline.com anmelden... dort gibt es einige sehr interessante Artikel über dieses Thema. Auch ist diese Quelle *die* Quelle für Treiber Programmierung.
-
In der aktuellen c't gibt es auch zufälligerweise ein Artikel drüber...
-
also würdet ihr jetzt meinen es lonhnt sich noch Kernel mode programmierung zu lernen? Kann man wenigstens apis noch hooken wie ZwCreateFile oder so?
-
apiredirector schrieb:
also würdet ihr jetzt meinen es lonhnt sich noch Kernel mode programmierung zu lernen? Kann man wenigstens apis noch hooken wie ZwCreateFile oder so?
Wenn du Rootkits schreiben möchtest lohnt es sich nicht.
Wenn es nützliche Software für einen kleinen, technisch versierten Personenkreis ist, dann schon.
-
ok danke, aber nochmal konkret die Frage:
sind hooks noch erlaubt wie hooks auf ZwCreateFile oder CreateProcess(kernel äquivalent) usw. oder stehen die auch unter protection?
-
apiredirector schrieb:
ok danke, aber nochmal konkret die Frage:
sind hooks noch erlaubt wie hooks auf ZwCreateFile oder CreateProcess(kernel äquivalent) usw. oder stehen die auch unter protection?Die Protection besteht darin, dass du nicht einfach Willy-Nilly deinen Treiber ins System laden kannst.
Sobald du das getan hast, kannst du machen was du willst.
-
Nein... eben nicht

Siehe:
http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.aspx
http://www.microsoft.com/whdc/driver/kernel/64bitPatching.mspxKernel-Hooking is Verboten (war es schon immer)... und wird dadurch (einigermassen) verhindert...
Aber es gibt natürlich immer jemand den das stört:
http://www.uninformed.org/?v=3&a=3&t=pdf