Rechteausweitung: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(35 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Als '''Rechteausweitung''', auch Rechteerhöhung, Privilegienerweiterung oder Privilegien-Eskalation genannt, bezeichnet man die Ausnutzung eines [[Programmfehler|Computerbugs]] bzw
'''Rechteausweitung ''' - Ausnutzung eines Systemfehlers, zur Erhöhung von Zugriffsrechten
* eines Konstruktions- oder Konfigurationsfehlers einer Software mit dem Ziel, einem Benutzer oder einer Anwendung Zugang zu Ressourcen zu verschaffen, deren Nutzung mit eingeschränkten Rechten nicht möglich ist


== Hintergrund ==
== Beschreibung ==
Die meisten Computersysteme sind als [[Mehrbenutzersystem]]e ausgelegt, die ein Konzept für das Management von [[Zugriffsrecht]]en beinhalten
Ausnutzung eines [[Programmfehler|Computerbugs]] bzw. eines Konstruktions- oder Konfigurationsfehlers einer Software
* Rechteausweitung bedeutet, ein Nutzer erhält Rechte, die er normalerweise nicht hat
* Rechteausweitung, Rechteerhöhung, Privilegienerweiterung oder Privilegien-Eskalation
* Diese Berechtigungen können verwendet werden, um Dateien zu löschen, private Informationen anderer Nutzer abzurufen und zu verändern
* Auch das Installieren unerwünschter Programme wird möglich
* Privilegien-Eskalation tritt auf, wenn Fehler in dem betreffenden System enthalten sind, die eine Umgehung des Sicherheitskonzepts möglich machen


Es existieren zwei Varianten:
; Ziel
{|
Benutzer oder Anwendung Zugang zu Ressourcen verschaffen, deren Nutzung mit eingeschränkten Rechten nicht möglich wäre
| Vertikale Rechteausweitung || Erhöhung von Zugriffsrechten durch einen Benutzer oder eine Anwendung mit dem Ziel, Ressourcen, die eigentlich höher privilegierten Nutzern, meist aus anderen Benutzergruppen, vorbehalten sind, nutzen zu können
* Beispiel: Installation einer Treibersoftware durch einen Benutzer, der sich administrative Rechte verschafft hat
|-
| Horizontale Rechteausweitung || Ein normaler Benutzer greift auf Funktionen oder Inhalte, reserviert für andere normale Benutzer, zu
* Beispiel: Benutzer A und Benutzer B gehören derselben Benutzergruppe an, aber Benutzer B verfügt zusätzlich über das Recht, auf das Netzwerk zugreifen zu dürfen
* Durch horizontale Rechteausweitung verschafft sich auch Benutzer A dieses Recht
|}


== Vertikale Rechteausweitung ==
=== Hintergrund ===
[[Datei:Priv rings.svg|300px|mini|rechts|Berechtigungsstufen auf [[x86-Prozessor]]en im [[Protected Mode]]]]
Viele Computersysteme sind als [[Mehrbenutzersystem]]e ausgelegt
* Enthalten ein Konzept für das Management von [[Zugriffsrecht]]en
* Rechteausweitung bedeutet, ein Nutzer erhält Rechte, die er normalerweise nicht hat


Diese Art der Privilegienerweiterung tritt auf, wenn der Benutzer oder der Anwendungsprozess in der Lage ist, sich Administrator- oder gar Systemrechte zu verschaffen, evtl
Diese Berechtigungen können verwendet werden, um
* sogar durch Kerneloperationen
* Dateien zu löschen, private Informationen anderer Nutzer abzurufen und zu verändern
* unerwünschte unerwünschter Programme installieren


=== Beispiele für vertikale Privilegienerweiterung ===
; Privilegien-Eskalation
Oftmals setzen hochprivilegierte Prozesse voraus, dass eingegebene Daten der Schnittstellen-Spezifikation entsprechen und verzichten auf die Überprüfung selbiger
* Fehler in dem betreffenden System
* Ein Angreifer ist dann evtl
* Umgehung des Sicherheitskonzepts möglich
* in der Lage, diese Voraussetzung so zu verwerten, dass nicht autorisierter Code durch die hochprivilegierte Anwendung ausgeführt wird:


* Einige [[Windows-Systemdienst]]e sind so konfiguriert, dass sie im Kontext des [[Root-Konto|System-Benutzerkontos]] laufen
== Vertikale Rechteausweitung ==
* Eine Schwachstelle, z. B. ein [[Pufferüberlauf]], kann ausgenutzt werden, um beliebigen Code im Kontext des System-Benutzerkontos auszuführen
; Erhöhung von Zugriffsrechten
* durch Benutzer oder Anwendungen


*Bei älteren Versionen des [[Microsoft]] [[Windows]]-[[Betriebssystem]]s läuft der Bildschirmschoner im Kontext des System-Benutzerkontos
; Ziel
* Jedes Konto, das die Bildschirmschoner-Anwendung durch eine eigene Anwendung ersetzen konnte, erlangte dadurch System-Privilegien
* Ressourcen eines höher privilegierten Benutzers oder Benutzergruppe nutzen


*[[Stuxnet]] verwendet auf aktuellen Windows-Versionen eine mittlerweile geschlossene Lücke im Taskplaner, die durch eine mittels [[Zyklische Redundanzprüfung|CRC32]] unzureichend gesicherte [[Extensible Markup Language|XML]]-Datei entstanden ist
; Privilegienerweiterung
* 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
Tritt auf, wenn der Benutzer oder der Anwendungsprozess in der Lage ist, sich Administrator- oder gar Systemrechte zu verschaffen, evtl. sogar durch Kerneloperationen


* In einigen Versionen des [[Linux (Kernel)|Linux-Kernels]] war es möglich, durch eine [[Zeiger (Informatik)#Nullzeiger|Nullzeiger]]-Dereferenzierung Root-Rechte zu erhalten
; Beispiel
* Ursache war ein zu früh freigegebener [[Mutex]] im Kernel
* Installation einer Treibersoftware durch einen Benutzer, der sich administrative Rechte verschafft hat


* 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
[[Datei:Priv rings.svg|300px|mini|rechts|Berechtigungsstufen auf [[x86-Prozessor]]en im [[Protected Mode]]]]
 
* Bestimmte Versionen des Linux-Kernels ermöglichten es, ein Programm zu schreiben, welches einen Kindprozess erzeugen und dessen aktuelles Verzeichnis auf <code>/etc/cron.d</code> setzen konnte
* Dieser Kindprozess wurde markiert, um im Falle eines Absturzes ein [[Dump|Speicherabbild]] zu erzeugen
* Anschließend wurde der Kindprozess künstlich beendet
* Das Speicherabbild wurde im aktuell gesetzten Verzeichnis, also in <code>/etc/cron.d</code>, 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 [[Digitale Rechteverwaltung|DRM]]-geschützten Systemen, beispielsweise zur Ausführung von nicht freigegebenen Apps auf dem [[Apple iPhone|iPhone]] oder zur Nutzung von [[Homebrew]]-Computerprogrammen auf Spielekonsolen
* Diese Systeme arbeiten meist auf Basis einer [[Sandbox]], aus der mittels Privilegien-Eskalation ausgebrochen wird


=== Strategien zur Schadensbegrenzung ===
=== Strategien zur Schadensbegrenzung ===
Folgenden Strategien verringern das Risiko, Opfer einer Privilegienerweiterung zu werden:
Folgenden Strategien verringern das Risiko einer Privilegienerweiterung
* [[NX-Bit|Data Execution Prevention]]
* [[NX-Bit|Data Execution Prevention]]
* [[ASLR|Address Space Layout Randomization]]
* [[ASLR|Address Space Layout Randomization]]
Zeile 68: Zeile 47:
* Verwendung von Compilern bei der Softwareentwicklung, die auf Pufferüberläufe prüfen
* Verwendung von Compilern bei der Softwareentwicklung, die auf Pufferüberläufe prüfen
* Verschlüsselung von Software und/oder Firmware-Komponenten
* Verschlüsselung von Software und/oder Firmware-Komponenten
* Verringerung der Rechte eines privilegierteren Benutzers (z
* Verringerung der Rechte eines privilegierteren Benutzers (z.&nbsp;B.&nbsp;[[Systemadministrator|Administrator]]), least privilege
* B. [[Systemadministrator|Administrator]]), least privilege


== Horizontale Rechteausweitung ==
== Horizontale Rechteausweitung ==
Horizontale Privilegienerweiterung tritt auf, wenn es dem Angreifer gelingt, Zugang zu Ressourcen zu bekommen, die einem anderen Benutzer vorbehalten sind, der allerdings selbst nicht hochprivilegiert ist
Unberechtigter Zugang zu Ressourcen eines anderen Nicht-Root-Users
* Das Resultat ist, dass die Anwendung oder der Nutzer Aktionen in einem anderen Sicherheitskontext ausführt, als ursprünglich durch Anwendungsentwickler oder Systemadministrator vorgesehen war
* Das Resultat ist, dass die Anwendung oder der Nutzer Aktionen in einem anderen Sicherheitskontext ausführt, als ursprünglich durch Anwendungsentwickler oder Systemadministrator vorgesehen war


=== Beispiele für horizontale Privilegienerweiterung ===
=== Potenzielle Schwachstellen in Webanwendungen n===
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-ID]]s im [[HTTP-Cookie]]
* Vorhersehbare [[Session-ID]]s im [[HTTP-Cookie]]
* [[Session Fixation]]
* [[Session Fixation]]
Zeile 90: Zeile 59:
* Leicht zu erratende [[Passwort|Passwörter]]
* Leicht zu erratende [[Passwort|Passwörter]]


== Siehe auch ==
Ein normaler Benutzer greift auf Funktionen oder Inhalte, reserviert für andere normale Benutzer zu
* [[Defensives Programmieren]]
 
;Beispiel
* Benutzer A und Benutzer B gehören derselben Benutzergruppe an, aber Benutzer B verfügt zusätzlich über das Recht, auf das Netzwerk zugreifen zu dürfen
* Durch horizontale Rechteausweitung verschafft sich auch Benutzer A dieses Recht


== Weblinks ==
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Links ====
===== Weblinks =====
# https://de.wikipedia.org/wiki/Rechteausweitung
# https://de.wikipedia.org/wiki/Rechteausweitung


[[Kategorie:Sicherheitslücke]]
[[Kategorie:Sicherheitslücke]]
</noinclude>

Aktuelle Version vom 28. April 2024, 13:23 Uhr

Rechteausweitung - Ausnutzung eines Systemfehlers, zur Erhöhung von Zugriffsrechten

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Ausnutzung eines Computerbugs bzw. eines Konstruktions- oder Konfigurationsfehlers einer Software

  • Rechteausweitung, Rechteerhöhung, Privilegienerweiterung oder Privilegien-Eskalation
Ziel

Benutzer oder Anwendung Zugang zu Ressourcen verschaffen, deren Nutzung mit eingeschränkten Rechten nicht möglich wäre

Hintergrund[Bearbeiten | Quelltext bearbeiten]

Viele Computersysteme sind als Mehrbenutzersysteme ausgelegt

  • Enthalten ein Konzept für das Management von Zugriffsrechten
  • Rechteausweitung bedeutet, ein Nutzer erhält Rechte, die er normalerweise nicht hat

Diese Berechtigungen können verwendet werden, um

  • Dateien zu löschen, private Informationen anderer Nutzer abzurufen und zu verändern
  • unerwünschte unerwünschter Programme installieren
Privilegien-Eskalation
  • Fehler in dem betreffenden System
  • Umgehung des Sicherheitskonzepts möglich

Vertikale Rechteausweitung[Bearbeiten | Quelltext bearbeiten]

Erhöhung von Zugriffsrechten
  • durch Benutzer oder Anwendungen
Ziel
  • Ressourcen eines höher privilegierten Benutzers oder Benutzergruppe nutzen
Privilegienerweiterung

Tritt auf, wenn der Benutzer oder der Anwendungsprozess in der Lage ist, sich Administrator- oder gar Systemrechte zu verschaffen, evtl. sogar durch Kerneloperationen

Beispiel
  • Installation einer Treibersoftware durch einen Benutzer, der sich administrative Rechte verschafft hat
Berechtigungsstufen auf x86-Prozessoren im Protected Mode

Strategien zur Schadensbegrenzung[Bearbeiten | Quelltext bearbeiten]

Folgenden Strategien verringern das Risiko einer Privilegienerweiterung

  • Data Execution Prevention
  • Address Space Layout Randomization
  • Pointer Authentication (PAC)
  • Generelle Deaktivierung der Administrator-SID für bestimmte Anwendungen
  • Kernelmodus-Code sollte nur ausgeführt werden, wenn er digital signiert wurde
  • Einsatz aktueller Antivirus-Software
  • Regelmäßige Software-Updates
  • Verwendung von Compilern bei der Softwareentwicklung, die auf Pufferüberläufe prüfen
  • Verschlüsselung von Software und/oder Firmware-Komponenten
  • Verringerung der Rechte eines privilegierteren Benutzers (z. B. Administrator), least privilege

Horizontale Rechteausweitung[Bearbeiten | Quelltext bearbeiten]

Unberechtigter Zugang zu Ressourcen eines anderen Nicht-Root-Users

  • Das Resultat ist, dass die Anwendung oder der Nutzer Aktionen in einem anderen Sicherheitskontext ausführt, als ursprünglich durch Anwendungsentwickler oder Systemadministrator vorgesehen war

Potenzielle Schwachstellen in Webanwendungen n[Bearbeiten | Quelltext bearbeiten]

Ein normaler Benutzer greift auf Funktionen oder Inhalte, reserviert für andere normale Benutzer zu

Beispiel
  • Benutzer A und Benutzer B gehören derselben Benutzergruppe an, aber Benutzer B verfügt zusätzlich über das Recht, auf das Netzwerk zugreifen zu dürfen
  • Durch horizontale Rechteausweitung verschafft sich auch Benutzer A dieses Recht


Anhang[Bearbeiten | Quelltext bearbeiten]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Links[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]
  1. https://de.wikipedia.org/wiki/Rechteausweitung