Paul Moore wrote:
On Friday 13 February 2009 02:36:17 pm chanson@xxxxxxxxxxxxx wrote:
Traditionally network objects in a MLS system are not usually subject to
the usual privilege overrides. I would propose something like the below:
mlsconstrain { netif } { egress ingress }
((( l1 dom l2 ) and ( l1 domby h2 )) or
( t1 == mlsnetflow ));
mlsconstrain { node } { recvfrom sendto }
((( l1 dom l2 ) and ( l1 domby h2 )) or
( t1 == mlsnetflow ));
mlsconstrain { packet } { forward_in forward_out }
((( l1 dom l2 ) and ( l1 domby h2 )) or
( t1 == mlsnetflow ));
"mlsnetflow" would be a new attribute useful for special cases like
unlabeled_t or kernel_t.
Why were network objects not subject to privilege overrides in
legacy/traditional MLS systems?
I ask because I think we are best off keeping the MLS constraints as
consistent as possible. If there is a sound reason for avoiding policy
overrides for just the network controls than perhaps we should consider
"fixing" the rest of the constraints and not just the new ones.
I can provide a bit of history about some legacy systems. In Trusted
Solaris 8 there was a privilege, net_mac_read, that allowed a server to
accept connections from clients with labels it didn't dominate. In order
to reply, the server either needed to set the socket label to match the
incoming client's label, or assert the privilege net_reply_equal. There
was no corresponding net_mac_write privilege, because privilege programs
were expected to use the network API to set their socket labels
appropriately.
In Solaris Trusted Extensions, neither the net_mac_read, net_mac_write,
nor net_repy_equal privileges are implemented. It was viewed as a
weakness in Trusted Solaris that MAC could be overridden by privilege.
Instead, the administrator (who configures the system network policy)
can enumerate multilevel network ports, and appropriately privileged
services can bind to them.
Since MLS constraints are relatively new to UNIX, there isn't a
compatibility requirement that the superuser should be able to override
it. So don't provide any more rope than you need to.
--Glenn
--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.