On Wed, 21 Jun 2006, Venkat Yekkirala wrote:

> > Can you clarify whether, with this patch, Linux will then have a 
> > complete labeled network implementation in terms of both LSPP 
> > compliance and common user requirements?
> 
> I can't comment on the LSPP compliance issue since the specific/proprietary
> security target being used might really decide what's needed.
> 
> As for common user requirements, at least as I understand them, I would
> look for the following in addition to this patch:
> 
> - Auto-labelling of child sockets for TCP (I am planning on sending a
> separate
>   patch out in the next few days).
> - Using the label from the incoming packet while sending timewait
> acknowledgements
>   and other packets sent on behalf of kernel sockets.

I think we'd want to have these as part of this MLS enhancement patchset.  

As-is, it's not functional in a production quality sense, in that, simple 
common actions such as a user pressing ctrl-c in an ftp client can cause 
TCP to break, because packets not owned any more by a process will be 
labeled differently.

Features added to the upstream kernel need to be 'complete' in that they 
provide some minimally functional set of features, and meet a clear user 
requirement.  This code seems to be only partially complete, and it's not 
clear to me (and likely other network maintainers) what a complete 
implementation should look like.

What we need is a design rationale, some kind of detailed discussion of 
what the user requirements are and what the plan is for implementing 
features to meet these requirements.

Then, we can trace patchsets back to the requirements and understand where 
each patchset gets us in terms of orderly progression toward 
specific goals.

> - sid prioritization among the current mix of secmark, ipsec, and the
> upcoming netlabel
> - Replacing secmark on output with an access check in postrouting.

This area in general, the interaction between local packet labeling and on 
the wire labeling, needs some solid analysis and discussion on netdev, so 
that the correct solution can be implemented.

It should not be an afterthought.

> - localhost traffic handling with regard to labelling.

Again, this is an important area, but currently seems like an 
afterthought.

And what about userland APIs relating to MLS labeling?  Does the kernel 
currently provide everything you think you need in this respect?

What about polyinstantiated ports?

What about interaction with namespaces and containers?


> > > Outstanding items/issues: - Timewait acknowledgements and such are 
> > > generated in the current/upstream implementation using a NULL socket
> > resulting in the 
> > > any_socket sid (SYSTEM_HIGH) to be used. This problem is 
> > not addressed 
> > > by this patch set.
> > 
> > This needs to be resolved, along with labeling for all kernel owned 
> > socket/tw objects.
> 
> Resolved these should be, but given the fact that this patch doesn't 
> introduce this problem in the first place, and given the value it adds 
> to the xfrm stuff, my hope would be for this patch to be treated 
> separately. I am hoping for 2.6.18 if possible.

The problem is that not all of the packets are being labeled the way you 
want them to be.  It's a partial solution which I can't imagine being 
useful to anyone in a practical scenario.

Upstream developers are not experts in MLS, yet need to be able to make 
informed decisions on whether patches being submitted are appropriate: 
better documentation is required.

The original SELinux submissions presented a significant shift in thinking 
on security, but they were supported by extensive documentation including 
the user requirement for MAC and detailed design rationale.  This made it 
possible for kernel maintainers to understand what was being submitted.

Similar is required for these MLS enhancements to networking, including 
some broader thinking about general architectural directions (e.g. how 
this fits in with namespaces, as mentioned above, and also possibly, 
whether APIs and other components are suitable also for legacy MLS 
labeling schemes, at least two of which are being worked on).

There's also the question of ongoing maintenance in the mainline kernel.  
Unfortunately, there's been an increasing trend recently for companies to 
drop code over the wall.  For example, once they get it to some basic 
level of completeness, and the initial patches are merged, their 
developers are reassigned to other projects and the upstream maintainers 
are left with code that's not yet up to Linux kernel quality and also 
something they may not understand very well.  So, we need to know whether 
TCS or anyone else with expert knowledge of MLS will be helping months or 
years down the track, once this code has been merged.


- James
-- 
James Morris
<[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to