PatchGuard = Ende von Rootkits?
-
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