TechEd2008: Vista Security Weirdness MIC, UIPI, Protected Mode IE

CLI402
Aron Margosis

Vorab: Sorry für die chaotische MItschrift – Aron versteht die Dinge die er sagt (ich nicht), damit ist die Mitschrift dementsprechend…… Aber sehr sehr interessante Insights zum Thema Security unter Vista – diese Dinge fallen einem User nicht auf, verhindern aber elegant viele böse Dinge !

 

Kurze Demo zu Beginn:

Ich habe eine App, die unter dem StandardUser versucht, ein File unter C:Windows zu schreiben.
Geht ohne Fehlermeldung (im Gegensatz zu XP), dieser Schreibzugriff wird aber virtualisiert und der Schreibzugriff liegt im User Profile. Jedes Mal wenn die App versucht auf diese Datei zuzugreifen, bekommt sie das File aus diesem Userverzeichnis…

 

MIC: Mandatory Integrity Control
Access Check:
3 Inputs: User, Object, requested Access

User ist ein Token, das sagt, wer ich bin

Am Object habe ich eine DACL, die sagt, was wer darf

Who am I war bis jetzt basierend an seiner Identity – unabhängig von der App

d.h. ein MS Money hat den gleichen Zugriff wie der IE, weil beide unter dem gleichen User laufen

 

MIC erweitert das Zugriffsmodell um die Trustworthy der Applikation

d.h. wenn Apps less trustworthy haben, können diese nicht höher eingestufte Apps verändern und können nicht in protected Folder zugreifen

Jedes Object hat einen Integrity Label

ein Prozess hat einen INtegrity Level (IL)

ist der Label höher als der Level – kein Zugriff

4 Levels:

  • System
  • High – Elevated user apps
  • Medium – Normal user apps - default
  • Low – IE…

Integrity Label

Jedes Object hat einen Label – beinhaltet Level und Policy
Policies können sein: No write Up, No read up, No execute Up

Haben sie kein Label = Medium + No-Write Up

d.h. damit wird das Zugriffsmodell um die Applikation erweitert – MS Money kann z.b. in den StartupFolder schreiben, IE nicht

mit icacls sehe ich den Label und die Policy

der Process Explorer zeigt mir den Integrity Level der Applikation (diese spalte muss ich hinzufügen)

 

UIPI User Interface Privilege

Windows und Windows Messages

windows = GUI Objekte, nciht das Betriebssystem

Erzeugt/gemanaged von USER32 und win32k.sys

window haben keine Security descriptors

Windows Manager hat Information über alle Windows – jedes Programm kann auf alle windows zugreifen

d.h. Programm 1 kann window 2 von Program2 sagen: Klick a button

 

Shatter attacks

eine App mit niederen Rechten schickt einen Window Befehl an eine App mit höheren Rechten (Buffer overflow, …)

Kann quasi alles schieben und drücken – automatisch

Integrity Control heißt, das Vista schaut, ob die App, die meine windows beschreiben will, den gleichen IL wie die App selber hat und nur dann darf die auch schreiben

Das ist der Grund, warum bei der UAC Abfrage der Bildschirm “schwarz” wird, damit kein anderes Window den Button drücken kann

 

Protected Mode Internet Explorer (PMIE)

In Protected Mode läuft der IE auf LOW

kann nur auf Ressourcen schrieben, die den Level LOW haben (Temporary INternet File folders)

Kann nicht zu Documents Folder schreiben oder so

und UIPI block Window messages zu anderen apps

Protected Mode ist pro Security Zone gesetzt – bei default enabled für Internet, Local INternet und Restricted Sites

Off wenn ich den IE elevated fahre oder in der Computer und Trusted Sites

 

In IE7 kann ein windows nicht zwischen PM-on und PM-off geshared werden – daher kommt öfter die Meldung: Diese Seite muss in einem eigenen Fenster geöffnet werden – gefixed in IE8

 

PMIE “Virt” für Legacy Support

Mit dem Protected Mode würden viele Apps scheitern, weil die halt schreiben wollen/müssen

Daher werden diese in sichere Bereiche umgeleitet

Spannend beim Troubleshooting ;) Weil es für die App völlig transparent ist – sie liest, schreibt Dateien in die geschützen Folder und in Wirklichkeit liegt das alles in den Temporären Foldern…b

Habe ich Intranet Applikationen, die damit ein Problem haben (Activ-X, Java), ist es OK, den Protected Mode in der INtranet-Zone auszuschalten. Er ist dort nicht aus Securitygründen aktiviert, sondern damit sich nicht immer ein neues Fenster öffnet, wenn der USer zwischen INternet und Intranet wechselt..

 

Christian – live aus Barcelona

Christian.Decker@microsoft.com