Docker prüft, ob das Standard-Seccomp-Profil angewendet wird

Docker prüft, ob das Standard-Seccomp-Profil angewendet wird

Ich möchte wissen, ob ein bestimmter Docker-Container das Standard-Seccomp-Profil ausführt oder nicht. Ich habe weder Zugriff auf die Befehlszeile, die zum Starten des Containers verwendet wurde, noch auf die Docker-Datei.

Beim Starten ps aufxwwwkann ich sehen, dass der Prozess /usr/bin/dockerd-currentdie Optionen hat --seccomp-profile=/etc/docker/seccomp.json. Dies ist tatsächlich die Standard-Seccomp-Profildatei.

/usr/bin/docker-containerd-currentDer Prozess , der die containerisierte Anwendung startet, hat dies jedoch nicht getan und docker inspectgibt Folgendes zurück: "SecurityOpt": null,.

Wem kann ich also vertrauen?

BEARBEITEN

Noch überraschender ist, dass ich einen Docker ausgeführt habe, während ich explizit einen Seccomp-Filter angegeben habe

docker run -d --security-opt seccomp=/etc/docker/seccomp.python.json friendly

und die /proc/$pid/statusDatei gibt zurück seccomp 0.

Stattdessen hätte ich laut dem Mann erwartet:

2 SECCOMP_MODE_FILTER

Antwort1

Ich bin kein Experte und habe diesen Beitrag eigentlich gefunden, weil ich dieselbe Frage gegoogelt habe, aber ich habe Folgendes herausgefunden.

Wenn Sie Docker mit einem Seccomp-Profil ausführen, geben Sie entweder nichts an, und Docker verwendet den Standard, oder Sie geben selbst ein Profil in daemon.jsonder Befehlszeile an und führen Folgendes aus:

docker run -it alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp:        2

Wie Sie sehen, ist der Seccomp-Filter im Docker aktiviert. Wenn Sie Docker explizit anweisen, ohne Seccomp-Profil zu laufen, erhalten Sie 0.

docker run -it --security-opt seccomp=unconfine alpine /bin/sh
/ # grep Seccomp /proc/1/status
Seccomp:        0

Sie können es also vom Docker aus sehen. Vielleicht ist das sinnvoll, da es die Prozesse im Docker sind, die durch das Seccomp-Profil eingeschränkt werden müssen.

Sie können auch testen, ob ein Profil etwas tut, indem SieHerunterladen des Standardprofilsund etwas daraus entfernen, zB chown, und dann versuchen:

docker run -it --security-opt seccomp=/etc/docker/myseccomp.json alpine /bin/sh
/ # touch testfile
/ # chown 100.100 testfile
chown: testfile: Operation not permitted

Schließlich, nach dermanpagees sieht so aus, als ob Sie ab Kernel 4.14 etwas sehen können in:

/proc/sys/kernel/seccomp/actions_avail

Dies ist in meinem 4.9-Kernel nicht vorhanden. Ich hoffe, dass dies jemandem hilft.

verwandte Informationen