Don Ng <[EMAIL PROTECTED]> wrote:
> Hi a newbie here but I have heard claims that
>any software based firewall bandwidth throughput etc
>is
>inherently unreliable when dealing with the short
>durations of latency through firewalls.

It's a bit more subtle than that. The first rule in
good benchmarking is to make sure that what you
are measuring is related to the value proposition
you're trying to test. For a firewall, its value is that
it provides a presumed level and type of security.
So to measure a firewall's primary purpose, you
want to measure _security_ not _thruput_.
Although thruput is absolutely definitely a factor
worth considering, it's really easy to get focused
on a red herring either accidentally or on
purpose. "NEW! Firewall-2000: the industry's
heaviest firewall, in pounds per cubic inch!!!"

Thruput's definitely something interesting to look
at, but again it's hard. You want to test the
firewall with the most realistic possible looking
loads. Which generally means real traffic! It's
hard (people pay a LOT of money for accurate
load generators) to simulate traffic well. It's
even harder with security traffic because if
you're not careful you may wind up simulating
something that is neither real traffic nor an
attack.

There's a few old (ancient, really!) tools and papers
for firewall load testing that Andrew Molitor
and Chris Kostick and I worked on back in the
dawn of the firewall age of Internet security.
They're on:
http://web.ranum.com/pubs/fwperf/index.htm
beware that they are so old they may not port
cleanly to newer versions of UNIX that ignore
backwards compatibility (linux...)

I recently published a paper on IDS benchmarking
that goes into some of the issues about attack
traffic simulation and how difficult it is. Rather
than repeating big chunks of it here, the URL is:
http://www.nfr.com/forum/publications.html
see "Benchmarking IDS" -- it's amazingly hard to
do it well, it turns out.

>> 1. Sustained TCP connections, thoughput & number.
>> Eg.
>> FTP

You probably want to measure max live connections
at any one time, and also the effect on thruput as the
number increases. Note that this has nothing to do
with the security properties of the firewall but it is still
interesting. You may also want to specify not just
connections but connections by type. I suspect very
few firewalls do anything with FTP (your example!) but
handle the callback connections and gateway the
data through. Why not HTTP connections instead?
Some firewalls might actually do HTTP traffic/content
analysis, so they'll have a different performance
window, there.

IMPORTANT POINT: in the case above, a firewall
that _does_ content analysis will be SLOWER than
on that doesn't. If all you publish is thruput results
you are actually penalizing the more secure firewall!!!
A hub will outperform most firewalls and can handle
lots of connections but are you measuring the right
thing?

>> 2. Short-lived TCP connections, throughput, number,
>> connection establishment and tear-down time. Eg.
>> SMTP/HTTP

This is an interesting number again but what does it
have to do with security?

>> 3. Sustanied UDP connections (although UDP is
>> connectionless), throughput & number. Eg. Streaming
>> video/audio.

Interesting number again, but -
        what does it have to do with security?

I could probably make a defensible argument that a firewall
that doesn't let UDP through at all is a better firewall than
one that doesn't. So...

Which brings me to the next point...

Your measures here are predicated on network-level traffic.
What about a proxy firewall? It's probably a lot more secure
than a network-level firewall but some of the measures you
are describing above are absolutely meaningless for a proxy.
This is one of the things Molitor and I had to deal with. The
conclusion we came to was that the only effective measure
was of real traffic. I.e.: you can't measure arbitrary UDP/DNS
packet performance, you have to measure DNS query
performance against a live nameserver - which means you
have to eliminate caching effects and performance of the
backend/frontend nameserver/nameclient code.

>> 4. Short-lived UDP communication, number. Eg. DNS.

Packet-oriented measure. I'd argue that the most secure
firewall out there won't even admit this test; it'd score a big
fat zero. :)

>> 5. ICMP RTT at diferent load levels.

What kind of firewall lets ICMP through it at all? The good ones
will score a zero here. The bad ones will show throughput...

>> 6. SYN Flood test

Detecting and blocking them, or letting them through? ;) Are
you measuring security here or throughput...

>> 7. Connection establishment time wrt to number of
>> rules on the firewall.
>> 
>> 8. Filtering and fragmentation 
>> - Reaction of the firewall on receiving a TCP packet
>> with the RST or ACK flag set.
>> - IP fragmentation re-assembly test.
>> - Overlap recognition

What about a proxy firewall?

>> 9. Are existing checksums for IP, TCP and UDP
>> verified?
>> 
>> 10. A portscan of the firewall IP. Of the servers
>> behind the firewall.

What does this show? How do you factor in NAT? How
do you factor in the fact that a decent firewall isn't going
to react to this at all? _OR_ it may show every port as
"live" just to mess with you - I wrote one of those once...
It's going to be nearly impossible to get an apples-to-apples
comparison unless you're extremely careful in setting your
criteria.

>> 11. Nessus tests on the firewall IP and the servers
>> behind the firewall.

What does Nessus show? It's a vulnerability scanner.
Vulnerability scanners do inherently different things from
actual attack tools. Or at least they should. Are you
measuring the firewall's ability to be scanned, or to block
attacks? What about a proxy firewall? It's going to react
completely differently to a network-level firewall. Could
you even tell the difference?

>> 12. All the tests repeated with static NAT enabled.
>> 
>> 13. All the tests repeated with IPSec.

With attacks over IPSec (interior domain) or off it? (exterior)
Are you measuring the firewall's ability to validate and decrypt
IP, or to throw it away? Those are the only 2 things such a test
would measure.

>> 14. Effect of logging on the these tests.

"Effect" is not something you can meaningfully benchmark. Do
you mean performance effect, security effect, or effect on disk
I/O, or what?

>> Can you think of more tests for
>> stressing/penetrating
>> the firewall. Also, what methodology should be
>> adopted
>> to measure the various test results?

I think the methodology you've described above and the
questions you've listed above are so rudimentary that you
won't even be able to draw a useful conclusion from them
except for seat-of-the-pants subjective measures. There are
huge differences in fundamentals of how various firewalls
can work (though most of what's out there now are just
glorified cheap sh*t packet filters...) that your criteria
don't take into account. Your focus is over-weighted toward
performance measures that have nothing to do with
security (because it's easier to measure thruput than
security) which risks establishing a preference for the firewall
that is fast, rather than a good firewall.

Frankly, I think you need to go back to the drawing board
and specify whether you are measuring security or thruput.
Start with that decision and work your way back from there.
Building a good test criteria is _incredibly_ hard and is not
a lightweight exercise to jump into without a lot of thought
and some heavy-duty research into testing methods. Every
time someone runs a poorly-designed test and publishes
the results, they do the community a disservice, so please
be as rigorous as you can afford to be!

Good luck!

mjr.
---
Marcus J. Ranum          Chief Technology Officer, NFR Security, Inc.
Work:                           http://www.nfr.com
Personal:                      http://www.ranum.com

_______________________________________________
Firewalls mailing list
[EMAIL PROTECTED]
http://lists.gnac.net/mailman/listinfo/firewalls

Reply via email to