==================================================
[DIDS - Distributed IDS Systems]
Creating the Ultimate Security Tools
**********************************
[red0x -
Underground Labs]
[mixter - <mixter@newyorkoffice.com>]
Copyright (C) 2000 red0x, mixter
<red0x at users.sourceforge.net>
==================================================
/---------------Legend----------------\
| (?) = not sure if I’ll include this |
| (V) = verify
|
\-------------------------------------/
Prelim Outline:
A. Intro
1.
What This is About
2.
Terms
a.
SPOF = [S]INGLE [P]OINT [O]F [F]AILURE
b.
IDS
c.
DIDS
d.
Firewall
e.
Topography
f.
Router
g.
Secure
h.
Insecure
3.
Linux
a.
What
b.
Why
c.
Where
d.
How Much (FREE)
B. Common IDS Methods
1.
Tripwire
a.
Pros
i.
Detects File Changes
ii.
Detects unauthorized users
iii.
Can keep lists of users
iv.
Can log commands
b. Cons
i. DDoS
ii.
Annoying
iii.
Dumb
iv.
No Network Protection
v.
SPOF (only on one host at a time)
2.
Snort
1.
Pros
i.
Easily detects unauthorized connects
ii.
Logs portscans
iii.
Can block Backdoor attacks
iv.
Blocks DDoS
v.
Firewalls
2. Cons
i. Signature Files
ii. Promiscuous
Mode
iii. DoS
iv.
No file protection (tripwire style)
v. Hard to configure for Beginners
vi.
SPOF
3.
Firewalls
1.
Pros
i.
Block Services
ii.
Block IP Ranges
iii.
Secures entire network
iv.
Transparent
2.
Cons
i.
Hard to configure
ii.
Non-Dynamic (wont adapt, usually)
iii.
Remotely Configurable (Hackable)
iv.
Non-Transparent
v.
Only on Your Router
vi.
SPOF
vii.
Firewalking
C. New/Rare Methods
1. Spider Nets [spidernet - mixter.void.ru]
1.
Pros
i.
Distributed Across Network
ii.
Incoporates Tripwire Style IDS
iii.
Central Logs
2.
Cons
i.
Weak as Standalone Security System
ii.
Central Log Server is a SPOF
iii.
User-Space Process
2. Echelon [e4d - mixter.void.ru]
1.
Pros
i.
Sniffs ALL Traffic for Sensitive Data
ii. Central Logs
iii. Non PROMISC
Sniffer
2.
Cons
i.
Reactive, takes no action, just logs
ii.
Data to be sniffed for can be reversed out of the code.
iii.
Central Log Server is a SPOF
iv. Non PROMISC Sniffer
v.
Unencrypted Logs
vi.
User-Space Process
3.
Heuristics Scanning [ewatch -
http://www.eecs.harvard.edu/~rtm/README-ewatch.html]
1.
Pros
i.
Scans ALL Traffic
ii.
`Learns' to recognize traffic
iii.
Recognizes `bad' traffic
iv.
Logs `bad' traffic
2.
Cons
i.
Takes a while to learn (your network must be secured) (V)
ii.
No Protection (Firewalling)
iii.
User-Space
iv.
Annoying
v.
Local, SPOF (kill -KILL pid)
D. Designing a Good System
1.
What to Avoid
i.
Single Point of Failure (SPOF)
ii.
Central Log/Config Servers
iii.
Self/Net-DoS/DDoS
iv.
Raw Logs
v.
User Space Processes, if possible
vi.
Plain-Text Net Traffic, always
vii.
setuid, setgid executables, if possible
2.
What to Include
i.
Possibility to Distribute (DIDS)
ii.
Good Topography
iii.
Good IP Logging
iv.
Encryption of Logs
v.
Encryption of Net Traffic
vi.
PROMISC/RAWSOCKS Capability
vii.
Intelligence, if possible
viii.
Heuristics
ix.
Firewalling
x.
Tripwire Style IDS
xi. Inter-Agent Communcations
xii.
Host Disconnection
xiii.
Anti-DoS/DDoS/Flooding
E. Enter Agents
1.
What is DDIS? (Agents)
2.
Why DDIS? (Agents)
i.
Pros
a.
No Single Point of Failure (Distributed)
b.
Hard to beat
c.
Adaptive
d.
Insecure Host Disconnection
e.
Tripwire Style IDS
f. Spider Net Style NIDS
g.
Firewalling
ii.
Cons
a.
User Space
b.
Static Code
c.
Not too Intelligent
d.
Spoofing (?)
e.
Slow Probe Intervals (?)
F. Conclusion: What to expect from
distributed IDS (DIDS)
1.
Is DIDS Better Than Any Other IDS For My Network
i.
Topography
a.
Ring
b.
Star, Star^n
c.
Backbone
d.
Others (?)
ii.
OS
a.
Linux (see terms section for more info)
2.
How Is It Better?
i.
Pros
a.
Distributed Across All Hosts (No SPOF)
b.
Encrypted Net Traffic
c.
Encrypted Logs on All Hosts (NO SPOF)
d.
PROMISC/RAWSOCKS Capability
e.
IDS and Inter IDS Communications
f.
Heuristics
g.
Good Logs
ii.
Cons
a.
User Space
b.
Static Code
c.
Sniffable
d.
setuid/gid (?)
e.
PROMISC in Star Topography on unswitched Networks
3.
Where Can I Get a Taste of DIDS?
i.
Free Agents NIDS [sourceforge.net/projects/freeagent]
ii.
Agents [december Scientific American, "Red Team versus the Agents"]
iii.
Any others?
G. Notes, Thanks, Etc.
*************************************************************************************
[1. What This is About]
The
Internet today has become a place where security is constantly in question;
every hour, just about, it seems there is
another exploit out for the most popular service.
No one can be completely secure. But, one can try. This paper will outline some popular
(well known) and not so popular (rare)
security schemes that have been noted.
This informational
paper is provided as-is, with no warranty,
either expressed or implied, of any kind.
The reader
chooses what he/she will do with the
knowledge contained herein, and the author, host, and
contributors take absolutely no
responsibility for the readers' action(s). There, now that that is
done, lets move on.
[2. Terms]
Some
terms you may find helpful to know, which are used in this paper, are defined
below.
If you know all of them, feel free to skip
ahead. These terms are here to help you
understand this
document.
[a. SPOF]
A
SPOF, or Single Point Of Failure, is a single host, program, log, -- whatever
--,
such
that, if that Point is compromised, your whole network IDS is in jeopardy.
In
other words, say you have an IDS system that reports to a central log server,
if
that
log server gets compromised, the whole IDS is invalidated, and you now have 0
security.
[b.
IDS]
An
IDS is an Intrusion Detection System.
These can range from firewalls to programs
that
search for `wierd' traffic on your network.
These alert the administrator of
suspicious
activity on his computer/network. These systems are what this paper is
about.
Read on.
[c.
DIDS]
A
new term, coined by red0x. A DIDS is
almost the same as an IDS, with one exception:
A
copy of the DIDS program is distributed to [close to] every host on the network
you
want
to secure (hence distributed). These
take many forms, but generally, they
communicate
amongst themselves and have the ability to shut compromised hosts off from
the
rest of the network. Pretty spiffy, eh?
[d.
Firewall]
A
firewall sounds scary, like a hacker's tool almost. But, its not (if you think that,
stop
being so stupid and narrow minded, read packetstorm.securify.com papers). A
firewall
is a program or piece of hardware that sits on your network (usually close to
the
boarder) and blocks access to certain services on your network from the outside
world,
blocks IP ranges from accessing your network, can hook your entire net into one
single
IP address [NAT], and can generally be reconfigured from the network/internet.
[e.
Topography]
Any
network admin should know this. The
topography of your network is how it is layed
out. If you use hubs to hook up your net, chances
are, your topography is `star.' If
you
use switches, it is still probably `star'; BNC cables, most likely ring; a
fiber
router
hooked to some other routers and hubs, probably 'backbone.' You should get the
idea
by now. If not, go look online for
+"Network" +"Topography".
That should help.
[f.
Router]
A
router is a piece of hardware that forwards packets to where they should
go. This is
how
the internet works. Routers choose the
best route (figure that one out) to the
destination
host, send the packet that way, and return it when it comes back.
[g.
Secure]
Secure
implies that a certain host or network is either 1) detached completely from
the
net,
2) Protected behind a single IP address and many access controls, or 3)
reasonably
unhackable. Hackers will argue that nothing is
unhackable; this is true. That is why
I
said, 'reasonably.'
[h.
Insecure]
Insecure
inplies that a certain host or network either 1) has been hacked, 2) is not
protected
in any way, or 3) is not reasonably secure.
[3. Linux]
[a.
What]
Linux
is an opensource operating system that the greater part of smart internet
server
admins
use. I say smart, because the dumb ones
use Windows NT or the like. That is
not
smart for many reasons: 1) It is not opensource, therefore, the code has not
been
audited,
2) it is REALLY expensive, compared to linux's hefty price of $0, and 3)
Windows
crashes
WAY more than linux or BSD (if you dont know, dont ask).
[b.
Why]
Linux
is good for servers. I wouldn't give linux to your staff, they probably
wouldn't
know
how to use it. But, I would put it on
your company's servers, instead of Windows.
The
reasons are simple: 1) Free upgrades, 2) security updates, 3) Linux is free, 4)
the
damn
thing WONT CRASH, and 5) it is open source, so you can easily reconfigure it
for
your
network's needs.
[c.
Where]
www.linux.org
www.opensource.org
www.slackware.org
www.redhat.com
www.valinux.com
Search
for it, but be warned, there are many flavors of Linux. Try them all if you want.
But,
this isn't a linux add, so on with the show.
[d.
How Much]
Linux
is absolutely free to download, my man, but buying it usually comes with
support,
and
that cost depends on what flavor. I
wouldn't recommend Redhat for secure networks.
If
you want really secure, get BSD, but for linux, try Slackware. Look around for more
info.
[B. Common IDS Methods]
Today,
there are lots of IDS systems. We will
only talk about the linux ones. Most of
the IDS
systems
I've seen for linux are one of two sorts: 1) Host-Based, 2) Port-Based. First
of all,
lets
discuss Host-based, then Port-Based.
[1.
Tripwire]
Tripwire
is a Host-Based IDS system. That means
that Tripwire sits on your computer
monitoring
file changes. If it records changes, it
logs them and alerts you. Then,
you,
as the admin, can see what happened.
[a.
Pros]
Tripwire,
and the like, easily detect file changes.
They use signatures held in
either
every directory or in a central location (SPOF). Some types of this kind
of
IDS can detect logins by unauthorized users -- you have to tell it what that
means
though. Also, most can and will keep
logs of who is online and who is
changing
what file. I'm sure you could also get
some that log command lines
on
a per-user, per-session bassis.
[b.
Cons]
Say
you are running Linux, and you want to upgrade you X-Windows servers. You
go
download the new code. Tripwire alerts
you of file changes... You extract
the
code. Tripwire... You configure and
compile. Tripwire for everyfile...
This
can get alittle annoying and can easily cause a DoS of syslog, hiding stuff
that
should get in it. That is bad, in case
you didn't figure that out.
Tripwire
and it's variants are dumb, in programming speek. They can't usually
tell
the difference betweem what was meant to be changed and what wasn't. So
it
alerts you about all of them. Also,
even worse, any person could hack into
your
system by guessing a password of one of your users, and Tripwire wont alert
you. Why?
Because no files were changed.
That is also bad. Even worse, if
you
store
your file signatures in one directory, what if the hacker deletes them?
That
is a SPOF.
[2.
Snort]
Snort
is my favorite firewall type program.
If you want one, its free, and damn-good.
www.snort.org,
check it out. What it does is sit on
your machine, probably close to your
border,
listen for packets in PROMISC mode (if you dont know what that is, move on),
and
takes
the appropriate action based on the packet's contents.
[a.
Pros]
Snort,
and the like, can easily detect connection attempts to ports you
specify
to block. It can also, easily, detect
portscans, even stealth ones.
After
it detects these, it can block access from the originating host. Also,
snort
keeps a signature file [SPOF] for the currently known attacks and if
any
packets match the signature, they are dropped.
This eleminates most backdoor
attacks
from your network. But hackers know how
to program backdoors and could
easily
change one to evade the signatures.
As
far as I know, snort has signatures of packets that could start a DDoS of your
or
somebody else's machine/network, and will block them. Good stuff, huh?
Snort,
and variants, can also be used like any firewall to block IP ranges, ports,
etc.
[b. Cons]
The
signature file is snorts first con. If
somebody develops a new attack, keeps
the
code private, and never uses it, except against you, snort might as well be
a
backdoor. It will let that go right on
and continue. This is bad. Not only
that
but
the files are a SPOF, if they get deleted, there goes your protection until you
make
new ones. Snort works in PROMISC mode, meaning it grabs ALL packets on your
unswitched
network. Bad idea for some people who
want to run a secure network.
If
you have the right skills, you could reverse engineer snort to dump the packets
if
they contain sensitive data, a possible security compromise. Snort also has DoS
vulnerabilities,
pretty much all IDS' do. I'm not sure
about them exactly, but
I'm
sure they are there. Another con, snort offers no tripwire style
protection.
What
if somebody comes and changes your .rhosts file to contain "+ +",
your host
is
now insecure, and all the traffic to exploit that could get past snort.
Snort's
Achilles heel is that it is tough as hell for beginners to use. What about
a
manual, guys? If you run snort on your
border, and somebody who works near it
goes
over and types "killall -KILL snort", your entire network is
compromised now.
Bad
to have such a drastic SPOF.
[3.
Firewalls]
Everyone
should know what a firewall is. The
most common for `secure' networks is the
hardware
flavor. The smartest admins put these
close to the border of the network, before
the
internal network. This allows for the
best coverage. Also, if you have
separate
sub-networks,
you may want to put on between these nets and the main network at your site.
These
firewalls are capable of blocking IP ranges (*.*.*.* is good for security),
ports,
services, and protocols. It is a good
idea to only let incoming TCP/UDP and block
everything
else.
[a.
Pros]
Firewalls
are good at your border because they can block the outside net from using
certain
services that you mark for blocking.
So, anyone not `behind' the firewall
can't
connect to the specified port of ANY machine behind your wall. Another
pro
is that it can block IP ranges. So if
you read your logs and see evidence
of
an upcomming attack, you can start blocking the IPs, totally. Not only that,
but
a firewall secures your entire network, just by being at the border. That
is
the best benefit of a firewall. Even more advantageous is the ability to become
transparent
on the net. Firewalls can (and should)
block ICMP, which will give
the
impression that your host is down to IP range scanners (a plus). Also,
firewalls
can port redirect, so you can have one machine serving ONLY port 80
of
your single public IP address (saves money), while another machine is serving
FTP. That way, each of your services is secured
from the rest, making it harder
to
identify what OS you are running (taking such messages out of connection
banners
is a good idea.
[b.
Cons]
Firewalls
are a pain to configure and update; it all must be done by the user
and
usually from the command line using such ambiguous commands as
`ipchains
-A ....' You may have no idea what it
is doing. Also, firewalls wont
adapt
to your network, so if you use 192.168.*.* for one subnet, and then add
another
10.*.*.* subnet, your firewall will have to be reconfigured to use that
new
subnet, a slow and annoying process. A
big minus for firewalls (the hardware
flavor)
is that most can be remotely configured. If you choose a bad password,
any
hacker could guess it, change your configuration to leave your entire net
exposed,
and hack in using a method that was previously secured. Also, some
firewalls
wont be transparent, so it is possible to bypass them (if your net
topography
allows). An example is you bought an IP
block 165.67.234.*, you
put
up your net, and your firewall is on 165.67.234.1 and router is on
165.67.234.2,
not directly connected, but through a hub, to your firewall. If
your
router is misconfigured, that firewall will do nothing at all. Also, a
firewall
is usually on its own machine (software), your router (software), or
hooked
in by itself. That is an SPOF. Break the firewall, and the entire net
is
compromised, bad idea. Also, a new
technique has been developed called
firewalking. You can read more on packetstorm
[link]. Basically, it gets
your
network layout without setting off alarms and bypassing filters in your
firewall. Pretty spiffy, huh?
[C. New/Rare Methods]
Some
new methods, mostly good ideas, have been developed. These methods are generally mixtures
of
the aforementioned methods that add pros and reduce the amount of cons for
each. Basically,
most
of these methods are good things to have, in addition to your current IDS
system.
[1. Spider Nets [spidernet - mixter.void.ru]]
This
is something I have never seen before coming to mixter's site. Mixter came up
with
the idea of having multiple Host-Based IDS (tripwire style IDS) `talk' to
each
other. Pretty Spiffy, huh?
[1.
Pros]
The
first and most important thing about this method is that it is distributed.
A
big plus! This way, there is no SPOF.
All the spiders on the network talk
to
a log server and to each other (V).
Another good thing, is not only
can
you have it do echelon style monitoring (discussed below), but you
can
also incorporate Tripwire Style IDS.
Also, there is a central logs server,
that
will encrpyt the logs, etc.
[2.
Cons]
The
downside is that this is weak as a standalone security system. So you have
a
bunch of computers with logs going out to other places, big deal. A real
hacker
can easily get around this. :O) Also, the central logs server, if
implemented,
is a big SPOF. Lose your logs and you
lose your protection.
Even
worse, arguably, is that spidernet runs as a user-space process, so
a
simple 'killall -KILL spiderd spidermon' would to the trick to effectively
disable
this IDS. Good idea tho.
[2. Echelon [e4d - mixter.void.ru]]
One
of my favorites, you could call it a distributed sniffer. Sound like a good idea,
well
it is. Especially if you want to see
what computers on your net are access what
information.
[1.
Pros]
Some
good things about echelon is that is sniffs all the traffic at the socket
level
(IP only). It can read emails, telnet
sessions, X windows, everything
that
isn't encrypted (and that too, but it wont b/f the key for you :p).
Another
plus is that the logs can be stored both on and off site. Sound good?
Even
better for unswitched networks in the star topography is that this IDS
uses
NON-PROMISC sniffing techniques, so you wont get a bunch of repeat data
in
your logs. Even better, all
communications to the log server are encrypted
using
aes. :O)
[2.
Cons]
Echelon
is good, but not that good; here's why.
Echelon is very NOT proactive.
all
it does is take logs of what and from/to where data is going by. And not
all
data, only data you enter into the source code. Another minus: you could
conceivably
reverse the sensitive data that you sniff for out of the sniffer
itself.
Another bad thing, this system uses a central logging server, another
SPOF. If you want to know what information is
going past your router, echelon,
at
least in mixter's implementation, is not for you. It doesn't use PROMISC
mode,
remember, so it only sees data bound for it.
Not only that, but the
data
in the logs ins't encrypted. The most common minus is here too: echelon
runs
as a user-space process. 'killall -KILL
e4d' = bye, bye echelon.
[3.
Heuristics Scanning [ewatch - http://www.eecs.harvard.edu/~rtm/README-ewatch.html]]
This
is a cool project, because it actually works like modern virus scanners. It
searches
your net traffic looking for interesting changes in behaviour. If you dont
usually
do zone transfers, and one hits your DNS server, this takes note and flags
you
down. Pretty good stuff here. Great
combined with a firewall and a tripwire!
[1.
Pros]
I
don't know much about this project, so here are some good things about
heuristics:
i.
Scans ALL Traffic
ii.
`Learns' to recognize traffic
iii.
Recognizes `bad' traffic
iv.
Logs `bad' traffic
[2.
Cons]
Here
are some bad:
i.
Takes a while for it to learn (your network must be secured during that
time) (V)
ii.
No Net Protection (Firewalling)
iii.
User-Space (killall -KILL ewatch = bye, bye)
iv.
Annoying at first (flags you down alot)
v.
Local program = SPOF
[D. Designing a Good System]
On
to the good part, here are some helpful hints to take to heart when you are
designing
a
new IDS system. Listed are things to
avoid, include, and what to expect.
[1.
What to Avoid]
At
all costs, try to distribute your IDS throughout your network, avoiding a SPOF.
DO
NOT EVER make IDS systems with central configuration servers. Logs servers
are
ok, but not configuration servers. If
they get compromised, your whole entire
IDS
and network is compromised. Bad
idea. Try to avoid the possibility for
your
IDS
to flood itself, the console, syslog, or hosts on the net. Extensive testing
and
debugging should be able to find all such occurances and weed them out. At
all
costs, avoid storing raw logs. MD5 sum all logs, keep them in a secure
directory
(umask
700), and encrypt them. If at all possible, try to avoid developing IDS that
run
as user-space processes. This will
avoid the 'killall -KILL program' SPOF.
Always,
Always, Always avoid plain-text net traffic, especially when using DIDS.
The
reason is just common sense, you have the element of surprise. If you can,
try
avoiding developing code that must be run as root or setuid/setgid. This
will
usually help you avoid developing remote exploits (buffer overflows).
[2.
What to Include]
Some
things to include in your IDS:
A
major design feature is the ability to distribute your IDS (thus making it a
DIDS).
Once the size of your IDS is dynamic, so is your measure of security. You
can
run it only on your router machine, or you can put a copy on every host on
your
net, and they all will `talk' and help secure your network from the inside,
even
if one host gets compromised. Try to
pick a good setup for your topography,
make
the IDS fit you, not vice versa. If you
use a backbone system, an IDS using
a
PROMISC sniffer on the backbone would be wise.
If you use an unswitched star
topography,
dont use PROMISC mode, or all the hosts will have exactly the same logs
(although,
that could be good...). Always include good IP logging for questionable
packets. It is a good idea to add that last measure
of security (even though
spoofing
is easy as 1-2-3). Encrypt your logs,
that is a must. Also, a good idea
is
to encrypt and sign your network IDS traffic.
This way, it is harder to forge.
Try
to include the capability to be switched from PROMISC mode to raw sockets at
compile
time WITHOUT changing encryption keys, etc.
That way making more nodes for
your
DIDS is easier. If you have the code-fu, try to get your nodes to think,
whether
using
heuristics, neural nets, or just plain lisp, intelligent `agents' are better
than
dumb nodes. Even without intelligence,
heuristics is good to have. It is
almost
a rule now to make IDS that can interface with firewalls and reconfigure
them
at run time. That is a good practice
and can save the network admin a lot of
time.
Another good idea is to include tripwire style IDS functions in your new DIDS.
This
allows for the system to tell some other system if it has been compromised, and
to
dynamically shut it off from the rest of your net, saving the admin from hell.
Try
to have the nodes, or `agents,' talk to each other and tell each other useful
info,
like 'hey agent 0193a, i'm insecure, shut me down.' Then agent 0193a will
mark
that system and agent as `evil,' add that hosts to hosts.deny, firewall him
out,
and
tell all the other agents to do so as well.
Pretty spiffy, huh? This implies
that
the nodes of your DIDS must be able to block traffic from or to specific hosts.
That
is definitely a good thing to include.
Another wise thing, is the spoofing
capability
to shut down SYN floods (close half-open connections by spoofing FIN/RST
packets,
etc.) and block other DoS/DDoS/Flood attacks.
[E. Enter Agents]
We
have an idea. To make an IDS system
that isn't standalone, its distributed.
It isn't
just
host-based, its also network based. It doesn't use signatures, it uses
heuristics.
Enter
Free Agents NIDS [sourceforge.net/projects/freeagent]
[1.
What is DDIS? (Agents)]
What
the hell are agents? Think of the IDS
(DIDS) we were just talking about.
Each
node, if it had some intelligence, would become an agent. The good thing
about
agents is that you can put one on every host on your network, and they will
all
talk, and learn, what is good and what is bad traffic. Also, they can tell
each
other if they have been compromised, and therefore, dynamically re-secure
your
network. So why would you want this
kinds of Distributed IDS? (DIDS)
[2.
Why DDIS? (Agents)]
The
reasoning is simple. Here is your
network, a huge backbone with stars off
the
main fiber.
[your
network]
* <-
secured, classified host/net (G)
|
[===[=]=====T1-backbone======[=]============[router]==={NET}--
|
* <- 10 normal
hosts (a-j), j is trusted by G, but none other.
fig.
1
Imagine
someone compromises your web host, a, and this hack goes unnoticed. That
hacker
could then easily break into anyother host, except G. So that hacker then
uses
the finger system to find any sort of trust relationships the a-j may have to
secured
host G. Boom! Our hacker finds that G
trusts only j. So, easily perpetrated
from
behind the firewall software on your linux router, our valiant hacker
compromises
j,
and no one notices that either. Well,
my friends, all our hacker has to do is rlogin
over
to G and he could easily bounce the data through your own network (to avoid
your
IDS
firewall and sniffer), to a third party, already hacked web host, and through a
private,
unlogged proxy, into his home computer.
Good luck cleaning that mess up.
With
a DIDS, you would've caught the problem as soon as the hacker got host a. If not,
the
heuristics would've notified you about the finger attempts from inside. That,
my
friend, is why you would want DIDS as opposed to a vanilla IDS.
[i.
Pros]
Obviously,
on a true DIDS, there is no SPOF. As
illutrated above, this IDS is
very
hard to beat. Not only that, but it
could adapt to your network and the
common
traffic that is used. The number one
advantage (i think) of DIDS is
the
insecure host disconnection. As soon as one host is deemed compromised, the
entire
network if your DIDS shuts that host outside of the firewall (if possible),
and
blocks all communications from/to it.
Neat, huh? :p The way the DIDS
would
detect if its host was compromised is using a tripwire style IDS. Changes in
files
will alert the network that something is up.
This DIDS also includes the
spider
net style NIDS. All the nodes (agents)
communicate with each other and
watch
out for you network's security. The capability to place a node (agent) on
your
linux router/firewall increases your security from the outside too! If host
'a'
and your router had nodes from your DIDS, host a could've told the router,
in
the SYN flood case, that it was being flooded by X.X.X.X, and the router
could've
been reconfigured to block that address.
Nice, eh?
[ii.
Cons]
Free
Agents isn't all pluses. The biggest
offset to its power is that, for now,
it
runs as a user space process ('killall -KILL agent' = no more node). Although,
the
other nodes could be configured to take that as a sign of attack (if the host
is
still online). Another downfall is that
the agents never evolve; the code
is
static. The only way to make it smarter
is to upgrade. Not only that, but
there
is a limit to how smart C programs can be.
:( Another possible downfall
could
be attributed to agent spoofing.
Although we dont even have a working agent
yet,
it is always possible to spoof something.
We're working on solutions.
[F. Conclusion: What to expect from
distributed IDS (DIDS)]
This
can only be answered on a per network basis.
But in general, here are some questions that
we
can answer:
[1.
Is DIDS Better Than Any Other IDS For My Network]
That
all depends, what topography, is it homogenous, what OS are you using, and how
is
it set up?
[i.
Topography]
[a.
Ring]
Good
idea to have at least a node of tripwire and a NIDS on each host.
Not
important to have agents, but it is a possibility.
[b.
Star, Star^n]
Sure,
DIDS would be great here, just be sure to turn off PROMISC mode if
your
network is unswitched.
[c.
Backbone]
A
great idea to put an agent on each host.
Put the ones on the backbone
in
PROMISC while the ones on the side nets, if unswitched, should be
on
raw sockets mode, otherwise, put them all in PROMISC.
[d.
Others (?)]
Use
the general rules outlined in the following sections about what
to
include and to avoid.
[ii.
OS]
What
operating system are your hosts using? Currently we are only developing
for
linux, but once done, there will be Sun, BSD, HP, and windoze ports
(i
hate bill...).
[a.
Linux (see terms)]
[2.
How Is It Better?]
Read
above. Here is an outline for those of you who skipped (read: attention
deficit)
[i.
Pros]
a.
Distributed Across All Hosts (No SPOF)
b.
Encrypted Net Traffic
c.
Encrypted Logs on All Hosts (NO SPOF)
d.
PROMISC/RAWSOCKS Capability
e.
IDS and Inter IDS Communications
f.
Heuristics
g.
Good Logs
[ii.
Cons]
a.
User Space
b.
Static Code
c.
Sniffable
d.
setuid/gid (?)
e.
PROMISC in Star Topography on unswitched Networks
[3.
Where Can I Get a Taste of DIDS?]
Look
here:
i.
Free Agents NIDS [sourceforge.net/projects/freeagent]
ii.
Agents [december Scientific American, "Red Team versus the Agents"]
iii.
Any others?
[G. Notes, Thanks, Etc.]
-- red0x