Skip to content
Snippets Groups Projects
  • Stephen Smalley's avatar
    16011320
    Clean up socket rules. · 16011320
    Stephen Smalley authored
    
    Replace * or any permission set containing create with
    create_socket_perms or create_stream_socket_perms.
    
    Add net_domain() to all domains using network sockets and
    delete rules already covered by domain.te or net.te.
    
    For netlink_route_socket, only nlmsg_write needs to be separately
    granted to specific domains that are permitted to modify the routing
    table.   Clarification:  read/write permissions are just ability to
    perform read/recv() or write/send() on the socket, whereas nlmsg_read/
    nlmsg_write permissions control ability to observe or modify the
    underlying kernel state accessed via the socket.
    See security/selinux/nlmsgtab.c in the kernel for the mapping of
    netlink message types to nlmsg_read or nlmsg_write.
    
    Delete legacy rule for b/12061011.
    
    This change does not touch any rules where only read/write were allowed
    to a socket created by another domain (inherited across exec or
    received across socket or binder IPC).  We may wish to rewrite some or all
    of those rules with the rw_socket_perms macro but that is a separate
    change.
    
    Change-Id: Ib0637ab86f6d388043eff928e5d96beb02e5450e
    Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
    16011320
    History
    Clean up socket rules.
    Stephen Smalley authored
    
    Replace * or any permission set containing create with
    create_socket_perms or create_stream_socket_perms.
    
    Add net_domain() to all domains using network sockets and
    delete rules already covered by domain.te or net.te.
    
    For netlink_route_socket, only nlmsg_write needs to be separately
    granted to specific domains that are permitted to modify the routing
    table.   Clarification:  read/write permissions are just ability to
    perform read/recv() or write/send() on the socket, whereas nlmsg_read/
    nlmsg_write permissions control ability to observe or modify the
    underlying kernel state accessed via the socket.
    See security/selinux/nlmsgtab.c in the kernel for the mapping of
    netlink message types to nlmsg_read or nlmsg_write.
    
    Delete legacy rule for b/12061011.
    
    This change does not touch any rules where only read/write were allowed
    to a socket created by another domain (inherited across exec or
    received across socket or binder IPC).  We may wish to rewrite some or all
    of those rules with the rw_socket_perms macro but that is a separate
    change.
    
    Change-Id: Ib0637ab86f6d388043eff928e5d96beb02e5450e
    Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
dhcp.te 1.13 KiB
type dhcp, domain;
permissive_or_unconfined(dhcp)
type dhcp_exec, exec_type, file_type;
type dhcp_data_file, file_type, data_file_type;

init_daemon_domain(dhcp)
net_domain(dhcp)

allow dhcp cgroup:dir { create write add_name };
allow dhcp self:capability { setgid setuid net_admin net_raw net_bind_service };
allow dhcp self:packet_socket create_socket_perms;
allow dhcp self:netlink_route_socket nlmsg_write;
allow dhcp shell_exec:file rx_file_perms;
allow dhcp system_file:file rx_file_perms;
# For /proc/sys/net/ipv4/conf/*/promote_secondaries
allow dhcp proc_net:file write;
allow dhcp system_prop:property_service set ;
unix_socket_connect(dhcp, property, init)
allow dhcp owntty_device:chr_file rw_file_perms;

type_transition dhcp system_data_file:{ dir file } dhcp_data_file;
allow dhcp dhcp_data_file:dir create_dir_perms;
allow dhcp dhcp_data_file:file create_file_perms;

# PAN connections
allow dhcp netd:fd use;
allow dhcp netd:fifo_file rw_file_perms;
allow dhcp netd:{ dgram_socket_class_set unix_stream_socket } { read write };
allow dhcp netd:{ netlink_kobject_uevent_socket netlink_route_socket netlink_nflog_socket } { read write };