Abo
  • IT-Karriere:

Ubuntu-Sicherheitslücke: Snap und Root!

Über einen Trick kann ein Angreifer Ubuntus Paketverwaltung Snap vorgaukeln, dass ein normaler Nutzer Administratorrechte habe - und damit wirklich einen Nutzer mit Root-Rechten erstellen.

Artikel veröffentlicht am ,
Normaler User oder Admin? Die Paketverwaltung Snap lässt sich überlisten.
Normaler User oder Admin? Die Paketverwaltung Snap lässt sich überlisten. (Bild: congerdesign/Pixabay)

Über eine Sicherheitslücke in Ubuntus selbstentwickeltem Paketsystem Snap können Angreifer Root-Rechte erlangen. Der Sicherheitsforscher Chris Moberly hat die Lücke entdeckt und nennt sie Dirty_Sock, in Anlehnung an eine ähnliche Schwachstelle im Linux Kernel mit dem Namen Dirty Cow. Im Unterschied zu den bisher von Ubuntu verwendeten Debian-Paketen werden die Snap-Apps (Snaps) komplett mit allen Abhängigkeiten gepackt. Moberly hatte die Sicherheitslücke im Januar entdeckt und an den Ubuntu-Sponsor Canonical gemeldet. Dieser hat ein Update von Snapd, dem Hintergrunddienst, über den die Snaps verwaltet werden, veröffentlicht. In Version 2.37.1 wurde die Sicherheitslücke geschlossen.

Stellenmarkt
  1. Evonik Nutrition & Care GmbH, Hanau
  2. BfS Bundesamt für Strahlenschutz, Oberschleißheim

Anders als die bisher von Ubuntu verwendeten Debian-Pakete werden die Snap-Apps komplett mit allen Abhängigkeiten gepackt. Der Dienst Snapd läuft mit Administratorrechten und kann Befehle als Root ausführen, beispielsweise neue Nutzer erstellen. Damit diese ebenfalls nur von einem Benutzer mit Root-Rechten ausgeführt werden können, überprüft Snapd, ob es sich bei dem Nutzer um Root handelt. Allerdings konnte Moberly die Benutzer-ID seines Nutzers gegen die des Root-Nutzers austauschen und so Befehle mit Root-Rechten ausführen und beispielsweise einen neuen Nutzer anlegen. Dies bewerkstelligt er, indem er einen Socket, also eine Schnittstelle, über welche Daten mit einem Programm ausgetauscht werden können, mit dem Namen sock;uid=0; erstellt und diesen mit Snapd verbindet. Die übergebene UID 0 ist die Root-Benutzer-ID. Diese wird von Snapd übernommen; es lassen sich Befehle als Root ausführen.

Um die Lücke ausnutzen zu können, muss ein Angreifer bereits Zugriff auf ein Ubuntu-System haben. Beispielsweise kann ein Benutzer in einem Multi-User-System Root-Rechte erlangen und das Betriebssystem kontrollieren sowie die Daten der anderen Nutzer einsehen und verändern. Ein anderes Beispiel ist die Kombination mehrerer Sicherheitslücken, das sogenannte Chaining. Mit einer Sicherheitslücke gelangt ein Angreifer auf das System, mit einer weiteren erlangt er Root-Rechte.

Python-Scripts veröffentlicht

Moberly hat zwei Methoden entwickelt, um Code als Root auszuführen. Zu beiden Methoden hat er Proof-of-Concept-Python-Scripts auf Github veröffentlicht. In einer ersten Variante verwendet er die create-user-API von Snapd. Um diese auszunutzen, benötigt er jedoch eine Internetverbindung und das Programm adduser, um einen neuen Benutzer zu erstellen. Manche Linux-Distributionen verwenden jedoch das Programm useradd anstatt adduser - seine erste Methode funktioniert dann nicht mehr. Um noch mehr Fälle abzudecken, entwickelte er eine zweite Methode, bei der er ein Snap-Paket im "devmode" erstellt, bei welchem er ein Bash-Script ausführen kann. Dieses dient jedoch nur als Vehikel, um den Code zu transportieren, auch hier nutzt er die oben genannte Sicherheitslücke aus.



Anzeige
Spiele-Angebote
  1. 51,95€
  2. 43,99€
  3. 3,99€
  4. 2,80€

elcaron 18. Feb 2019

Dann review mit der gesparten Zeit halt den fremden Code. Nichttriviale Features (und...

bionade24 17. Feb 2019

Das Dockerfile und das Github-Repo werden nur bei Automated builds angezeigt, heißt ich...


Folgen Sie uns
       


Razer Blade Stealth 13 mit GTX 1650 - Hands on (Ifa 2019)

Von außen ist das Razer Blade Stealth wieder einmal unscheinbar. Das macht das Gerät für uns besonders, da darin potente Hardware steckt, etwa eine Geforce GTX 1650.

Razer Blade Stealth 13 mit GTX 1650 - Hands on (Ifa 2019) Video aufrufen
Programmiersprache: Java 13 bringt mehrzeilige Strings mit Textblöcken
Programmiersprache
Java 13 bringt mehrzeilige Strings mit Textblöcken

Die Sprache Java steht im Ruf, eher umständlich zu sein. Die Entwickler versuchen aber, viel daran zu ändern. Mit der nun verfügbaren Version Java 13 gibt es etwa Textblöcke, mit denen sich endlich angenehm und ohne unnötige Umstände mehrzeilige Strings definieren lassen.
Von Nicolai Parlog

  1. Java Offenes Enterprise-Java Jakarta EE 8 erschienen
  2. Microsoft SQL-Server 2019 bringt kostenlosen Java-Support
  3. Paketmanagement Java-Dependencies über unsichere HTTP-Downloads

Umwelt: Grüne Energie aus der Toilette
Umwelt
Grüne Energie aus der Toilette

In Hamburg wird in bislang nicht gekanntem Maßstab getestet, wie gut sich aus Toilettenabwasser Strom und Wärme erzeugen lassen. Außerdem sollen aus dem Abwasser Pflanzennährstoffe für die Landwirtschaft gewonnen werden. Dafür müssen aber erst einmal die Schadstoffe aus den Gärresten gefiltert werden.
Von Monika Rößiger


    Geothermie: Wer auf dem Vulkan wohnt, muss nicht so tief bohren
    Geothermie
    Wer auf dem Vulkan wohnt, muss nicht so tief bohren

    Die hohen Erwartungen haben Geothermie-Kraftwerke bisher nicht erfüllt. Weltweit setzen trotzdem immer mehr Länder auf die Wärme aus der Tiefe - nicht alle haben es dabei leicht.
    Ein Bericht von Jan Oliver Löfken

    1. Nachhaltigkeit Jute im Plastik
    2. Nachhaltigkeit Bauen fürs Klima
    3. Autos Elektro, Brennstoffzelle oder Diesel?

      •  /