commit:     9174cbc3bf8727c0070cb081cb94a7289176bec8
Author:     Jonathan Davies <jpds <AT> protonmail <DOT> com>
AuthorDate: Fri Apr 23 17:31:54 2021 +0000
Commit:     Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Fri Nov 12 01:53:00 2021 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=9174cbc3

Added policy for ss to access netlink.

Closes: https://github.com/perfinion/hardened-refpolicy/pull/23
Signed-off-by: Jonathan Davies <jpds <AT> protonmail.com>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>

 policy/modules/admin/netutils.fc    |  1 +
 policy/modules/admin/netutils.if    | 44 +++++++++++++++++++++++++++++++++++++
 policy/modules/admin/netutils.te    | 23 +++++++++++++++++++
 policy/modules/system/userdomain.if |  4 ++++
 4 files changed, 72 insertions(+)

diff --git a/policy/modules/admin/netutils.fc b/policy/modules/admin/netutils.fc
index 13bd901c..3086ab3d 100644
--- a/policy/modules/admin/netutils.fc
+++ b/policy/modules/admin/netutils.fc
@@ -17,5 +17,6 @@
 /usr/sbin/hping2       --      gen_context(system_u:object_r:ping_exec_t,s0)
 /usr/sbin/iptstate     --      
gen_context(system_u:object_r:netutils_exec_t,s0)
 /usr/sbin/send_arp     --      gen_context(system_u:object_r:ping_exec_t,s0)
+/usr/sbin/ss           --      gen_context(system_u:object_r:ss_exec_t,s0)
 /usr/sbin/tcpdump      --      
gen_context(system_u:object_r:netutils_exec_t,s0)
 /usr/sbin/traceroute.* --      
gen_context(system_u:object_r:traceroute_exec_t,s0)

diff --git a/policy/modules/admin/netutils.if b/policy/modules/admin/netutils.if
index c6ca761c..d7b9d342 100644
--- a/policy/modules/admin/netutils.if
+++ b/policy/modules/admin/netutils.if
@@ -212,6 +212,50 @@ interface(`netutils_exec_ping',`
        can_exec($1, ping_exec_t)
 ')
 
+########################################
+## <summary>
+##      Execute a domain transition to run ss.
+## </summary>
+## <param name="domain">
+## <summary>
+##      Domain allowed to transition.
+## </summary>
+## </param>
+#
+interface(`netutils_domtrans_ss',`
+        gen_require(`
+               type ss_t, ss_exec_t;
+        ')
+
+        corecmd_search_bin($1)
+        domtrans_pattern($1, ss_exec_t, ss_t)
+')
+
+########################################
+## <summary>
+##      Execute ss in the ss domain, and
+##      allow the specified role the ss domain.
+## </summary>
+## <param name="domain">
+##      <summary>
+##      Domain allowed to transition.
+##      </summary>
+## </param>
+## <param name="role">
+##      <summary>
+##      Role allowed access.
+##      </summary>
+## </param>
+#
+interface(`netutils_run_ss',`
+        gen_require(`
+               type ss_t;
+        ')
+
+        netutils_domtrans_ss($1)
+        role $2 types ss_t;
+')
+
 ########################################
 ## <summary>
 ##     Execute traceroute in the traceroute domain.

diff --git a/policy/modules/admin/netutils.te b/policy/modules/admin/netutils.te
index 7210c776..d7f4a691 100644
--- a/policy/modules/admin/netutils.te
+++ b/policy/modules/admin/netutils.te
@@ -23,6 +23,10 @@ type ping_t;
 type ping_exec_t;
 init_system_domain(ping_t, ping_exec_t)
 
+type ss_t;
+type ss_exec_t;
+userdom_user_application_domain(ss_t, ss_exec_t)
+
 type traceroute_t;
 type traceroute_exec_t;
 init_system_domain(traceroute_t, traceroute_exec_t)
@@ -148,6 +152,25 @@ optional_policy(`
        munin_append_log(ping_t)
 ')
 
+########################################
+#
+# ss local policy
+#
+
+allow ss_t self:capability net_admin;
+allow ss_t self:netlink_tcpdiag_socket r_netlink_socket_perms;
+
+kernel_read_net_sysctls(ss_t)
+kernel_read_network_state(ss_t)
+kernel_read_proc_symlinks(ss_t)
+kernel_read_system_state(ss_t)
+
+domain_use_interactive_fds(ss_t)
+
+files_read_etc_files(ss_t)
+
+userdom_use_inherited_user_terminals(ss_t)
+
 ########################################
 #
 # Traceroute local policy

diff --git a/policy/modules/system/userdomain.if 
b/policy/modules/system/userdomain.if
index 958e088f..f916aa90 100644
--- a/policy/modules/system/userdomain.if
+++ b/policy/modules/system/userdomain.if
@@ -1556,6 +1556,10 @@ interface(`userdom_security_admin_template',`
                netlabel_run_mgmt($1, $2)
        ')
 
+       optional_policy(`
+               netutils_run_ss($1, $2)
+       ')
+
        optional_policy(`
                samhain_run($1, $2)
        ')

Reply via email to