Sicherheit von Schnappschüssen unter X11

7

Mit Snaps auf 16.04 LTS gibt es einen Blog-Beitrag von Matthew Garrett, einem bekannten Linux-Kernel-Mitwirkenden und Entwickler von Kernbetriebssystemen, der sagt:

... Snaps laufen uneingeschränkt und haben Zugriff auf so ziemlich das gesamte System

Wenn der Sinn von Snaps darin bestand, die App-Isolation vom gesamten System zu erzwingen, warum können sie dann auf das System zugreifen und unbeschränkt ausgeführt werden? Sollte ein Fehlerbericht eingereicht werden? Werden Schritte unternommen, um dieses Problem anzugehen?

Safriddle
quelle
Einige Berichte wo?
Muru
Nirgendwo behauptete Matthew, dass die Schnappschüsse unbeschränkt liefen. Sie könnten das Opfer sensationeller Schlagzeilen gewesen sein.
Kyle

Antworten:

8

Dies bezieht sich speziell auf Snaps, die X11 verwenden. Mit anderen Worten, Snaps werden nicht uneingeschränkt ausgeführt, aber wenn die Beschränkung des Snaps den Zugriff auf X umfasst, dann ja: Es hat Zugriff auf X. Es handelt sich nicht um Snaps, die die Schnittstellen unity7oder nicht verwenden x11. Das in diesem Blogbeitrag beschriebene Problem ist eine bekannte Einschränkung von X und einer der Gründe, warum alternative Technologien entwickelt werden (z. B. Mir).

Gustavo Niemeyer hat einen guten Blog-Beitrag geschrieben, der dies diskutiert . Ich werde hier der Nachwelt und Vollständigkeit halber zitieren:

Der Sicherheitsbewusste wird feststellen, dass X11 tatsächlich kein sicheres Protokoll ist. Eine Reihe von Systemmissbräuchen ist möglich, wenn wir einem Antrag diese Erlaubnis erteilen. Andere Schnittstellen wie home ermöglichen den Snap-Zugriff auf jede nicht versteckte Datei im Verzeichnis $ HOME des Benutzers (solche, die nicht mit einem Punkt beginnen). Dies bedeutet, dass eine böswillige Anwendung möglicherweise persönliche Informationen stiehlt und diese über das Netzwerk sendet (vorausgesetzt es definiert auch einen Netzwerkstecker).

Einige mögen überrascht sein, dass dies der Fall ist, aber dies ist ein Missverständnis über die Rolle von Snaps und Snappy als Softwareplattform. Wenn Sie Software aus dem Ubuntu-Archiv installieren, ist dies eine Vertrauenserklärung an die Entwickler von Ubuntu und Debian. Wenn Sie die Chrome- oder MongoDB-Binärdateien von Google aus den jeweiligen Archiven installieren, ist dies ein Vertrauensbeweis für diese Entwickler (diese haben Root auf Ihrem System!). Snappy beseitigt nicht die Notwendigkeit dieses Vertrauens, da Sie, sobald Sie einer Software Zugriff auf Ihre persönlichen Dateien, Ihre Webkamera, Ihr Mikrofon usw. gewähren, davon ausgehen müssen, dass diese Berechtigungen nicht böswillig verwendet werden.

Der Sinn von Snappys Beschränkung in diesem Bild besteht darin, ein Software-Ökosystem zu ermöglichen, das genau steuern kann, was und wem auf klare und beobachtbare Weise erlaubt ist, zusätzlich zu der gleichen prozeduralen Sorgfalt, die wir alle in der Linux-Welt zu schätzen gelernt haben , nicht stattdessen. Wenn verhindert wird, dass Benutzer alle relevanten Ressourcen im System verwenden, werden sie lediglich gezwungen, dieselbe Software über weniger sichere Mechanismen zu verwenden, anstatt das Problem zu beheben.

Und was wir heute haben, ist nur der Anfang. Diese Schnittstellen werden bald viel umfangreicher und feinkörniger, einschließlich der Ressourcenauswahl (z. B. welche serielle Schnittstelle?), Und einige von ihnen werden zugunsten sicherer Entscheidungen (z. B. Unity 8) vollständig verschwinden.

Kyle
quelle
Ahhh .. Ok .. ich verstehe es jetzt. Ich hatte den Eindruck, dass Snaps standardmäßig Zugriff auf den x-Server haben, sodass keine Frage bestand, ob sie eingeschränkt ausgeführt werden. Ich stehe korrigiert. Vielen Dank.
Safriddle
Kein Problem! Ja, die für einen Snap verfügbaren Schnittstellen sind hier aufgelistet . Der Snap muss tatsächlich angeben, dass er Zugriff auf X (oder Unity und X) benötigt, bevor er abgerufen wird. Es ist einem Benutzer auch möglich, diese Schnittstelle zu trennen und den Zugriff auf diese Ressource ( snap disconnect) zu verweigern , wie in diesem Blogbeitrag erwähnt.
Kyle
2

Das Problem liegt nicht bei Schnappschüssen, sondern bei X11, einer 30 Jahre alten Technologie, die ohne große Sicherheitsaspekte entwickelt wurde.

Um das Problem zu beheben, müssen Sie lediglich X11 entfernen. Systeme ohne Server, wie z. B. Server, können derzeit von der Snaps-Isolierung profitieren. Die neue Mir , die xserver hoffentlich früher als später ersetzen wird, soll die Sicherheitsprobleme von X11 lösen.

Sie können gerne den Blog-Beitrag von Matthew Garrett lesen , um Ihre Neugier zu befriedigen. Es sagt:

Das Problem hierbei ist das X11-Fenstersystem. X hat kein wirkliches Konzept für unterschiedliche Ebenen des Anwendungsvertrauens. Jede Anwendung kann sich registrieren, um Tastenanschläge von jeder anderen Anwendung zu erhalten. Jede Anwendung kann gefälschte Schlüsselereignisse in den Eingabestream einfügen. Eine Anwendung, die ansonsten durch strenge Sicherheitsrichtlinien eingeschränkt ist, kann einfach in ein anderes Fenster eingegeben werden. Eine Anwendung, die keinen Zugriff auf Ihre privaten Daten hat, kann warten, bis Ihre Sitzung inaktiv ist, ein nicht begrenztes Terminal öffnen und dann Ihre Daten mithilfe von Curl an einen Remotestandort senden. Solange der Ubuntu-Desktop noch X11 verwendet, bietet Ihnen das Snap-Format nur sehr wenig aussagekräftige Sicherheit.

Mikewas auch immer
quelle
Nun, Snap-Isolation hat in x11 immer noch Vorteile, insbesondere, dass die Installation eines Snaps nicht so leicht mit anderen Programmen in Konflikt steht ...
RoundDuckMan