AppArmor Übergang zum Unterprofil - Profil nicht gefunden

370
Phillipp

Ich versuche, ein benutzerdefiniertes AppArmor-Profil für eine PHP-Anwendung zu schreiben. Die PHP-Anwendung wird von PHP-FPM (PHP-Masterprozess) ausgeführt. Ich möchte alles beschränken, was PHP über shell_exec / exec / proc_open / ... mit einem speziellen Profil / hat.

Ich habe folgende Profilstruktur:

docker-php-fpm -> ^phpfpmmaster  -> ^userprogs  

Der phpfpmmaster (seltsamerweise unterstützt Apparmor keine Striche in Profilnamen, wenn er in Übergängen verwendet wird) hat eine Regel, die zum Benutzerprofilprofil übergeht:

^phpfpmmaster flags=(attach_disconnected,mediate_deleted) { .. /bin/dash rCx -> userprogs, .. } 

Laut audit.log kann AppArmor das Profil jedoch nicht finden:

type=AVC msg=audit(1525448842.598:1849368): apparmor="DENIED" operation="exec" info="profile transition not found" error=-13 profile="docker-php-fpm//phpfpmmaster" name="/bin/dash" pid=19686 comm="php-fpm" requested_mask="x" denied_mask="x" fsuid=377118 ouid=0 

Ich verstehe, dass dies daran liegen könnte, dass der Cx das untergeordnete Profil im ^ phpfpmmaster-Hut sucht. Wenn es zu einem untergeordneten Profil / Hut wird, sagt apparmor_parser, dass es das Profil nicht ersetzen kann, da es nicht gefunden wird.

Ich habe dann versucht, den Hut "phpfpmmaster // userprogs" zu nennen. apparmor_parser akzeptiert dies, aber der Profilübergang schlägt mit "Profilübergang nicht gefunden" fehl.

Wie kann ich die / bin / dash-Ausführung auf ein neues Profil / einen Hut beschränken?

1

0 Antworten auf die Frage