[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: draft-ietf-v6ops-cpe-simple-security-00



On Dec 4, 2007, at 12:36, Iljitsch van Beijnum wrote:
o Check all traffic to and from the public Internet for basic  
sanity, e.g. anti-spoofing and "martian" filters.
o Allow tracking of application usage by source and destination  
transport addresses.
o Provide a barrier against untrusted external influences on the  
interior network by requiring filter state to be activated by  
traffic originating at interior network nodes.
o Allow manually configured exceptions to the stateful filtering  
rules according to network administration policy."
The first bullet is fairly obvious (although personally I've never  
felt the need to filter packets that are going to fail just fine on  
their own) but I'm not quite sure what the other bullets get at...
I keep hearing the phrase "attack surfaces" every time I try to run  
that argument past my security advisors.
Some things that may deserve attention in the draft:

What about packets with unknown next headers?
Indeed.  What about them?  I would assert that packet filters should  
assume they are last headers and treat them like unknown transport  
layer headers.  Is there another option available?
On the one end you don't want bad guys to work around filters by inserting a header or two between the IPv4 and TCP or UDP headers, but on the other hand you don't want to make innovation impossible by filtering out anything that didn't exist when the CPE was shipped.
You may not want to interfere with innovation, but I'm not sure the  
purpose of simple CPE security as we have currently envisioned it is  
achievable without interfering with such innovation.  The people who  
want to be "protected" by these packet filters are mainly concerned  
with keeping the innovations of malware developers from interfering  
with their private network resources.
In other words, the problem as some see it is that we would all feel  
safer if there were better ways to filter out those things that don't  
currently exist at the time the CPE firmware is mastered.  I wish we  
had more guidance from the IAB about such matters... I know what my  
manager is telling me: don't let anything through unless we know what  
it is.
An extra complication is that although there is a fairly standard extension header format, not all headers conform to this format, so it may or may not be possible to look beyond an unknown header in a packet.
Perhaps, the 6MAN working group could be persuaded to declare a  
particular format for future extension headers that are expected to  
have a cleartext "next header" field that packet filters can  
process?  I'm not sure how much of a problem this is really going to  
cause, though...
(In fact, it occurs to me that we have routing headers and hop-by-hop  
headers, but wouldn't it make sense to have an extension header  
format defined specifically for policy-enforcement points like  
firewall devices?  Just riffing off the top of my head there...)
PMTUD is mentioned but no language about allowing the required packet too big messages through. This is extremely important, PMTUD black holes are a big problem, and some of the IPv4 worarounds aren't available in IPv6. It may even be useful to allow the CPE to advertise a reduced MTU on the LAN side to work around upstream PMTUD breakage, although it wouldn't be a good idea to enable this by default, IMO.
I thought I included that.  Do you have suggested language for  
improving R12, R13, R23 and R24?  Perhaps, you are concerned about  
SCTP, DCCP and future transport layer protocols?
Some other stuff that routinely cause trouble with at least some firewalls: diffserv bits in the IP header, ECN, TCP options in general and window scale in particular. Do we need to say anything about these? (Some firewalls ignore the window scale option but then block "out of window" segments.)
Hmm.  Sounds strangely familiar.

We might be getting ahead of the BEHAVE group on the subject of TCP stateful packet filtering behavior, but that's probably not a bad thing.

--
james woodyatt <jhw@apple.com>
member of technical staff, communications engineering