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).
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.