Rechteausweitung/Beispiele
Beispiele für vertikale Privilegienerweiterung
Oftmals setzen hochprivilegierte Prozesse voraus, dass eingegebene Daten der Schnittstellen-Spezifikation entsprechen und verzichten auf die Überprüfung selbiger
- Ein Angreifer ist dann evtl
- in der Lage, diese Voraussetzung so zu verwerten, dass nicht autorisierter Code durch die hochprivilegierte Anwendung ausgeführt wird:
- Einige Windows-Systemdienste sind so konfiguriert, dass sie im Kontext des System-Benutzerkontos laufen
- Eine Schwachstelle, z. B. ein Pufferüberlauf, kann ausgenutzt werden, um beliebigen Code im Kontext des System-Benutzerkontos auszuführen
- Bei älteren Versionen des Microsoft Windows-Betriebssystems läuft der Bildschirmschoner im Kontext des System-Benutzerkontos
- Jedes Konto, das die Bildschirmschoner-Anwendung durch eine eigene Anwendung ersetzen konnte, erlangte dadurch System-Privilegien
- Stuxnet verwendet auf aktuellen Windows-Versionen eine mittlerweile geschlossene Lücke im Taskplaner, die durch eine mittels CRC32 unzureichend gesicherte XML-Datei entstanden ist
- Ein durch einen normalen Benutzer einmal angelegter Task konnte im Nachhinein durch Manipulation der XML-Datei so verändert werden, dass er mit den Rechten des System-Benutzerkontos gestartet wurde
- In einigen Versionen des Linux-Kernels war es möglich, durch eine Nullzeiger-Dereferenzierung Root-Rechte zu erhalten
- Ursache war ein zu früh freigegebener Mutex im Kernel
- Eine Sicherheitslücke im udev-Dienst ermöglichte mittels manipulierter Netlink-Nachrichten an udev, lokal oder über das Netz, Root-Rechte unter Linux zu erlangen
- Bestimmte Versionen des Linux-Kernels ermöglichten es, ein Programm zu schreiben, welches einen Kindprozess erzeugen und dessen aktuelles Verzeichnis auf
/etc/cron.d
setzen konnte - Dieser Kindprozess wurde markiert, um im Falle eines Absturzes ein Speicherabbild zu erzeugen
- Anschließend wurde der Kindprozess künstlich beendet
- Das Speicherabbild wurde im aktuell gesetzten Verzeichnis, also in
/etc/cron.d
, abgelegt und als Besitzer wurde das Root-Konto eingetragen. Cron führte nun die Datei automatisch aus - Da der Inhalt der Datei durch den Angreifer im ursprünglichen Programm festgelegt wurde, war es dem Angreifer so möglich, beliebigen Code mit Root-Rechten auszuführen
- Cross-Zone Scripting ist eine Angriffsvariante, bei dem eine Website das Sicherheitsmodell von Web-Browsern unterläuft, um auf dem Client-Computer höherprivilegiert Code ausführen zu können
- Eine weitere Variante der Rechteausweitung wird als Jailbreak bezeichnet
- Darunter versteht man das Entsperren bzw
- Umgehen von meist DRM-geschützten Systemen, beispielsweise zur Ausführung von nicht freigegebenen Apps auf dem iPhone oder zur Nutzung von Homebrew-Computerprogrammen auf Spielekonsolen
- Diese Systeme arbeiten meist auf Basis einer Sandbox, aus der mittels Privilegien-Eskalation ausgebrochen wird
Beispiele für horizontale Privilegienerweiterung
Dieses Problem tritt häufig in Web-Anwendungen auf
- Beispiel
- Benutzer A hat Zugriff auf sein Konto in einer Internet-Banking-Anwendung
- Benutzer B hat Zugriff auf sein Konto in der gleichen Internet-Banking-Anwendung
- Die Sicherheitslücke tritt auf, wenn Benutzer A in der Lage ist, auf das Konto von Benutzer B durch böswillige Aktivitäten zuzugreifen
- Diese böswillige Aktivität kann durch Schwächen oder Lücken in der gemeinsamen Web-Anwendung möglich werden
- Potenzielle Schwachstellen in Webanwendungen sind:
- Vorhersehbare Session-IDs im HTTP-Cookie
- Session Fixation
- Cross-Site Scripting (Identitätsdiebstahl)
- Leicht zu erratende Passwörter