Architektur

macOS: die Engine in der Seatbelt-Sandbox

Auf macOS steckt die Analyse-Engine in der Kernel-Sandbox von Apple. Alles ist verboten, außer dem, was ausdrücklich erlaubt ist - und das erzwingt der Kernel, nicht unser Code.

Lesezeit ~3 Min · Architektur

Seatbelt: die Kernel-Sandbox von macOS

Auf macOS läuft die Engine in der Kernel-Sandbox (Seatbelt / sandbox-exec) mit einem deny-by-default-Profil: Alles ist verboten, sofern nicht ausdrücklich erlaubt. Das ist keine Bibliothek in unserem Prozess, die man umgehen könnte, sondern eine Grenze, die der macOS-Kernel selbst zieht: Filesystem, Prozessstart und Netzwerk sind zu, bis das Profil einzelne, eng umrissene Ausnahmen öffnet.

Das Profil wird mit dem Daemon ausgeliefert und liegt als auditierbare Datei neben dem Modell - Sie können genau nachlesen, was die Engine darf, statt es uns glauben zu müssen. Erlaubt ist im Kern nur zweierlei: die Modell-Datei lesen und auf localhost antworten. Kein Schreiben, kein Start fremder Programme, kein ausgehender Netzwerkverkehr.

Das Seatbelt-Profil ist Text, den Sie lesen können, und es liegt offen neben dem Modell. Der Käfig ist kein Versprechen - er ist nachprüfbar.

Drop auf nobody

Läuft der Dienst als root, gibt die Engine diese Rechte sofort wieder ab: Sie fällt auf den unprivilegierten Nutzer nobody zurück, bevor sie die erste angreiferkontrollierte Zeile liest. Sandbox-Profil und Rechte-Drop greifen zusammen - selbst wenn ein Angreifer die Engine überredet, etwas zu tun, hat der Prozess weder die Rechte noch die vom Kernel erlaubten Pfade dafür.

Keine spürbare Latenz

Der Kernel-Käfig liegt direkt auf dem Ausführungspfad und kostet keine spürbare Latenz: Die Sandbox verändert nicht messbar, wie schnell die Engine antwortet.

Wenn die Sandbox fehlt

Auf macOS ist die Kernel-Sandbox immer da, ein Sonderfall ist also selten. Trotzdem gilt die harte Regel aller Plattformen: Ohne Sandbox startet die Engine nicht. Es gibt kein Degradieren zu einem ungesicherten Lauf; eine verdächtige Änderung bleibt dann liegen und wird sichtbar gemacht, statt ungeprüft durchgewunken zu werden.

Wie derselbe Käfig auf Linux und Windows aussieht und warum das ganze Schutzmodell fail-closed ist, steht im Überblick zur Engine-Sandbox.

War das hilfreich?

Analyse, die man nicht gegen Sie wenden kann.

PoisonZero betreibt die On-Device-Engine auf macOS in der Seatbelt-Sandbox - Modell lesen, auf localhost antworten, sonst nichts.

Sign me up