Re: ipfilter denial of service problem

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

 



On Sun, 2003-01-05 at 20:15, Yiming Gong wrote:
> Below is an ipfilter security issue, and my previous mail to author
> Darren was bounced back, so I think maybe I should mail it to this
> mailing list.
> 
> Overview
> --
> Anytime ipfilter see a packet with ACK bit set without the previous SYN,
> it will marked it as TCPS_ESTABLISHED in it's state table, and for
> ipfilter will soon notice the RESET packet send back by the system
> application, it will then change it's ttl in state table to 1 minute,OK,
> it's good.
> 
> But If an attact send packet with ACK bit set and bad checksum, ipfilter
> will happily add an "ESTABLISHED" session into it's state table which
> will wait 120 hours to timeout instead of the normal 1 minutes! 
> 
> So using this way an evil guy can easily  destroy  the network
> connection of any system with ipfilter installed in a few minutes!
> 
> 
> proof of concept
> --
> [yiming@security.zz.ha.cn]#hping -s ip.of.spoofedandtrusted.box -A
> ip.of.target.box  -p 22 -c 1 -b
> 
> you will immediately see a a long wait ttl of 120 hours, like this
> 
> security.zz.ha.cn,1235  server,22     4/0  tcp       1        40
> 119:59:48
> 
> Affected Versions:
> --
> I've test the following version of ipfilter
> 
> IP Filter: v3.4.30 
> 
> IP Filter: v3.4.29 (400)
> 
> 
> a chinese vesion of these security issue is at
> 
> http://security.zz.ha.cn
> 
> Best wishes!

I'm fairly certain this is a know issue, and a simple "workaround"
preventing the behavior you describe is possible, the following rule can
be put in for inbound connections, and then again for outbound
connections (possibly with a rate limit to allow some such connections,
but not too many). note that these need to be applied to not just the
INPUT chain, but also the FORWARD and OUTPUT chains

http://www.netfilter.org/documentation/tutorials/blueflux/iptables-tutorial.html#NEWNOTSYN


$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG
--log-prefix "New not syn:" $IPTABLES -A INPUT -p tcp ! --syn -m state
--state NEW -j DROP
    


              Caution
The above rules will take care of
this problem. This is a badly
documented behaviour of the
netfilter/iptables project and
should definitely be more
highlighted. In other words, a huge
warning is in it's place for this
kind of behaviour on your firewall. 



-- 
Russ Dill <Russ.Dill@asu.edu>


[Index of Archives]     [Linux Security]     [Netfilter]     [PHP]     [Yosemite News]     [Linux Kernel]

  Powered by Linux