Was passiert, wenn man (ab Vista) die UAC deaktiviert?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Das UAC Popup

      Was passiert, wenn man (ab Vista) die UAC deaktiviert?


      Das UAC Popup


      Wer kennt das nicht - man startet irgendeine Anwendung und plötzlich kommt so ein dummes Popup, das ein Programm auf den Rechner zugreifen möchte und man soll dies bestätigen (siehe hier).
      Auf Dauer kann das ziemlich nervig sein - erst recht, wenn man das vom guten alten XP her gar nicht gewohnt ist; da ist es doch sehr vorteilhaft, dass diese nervige Sache über die Systemsteuerung recht einfach abschaltbar ist:
      Stemsteuerung -> Benutzerkonten -> Benutzerkontensteuerung ein- oder ausschalten

      Doch sollte man das wirklich tun? Im Prinzip muss dass jeder selbst wissen - und damit das jeder selbst entscheiden kann und weiß was da passiert, schreibe ich dieses Posting hier.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Der Access Token und die Zugriffsrechte

      Der Access Token und die Zugriffsrechte


      Es wäre doch sehr schlecht, wenn jeder kleine Angestellte mit einem PC Arbeitsplatz dazu in der Lage wäre, die kompletten Einstellungen des Computers zu ändern und mal nebenbei die Post des Chefs zu lesen.
      Auf aktuellen Windows Betriebsystemen ist es deshalb so, das eben nicht jeder alles darf.

      Wie regelt Windows das aber intern?
      Im Prinzip wird jeder gestarteten Anwendung eine Art "elektronischer Ausweis" mitgegeben, der unter anderem Angaben dazu enthält, wer genau das Programm gestartet hat (Loginname), welchen Gruppen (zum Beispiel Administrator oder nur Gast am PC) diese "Person" angehört und über welche speziellen Rechte verfügt wird. Dieser "Ausweis" nennt sich in Fachkreisen Access Token.
      Objekte, mit denen ein Programm etwas tun kann (zum Beispiel die Dateien) besitzen das Gegenstück zu diesem Ausweis - die "Sicherheitsbeschreibung". Die "Sicherheitsbeschreibung" (in Fachkreisen Security Descriptor) muss man sich vorstellen wie eine Art Liste, in der vermerkt ist, welche Gruppe oder welcher User genau was mit dem Objekt tun darf - also in etwa so:
      • Administratoren -> Vollzugriff ist erlaubt (lesen, schreiben,..)
      • Benutzer -> nur lesen ist erlaubt
      • ...
      Na ja - bei Kindern ist es meist so, dass das was nicht direkt verboten ist, als erlaubt gilt :roll:. Windows sieht das zum Glück anders - alles was nicht erlaubt ist, ist generell verboten. In dieser Liste können aber nicht nur Erlaubnisse vermerkt sein, sondern auch Verbote. Ein Verbot hat höchste Priorität - ist also etwas verboten und es wird später in der Liste erlaubt, darf das Programm das trotzdem nicht - da ist also nichts mit: "Papa hat aber gesagt, ich darf das!". :-)
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • MIL, MIC, IL und die Integritäten

      MIL, MIC, IL und die Integritäten


      Liest man sich irgenwelche Sachen über Betriebsysteme ab Vista durch, stößt man des öfteren auf so merkwürdige Abkürzungen oder Begriffe wie MIL, MIC, IL, Integritäten oder Integritätslevel. Jetzt wäre es doch schön, wenn man beim Abschalten der UAC mit solchen Sachen nichts zu tun bekommen würde - genau das Gegenteil ist aber der Fall, denn gerade hier wirkt sich die Abschaltung der UAC besonders aus.

      Es ist deshalb nicht gerade unwichtig wenigstens oberflächlich zu wissen, was das eigentlich ist:
      Ab Vista gibt es neben der bereits angesprochenen Zugriffsliste für Objekte eine weitere solche Liste, die aber nur einen Eintrag hat. Dieser Eintrag setzt das Objekt (zum Beispiel eine Datei) auf einen bestimmten Level (IL oder Integritätslevel) und gibt an, was ein Programm, das in seinem Access Token einen niedrigeren Level hat als das Objekt, mit dem Objekt nicht darf (zum Beispiel lesen oder schreiben).
      Folgende Level gibt es:
      • Systemverbindlichkeitsstufe
      • Hohe Verbindlichkeitsstufe
      • Mittlere Verbindlichkeitsstufe
      • Niedrige Verbindlichkeitsstufe
      • Nicht vertrauenswürdige Verbindlichkeitsstufe
      Existiert bei einem Objekt dieser zusätzliche Eintrag nicht, gilt immer die Mittlere Verbindlichkeitsstufe mit einem Verbot des Lesens und Schreibens für Programme in einem niedrigeren Level.

      Es soll damit unter anderem verhindert werden, das normale Programme in Bereiche schreiben, die dem Betriebsystem vorbehalten sind.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Privilegien

      Privilegien


      Ein besonderer Teil des "elektronischen Ausweises" Access Token sind die Privilegien. Privilegien sind einfach nur Rechte, bestimmte Systemeinstellungen setzen zu dürfen (wie zum Beispiel die Systemzeit). Diese Privilegien sind in der Regel den Gruppen zugeordnet - ist auch logisch so, denn ein Administrator muss ja wesentlich mehr Einstellungen setzen dürfen, als jemand, der nur ein normaler Benutzer ist.

      Bei mir zu Hause ist das ganz ähnlich - da dürfen auch nur die alleine mit meinem Auto fahren, die zur Gruppe der mindestens achtzehnjährigen gehören und als Privileg einen Führerschein besitzen. :-)
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Zugriffrechte in Registry

      Zugriffsrechte in Registry


      So, nach dem Grundlagenquatsch geht es jetzt an das Eingemachte! Wir schauen uns zuerst mal die Zugriffsbeschreibung eines Registryeintrages an. So in etwa sieht der Registryeintrag
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
      aus, wenn man sich die Zugriffsrechte betrachtet:

      Eintrag #1 ist bezogen auf: Benutzer
      Typ von Eintrag #1: Erlaubnis
      Access Right in Eintrag #1: GENERIC_READ = Leserechte

      Eintrag #2 ist bezogen auf: Administratoren
      Typ von Eintrag #2: Erlaubnis
      Access Right in Eintrag #2: GENERIC_ALL = Vollzugriff

      Eintrag #3 ist bezogen auf: SYSTEM
      Typ von Eintrag #3: Erlaubnis
      Access Right in Eintrag #3: GENERIC_ALL = Vollzugriff

      Den schon angesprochenen Integritätslevel-Eintrag besitzen Registryschlüssel standardmäßig nicht - es gilt für einen Registryschlüssel also normalerweise der Level (IL) Mittlere Verbindlichkeitsstufe - das wird später noch wichtig.
      Was auf diesen Schlüssel an Gegebenheiten bezüglich der Rechte zutrifft, gilt im Prinzip auch für alle anderen Schlüssel unter HKEY_LOCAL_MACHINE.
      Im Schlüssel HKEY_LOCAL_MACHINE liegen unter anderem die globalen Autostarteinträge für Programme - also alles das, was sich automatisch generell und überall beim Starten des Systems selbst ausführt (zum Beispiel Dienste, Treiber, etc.). Ein perfekter Ort um Trojaner und RootKits zu installieren.
      Hier fällt auf, das normale Benutzer nur Leserechte haben - normale Benutzer können hier also keine Einträge machen.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Der Token eines im Adminaccount gestarteten Programms

      Der Token eines im Adminaccount gestarteten Programms


      Wir loggen uns jetzt mal (mit eingeschalteter UAC) in unseren Adminaccount ein und starten ganz normal unter Vista notepad.exe, den Texteditor. Ein Blick auf den "elektronischen Ausweis" Access Token von notepad sieht folgendermaßen aus - hier erst mal die Gruppen:

      None -> standardmäßig aktiviert + aktiviert
      Jeder -> standardmäßig aktiviert + aktiviert
      Administratoren -> deaktiviert
      Benutzer -> standardmäßig aktiviert + aktiviert
      INTERAKTIV -> standardmäßig aktiviert + aktiviert
      Authentifizierte Benutzer -> standardmäßig aktiviert + aktiviert
      Diese Organisation -> standardmäßig aktiviert + aktiviert
      S-1-5-5-0-181379 -> standardmäßig aktiviert + aktiviert
      LOKAL -> standardmäßig aktiviert + aktiviert
      NTLM-Authentifizierung -> standardmäßig aktiviert + aktiviert
      Mittlere Verbindlichkeitsstufe -> deaktiviert + aktivierter Integritätslevel


      Was fällt hier auf?
      [INDENT]Die Gruppe Administratoren ist als deaktiviert markiert:
      [INDENT]Im Prinzip bedeutet das, dass die Gruppe Administratoren für Erlaubnisse in der Zugriffsliste von Objekten wirkungslos ist. Kann Notepad hier also auf eine Datei zugreifen, in die nur ein Admin schreiben darf? Nein, natürlich nicht! Wird einem Administrator in der Zugriffsliste eines Objektes aber etwas verboten, zeigt dieser Gruppeneintrag sehr wohl Wirkung.
      Wenn man sich nun die Zugriffsliste des Registryeintrages unter HKEY_LOCAL_MACHINE nochmals ansieht, kann ein normal in einem Adminaccount gestartetes Programm zum Beispiel vernünftig einen Trojaner global in die Registry einschleusen? Eigentlich nicht...
      Bei einem Programm, das mit Adminrechten gestartet wurde (zum Beispiel durch das Bestätigen eines UAC Popups), ist diese Gruppe aktiviert. Neben dem Gruppeneintrag fehlen auch die Privilegien der Gruppe Administratoren.

      [/INDENT]Der IL ist Mittlere Verbindlichkeitsstufe:
      [INDENT]Bei einem Programm, das mit Adminrechten gestartet wurde (zum Beispiel durch das Bestätigen eines UAC Popups), ist der IL Hohe Verbindlichkeitsstufe. Auf Objekte im Level Hohe Verbindlichkeitsstufe darf notepad hier also nicht zugreifen - zum Beispiel auf das Rootverzeichnis C:\.


      [/INDENT][/INDENT]Schaltet man die UAC ab, werden sämtliche im Adminaccount gestarteten Programme mit aktivierter Gruppe Administratoren und deren zusätzlichen Privilegien ausgeführt. Aber nicht nur das - desweiteren werden bestimmte Funktionen des Integritätslevels deaktiviert, in dem die einzelnen Programme laufen. Gerade das hat verschiedene Auswirkungen, die man nicht unbedingt gleich sieht...
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Der Internet Explorer ab Vista

      Der Internet Explorer ab Vista


      Interessant wird die Sache beim Internet Explorer. Wir starten den unter Vista einfach mal und werfen einen Blick auf den "elektronischen Ausweis" Access Token seines Hauptprozesses iexplore.exe.
      Hier sind wieder die Gruppen:

      None -> standardmäßig aktiviert + aktiviert
      Jeder -> standardmäßig aktiviert + aktiviert
      Administratoren -> deaktiviert
      Benutzer -> standardmäßig aktiviert + aktiviert
      INTERAKTIV -> standardmäßig aktiviert + aktiviert
      Authentifizierte Benutzer -> standardmäßig aktiviert + aktiviert
      Diese Organisation -> standardmäßig aktiviert + aktiviert
      S-1-5-5-0-181379 -> standardmäßig aktiviert + aktiviert
      LOKAL -> standardmäßig aktiviert + aktiviert
      NTLM-Authentifizierung -> standardmäßig aktiviert + aktiviert
      Niedrige Verbindlichkeitsstufe -> deaktiviert + aktivierter Integritätslevel

      Aufgrund des sehr niedrigen ILs darf der iexplore.exe eigentlich fast gar nichts - er darf nicht in die Registry, er darf auf kaum eine Datei zugreifen,... Das kann sehr wichtig werden, wenn ein Trojaner über eine infizierte Internetseite versucht den IE zu "kapern".
      Auch mit deaktivierter UAC ändert sich daran nicht sehr viel, da der IE weiterhin in einem niedrigen Integritätslevel läuft. Es gibt da aber einige Zusatzfunktionen des Integritätslevels, auf die ich noch nicht eingegangen bin und auf die sich das Abschalten der UAC sehr wohl auswirkt...
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Messages und Hooks

      Messages und Hooks


      Messages? Hooks? Was ist denn das schon wieder? :-(
      Beides hat mit Fenstern zu tun - Fenster sind die netten (meist viereckigen) Dinger, die beim Starten einer Anwendung erscheinen, die man dann anklicken oder aus denen man etwas auslesen oder eingeben kann. Intern funktionieren Fenster über Nachrichten (Messages). Wenn zum Beispiel in ein Eingabefenster ein A getippt wird, erhält die Anwendung bestimmte Nachrichten, also Messages, die dann ausgewertet werden können.
      Windows bietet aber auch die Möglichkeit, die Nachrichten von einer fremden Anwendung abfangen, auswerten und verändern zu lassen - man gibt zum Beispiel in Programm 1 ein A ein, Programm 2 fängt diese eingabe ab und ändert sie in B. Im Eingabefenster von Programm 1 würde dann nicht das getippte A erscheinen, sondern ein B. Ein solches Abfangen von Nachrichten nennt sich Message Hook oder Window Hook.

      Fenster kann man, genauso wie Dateien, als Objekte sehen. Sie haben oder einen großen Unterschied - sie sind nicht durch eine Zugriffsbeschreibung vor dem Zugriff irgendeines Programmes geschützt - das heißt, jeder Hans und Franz kann im Prinzip eine Message an ein Programmfenster senden und damit das Programm dazu veranlassen, bestimmte Sachen zu tun. Das gleiche gilt für die Hooks - ein Keylogger funktioniert zum Beispiel auf diese Weise.

      Wenn man sich nun überlegt, dass ja nicht nur Programme durch den jeweiligen User gestartet werden, sondern manche auch durch das Betriebssystem (Dienste zum Beispiel), die dann mit einem ganz anderen Access Token und anderen Rechten laufen, kann das schon etwas problematisch werden.
      Chris Padget hat das in seinem White Paper zur Shatter Attack recht gut erkannt - ich muss aber gestehen, dass er die Gefährlichkeit dieser Attacke zur damaligen Zeit noch etwas untertrieben hat - denn vorher Code irgendwie in dem Service unterzubringen, ist gar nicht nötig. Desweiteren ging das mit jedem Fenster - ein Edit muss nicht vorhanden sein.




      Microsoft hat diese Sicherheitslücke bezüglich der Fenster erst etwas unterschätzt, ab Vista ist dieses Sicherheitsloch aber folgendermaßen geschlossen:
      • Ein Message Hook kann ("in der Regel") nur noch in Programme installiert werden, die im selben Integritätslevel laufen, wie das Programm, das den Hook installieren möchte. Ein normal gestartetes Programm könnte also zum Beispiel nicht Messages im Internet Explorer abfangen, da der Integritätslevel des IEs herabgesetzt ist.
      • Messages können nicht mehr an Programme gesendet werden, die in einem höheren Integritätslevel laufen, als das Programm, das die Message senden will. Services über Messages zu beeinflussen, ist also nicht mehr möglich.
      So, jetzt kommts: Genau diese beiden Neuerungen werden auch mit aufgehoben, wenn man die UAC deaktiviert. Es ist dann also wieder möglich, global Messages abzufangen (also einen Keylogger zu installieren, der sämtliche Tastatureingaben auf dem System hookt) und Messages an interaktive Dienste (Dienste mit einem Fenster auf dem Desktop) zu senden.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Kleine Zusammenfassung

      Kleine Zusammenfassung



      Um es noch einmal auf den Punkt zu bringen: Was lässt man denn jetzt eigentlich zu, wenn man die UAC Popups abstellt?
      • Deaktiviert man die UAC, verleiht man jedem in einem Administratoraccount normal gestarteten Programm die Rechte, auf das komplette Betriebsystem zuzugreifen. Ist die UAC aktiviert, muss ein Programm erst anmelden, dass es auf wichtige Sachen des Betriebsystems zugreifen möchte und der User kann das über das UAC Popup ablehnen.
      • Deaktiviert man die UAC, ermöglicht man jedem in einem Administratoraccount normal gestarteten Programm, Message Hooks in alle anderen Anwendungen zu installieren. Man öffnet also zum Beispiel einem Keylogger sämtliche Türen.
      • Deaktiviert man die UAC, ermöglicht man es jedem normal gestarteten Programm, Messages an administrative Programme oder interaktive Dienste zu senden. Diese höher gestellten Programme können dann Aktionen für Programme tätigen, die diese selbst eigentlich gar nicht dürfen.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Für mich ja. Im Prinzip muss aber jeder selbst Wissen, was er tut.
      Wer gerne einen wichtigen Teil seines Sicherheitssystems deakltivieren möchte, um nicht von Popups genervt zu werden, der soll das tun.
      Es werden aber eben nicht nur die Popups abgeschaltet und die Rechte sämtlicher Anwendungen erhöht, die in einem Adminaccount laufen, sondern es wirkt sich intern auch auf zwei Sachen aus, die man nicht unbedingt sieht (Hooks und Messages) - gerade diese Sachen sind unter Vista eingeführt worden, um einige Sicherheitslecks zu fixen, die es unter XP noch gab (unter anderem das von Chris Padget angemeckerte Shatter Loch).

      Wer programmiert, sollte die UAC sowieso nicht bei sich deaktivieren, denn der kann überhaupt nicht beurteilen, ob seine Anwendungen auch woanders laufen.

      Jemandem zu raten, die UAC abzustellen, damit irgendwelche Anwendungen laufen, ist für mich so, als würde ich einem Kleinkind raten, in den nächsten Gartenteich zu springen, um sich einen Goldfisch rauszuholen. Ob es da rechtlich irgendwelche großartigen Unterschiede gibt, weiß ich nicht - wenn die ratschlaggebende Person glaubhaft machen kann, dass sie von Tuten und Blasen keine Ahnung hatte, wird es die wohl geben. :-)

      Von der UAC sollte man möglichst die Finger lassen - erst recht auf fremden Rechnern, das ist meine Meinung.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Verständnisfrage 1: In einer Liste beschreibst du Gruppenzugriffsrechte als:
      "Jeder -> standardmäßig aktiviert + aktiviert"
      Bitte was bedeutet das zweite "+aktiviert" ?

      V2: S-1-5-5-0-181379 ???

      V3: Gibt es da Unterschiede Win7 - Vista?
      (Sorry, ein Narr kann mehr fragen als 10 Weise beantworten können. Aber an dieser Stelle mal DANKE für die viele Arbeit, die erst zu diesen Erkenntnissen geführt hat)

      Herzliche Grüsse
      Win7-64HomPremSP1,XProfan11.2a,XPIA,JWasm,xpse,IntelCoreQuad2.5GHz/4GB/je1TB HD intern:esataBay:USB3
    • Zu 1.) Das sind die Flags der Gruppen aus der TOKEN_GROUPS Struktur, die man über GetTokenInformation erhält. Die Gruppe kann standardmäßig (von Anfang an) aktiviert sein oder eben nicht und später aktiviert werden.

      Zu 2.) Das ist ein SID in Stringform, also der Bezeichner einer Gruppe oder eines Users - die Gruppe oder den User gibt es auf dem Rechner im Augenblick nicht oder konnte aus einem anderen Grund nicht in einen User oder Gruppennamen umgewandelt werden.

      Zu 3.) Im Prinzip kaum. Ist alles die selbe Suppe.
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT
    • Was passiert, wenn man (ab Vista) die UAC deaktiviert?

      Autor: AHT

      Was passiert, wenn man (ab Vista) die UAC deaktiviert?


      Das UAC Popup


      Wer kennt das nicht - man startet irgendeine Anwendung und plötzlich kommt so ein dummes Popup, das ein Programm auf den Rechner zugreifen möchte und man soll dies bestätigen (siehe hier).
      Auf Dauer kann das ziemlich nervig sein - erst recht, wenn man das vom guten alten XP her gar nicht gewohnt ist; da ist es doch sehr vorteilhaft, dass diese nervige Sache über die Systemsteuerung recht einfach abschaltbar ist:
      Systemsteuerung -> Benutzerkonten -> Benutzerkontensteuerung ein- oder ausschalten

      Doch sollte man das wirklich tun? Im Prinzip muss dass jeder selbst wissen - und damit das jeder selbst entscheiden kann und weiß was da passiert, schreibe ich dieses Posting hier.

      Der Access Token und die Zugriffsrechte


      Es wäre doch sehr schlecht, wenn jeder kleine Angestellte mit einem PC Arbeitsplatz dazu in der Lage wäre, die kompletten Einstellungen des Computers zu ändern und mal nebenbei die Post des Chefs zu lesen. Auf aktuellen Windows Betriebssystemen ist es deshalb so, das eben nicht jeder alles darf.

      Wie regelt Windows das aber intern?
      Im Prinzip wird jeder gestarteten Anwendung eine Art "elektronischer Ausweis" mitgegeben, der unter anderem Angaben dazu enthält, wer genau das Programm gestartet hat (Loginname), welchen Gruppen (zum Beispiel Administrator oder nur Gast am PC) diese "Person" angehört und über welche speziellen Rechte verfügt wird. Dieser "Ausweis" nennt sich in Fachkreisen Access Token.
      Objekte, mit denen ein Programm etwas tun kann (zum Beispiel die Dateien) besitzen das Gegenstück zu diesem Ausweis - die "Sicherheitsbeschreibung". Die "Sicherheitsbeschreibung" (in Fachkreisen Security Descriptor) muss man sich vorstellen wie eine Art Liste, in der vermerkt ist, welche Gruppe oder welcher User genau was mit dem Objekt tun darf - also in etwa so:
      • Administratoren -> Vollzugriff ist erlaubt (lesen, schreiben,..)
      • Benutzer -> nur lesen ist erlaubt
      • ...
      Na ja - bei Kindern ist es meist so, dass das was nicht direkt verboten ist, als erlaubt gilt :roll:. Windows sieht das zum Glück anders - alles was nicht erlaubt ist, ist generell verboten. In dieser Liste können aber nicht nur Erlaubnisse vermerkt sein, sondern auch Verbote. Ein Verbot hat höchste Priorität - ist also etwas verboten und es wird später in der Liste erlaubt, darf das Programm das trotzdem nicht - da ist also nichts mit: "Papa hat aber gesagt, ich darf das!". :-)

      MIL, MIC, IL und die Integritäten


      Liest man sich irgendwelche Sachen über Betriebssysteme ab Vista durch, stößt man des öfteren auf so merkwürdige Abkürzungen oder Begriffe wie MIL, MIC, IL, Integritäten oder Integritätslevel. Jetzt wäre es doch schön, wenn man beim Abschalten der UAC mit solchen Sachen nichts zu tun bekommen würde - genau das Gegenteil ist aber der Fall, denn gerade hier wirkt sich die Abschaltung der UAC besonders aus.

      Es ist deshalb nicht gerade unwichtig wenigstens oberflächlich zu wissen, was das eigentlich ist:
      Ab Vista gibt es neben der bereits angesprochenen Zugriffsliste für Objekte eine weitere solche Liste, die aber nur einen Eintrag hat. Dieser Eintrag setzt das Objekt (zum Beispiel eine Datei) auf einen bestimmten Level (IL oder Integritätslevel) und gibt an, was ein Programm, das in seinem Access Token einen niedrigeren Level hat als das Objekt, mit dem Objekt nicht darf (zum Beispiel lesen oder schreiben).
      Folgende Level gibt es:
      • Systemverbindlichkeitsstufe
      • Hohe Verbindlichkeitsstufe
      • Mittlere Verbindlichkeitsstufe
      • Niedrige Verbindlichkeitsstufe
      • Nicht vertrauenswürdige Verbindlichkeitsstufe
      Existiert bei einem Objekt dieser zusätzliche Eintrag nicht, gilt immer die Mittlere Verbindlichkeitsstufe mit einem Verbot des Lesens und Schreibens für Programme in einem niedrigeren Level.

      Es soll damit unter anderem verhindert werden, das normale Programme in Bereiche schreiben, die dem Betriebssystem vorbehalten sind.

      Privilegien


      Ein besonderer Teil des "elektronischen Ausweises" Access Token sind die Privilegien. Privilegien sind einfach nur Rechte, bestimmte Systemeinstellungen setzen zu dürfen (wie zum Beispiel die Systemzeit). Diese Privilegien sind in der Regel den Gruppen zugeordnet - ist auch logisch so, denn ein Administrator muss ja wesentlich mehr Einstellungen setzen dürfen, als jemand, der nur ein normaler Benutzer ist.

      Bei mir zu Hause ist das ganz ähnlich - da dürfen auch nur die alleine mit meinem Auto fahren, die zur Gruppe der mindestens achtzehnjährigen gehören und als Privileg einen Führerschein besitzen. :-)

      Zugriffsrechte in Registry


      So, nach dem Grundlagenquatsch geht es jetzt an das Eingemachte! Wir schauen uns zuerst mal die Zugriffsbeschreibung eines Registryeintrages an. So in etwa sieht der Registryeintrag
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
      aus, wenn man sich die Zugriffsrechte betrachtet:

      Eintrag #1 ist bezogen auf: Benutzer
      Typ von Eintrag #1: Erlaubnis
      Access Right in Eintrag #1: GENERIC_READ = Leserechte

      Eintrag #2 ist bezogen auf: Administratoren
      Typ von Eintrag #2: Erlaubnis
      Access Right in Eintrag #2: GENERIC_ALL = Vollzugriff

      Eintrag #3 ist bezogen auf: SYSTEM
      Typ von Eintrag #3: Erlaubnis
      Access Right in Eintrag #3: GENERIC_ALL = Vollzugriff

      Den schon angesprochenen Integritätslevel-Eintrag besitzen Registryschlüssel standardmäßig nicht - es gilt für einen Registryschlüssel also normalerweise der Level (IL) Mittlere Verbindlichkeitsstufe - das wird später noch wichtig.
      Was auf diesen Schlüssel an Gegebenheiten bezüglich der Rechte zutrifft, gilt im Prinzip auch für alle anderen Schlüssel unter HKEY_LOCAL_MACHINE.
      Im Schlüssel HKEY_LOCAL_MACHINE liegen unter anderem die globalen Autostarteinträge für Programme - also alles das, was sich automatisch generell und überall beim Starten des Systems selbst ausführt (zum Beispiel Dienste, Treiber, etc.). Ein perfekter Ort um Trojaner und RootKits zu installieren.
      Hier fällt auf, das normale Benutzer nur Leserechte haben - normale Benutzer können hier also keine Einträge machen.

      Der Token eines im Adminaccount gestarteten Programms


      Wir loggen uns jetzt mal (mit eingeschalteter UAC) in unseren Adminaccount ein und starten ganz normal unter Vista notepad.exe, den Texteditor. Ein Blick auf den "elektronischen Ausweis" Access Token von notepad sieht folgendermaßen aus - hier erst mal die Gruppen:

      None -> standardmäßig aktiviert + aktiviert
      Jeder -> standardmäßig aktiviert + aktiviert
      Administratoren -> deaktiviert
      Benutzer -> standardmäßig aktiviert + aktiviert
      INTERAKTIV -> standardmäßig aktiviert + aktiviert
      Authentifizierte Benutzer -> standardmäßig aktiviert + aktiviert
      Diese Organisation -> standardmäßig aktiviert + aktiviert
      S-1-5-5-0-181379 -> standardmäßig aktiviert + aktiviert
      LOKAL -> standardmäßig aktiviert + aktiviert
      NTLM-Authentifizierung -> standardmäßig aktiviert + aktiviert
      Mittlere Verbindlichkeitsstufe -> deaktiviert + aktivierter Integritätslevel


      Was fällt hier auf?
      [INDENT]Die Gruppe Administratoren ist als deaktiviert markiert:
      [INDENT]Im Prinzip bedeutet das, dass die Gruppe Administratoren für Erlaubnisse in der Zugriffsliste von Objekten wirkungslos ist. Kann Notepad hier also auf eine Datei zugreifen, in die nur ein Admin schreiben darf? Nein, natürlich nicht! Wird einem Administrator in der Zugriffsliste eines Objektes aber etwas verboten, zeigt dieser Gruppeneintrag sehr wohl Wirkung.
      Wenn man sich nun die Zugriffsliste des Registryeintrages unter HKEY_LOCAL_MACHINE nochmals ansieht, kann ein normal in einem Adminaccount gestartetes Programm zum Beispiel vernünftig einen Trojaner global in die Registry einschleusen? Eigentlich nicht...
      Bei einem Programm, das mit Adminrechten gestartet wurde (zum Beispiel durch das Bestätigen eines UAC Popups), ist diese Gruppe aktiviert. Neben dem Gruppeneintrag fehlen auch die Privilegien der Gruppe Administratoren.

      [/INDENT]Der IL ist Mittlere Verbindlichkeitsstufe:
      [INDENT]Bei einem Programm, das mit Adminrechten gestartet wurde (zum Beispiel durch das Bestätigen eines UAC Popups), ist der IL Hohe Verbindlichkeitsstufe. Auf Objekte im Level Hohe Verbindlichkeitsstufe darf notepad hier also nicht zugreifen - zum Beispiel auf das Rootverzeichnis C:\.

      [/INDENT][/INDENT]Schaltet man die UAC ab, werden sämtliche im Adminaccount gestarteten Programme mit aktivierter Gruppe Administratoren und deren zusätzlichen Privilegien ausgeführt. Aber nicht nur das - des weiteren werden bestimmte Funktionen des Integritätslevels deaktiviert, in dem die einzelnen Programme laufen. Gerade das hat verschiedene Auswirkungen, die man nicht unbedingt gleich sieht...

      Der Internet Explorer ab Vista


      Interessant wird die Sache beim Internet Explorer. Wir starten den unter Vista einfach mal und werfen einen Blick auf den "elektronischen Ausweis" Access Token seines Hauptprozesses iexplore.exe.
      Hier sind wieder die Gruppen:

      None -> standardmäßig aktiviert + aktiviert
      Jeder -> standardmäßig aktiviert + aktiviert
      Administratoren -> deaktiviert
      Benutzer -> standardmäßig aktiviert + aktiviert
      INTERAKTIV -> standardmäßig aktiviert + aktiviert
      Authentifizierte Benutzer -> standardmäßig aktiviert + aktiviert
      Diese Organisation -> standardmäßig aktiviert + aktiviert
      S-1-5-5-0-181379 -> standardmäßig aktiviert + aktiviert
      LOKAL -> standardmäßig aktiviert + aktiviert
      NTLM-Authentifizierung -> standardmäßig aktiviert + aktiviert
      Niedrige Verbindlichkeitsstufe -> deaktiviert + aktivierter Integritätslevel

      Aufgrund des sehr niedrigen ILs darf der iexplore.exe eigentlich fast gar nichts - er darf nicht in die Registry, er darf auf kaum eine Datei zugreifen,... Das kann sehr wichtig werden, wenn ein Trojaner über eine infizierte Internetseite versucht den IE zu "kapern".
      Auch mit deaktivierter UAC ändert sich daran nicht sehr viel, da der IE weiterhin in einem niedrigen Integritätslevel läuft. Es gibt da aber einige Zusatzfunktionen des Integritätslevels, auf die ich noch nicht eingegangen bin und auf die sich das Abschalten der UAC sehr wohl auswirkt...

      Messages und Hooks


      Messages? Hooks? Was ist denn das schon wieder? :-(
      Beides hat mit Fenstern zu tun - Fenster sind die netten (meist viereckigen) Dinger, die beim Starten einer Anwendung erscheinen, die man dann anklicken oder aus denen man etwas auslesen oder eingeben kann. Intern funktionieren Fenster über Nachrichten (Messages). Wenn zum Beispiel in ein Eingabefenster ein A getippt wird, erhält die Anwendung bestimmte Nachrichten, also Messages, die dann ausgewertet werden können.
      Windows bietet aber auch die Möglichkeit, die Nachrichten von einer fremden Anwendung abfangen, auswerten und verändern zu lassen - man gibt zum Beispiel in Programm 1 ein A ein, Programm 2 fängt diese eingabe ab und ändert sie in B. Im Eingabefenster von Programm 1 würde dann nicht das getippte A erscheinen, sondern ein B. Ein solches Abfangen von Nachrichten nennt sich Message Hook oder Window Hook.

      Fenster kann man, genauso wie Dateien, als Objekte sehen. Sie haben aber einen großen Unterschied - sie sind nicht durch eine Zugriffsbeschreibung vor dem Zugriff irgendeines Programms geschützt - das heißt, jeder Hans und Franz kann im Prinzip eine Message an ein Programmfenster senden und damit das Programm dazu veranlassen, bestimmte Sachen zu tun. Das gleiche gilt für die Hooks - ein Keylogger funktioniert zum Beispiel auf diese Weise.

      Wenn man sich nun überlegt, dass ja nicht nur Programme durch den jeweiligen User gestartet werden, sondern manche auch durch das Betriebssystem (Dienste zum Beispiel), die dann mit einem ganz anderen Access Token und anderen Rechten laufen, kann das schon etwas problematisch werden.
      Chris Padget hat das in seinem White Paper zur Shatter Attack recht gut erkannt - ich muss aber gestehen, dass er die Gefährlichkeit dieser Attacke zur damaligen Zeit noch etwas untertrieben hat - denn vorher Code irgendwie in dem Service unterzubringen, ist gar nicht nötig. Desweiteren ging das mit jedem Fenster - ein Edit muss nicht vorhanden sein.

      Microsoft hat diese Sicherheitslücke bezüglich der Fenster erst etwas unterschätzt, ab Vista ist dieses Sicherheitsloch aber folgendermaßen geschlossen:
      • Ein Message Hook kann ("in der Regel") nur noch in Programme installiert werden, die im selben Integritätslevel laufen, wie das Programm, das den Hook installieren möchte. Ein normal gestartetes Programm könnte also zum Beispiel nicht Messages im Internet Explorer abfangen, da der Integritätslevel des IEs herabgesetzt ist.
      • Messages können nicht mehr an Programme gesendet werden, die in einem höheren Integritätslevel laufen, als das Programm, das die Message senden will. Services über Messages zu beeinflussen, ist also nicht mehr möglich.
      So, jetzt kommts: Genau diese beiden Neuerungen werden auch mit aufgehoben, wenn man die UAC deaktiviert. Es ist dann also wieder möglich, global Messages abzufangen (also einen Keylogger zu installieren, der sämtliche Tastatureingaben auf dem System hookt) und Messages an interaktive Dienste (Dienste mit einem Fenster auf dem Desktop) zu senden.

      Kleine Zusammenfassung


      Um es noch einmal auf den Punkt zu bringen: Was lässt man denn jetzt eigentlich zu, wenn man die UAC Popups abstellt?
      • Deaktiviert man die UAC, verleiht man jedem in einem Administratoraccount normal gestarteten Programm die Rechte, auf das komplette Betriebsystem zuzugreifen. Ist die UAC aktiviert, muss ein Programm erst anmelden, dass es auf wichtige Sachen des Betriebsystems zugreifen möchte und der User kann das über das UAC Popup ablehnen.
      • Deaktiviert man die UAC, ermöglicht man jedem in einem Administratoraccount normal gestarteten Programm, Message Hooks in alle anderen Anwendungen zu installieren. Man öffnet also zum Beispiel einem Keylogger sämtliche Türen.
      • Deaktiviert man die UAC, ermöglicht man es jedem normal gestarteten Programm, Messages an administrative Programme oder interaktive Dienste zu senden. Diese höher gestellten Programme können dann Aktionen für Programme tätigen, die diese selbst eigentlich gar nicht dürfen.
    • Da ist ein Schreibfehler drin: Sie haben oder einen großen Unterschied - sie sind nicht durch eine Zugriffsbeschreibung vor dem Zugriff irgendeines Programmes geschützt

      Das muss so heißen: Sie haben aber einen großen Unterschied - sie sind nicht durch eine Zugriffsbeschreibung vor dem Zugriff irgendeines Programmes geschützt

      Sonst OK. Danke für das Zusammenfassen. Ist das so verständlich?
      ________________________________________________________

      PPFScanner PPFS Android MisterXMail@web.de
      Mfg AHT