Vistas Integrity Level, Teil 2

Seite 2: Universeller Objektschutz

Inhaltsverzeichnis

Bisher war zwar überwiegend von Dateien die Rede, aber der Zugriffsschutz der Integrity Levels reicht wesentlich weiter und erstreckt sich auf alle möglichen Objekte im System. So gilt das für Dateien Gesagte genauso für die Registry, einschließlich Container- und Objektvererbung. Mit der Kommandozeilenoption -k zeigt AccessChk Zugriffsrechte in der Registry statt im Dateisystem.

Auch Prozesse sind Objekte mit einem Security Descriptor, der einzelne Zugriffsrechte festlegt.

Auch Prozesse sind Objekte. Sie nehmen eine Sonderrolle ein, weil sie einerseits als Subjekte agieren können, wobei ihr Access Token zum Zuge kommt, und andererseits als Objekte einen Security Descriptor besitzen, der beschreibt, was andere mit ihnen anstellen dürfen. Wenn also ein Prozess einem anderen in den Speicher gucken möchte, dann kommt es auf das Access Token des handelnden Prozesses und den Security Descriptor des zu behandelnden Prozesses an, ob das erlaubt wird.

Im Process Explorer verstecken sich die Informationen aus dem Security Descriptor eines Prozesses hinter dem Knopf "Permissions" auf dem Reiter "Security". Von dort gehts mit "Erweitert" zu einem Dialog, der auf dem Reiter "Berechtigungen" die DACL des Prozesses anzeigt. Durch "Bearbeiten" eines Eintrags sieht man die Rechte dann endlich im Detail - jetzt wieder auf Englisch.

Den Integrity Level in der SACL eines Prozesses und seine Zugriffs-Flags verschweigt der Process Explorer allerdings. Diese Informationen bringt AccessChk zu Tage, indem man es mit

accesschk -p *

aufruft, und zwar am besten mit Administratorrechten, damit es auch an die Systemprozesse herankommt. Wie man sieht, haben alle Prozesse nicht nur "No Write Up" gesetzt, sondern auch "No Read Up". Das verhindert, dass eventuelle über den Internet Explorer eingeschleuste Trojaner im Speicher anderer Prozesse herumspionieren und dort vielleicht Passwörter klauen.

Um vertrauliche Daten vor den Augen des Internet Explorer zu verstecken, kann es ganz interessant sein, auch im Dateisystem die Zugriffs-Flags "No Read Up" und "No Execute Up" zu setzen. Mit Bordmitteln ist das schwierig: Icacls kann sie zwar anzeigen, bietet aber keine Option zum Setzen. Man kriegt es zwar zur Not hin, indem man sich in die Security Descriptor Definition Language SDDL einfuchst, die ACL mit der Icacls-Option /save abspeichert, mit einem Unicode-fähigen Editor - Notepad geht nicht - manipuliert und mit /restore wiederherstellt, doch komfortabler gehts mit dem Utility Chml von Mark Minasi.

Auf einer mit Administratorrechten gestarteten Kommandozeile setzt der Befehl

chml geheim -i:m -nw -nr -nx

das Verzeichnis "geheim" auf den Integrity Level Medium mit Zugriffs-Flags No Write Up, No Read Up und No Execute Up. Anders als Icacls aktiviert Chml standardmäßig die Vererbung; die Option -noinherit unterbindet dies auf Wunsch. Mit einem wie oben beschrieben auf Integrity Level Low gestarteten Kommandointerpreter können Sie sich überzeugen, dass Sie in dieses Verzeichnis jetzt nicht mehr hineinsehen können.