Apologies for my crap quoting, I am stuck to Outlook :-(
> From: Smith, Donald [mailto:[email protected]]
> Sent: Mittwoch, 19. Februar 2014 00:39
> To: Marco Ermini; [email protected]
> Cc: [email protected]; [email protected]
> Subject: RE: I-D Action: draft-gont-opsec-ipv6-firewall-reqs-00.txt
>
[...]
>
> This is hard very hard I don't know of a single v4 firewall that can do full
> proxies for all tcp applications.
>
> REQ GEN-3:
> MUST support full-proxy for the TCP [RFC0793] connections (the
> handshake is validated on the firewall before reaching the target
> system).
> I think what you want is proxies for common layer 7 protocols (like http, ftp
> etc...) So maybe something like this:
> REQ GEN-3:
> Should support full-proxy for common TCP [RFC0793] layer seven
> protocols.
Hi Donald,
Almost every IPv4 firewall today can do it. Even certain NIPS can do it. I am
pretty certain about all of the Juniper SRX series, including the Juniper IDP
NIPS - they do full TCP handshake on behalf of the clients, and CheckPoint can
do that too I think.
Cisco ASA do the same, they just call it "TCP Intercept and Limiting Embryonic
Connections" but practically they do TCP proxy, verify syn-cookies, rate
limits, and so on.
It is pretty much a standard feature, so I see no reason to lower the bar.
Actually being that at the TCP level, I would expect it to work equally for
IPv4 and IPv6 easily. It should be low hanging fruits for firewall vendors.
> However if what you really want is TCP three ways proxied that is a little
> different.
> Would a tcp cookie implementation meet this requirement? Or do you want the
> three way done with the firewall then thrown away and you add the src to
> a whitelist for the next attempt or replay one side or do you want the fw to
> proxy the syn in, syn/ack out and ack back in? If so what is the benefit if it
> keeps all the state in two places now (host and firewall)?
The benefit of a TCP proxy is to normalize the connection, and as you correctly
mentioned, check if a source (which can be spoofed) has too many TCP-SYN
without acting on TCP-ACK, or syn-cookies are not set, or even add a sequence
randomization for the response port in place of an incapable host.
Generally firewalls are even smart enough to avoid applying randomization in
certain cases (e.g., eBGP peers using MD5 checksum would be broken by
randomization applied by the firewall, so it will not apply it to this kind of
traffic. Or at least, the documentation says an administrator should apply it
in that case ;-)).
Do not underestimate the power of these appliances, especially if you haven't
really used them in large scale environment. They are very effective and proven
on IPv4 - the real problem is to have these features on IPv6 too; this is where
vendors are lazy, mostly because of the usual adoption issues that generally
affects IPv6 (vendors go where they can smell the money, unless "encouraged").
> Time outs are generally used mostly for UDP not TCP. I don't object to having
> a timeout ability on tcp connections too but their primary use is UDP
> today in v4.
Connection limits are pretty common on UDP too, and are necessary to limit UDP
DoS/DDoS. I do not think removing them for UDP is really a smart move.
Of course, the only kind of UDP connection limits are maximum number of
simultaneous connections and per client connections; you cannot define how many
proxied connection can be done as this is a TCP-only feature.
> REQ GEN-4:
> MUST be able to enforce timeouts on TCP connections based on
> specific protocols (e.g. enforce DNS timeout to a specific number
> of seconds, or FIN-WAIT, etc.). In general, it MUST have
> different kind of timeout values and thresholds to be used to
> prevent idle established connections to saturate resources on both
> the device and the service that is defended.
>
>
> So maybe "timeouts on UDP, TCP and other IP protocols" ...
>
> This is sometimes referred to as policy routing.
Donald, I agree with your comment.
> REQ GEN-6:
> MUST be able to redirect specific traffic to a proxy server e.g.
> for HTTP/S protocols.
>
> But by saying "redirect" in theory a FW could meet that requirement by just
> rewriting the MAC and replaying the packet. Not really routing a layer 2
> redirect. Which did you mean or did you mean both?
They should divert the traffic to a proxy. They should take the traffic, send
it to an inspection engine, receive it back and forward it. It should be
completely transparent to the users. Users won't even require setting up a
proxy in their browser.
JunOS does it with WebSense, although it could be any kind of HTTP filter in
theory; with Cisco, it is not possible with an ASA, so you create two VRFs and
forward the traffic through an "in" and "out" ports and have an inline filter
connected; with the Microsoft TMG firewall, it's point and click :-)
> REQ SPC-1 and 4 are the same.
>
Well spotted Donald.
> It says here that we want to match icmpv6 errors to tcp and udp you should
> include "and other ipv6 protocols" and won't this bring on new icmp blind
> tcp reset issues?
I agree on the principle; could you elaborate more on the issue this would
bring?
> Split tunneling is almost always a concern on the client side not on
> firewalls.
>
> REQ VPN-5:
> MUST be able to disable or enable split-tunnelling feature on VPN
> as required.
Split tunneling is generally enabled by policy on the concentrator. I agree
that technically the client could not obey... but it is nevertheless configured
as a policy, and the clients and server would agree on a policy during
handshake.
> I have never seen that applied to a firewall but can't say it couldn't be:)
> In general you allow in a vpn remote access client and DON'T want them also
> connected directly to the internet as that punches a whole in your firewall
> (potentially anyways).
Daniel, in an enterprise environment, VPN behavior is controlled centrally. It
is a required feature and pretty normal on IPv4. Of course, if you just use
some kind of open source VPN client and there is no cumbersome proprietary set
up server side, you can have your client doing what it wants; however normally
the administrators will try to avoid that.
The reason is not just because of punching holes in the firewall (although that
is correct), but more simply company compliance, necessity to have all of the
traffic filtered, and so on. Read like "prevent stupid to be stupid" as much as
possible.
> This:
> REQ VPN-6:
> MUST be able to work indifferently on IPv4 and IPv6, and also
> offer both protocol in dual-stack in the same VPN connection.
>
> Should be this:
> REQ VPN-6:
> MUST be able to transit IPv4 and IPv6 packets providing full parity for
> services, and also
> offer both protocols in dual-stack in the same VPN connection.
>
> I am thinking tunnel instead of connection but do not feel strongly about it.
> The use of indifferently isn't technically wrong but isn't the common use of
> that word.
I do not mind either formulation. I feel this is a good contribution.
> This is really ip stack specific attacks (not really os specific).
> I have run non-native ip stacks on some OSes in the past (win3.1...)
>
> REQ DoS-1:
> MUST be able to protect against OS-specific attacks: nuke, ping-
> of-death (NOTE: this list should be expanded, and references
> added).
>
> And all of those pretty much died out. Having said that in there isn't bad.
> Here are a few more of those ip stack attacks.
>
> ICMP Fragments based attacks (this would include POD) and you include
> fragement based attacks in the next requirement.
> Smurf Attack
> Xmas Tree Attack
> LAND Attack
> Teardrop Attack
>
> This one probably needs some expansion.
Maybe we could simply reference rfc4949 ("Internet Security Glossary, Version
2"). The only one missing is the Xmas Tree Attack/scan.
I would also add generic sweeps, scans, and so on. Also, probably mentioning
that the firewall should be able to understand the meaning of a specific IP
option in a certain context and act accordingly (that would cover Xmas Tree
attacks).
If you look from page 906 of this guide:
http://www.juniper.net/techpubs/en_US/junos10.4/information-products/topic-collections/security/software-all/security/junos-security-swconfig-security.pdf
you have a very detailed list of reconnaissance attacks that can be
perpetrated just setting up the right IP options. As a minimum, there should be
the possibility to sanitize obsolete options - I have seen some firewalls
require to enable a NIPS license/card to be able to do it.
> REQ DoS-4:
> MUST be able to protect against TCP resource exhaustion attacks:
> zero-window attacks, SYN-floods, etc. (see e.g. [CPNI-TCP])
> So for syn flooding do we want proxied tcp cookies, or simple tcp
> ratelimiting and do you expect grey, white and blacklisting to be done based
> on some form > of authentication (completes the hand shake or gets the cookie
> right ...)?
> Or can any or all methods be treated the same?
> Wrong RFC :)
> REQ DoS-8:
> MUST be able to participate to a blackhole/sync hole routing
> infrastructure as per [RFC5635].
>
> You probably want this one https://tools.ietf.org/rfc/rfc3882.txt as it talks
> about sinkholing (and it is sink hole not sync hole :) The other one is about
> doing urpf with BHF and being able to do src based BHF.
RFC5635 is an expansion to 3882. The latter is old, and it can only "blackhole"
the DoS to an RFC1918 (private) address. With the former, you can redirect the
traffic to a destination where the traffic can be scrubbed. (You are right
about the "sink" thing - sorry).
Maybe better references could be
https://tools.ietf.org/html/draft-simpson-idr-flowspec-redirect-02 and
https://tools.ietf.org/html/rfc5575 which specifies a new kind of BGP NLRI
called "Flowspec", which allows this scrubbing to happen.
>
> Also we may need to define what "participate" means. I generally don't expect
> firewalls (FW) to talk bgp and BHF is generally done with BGP.
>
First of all, firewalls can do BGP since ages. On JunOS, routers and firewalls
have the same software; CheckPoint can also do all of the routing protocols.
Cisco firewalls can only do "BGP stub" routing with the purpose of route
injection.
In many situations, firewalls are required to speak BGP; the classical instance
is to manage route leakages (e.g. they do OSPF on an internal interface, and
inject matching BGP rules in the external interface). Therefore, they are
required to understand BGP, and it is even more important when it's a security
feature.
In the past, it was considered inappropriate to have a firewall work as a
router, since they lack the fast forwarding plane that allowed a router to
crunch packets without doing deep inspection. Today, there is a general
convergence on both hardware and software of both router and firewalls, more
and more we are moving towards virtualization (and SDNs) and there is also a
differentiation between Internal and External BGP, so that companies with huge
networks actually use BGP as an internal routing protocol.
Some companies like Cisco still think as BGP as a "service provider" protocol,
but that is mostly a marketing issue (in fact they actually license their
useless BGP stub implementation in their PIX/ASA), or a difficulties in having
the same software base for routers and firewalls. The majority of the other
companies have overcome this already.
>
> I will stop here for now to allow you to think about it and the next section
> is going to take more thought.
>
[...]
Thank you very much for your useful contribution and keep on doing it!
Marco
Marco Ermini - PhD CISSP CISA CEH ITIL MCP
Senior IT Security & Compliance Analyst | Compliance Europe
ResMed Germany Inc.
Geschäftsführer: Frank Rebbert, Eric Paffrath, Michael Taube
Sitz der Gesellschaft: München
Registergericht: München, HRB 156206
----------------------------------------------------------------------
Warning: Copyright ResMed. Where the contents of this email and/or attachment
includes materials prepared by ResMed, the use of those
materials is subject exclusively to the conditions of engagement between ResMed
and the intended recipient. This communication is confidential and may contain
legally privileged information. By the use of email over the Internet or other
communication systems, ResMed is not waiving either confidentiality of, or
legal privilege in, the content of the email and of any attachments. If the
recipient of this message is not the intended addressee, please call ResMed
immediately on 1 (800) 424-0737 USA.
----------------------------------------------------------------------
_______________________________________________
OPSEC mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/opsec