Intrusion Detection with Snort
What Koziol implies throughout Intrusion Detection with Snort, but never states outright, is that Snort holds an inherent advantage over closed source IDSs, in that the IDS itself can be tailored and customized for each individual deployment to a level not possible for closed source competitors. If you have had the displeasure of working with a rigid, uncustomizable, IDS you already know where this is going ...
In order for an IDS to be effective, or in some high-bandwidth cases, even usable, detailed network and business context must be applied to the IDS. In a nutshell, IDSs are not as plug-and-play as firewalls or other security applications. For example, if you know you are not running any HTTP traffic on the segment where the IDS is sniffing, you may not want your IDS to waste cycles looking for attacks on Apache. On the other hand, you may feel that the mere presence of HTTP traffic may indicate something innately suspicious, so it is of value to watch for any HTTP traffic. It all depends on what you feel are legitimate threats to the network you are attempting to protect. Snort gives you the power to "watch" for specific attacks, protocol anomalies, or other chatter that has no legitimate business running on your network. Other closed source IDSs don't, or can't, have the same flexibility. Only Snort can implement something as detailed as "Send a page to the CISO's phone if this particular subnet attacks these Apache servers with the chunked encoding exploit."
With Snort, novices can easily write attack signatures (called rules) enable or disable specific protocol decoders, and detect advanced attacks such as exploits utilizing polymorphic shellcode. Without this level of flexibility, you are likely to be flooded with alerts that are not relevant, or, even worse, miss an actual attack that causes irreparable data loss.
Like many open source applications, Snort's biggest downfall has been documentation. Who wants to write boring user manuals when he can write code, right? Well, that's all fine and dandy for Snort developers, but folks that want to actually use all of the neat features can't, unless you tell them they are there, and how to use them. Intrusion Detection with Snort bridges this gap, and offers a clear, concise, guideline that helps plan, implement and maintain Snort-based IDS.
Another oft-cited problem with Snort that Intrusion Detection with Snort addresses is the lack of Snort features that are not directly related to intrusion detection. In essence, Snort's developers have concentrated on creating the world's best application for detecting unauthorized activity, and left everything else to other applications. If you want to organize and manage the alerts generated by Snort you have to use another application (ACID). If you desire alerts via email or pager you need another tool (swatch or syslog-ng). If you want to centrally manage attack signatures for multiple Snort installations, guess what? You need another tool (IDS Policy Manager or SnortCenter). Finding, installing, and getting all of these tools to work right can be frustrating, so Koziol walks us through these issues, and in the end we have an IDS rivaling the expensive commercial solutions.
On to the nitty-gritty of the book. Essentially, this book is organized into logical three sections, even though the author did not choose to make these demarcations in print. The first section introduces us to intrusion detection in general and features of Snort. The second section is a detailed installation guide, which walks through setting up and installing the various components of a distributed Snort setup. The final section focuses on post-installation and maintenance tasks, as well as advanced topics.
In the first section, the different breeds of IDS (Host and Network) are honestly presented, Koziol acknowledging in great detail some of the major shortcomings of IDS technology. The book then moves to describing Snort in great detail in an unbiased fashion. Other books on this subject written by Snort contributors are less forthcoming with Snort's disadvantages. The inner workings of Snort (such as packet decoders and libpcap) and the largely undocumented preprocessors are described in detail, giving tons real world examples. The examples are somewhat current, and describe exploits commonly found 6-18 months ago. Although the actual exploits found in the wild may change over time, the strategies for discovering them with Snort should remain relatively constant. The book then moves into the activities required in planning for a Snort-based IDS installation. Some of this is common sense for experienced security practitioners, such as establishing an incident response plan (the "Oh shit, I've been hacked, what do I do now!?!?"), but is relevant for novices. Other topics introduced in this section are:
Sensor placement: where to place an IDS from a network design perspective for maximum benefit.
Inserting a sensor into an in place network: covers using taps, span ports, and dedicated hubs.
Specific hardware and OS considerations: basically, why a flavor of Unix is best for Snort.
Creating a unidirectional sniffing cable: allows network traffic to flow in a single direction, minimizing risk to an IDS segment.
The second section is a detailed guide to building a distributed or 3-tiered Snort IDS. Getting the three components, the sensor (where Snort is actually installed), the server (database, alert management, and reporting server), and the analyst console (secure place to access other components and store config files and scripts) up and working on Linux takes up the bulk of this section. The analyst console chapter walks through the ever-popular Analysis Console for Intrusion Databases (ACID). Attention is paid to configuring a secured setup that encrypts traffic between the various sensors, servers, and consoles. Various packages and tools are described, as well as condensing all of the Snort tiers onto one physical box. Installing and configuring on Windows is covered as well, although this choice of setup is not as thoroughly explained as the others. The third and final section picks up where most books that deal with a specific application or software package too often leave off, namely, keeping the damn thing working. A chapter is dedicated to tuning Snort, and what thresholds can be configured to maximize benefit and performance. Getting real-time alerting via email working with ancillary tools, is covered in a dedicated chapter. Developing a targeted ruleset (a set of automagically generated signatures that will only detect attacks that have the potential to be successful) using a custom shell script is described.
A very important topic in Snort administration, writing custom rules (attack signatures) gets its own chapter. The syntax for creating rules is clearly described, followed by concrete examples. The book works through writing rules by reading through raw packet captures (last year's Slapper worm is a particularly good example). This is followed by upgrading and managing rules, which is highly useful if you have a number of Snort installations to manage. Finally, Intrusion Detection with Snort closes with a chapter on advanced topics. The advanced topics chapter primarily covers the latest fad 'Intrusion Prevention.' Snort can be made into an IPS device via packet scrubbing or shunting. For packet scrubbing, the Snort Inline patch is used and the box is placed in between a trusted and untrusted network, dropping packets that match specifically created rules. Shunting is accomplished with SnortSam, which basically sends a request to a border router or firewall to block an attacking IP address for a predetermined period of time.
Overall Jack Koziol's Intrusion Detection with Snort is a viable text for learning Intrusion Detection with the worlds premier open source IDS, even if it is light on diagrams and pictures, but it still comes highly recommended from this reviewer.
You can purchase Intrusion Detection with Snort from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Sure you can get tons of online articles about security, snort, and everything else under the sun. But for security, it's nice to have a book to get some more robust information than the 2 page onliners.
--------
Free your mind.
I use snort in my network...and it's the fastest, cheapest (!) no-nonsense scanner out there. Beats out anything commercial I've seen, and it's open to boot. I know there's tons of features I never use...Maybe I should buy the book.
I haven't read Koziol's book. The other books the reviewer mentions are:
Snort 2.0 Intrusion Detection
Which is the one I helped out with, and:
Snort 2.0 : The Complete Guide to Intrusion Detection
which isn't out yet. The Syngress book came out really well. Jeff, Dragos, and Jed are all really sharp guys, so I don't doubt their book will be good too, but it's not out quite yet.
The book I helped on has been getting really good reviews on Amazon, and sales have been great. It was written by some great guys from the Snort community, notably Brian Caswell who runs snort.org and Jay Beale, who people will probably recognize from the Bastille project.
The very BIG thing, is Snort will not "clean" or delete the infected message. It will simply report a problem.
Other than that, the snort engine can pretty much detect anything that has a signature to it.
Snort is just a beautiful piece of work. I would argue that it is open sources greatest contribution (linux would be if X wasnt such shit)
Personal computer security is laughable these days. Run snort, use snort, and tell others to run snort, and other free security software packages out there.
Hell buy a copy of this book and lend it to fellow admins, it can only help, let me repeat it can only help.
Not trying to be a troll, but remember not everyone is "Slashdot Savvy" and "in tune" with the hipster software. This is a tried and true program that is so uber documented they're writing books about it, you can't go wrong, seriously.
Ignore the "p2p is theft" trolls, they're just uninformed
I use ClarkConnect linux for my firewall/router, which includes snort
one thing, you need some relatively decent hardware for it to work, as it chews significant processing power sorting thru your packets, and even more cpu time to sort thru all your logs and generate an intrusion detection report.
on my k6-2 500mhz firewall with 256mb ram on my home cable connection, it takes ~30 minutes at 100% cpu to generate a report
To be honest, I only noticed this book because it had Bruce Perens' name on it). It is a good book, regardless of what you think of Bruce (does anybody *not* like him? why?). It's concise and the included scripts look like they do what you need them to do. They also go over what the scripts do, how they work, etc.
Natch, the scripts are available online, so no need to retype them in.
Do you even lift?
These aren't the 'roids you're looking for.
..and I have to say it is the most powerful combo I've come across. Ease of adding/updating/removing snort rules, and an excellent interface for actually viewing the data in a meaningful manner. I'd highly recommend this combination to get the most out of your IDS.
Everyone is entitled to their own opinion. It's just that yours is stupid.
" vulns it *introduces* on your network when you install it"
So I guess installing MS Windows Servers and Workstations on the network is out of question?
1f u c4n r34d th1s u r34lly n33d t0 g37 l41d
I don't care how much a company touts that it's firewall toaster is ``plug and play'' and ``really easy to configure''. This is only part of the equation. You need qualified people working on the firewalls or IDS systems to make sence of what is happening and not to allow some bone-headed ass hat in Q & A to block a root name server since ``It was hacking us on port 53''
The chunking exploit file is a fun read, my favorite so far is this one:
* --- heh, this is a middle finger to all those open source, anti-"m$"
* idiots... slashdot hippies...
LOL
Sticks and Stones may break my bones, but copyright will always protect me.
I don't necessarily want an IDS to run around correcting or cleaning things... it's usefulness is in the fact it's a watchdog. It's light and focused, with elegance in simplicity despite capability.
So long, michael. Don't let the door hit you...
Don't forget that this open source project runs on Windows too. Setup will be a bit strange for non-linuxers, but it does work fine. Add the Snortcenter GUI and you're pretty much fully point-and-clickified. But I prefer the command-line linux version. An interesting use is to track someone's particular e-mails....in a school district it proves valuable if a student is harassing someone, for example. Just set it up to log particular names, and voila...it spits out a daily report of what they've been saying.
Google is great, but there is nothing like picking up a well-organized resource book, especially when tying other modules (like ACID, MySQL, etc.) into the mix. Besides, when you can see information in a single, coherent, organized form, you are able to get a much better feel for the big picture, instead of just the pieces of the puzzle as separate components.
And it never hurts to have a bookshelf packed with technical reference manuals behind your desk for then the PHBs walk in ;-)
"terrorism" and "pedophilia" are the root passwords to the Constitution
I installed snort.. then realized that the rules were just to much to learn in one sitting. I still have not had time to play with it to learn how to set up the rules. I wish there was a curses based GUI for remote admin.
Only 'flamers' flame!
Does slashdot hate my posts?
Yea, ok, try running it on your network, lmk how many vuln's it creates......i have had it on mine for months, and you wouldnt even know its there unless I told you.
I
Real men read /dev/eth0!
The first couple days covered TCP/IP packet composition and attacks. There were then a couple of days about installing and using Snort (taught by Marty Roesch, creater of Snort). Really taught how to use and get value out of your IDS, including a lot of real world examples from people who use it in sites attacked a lot more frequently than mine.
Highly Recommended.
http://www.sans.org
Take a break from the 'shrooms, dude!
"terrorism" and "pedophilia" are the root passwords to the Constitution
I was thinking about purchasing 'Snort 2.0 Intrustion Detection' by Caswell et al. Anyone know how this book compares to the one reviewed here?
kc
Months, huh? So one could assume it's been on your network since before April of this year? Guess what! You've got yourself a remote root exploit!
/320148
http://www.securityfocus.com/archive/1
Using any plugins? You've probably got more than one:
http://www.securityfocus.com/archive/1/318 669
And this is just going back to April.
So, in conclusion, you have a remote root 'sploit on your network and "wouldnt even know its there unless I told you".
I haven't bothered to look into the ways of snort too much, but it's built into smoothwall. I've learned at leat one thing from it.... I still get hit with code red attacks multiple times a day!
/bin/fortune | slashdotsig.sh
This is *way off topic*, but someone must know the answer. I'm noticing tons of default.ida and cmd.exe type IIS "hack" attempts on my Apache boxes. They obviously dont work, but some of these guys are dammed persistant and go over and over and over again. I'd like to be able to do something to change my packet filtering rules to send them to /dev/null or something. It would be great to do this as soon as it happens, but something running on a 5 minute cron would be fine too.
Snort in and of itself is not capable of "cleaning" traffic, as you call it. But, as stated in the article, it can't send email alerts by itself either. However, by combining Snort with other applications it becomes increasingly powerful. If you want email alerts, you use swatch and mailx.
If you want your traffic "cleaned" then you must use Snort in combination with IPTables as an inline firewall. This allows Snort to drop, block, reroute, malicious traffic. At this point, Snort is no longer an IDS but, is instead an Intrusion Prevention System(IPS), the latest buzzword acronym to infest the IT world.
Also, the source to the first two books in my series is now online at phptr.com/perens.
Thanks
Bruce
Bruce Perens.
..if snort could be modified to be a web application error detection system. load it up with rules governing common errors that -- let's admit it now -- we don't always do a good job of coding into our actual applications.
Yea, that's right. Code Red is still alive and kicking. There still are, oh so many, unpatched IIS servers out there.
/dev/null goes, it can usually be done but, depends on your firewall. Simply configure your firewall to drop, not reject or reset, packets that match the Code Red signature. Do some Googling for Code Red Firewall rules. There are rules out there for most firewalls.
As far as redirecting to
while snort is useful and cool, one has to
seriously consider the security issues if running
snort. The code has been plagued with security
issues from day one. It is practically beta code.
I know if i ran snort on x86 linux, i would
consider that my weakest link out of all
my services. i know that one heap overflow exploit
is proably circling hands right now.
funny, your security tools are the most likely
avenue of getting hacked right now.
ironic
"In order for an IDS to be effective, or in some high-bandwidth cases, even usable, detailed network and business context must be applied to the IDS. In a nutshell, IDSs are not as plug-and-play as firewalls or other security applications."
This hits the nail right on the proverbial head. So many articles in the security industry focus on "IDS failures". If you don't know your network, servers, routers, and what they should be doing, you can't implement IDS effectively.
Very important topic, Im glad this point so often missed made it into this book. Should be a good read.
I have an OpenBSD firewall on an Alpha Station 200, in which I tried to run snort. Well snort would crash shortly after startup. When I took a closer look it seems the crash was caused by trying put pointers into int. I can't believe programmers in this day can't get sizeof(void*) != sizeof(int) on all machines.
Anyways I started to try to fix this but the problem was too wide spread in the code that I ran out of time. Which makes me wonder if they make such a simple mistake so common what other bugs could be left in the code that might be exploited later on.
So until snort gets around to fixing these problems it's going to be hard for people to run it on 64bit machines. With the Athlon64 coming out this could really turn into a problem.
In my broadband cable modem acceptable use policy, it says I can't run packet sniffers or analyzers for ANY purpose whatsoever. So can I run this snort program? I'd like to know if someone is trying to get into my comp.
Has anyone tried using Snort, as part of Henwen for the Mac world? How much more control does the Henwen wrapping give you than using Snort alone?
I won't be happy until I can get hold of ICE!
You must think in Russian.
I haven't read the other book, but like I stated earlier it is an interesting read, great ideas and was a great book for teaching me how to use Snort.
I was a brand new person to Snort and it got me up and rolling. I am now using RedHat 8.0, MySQL, and ACID in my small company and things go quite smoothly.
The book has my recomendation to it. Was better then googling for everything.
I've run Snort for a little over a year and a half. I love it, but this book will probably be out of date in a month or two. We've seen versions 1.6 thru 2.0 released within a years time. Some large changes were made along the way as well.
The basics won't change much, but I wonder.
I wonder if the book covers some of the great addons available like acid, barnyard, and snortsnarf?
Why worry? Each of us is wearing an unlicensed "nucular" accelerator on his back.
Sig changed for readability by G.W.
1. Installing on a switched network. For example, we have about 30 switches, so there is no one place that has visibility to all traffic.
2. Using it to detect virus signatures on the network?
There is no possibility of any exploit if you only use snort as a sniffer on a seprate nic. In this case you have no ip configured for this nic and you are only monitoring traffic. 100% Safe
A carefully set up system should not be exploitable (though it may be vulnerable).
There's no reason to allow outbound connections from the snort box, except to the logging / other snort related servers, which should be protected separately anyway.
Thus even an exploit that sets up an outgoing connection should be covered.
That way, no information can leack back to the cracker, and the exploit is worthless.
oh brave new world, that has such people in it!
True but a lot of the commercial IDSs are adding on to overcome the limitations of "rule-based" detection methods. Were's the open-source equivalent of that?
Otherwise, you'd be vulnerable to root exploits, which might not be the happiest moment of your security career.
oh brave new world, that has such people in it!
But; if you set up snort correctly (on a listening only un-numbered interface in a jail) you weren't vulnerable to either of these vulnerabilities.
Do you actually *read* the entire advisory, or are you one of those freak-out "Oh my gosh! It's a vulnerability!" types?
From the advisory:
"For the unstable distribution (sid) these problems have been fixed in version 2.0.0-1."
Show me a package that hasn't had a vulnerability or bug at some point. Then go take a valium, it sounds like you need one.
---------------------------------------------
Yes! Oh yes! My soul is snoring! - Tom Servo
I want a
Snort and the other intrusion detection systems perform to varying degrees at monitoring corporate resources resources and alerting personnel when something is amiss, according to the rulesets they've been given. The article assumes the rulesets are known in advance: your work is to take those rulesets and implement them in Snort or your favorite IDS.
The real world isn't so simple. IT personnel can only guess at all the possible security problems with the network equipment, hardware, server software, clients, external network connections, malicious hackers and information thiefs out there -- as well those rare dishonest insiders. A more effective security implementation includes plenty of logging, and subsequent log analysis.
Logs are easy to generate for all varieties of hardware and software. Collecting and centralizing log data lets you:
Having the history lets an organization more effectively implement the "detailed network and business context" within the real-time IDS solutions.
Of course, the real problem is the $2 million for the Oracle DB to manage all that log data. And querying all that history is a bear. And the DBAs, the software developers, etc. to manage that log history. I've heard that addamark's log management system (LMS) is a good alternative. Someone told me their product replaced a DB2 cluster at one organization after a two-hour DB2 query took three minutes on an Addamark cluster. The cost savings, storage capacity, and log compression were phenomenal too.
Are there other log centralizing solutions out there you've heard of? Addamark seems to work because it's not a full-fledged traditional DB, but optimized for this log management problem -- can a traditional DB keep pace?
Snort holds an inherent advantage over closed source IDSs, in that the IDS itself can be tailored and customized for each individual deployment to a level not possible for closed source competitors.
Very interesting point. It looks like, at least for IDS, the open source business model will always win out. How can you make an application truely customizable if you don't have source-level access? In situations where adaptability is important or even critical, such as IDS, the open source model will always win.
Maybe time to put some money into Sourcefire?
I have no spanning capabilities on my switch and I'm not about to put some $40 CompUSA hub on my production network so the only real choice for me is an ethernet tap. However, I'm having a very difficult time finding schematics for building a 100Mbit ethernet tap. The best I could find is this brief PDF that discusses a bi-directional tap. Unfortunately, this method also requires a spanning port on a switch.
I've found commercial ethernet taps for sale but they all cost upwards of $400. Surely there is a way to build one of these in a home workshop. Does anyone have schematics?
Chris
Which should it be?
I'm a relative newbie to hard core networking stuff...I've run servers for ssh, samba, etc, but just getting those servers running has been a bit of a mystery. Plus they're such great programs, it's easy to get them running without understanding the underlying protocols. I'm hoping Snort will educate me to some of the nuts and bolts that float in the underbelly of networking...It helps to have a friend/mentor too...a guy I know who does crazy networking stuff all day told me that Snort is not the easiest piece of software to use. That's scary to a newbie like me !
The SQL Slammer worm is still a daily occurrence, too.
(TCP port 1433 three SYNs in a row).
While everything else you said was bang on, Slammer actually uses port 1434, and doesn't use SYNs, as it travels over UDP.
If you're seeing repeated TCP attempts at 1433, it may be a worm or it may be someone messing with you, but it most certainly is not Slammer.
Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
I don't see why you couldn't. Then again, I don't see why you couldn't also run tcpdump/ethereal/packet sniffer of your choice. These are pretty much all passive systems, so unless your ISP is hacking into your box to see what processes are running on it, they'll never know.
:)
What I'd be more concerned about, and someone else touched upon here, is that your cable ISP is running a really ancient setup. Basically, you and everyone else on your node are on effectively a flat ethernet, and all traffic that goes to you also goes to them. It's up to the ethernet card to discard packets not intended for you, which is why your ISP doesn't want you sniffing your connection - you can basically see *everything* your neighbours are doing. Note that many internet protocols use plaintext passwords (email being the most obvious), so you could do some pretty serious damage if you were so inclined. Also you can get a good idea of what porn fetishes the guy next-door has, etc.
Modern cable ISPs implement (Docsis? someone help me out here) that basically isolates your traffic from everyone else, so that you can no longer sniff them. If this is the case, and your ISP has the 'no-sniff' rule in their TOS, it's probably just left over from the bad old days.
Regardless, at the end of the day, my ISP can blow me if they think I don't have the right to sniff traffic coming to my box. *You* sent it to me, and if you don't like it, then fix it. The technology isn't exactly new. And again, it's virtually impossible to get caught, so no big whoop either way.
A word of caution though, DON'T try using anything like ettercap (is used to sniff switched networks). It is by no means passive, and will give you away pretty easily. Consider yourself warned
Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
The big advantage with closed source is it's ability to easily be deployed and managed. Also the rules that are supplied by IDS vendors make it easy and hassle free to deploy and keep up to date. With a closed source solution an administrator can concentrate on managing the data that is reported, and spend a lot less time administering the detection agents. This is very important when you have 300 different agents deployed across many different networks.
Also many current IDS systems allow the use of snort rules to be integrated in to their product.
that one just kicked you ass, man you sound like you got yourself the debugger disease, show me some programmer that hasnt had a breakdown at some point, c'mon. Are you underpaid? dontcha got valium for yourself? post was pretty funny, to0.
it's sheer poetry, man.
Only Snort can implement something as detailed as "Send a page to the CISO's phone if this particular subnet attacks these Apache servers with the chunked encoding exploit."
OK, call me a troll, but I work for a prominent (closed source) IDS company and ours can be configured quite easily to do this sort of thing. Plus, I'm reasonably sure ours isn't the only one. There are lots and lots of ways open source software is better than closed source--stick to those and your credibility will thank you for it.
Go read about mod_alias and redirect them to where ever you choose.
I've heard of people redirecting code red attacks to servers setup to cleanse them. Perhaps this is only an urban legend, but a damn clever/funny one at that!
Is this covered?
1. Run snort (after reading said book)
2. ???
3. PROFIT!!!!
Several vendors now make SIM software which is supposed to sift through messages generated by IDSs (as well as routers, log files etc.) and correlate and aggregate the mmessages and display the important stuff. Some products come with fancy graphic displays. Some products require more manual tweaking than others in order to digest the raw messages. Examples of SIM product offerings include NetForensics, E-Security Sentinel, Intellitactics, GuardedNet, NetIQ, IBM Tivoli, etc. etc.