On Wed, 10 Mar 1999 [EMAIL PROTECTED] wrote:

> My thanks to all the members of the list who answered my questions about audit 
> issues privately! Thank you! You are a great resource. I am the auditor not the 
> person installing the firewall!

You should really consider thanking the people who answered publicly too.  
I've read and re-read the entire thread, and thought quite a bit about the 
audits I've had done on my systems and the audits I've done on others' 
systems.  If you intend to *really* audit a firewall at this point, then I 
think you're doing a disservice to the auditee *especially* if it is intended 
to be a check or balance to the administrator.  

The audits I've had from professional IT auditors who didn't know the 
environment have been more than amusing.  They've basicly ended up being 
narrated self-audits with long pauses for explainations.  Since I 
self-audit before I go live, and periodicly after that, they've been 
a complete waste of my time.  My VP wasn't happy the last time an auditor 
presented him with a report and said auditor asked me in to explain the 
report (since it was rather obvious that I was using the auditor to get 
behaviour changes from the organization that I wanted.)  

It seems, at least from your posts that you've got a checklist of things 
to look at, but you don't know why they're there.  At best that means 
that you've got no way to evaluate a class of vulnerability, and at worst 
it means that you'll have real difficulty spotting anything that's 
half-creative.

*Lots* of administrators create back doors.  I've had some tell me that I 
was insanely stupid for not having any in the systems I administer.  If 
discovering such things is supposed to be in the scope of your audit, then 
once again you're doing the auditee a great disservice.  It is trivially 
easy for an administrator to hide things from all but the most thorough 
of auditors.  If you can't do a vulnerability assessment from the ground 
up, including either single-user mode boots and checksums against 
shipping media, hands-on, then perhaps you can (for the sake of the 
doubters at least) illuminate us as to the value such an audit brings the 
company which is paying for it?

There was a really good thread either here or on firewall-wizards about 
auditor competency (with real content, not just flames about the big 
six).  Someone (perhaps Bennett?) had some very good points about 
auditors, and it's worth a search to find.

If I saw an auditor coming in with questions who couldn't explain to me 
in great detail why they were asking the questions, and who had zero 
administrative experience with the platforms included in my firewalls, 
I'd probably give them a root shell in a chroot'd environment, set up a 
nameserver record that pointed to loopback for external scans, and amuse 
myself for hours while they "checked everything." 

Firewalls and firewalling is necessarily complex, and a real audit of 
such systems requires in-depth _platform specific_ experience and knowledge.

There are professional INFOSEC auditors who can set up sniffers and tell 
you if your Solaris Ethernet drivers are leaking information like 
passwords because they don't clear frames.  They can tell you that an 
administrator has set up a trojaned nameserver for telnet over UDP 
access, and more importantly they can *educate* an administrator on 
_specific things_ they can do to improve the security of their systems.  

If you'd like to turn the balance, here are some tasks you should 
complete *before* trying to do an audit:

1.  Correctly install the same version of the OS as the victim and 
    generate checksums of everything.  Let it run for a day, and 
    generate new checksums.  Find and explain the differences in files.

2.  Get the published vendor patches for said OS and write a small
    explaination of on security, or if there is no security value, 
    why the patch doesn't provide any.  Now you can recommend some
    useful improvements to your victim.

3.  Install the same class of firewall on the above system and do 
    the same checksum exercise.  Add a user, service, or network 
    device, repeat checksum exercise.  Now you've got some idea of
    what normal change is on the platform you're going to audit.  This is
    a very good thing.  You're also capable of helping your victim 
    understand the same, this is even better.

4.  Obtain and build lsof.  Run it on your firewall system, and account for
    every open filehandle.  Especially the sockets.  

5.  Change things until lsof shows only open filehandles that you can 
    explain a direct need for.  Do a ps (-eaf || -aux depending on flavor),
    account for each process.  Get it down to only the processes you can 
    show a direct need for.  At this point, you should already be able
    to add some *real* value to the victim.

8.  Read _Practical Unix Security_ and search the Web for "securing Unix" 
    documents.  Compare your prior work with their contents.  Now you've
    got an idea of what the OS is up against, what the firewall needs to
    protect for, and how to secure a Unix system.  This puts you into
    a good position.  

7.  Get the protocol specifications for telnet, ftp and http.  Analyze
    them for vulnerabilities.  Document your analysis.  *Not until after
    you're done with the documentation*, search for known vulnerabilities
    in each service.  Reconcile the difference in your analysis and the
    proven vulnerabilities.  Now repeat your analysis for rsh, ident,
    and ssh.  By this time, you should have a clue as to why .rhost
    files are bad, but the r* protocols are worse.  Also, you should 
    be able to understand that the presence of a .rhost file isn't
    automatically indicitave of a vulnerability.  This is a valuable
    clue that your checklist won't give out by itself.

8.  Now that you've set up and run a firewall for 3-4 days, done 
    protocol vulnerability analysis, analysis of known exploits,
    OS updates and read a great deal of information, you're ready to
    start looking at the firewalling issues.

9.  Get nmap.  Run it against your firewall.  Run it against a 
    client PC.  Turn off the firewall, start up a Web server and
    the original OS services and run it again.  Analyze the results.
    Find out what they mean.  

10.  Find out about the internal routing protocols in general use, and
     analyze their vulnerabilities.  Do the same for external routing
     protocols.  Contrast the protection mechanisms built into external
     and internal routing protocols.

11.  Set up a sniffer and capture real internet traffic.  Provide an
     analysis of it, both function and vulnerability.

12.  Document what your auditing doesn't cover.  Find out what it takes to
     get the victim to sign paper that explains this.

If you get that far, the next steps will fall quite easily.  If you 
don't, then you will continue to provide less-than-ideal value.  If 
you're signing audit reports without such information, I'd make sure that 
my employment contract contained a bullet-proof clause about my employer 
covering any legal fees and taking culpability for anything that wasn't 
covered in my training.  Most companies use the "bad apple" defense to 
stop them from being sued by {customers, shareholders, employees}.  If you
audited a company I invested in, and it was subsequently broken into, I know
what I'd be telling our lawyers.  

Finally as a closing thought for the rest of the list, the same 
conclusion as last time would seem to apply:

Make sure you can interview any auditors who come in to do your audits.  
If you can't learn _real_useful_information_ from the auditor, then the 
audit is a waste of time and more importantly perception.  You're also still 
generally held accountable for problems, so auditor problems are your 
responsibility as well.

IOW: Audit your auditors.

Paul
-----------------------------------------------------------------------------
Paul D. Robertson      "My statements in this message are personal opinions
[EMAIL PROTECTED]      which may have no basis whatsoever in fact."
                                                                     PSB#9280

-
[To unsubscribe, send mail to [EMAIL PROTECTED] with
"unsubscribe firewalls" in the body of the message.]

Reply via email to