Date: Fri, 13 Sep 1996 12:32:26 +0300 (EET DST) From: Andrew Stesin <stesin@gu.net> To: Michael Dillon <michael@memra.com> Cc: firewalls@greatcircle.com, freebsd-hackers@freebsd.org Subject: Re: SYN floods - possible solution? (fwd) Message-ID: <Pine.BSI.3.95.960913113044.13351A-100000@creator.gu.kiev.ua> In-Reply-To: <Pine.BSI.3.93.960912233311.11005G-100000@sidhe.memra.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> Date: Thu, 12 Sep 1996 23:33:39 -0700 (PDT)
> From: Michael Dillon <michael@memra.com>
>
> Now here is something that could be used by sites to protect against SYN
> flood attacke assuming that they can build a special custom box with
> enough RAM to buffer the sockets for 30 seconds or more. How high a rate
> can SYN floods come in at?
I think ICMP-based solutions won't work.
But assume the following:
we take a PC with a plenty of RAM and customized BSD kernel,
which works as a packet filter. What we can do with it -- we
T can teach it to do "spoofing+buffering" of TCP handshakes for
i a whole network behind it. The following chain of events will
m take place in time:
e
| ------------------- "Acting persons" --------------------------
|
| Client "Spoofer" Protected
V (attacker?) firewall server
1. Sends SYN to protected Queues SYN as it Knows nothing :)
server. was destined to it
(just to another queue?)
Sends SYN/ACK to client
claiming to be a server,
sets a timeout to wait
for responce.
#if (client is valid)
2. Continues with TCP Sends SYN to server, Gets 1st SYN
connection. claiming to be a client. sends SYN/ACK
to client.
3. Waits Silently "eats" SYN/ACK Waits
server sent, caches connection
as "valid,established" for
passing it through later on.
Passed continuation packet
to server.
4. Works as usual Passed valid connection Works as usual
through.
#else /* SYN/flood attack -- queue timeout expired */
2'. ??? (who cares?) Drops bad SYN away Still knows
nothing
#endif
How to implement this? I'm just starting to check out exactly this,
but as far as I know, Darren Reed's latest IPfilter is able to do
some really sophisticated filtering, and (!) is able today to pass
packets to an external user-space program. Some time coding
that external program for your pet FreeBSD box -- and you
may even store all that nasty-SYNs to a disk queue file! 8-)
(Berkeley DB comes to mind -- very suitable for the purpose!)
> I've heard of 1,000 per sec which implies that
> this box needs to hold open 30,000 to 75,000 potential sockets. Is there
> any problem within IPv4 (seq #'s?) that would make this inherently
> impossible?
200MHz P5, 2 PCI NICs, 256+ Mb RAM,
fast SCSI disk subsystem, + intelligent OS with
intelligent packet filter. That's a today's firewall
of choice for many people, anyway.
What do you people think? This should (might?) work...
>
> Michael Dillon - ISP & Internet Consulting
> Memra Software Inc. - Fax: +1-604-546-3049
> http://www.memra.com - E-mail: michael@memra.com
>
Best,
Andrew Stesin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.95.960913113044.13351A-100000>
