Network Intrusion Detection and Prevention?
c0dyd asks: "Lately, computer attacks have gained much popularity in the news; however, it is not often that we hear of new software, hardware or 'appliances' that combat malicious code attacks and data intrusions. Obviously, the need is present. I've searched thoroughly for network intrusion detection and prevention systems, but the choices and technologies seem somewhat limited or proprietary-- Snort appears an obvious open source solution for intrusion detection but many users many find it lacking in intrusion prevention capabilities. What do you, the experienced network admin, use for detecting intrusions on the network and how does your network react to those intrusions?"
I've searched thoroughly for network intrusion detection and prevention systems, but the choices and technologies seem somewhat limited or proprietary-- Snort appears an obvious open source solution for intrusion detection but many users many find it lacking in intrusion prevention capabilities.
You can balance FLOSS and proprietary techs with something like Astaro Security Linux. They do appliances or standalone software.
Bullish Machine Tzar
So, don't underestimate the usefulness of watching your network traffic graphs. With rrdtool it's pretty easy to pull out information and average it. For example, we watch not only our overall 95th %ile utilization, but also rank each user based on their utilization. If use suddenly goes up, increasing their rank, it's probably something we should look at. It's been extremely effective for detecting open HTTP proxies, SMTP relays, and people compromised with various vulneribilities.
Sean
Ask Slashdot: I've been wondering how to do my job. I figure other people out there have jobs too, and know how to do them. Maybe they can share their experiences, or even do my job for me!
pooptruck
I have no idea if this help or not, but NVidia has a technology called ActiveArmor that may be of interest. In a nutshell, it's a Gigabit hardware firewall solution that is built into many inexpesive boards. Supposedly it can be used in both incoming and outgoing directions, allowing you to know immediately if a penetrator attempts to access improper network resources. Here's the schpiel:
ActiveArmor Firewall supports stateless and stateful inspection, Web-based management, pre-defined security profiles, port block filtering, remote administration, and provides an easy-to-use set-up wizard. In addition, ActiveArmor Firewall has anti-hacking features such as anti-IP-spoofing, anti-sniffing, anti-ARP-cache-poisoning, and anti-DHCP server-important security controls for corporate network environments. In a corporate setting, an end-point firewall (such as a desktop firewall) with anti-hacking capabilities can reduce the internally originated security breaches, and can inhibit desktops from generating unauthorized traffic. The result is improved overall security, with reduced requirements from the IT staff.
Again, I'm not sure if it's what you're looking for, but it's at least a very interesting product.
Javascript + Nintendo DSi = DSiCade
As soon as any Ethereal activity occurs I have shell script flash the screen red where a trained monkey pulls out the cat-5 cable.
Is there anything better than clicking through Microsoft ads on Slashdot?
The one feature I'd look for in an intrusion detection device is that it can quickly escalate a detected intrusion attempt to real people (through email, phone, calls, etc).
For real enterprise needs, companies like counterpane not only install the intrusion detection devices; but offer services that monitor them just like the physical alarm companies do.
When I find an attacker getting into my company's network I start pulling my hair out and run around screaming "Aww! Aww! The crackers are taking over my network! Aww! Aww!"
By the way, I just got laid off, does anyone need a Sys Admin?
bro-ids.org
I'd rave more, but bro is watching me and wants me to get back to real work.
Which who command would that be? The one that was on your system originally or the "new and improved" version I just put on there?
BTW nice pr0n collection, your space lego photo series in particular is very kinky.
- Toby
I think the best way to prevent intrusions is to design a personalized login system (and have the system install updates regularly). Just about everyone uses the same system (username then password), so changing the login program to do something funky is enough to screw up any script. Ex:
Please enter todays date (MM/DD/YY):
Please enter your username:
Please enter a valid email address:
Please enter your password:
Just randomize the questions (or have a bunch of questions and randomly ask a few of them) and unless someone is really dedicated to get into your system they're just going to choose another target rather than go after your weird setup.
Obviously Norton Internet Security!
Norton Internet Security provides a COMPLETE security solution for your machine by promptly blocking all programs on your machine from having any internet access, AT ALL! Buy it today!
Don't take life so seriously. No one makes it out alive.
IBM Tivoli Risk Manager provides intrusion detection and automated remediation based on correlated input gathered from numerous sensors in your network. These include network intrusion detection systems (NIDS), host IDS, webserver logs, Windows Event Logs, *nix syslogs, firewall events, SNMP traps, and just about any other device, appliance, or application that writes a log event or generates an SNMP message. The correlation engine at the center is smart enough to take hundreds of thousands of individual input events and display or respond to a handful of meaningful alarms. Read on... http://www-306.ibm.com/software/tivoli/products/ri sk-mgr/
The biggest problem facing anyone looking at implementing an IDS into an existing system is the size of the network.
... :)
:)
If you're doing 500mbit/sec+ of traffic, it requires a somewhat beefy snort box just to process that data let alone do something about anything that looks like an attack.
Snort CAN do it, it just takes a lot of effort to pair down the ruleset to the point where it can handle your traffic. But, pairing down the ruleset has some drawback
Or, if you can segregate your network, that can help a lot too. But unfortunately, a lot of networks suffer from a lack of design and you end up with huge VLANs that span thousands of hosts, and other nightmares.
IMHO If you're worried about intrusion, start with host security. If you have a huge farm of linux boxes, then great. Use iptables and keep everything up to date. If you MUST have sun boxes, try not to put them on the edge of your network - NAT specific ports via linux NAT firewalls. Same goes for windows machines. Don't bare them to the internet for any reason.
Have some aggressive ACLs on your border routers. Don't allow SSH into all your machines directly. Use jumphosts. Consider using token based authentication, like SecurID. Consider Kerberos to replace the use of public key auth in your ssh infrastructure.
once you have that down, putting in an IDS can wait
what I'd really like is a network intrusion product that not only detects "bad guys" but also automatically retaliates, i.e. deluges said bad guy with ping floods, winnukes (yes I know, it's old), tries to root the bad guy's box and wipe the hard disk, or install backorifice, etc...
:-)
I reckon if the majority of network admins did that, perhaps intruders would think twice about playing that game. Not to mention the feeling of satisfaction when (if) the intruder's box is trashes in real-time before his eyes
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Of course, it's needed some tuning so it wouldn' think that things that should be talking to multiple systems in a short time window don't get blocked...
- "History shows again and again how nature points out the folly of men" -- Blue Oyster Cult, 'Godzilla'
Why isn't there a 'bad advice' mod category?
Real prevention is a double edged sword. To really prevent an attack, your device needs to sit in line - or it reacts too late. As such you introduce latency, and the more sophisticated you get, the more the time spent on analysis before the traffic is allowed through. NIDS and HIDS analyse after the fact, so they have the luxury of time since they aren't in line with your traffic. If you have good event correlation, you can raise alerts to appropriate support personnel. But all these don't directly prevent attacks - they just let you know to respond to an attack.
Companies like Tipping Point have devices that claim to do intrusion prevention with low latency - I'd test that claim before purchase, but the demo I saw seemed to indicate it was worth checking out.
No security topic generates more spirited debate than intrusion prevention. Deployed on the edge -- and increasingly, deep inside -- the network, IPSes (intrusion prevention systems) purport to identify and stop attacks before they start based on constantly updated threat profiles. In this Point/Counterpoint, we've pitted Marc Willebeek-LeMair, CTO and Chief Strategy Officer of 3Com's (Profile, Products, Articles) security division, TippingPoint, against Martin Roesch, CTO and founder of Sourcefire (and the inventor of Snort). TippingPoint's Willebeek-LeMair is bullish on the supreme effectiveness of his IPS approach; Sourcefire's Roesch positions IPSes, which his company also sells, as just one component of an integrated network defense system. The clash of these two partisans reveals much about the state of network protection and the rivalry between hardware and software security vendors.
i ds_1.html
http://www.infoworld.com/article/05/05/09/19FEips
I use a Juniper IDP, and love it. Then again, I have to, since I work there. :)
Seriously, though, it's a good system - our sigs are for the most part, open-source - you can see how we detect things, and make a copy and twiddle it yourself. Those few that are closed are generally to protect Intellectual Property concerns.
They're a bit spendy for home use, though. I think the cheapest unit is in the $15-17k range.
Some things also not covered in the question, but imporant issues to raise, are:
1. Ease-of-Use vs. Functionality/Features
2. Performance vs. Security
3. Completeness/Timeliness of Coverage
4. Accuracy
Each IPS vendor has their own angle on these issues, and they're all betting that their angle will be the best - in the end, you as the customer have to decide which of these issues is most important to you, and then find the corresponding vendor.
Juniper has dominant market share, but there are things that other companies do better, but generally at the cost of something we do better at - it's a real mixed bag. See RFC-1925, Section 2, Paragraph 7a for details on this concept.
Juniper IDP is focused on delivering current, feature-rich, accurate detection, generally at the expense of speed and simplicity. Don't get me wrong, though, we're not slugs - our high-end products are currently pushing 2 gig (which in some environments is fast enough). If you want a cheap, 10-gig box with a single "Secure Me" panic button and a single "You Got Owned" idiot light, we're not for you.
I'm an IDS engineer by trade and I could go on for days about this topic. Yes, snort is great. No, it's not anywhere near enough by itself. That's why you take a varied approach. Snort is probably one of the best signature based IDSes available. The user community behind it is very strong and produces some great sigs, usually same day as the vulnerability is announced. But the downside is no protection against 0 day attacks. Therefore you have to have some behavioral systems in place as well. Problem with those is tuning out the false positives can be very difficult and time-consuming. Add a Honey pot/IPS with blocking capabilities like activescout to the mix and you're starting to get there. Add a SIM (security information management) product that can correlate data from all of your sensors and issue blocks to your firewalls and you're well on your way.
Snort isn't designed as a vulnerability scanner; Nessus is. And don't forget than nmap is pretty useful in the hands of someone who knows what they're doing.
As far as "intrusion prevention", there's not a "tool" that does that. You can firewall off unwanted and unneeded traffic; you still need to patch your public services. If you run public services, someone should be responsible for making certain everything you run is up to date and no unpatched vulnerabilities are public (and if the latter is the case, find a workaround or preventative measure until a real patch is out).
All you need is the who command
Ok, that's just silly. Only the crudest of hacks would show up under who. There are plenty of ways to spawn processes in an attack that would show up under something like ps or top, and not under who.
Not to mention the fact that manually running who or ps is not an intrusion detection system. You want something that monitors activity and at the very least e-mails a sys admin when something strange is happening.
Wait, why am I bothering to respond to this obvious troll?
Got Apathy?
s/IPS/DoS/
Any IDS that automatically affects firewall rules is an incredibly dumb idea. Just don't do it. You're putting control of your firewall rules in the hands of an attacker, which makes a DoS attack trivial. I spent a long time convincing management that we didn't want such a system, despite all the vendors' marketing claims that it was an essential part of modern network security. It eventually took a demo where I spoofed an attack from our upstream provider and the system automatically dropped us off the net before they listened[1]. It may seem like a good idea, and indeed with a bit of intelligence in your rules, it can help in some situations. But it's a dangerous game to be playing, and I wouldn't recommend it for any business.
[1] No, not on the production network (although I was tempted).
"The invisible and the non-existent look very much alike." -- Delos B. McKown
Have you had a look at any commercial firewall products lately (SonicWALL, Juniper/Netscreen, Cisco, Fortinet)? The past year has brought about the evolution of yesterday's packet filtering, stateful packet inspection, limited application layer gateways into full-blown "deep packet inspection unified threat management" devices (as the industry prefers to call them now). It's not really accurate to refer to them as firewalls anymore.
These devices can scan most TCP protocols for any kind of malicious content, like snort-style IPS sigs, viruses, phishing sigs, spyware (generally ActiveX), etc. And since they are the gateway, they can also block or sanitize the content. Some of the better implementations (I'll stop short of a specific product endorsement) can even scan all generic TCP streams, and do not impose any size or stream concurrency limitations on the the content they can scan.
The thing to be careful about is throughput - even the higher end models fall short of sustaining gig throughputs, so multiple devices might be required for more demanding networks.
I'm a big fan of Snort, but it's really not good for the enterprise, especially at the core. It's a decent backup or sensor on the cheap near the edge. Multple sensor management and speed really limits Snort's usefulness.
I've seen plenty of appliances out there. Some of your options depends on what kind of equipment you're already running. As far as "best choice", you really should factor in what you already have- if you have Cisco modular equipment at your core or distribution layer, maybe going with the Cisco IDS blade will make more sense than getting a Proventia. Do you have Juniper firewalls? They make an IDS blade that fits in their ISG series.
That being said, I've worked with Cisco IDS and SecureAgent. SA's a real beast- you can expect to spend a long time getting up to speed with it. I've had problems managing the blades themselves- they're basically little RedHat boxes on a blad that plugs into the backplane. CiscoWorks makes it relatively easy to manage but I had a *lot* of problems pushing updates and management info to them, and configuring your modular chassis with the right VLAN stuff can be a bitch unless you're good with Cisco equipment. One issue I hope they fixed was that their email notification sucked and they had to provide a PERL script to generate a useful email alert.
I like Juniper's IDP stuff. Their appliances come with cobber and fibre cards and are a snap to set up. You can set them in in pass-through mode and place them inline between your routers and switches, or just mirror/tap the trunk port. In inline mode you get the ablity to send hard RSTs to both endpoints of an attack. The management software is pretty intuitive and the dashboard give you a very good "at a glance" view. They top out at about 500Mbps/sec so if you're pushing great gobs of data, they might not be sufficient.
I've played around a bit with ISS' Proventia stuff- their appliances are OK, and I think their desktop stuff needs one more development cycle to be good. SiteProtector is decent, but it too needs a little more development in the UI area. The desktop agents are a lot easier to manage than Cisco's SecureAgent.
Clearly, you don't pay much attention to the glossy ads in Infoworld and CIO magazine. FUD marketing out the wazoo for exactly these types of devices.
This is actually a very hard problem to solve. I've written quite a bit on the subject, but I'll attempt to provide a few quick helpful points.
If you have some form of perimeter security, it becomes easier, but still very resource-intensive (both technology resources and human resources). I'm assuming that you're not at a university, or some other type of organization that has a wide open network, because if you were, you wouldn't care.
For a good list of fun tools, look here:. html
http://www.slac.stanford.edu/xorg/nmtf/nmtf-tools
But beyond the rinky-dink stuff, at the most basic level, you want to make two choices right up front:
How important is the real-time interdiction to you?
Do you want signature-based tools, anomaly-based tools, or both?
If you would be content with a good system that doesn't have the ability to mitigate threats in real-time, then that widens your possible solution space quite a bit. In this area, you definitely get what you pay for. FOSS tools that have this capability are way behind commercial tools in ease of maintenance, configuration, and how many types of attacks they work against. So that requirement limits your options considerably.
A similar situation exists when we look at the detection method, signature vs. anomaly. Signature-based systems are a dime a dozen, but they don't cover the really dangerous stuff. Anomaly-based systems are somewhat more useful against the scarier threats, but no FOSS solution comes anywhere close to the commercial offerings. If you choose a FOSS alternative for an anomaly-based IDS/IPS, you will spend so much effort tuning and maintaining that you won't have any time left to respond to issues, and you will still not get adequate results.
I should point out that you have also limited yourself by considering only NIDS/IPS systems. The proper bundle of technologies and tools could give you the real intelligence that you need, whether or not it included NIDS/IPS. Other classes of tools, like SIMS, accounting systems, or deception environments have their uses too.
There are plenty of other aspects to consider, but that would take pages to discuss. All of this could be moot depending on your traffic loads, user demographics, platform constituency, infrastructure design, org chart, geographic distribution, existing IT policies, etc. etc. etc. There's just no universal solution.
A lot of people are trying to come up with data mining tools for intrusion detection. Just check out all the forward links to this paper from citeseer. The problem is that they are currently reliable as bad motion detectors ... too many false positives. Which makes them useless.
I implemented something like this at my home network, but its a dangerous approach to use professionally unless you are sure that it couldn't be used to create a DOS attack. For example, if I spoofed traffic from a bunch of IPs, the system might start denying the spoofed IPs access...
Evolution: love it or leave it
Well, you can always pipe your firewall log into Festival and make it talk to you...
/var/log/messages |festival --tts
tail -f
Oh well, what the hell...
This probably wraps up what various people have said in other ways, but I'll say it again. (and I'm being general on purpose -- I'm not trying to make specific reccomendations). The real answer here is a Defense In Depth Security policy.
To truly protect your system(s), you need to do many different things, including keeping the system updated, educating users, using a NAT, installing an IDS, and much more. That said, an IDS is probably one of the last things you should worry about: get your "basics" right first.
~i = an imaginary being~
I have to admit that I'm just not a big IDS/IPS fan. FAR too few people have the time (at least in my experience) to use them well. It doesn't matter what the product is.
/that/. And then seeing if an IDS is of any additional use.
What is generally lacking is a policy (which, sadly, security is mostly about) and a concrete idea of what to do when an 'attack' is detected.
And people then buy an expensive new IDS, or spend time to implement one, or whatever. Think it's exciting for a while. And then I come back 3 months later and it's turned off in the corner.
And in the meantime people aren't exploiting the information they already have. Not just the bandwidth graphs but firewall logs, system logs, etc. I personally would recommend finding an event correlation system (anyone know of a good open source one?) along the lines of Netforensics or the former Protego and implementing
IPS -- I haven't had enough personal experience with an in-line IDS to make even a remotely intelligent comment. I like the idea of such a platform but it (as MJR frequently points out) falls foul of being an 'allow everything not specifically denied' platform and thus limited. This is not an outright condemnation, since otherwise you run into best being the enemy of good, but it's something to be considered...
"An upstream provider should have been configured as host to never be blocked"
So any attack shown as coming from your upstream provider is going to be passed through, isnt' it?
Of course, that very same rule (don't stop your upstream provider) is valid for whatever other "valuable" connections you may have opened (you don't want your IDS to be fooled into droping connections to your e-commerce database server, do you?).
But then, if any "higher privilege" connection is to be opened, probability is that it will be against some of those "high profile" servers (it has no sense allow say, wide access from a random IP to your Ms SQL Server , ha!-, but it does have it from your management console, and then you won't want your IDS to block connections from you management console just because the bad guys threw some IP-spoofed packets, will you?), and if ever spoofed a connection, chances are they will look as if coming from one of those IPs.
Dinamyc firewall ruling as an attack response is a terribly dumb choice on most circumnstances, still, it has everything needed to be accepted by PHBs when shown on glossy paper on ultrabuzzy products like UltraFireBlade MegaDynSec Pro and such.
Quite a pity.
Snort supports in-line (intrusion prevention) operation on Linux as of version 2.3.0. There is also the snort-inline project which maintains a different code branch that includes support for divert sockets on FreeBSD as well as some in-line focused mods.
Sourcefire (my company) builds commercial-grade IPS using Snort as the foundation technology and it works well. We're continuing to improve the technology on an ongoing basis as it's central to our IPS offerings. If you want to run an IPS to try out the technology, Snort is certainly suitable today.
Check out Q1Labs. (Disclaimer: I'm an employee)
In order for traffic to get through the outside interface of the inner firewall OR the inside interface of the outer firewall, there needs to be some sort of authentication or other interaction. It need only happen at the start of sessions, but all of this assumes there is something there.
All firewalls, on the interface pointing to the middle section, default to blocking ALL traffic from ALL IP addresses, other than that of the authentication server and NIDS device, although NEITHER server can reach other networks - they may only talk to the firewalls.
Once a stream authenticates with the authentication server, the authentication server notifies the firewall to allow that IP/port combination and ALSO notifies the NIDS that it is to stop monitoring that IP/port combination.
In the event of the NIDS detecting ANY actual conversation between two machines that is NOT on its list of authorized connections AND is not an authorization request, it can know that it is an intrusion involving the compromise of one of the firewalls. It then notifies the OTHER firewall to shut down that conversation.
Because the NIDS isn't in-line, there is no latency once the conversation has been approved. Because there is an enforced delay at the start, the NIDS has time to verify that the connection is not an intrusion attempt.
What if someone tries to compromise the authentication server? Well, then it is an unauthorized conversation that is not an authentication request, so will get blocked.
What if someone tries to compromise the NIDS server? Well, because the NIDS server needs to only talk to the two fiewalls and the authentication server, AND because communication is going to be very limited, you can use strong encryption and digital certificates to ensure nobody else can connect to the NIDS system. Everything else can be harvested by passive monitoring.
Is this fool-proof? Probably not, fools are just so ingenious. On the other hand, it would probably be good enough to block the bulk of scans, firewall exploits and other such stuff. Breaking one firewall would not be enough, and by the time you detected the other, you'd be locked out.
This kind of portcullis arrangement is not going to be perfect, but is going to be a lot better than having a single firewall and a copy of Snort running.
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
I use Snort + Swatch. Of all the attacks detected by Snort, I only care about a few that may compromise my system, like the SSH password scans and POP/IMAP/SMTP attacks. Swatch is tailing /var/log/snort/alert and, if an attack is detected 3 times or more in 30 seconds coming from the same IP, I block the IP with iptables. Once a week I rerun my firewall script to cleanup the swatch generated rules.
If I had time I would improve this in two ways:
- To have an e-mail sent to me if the same IP attacks the system again after being blocked for a few days.
- To clean the swatch generated rules by age, and not once a week via cron as I do now.
I set up my scripts so I am emailed ONLY on new activity not seen before. So I find ways to silence minor attacks/alerts which does not interest me in conjunction with finding automatic ways to react on attempts.
I can recommend this setup:
Enough is said about this. Absolutely needed, but useless without intervention. Oinkmaster is nice to use for automatic downloading of new rules.
Perl script for iptables/ipchains. Fast and easy to set up, however any decent firewall will do. Narc allows for user-customization/hacking, which is a plus for those who wants to learn ipchains/iptables and do more advanced stuff than a GUI can offer. I like to fiddle with the rules myself for outgoing packets, which very few firewalls supports. It's nice to know your computer is not sending out traffic you don't know what is. By blocking everything outgoing by default, I will catch stuff in the logs and adjust the rules when I know what it is (not recommended while in production).
Blocks hosts temporarily and permanently based on SSH-logs, snort-alerts and firewall-logs. Nice and easy to extend even if you don't know perl, but have patience to test alot. The maintainer is cool about accepting patches. Yes, you need a list of hosts to never block, and yes a dedicated cracker can spoof IP addresses to DOS you. However, I'll deal with that when somebody does just that. It depends how important your service is I guess.
I set up Samhain to email me of EVERY change in the root filesystem. However, I run Samhain with the silent option just after every upgrade at night. So upgrades are done automatically and silently without alerting me (Debian Stable - Sarge).
It's in the Debian-tree. Can't hurt to use more than one checker. This one is less spammy than Samhain and checks for other kinds of signatures in the system.
This might seem much, but I consider it a bare minimum for an install I'm not going to watch over continuously. Running Linux doesn't make you secure, and even with all this, I know I'm still vulnerable to:
A) Crackers hacking over time. Little by little they may do a portscan and find out enough to do a:
B) Full-scale successful attack. Reactive firewalls just won't stop it, and then you're cracked.
C) DOS. Automatic blocking based on IP and DSL-connection is just not enough to stop DOS and DDOS.
However, with a hardware firewall in front, I feel a bit more secure..
One interesting project is a firewall based on snort: Hogwash. The project is in need of maintainers though. However the idea is cool: To block based on snort-alerts in real-time. This can actually be useful to block intrusions before they can do harm other than DDOSing. I for one will accept the increase in latency if it means my network is that much more secure. I really hope this one will take off one day.
http://www.debunkingskeptics.com/