From eaece936f297e1c77939c0ff0ad4d741de6990b4 Mon Sep 17 00:00:00 2001 From: Stephen Smalley <sds@tycho.nsa.gov> Date: Fri, 13 Mar 2015 16:54:48 -0400 Subject: [PATCH] neverallow untrusted_app as a mlstrustedsubject. Assigning mlstrustedsubject to untrusted_app would undermine the per-user isolation model being enforced via levelFrom=user in seapp_contexts and the mls constraints. There is no direct way to specify a neverallow on attribute assignment, but this makes use of a particular property of the fork permission to prevent ever adding mlstrustedsubject to untrusted_app. A similar restriction for app_data_file and mlstrustedobject is also important for the same reason, but cannot be expressed as a neverallow. Change-Id: I5170cadc55cc614aef0cd5f6491de8f69a4fa2a0 Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> --- untrusted_app.te | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/untrusted_app.te b/untrusted_app.te index f645d6aa9..d88414c6b 100644 --- a/untrusted_app.te +++ b/untrusted_app.te @@ -166,3 +166,13 @@ neverallow untrusted_app service_manager_type:service_manager add; neverallow untrusted_app property_socket:sock_file write; neverallow untrusted_app init:unix_stream_socket connectto; neverallow untrusted_app property_type:property_service set; + +# Do not allow untrusted_app to be assigned mlstrustedsubject. +# This would undermine the per-user isolation model being +# enforced via levelFrom=user in seapp_contexts and the mls +# constraints. As there is no direct way to specify a neverallow +# on attribute assignment, this relies on the fact that fork +# permission only makes sense within a domain (hence should +# never be granted to any other domain within mlstrustedsubject) +# and untrusted_app is allowed fork permission to itself. +neverallow untrusted_app mlstrustedsubject:process fork; -- GitLab