Slashdot Log In
Remote Code Execution Hole Found In Snort
Posted by
kdawson
on Tue Feb 20, 2007 10:00 PM
from the upgrade-right-now dept.
from the upgrade-right-now dept.
Palljon1123 writes "A stack-based buffer overflow in the Snort intrusion detection system could leave government and enterprise installations vulnerable to remote unauthenticated code execution attacks. The flaw, found by researchers at IBM's ISS X-Force, affects the Snort DCE/RPC preprocessor and could be used to execute code with the same privileges (usually root or SYSTEM) as the Snort binary. No user action is required." Sourcefire has an update to fix the vulnerability in versions 2.6.1, 2.6.1.1, and 2.6.1.2; Heise Security spells out the workaround for the 2.7.0 beta version.
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
SANS (Score:4, Informative)
The very definition of irony (Score:3, Insightful)
Re:The very definition of irony (Score:4, Informative)
Parent
Ironic? Hardly. (Score:2)
Re: (Score:2)
Re: (Score:2)
Remote, what about stealth installations (Score:4, Insightful)
Re: (Score:3, Insightful)
Re:Remote, what about stealth installations (Score:4, Informative)
There are a few problems with passive taps...
1. They *don't* work with gigabit ethernet. If I remember the spec for gigabit ethernet correctly, this has something to do with the fact all of the wire pairs are used for XMIT and RECV.
2. The passive tap in the link you provided isn't exactly good for your network. This tap will still draw current as well as introduce some interference. In the worst case, you can blow a NIC with one of these. Of course, the easiest way around these problems is to use a hub (do not use a network switch as that won't work... you need a HUB).
3. You will need to run 2 NICs (1 for XMIT, 1 for RECV) in order to examine full duplex traffic. This may be an issue if you are trying to run snort on an embedded device.
If I had the option, I would rather run a spare computer as a Linux (or BSD based for that matter) firewall box and use port mirroring to mirror ethernet traffic over IEEE1394 (firewire) to another box running snort. The only downside is that ethernet over firewire is at best a 400 megabit connection.
Parent
Re: (Score:2)
My cheap "web-managed" switch allows me to specify a monitor port where all traffic from (an)other port(s) gets duplicated to. This port is not a member of any VLAN and has non-tagged ingress traffic blocked. So effectively it's a send-only tap from the switch's POV.
Any halfway decent switch can do that.
Re: (Score:2)
Re: (Score:2)
The best explination I can give comes from the Wikipedia entry for gigabit ethernet [wikipedia.org]. I have put in bold the exact technical reason why a passive ethernet tap cannot work with gigabit ethernet.
Re: (Score:2)
Re: (Score:3, Insightful)
From snort 2.6:
That could be very helpful if the group is no
Re: (Score:2, Insightful)
Re: (Score:2)
Oh such fun to be had =-)
Re: (Score:2)
Somehow, this must be... (Score:3, Funny)
Silly Hackers (Score:5, Funny)
Re:Silly Hackers (Score:5, Insightful)
Every company large enough to need a Security team (you know, the companies with the most money) is going to be running Linux. Nearly all the best infosec tools are Linux apps. I know you are likely going for Colbert-esque humor here, but the fact is that companies that run Snort on Linux probably have much MORE money to steal, on average, than companies that do not.
Parent
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Funny)
Re: (Score:2)
My intended audience was not the poster specifically, but the slashdot audience as a whole.
Based on the fact that you missed the point entirely, and your post consisted of nothing but angry insults, I'm going to guess that you bring amiable per
Why this vulnerability? (Score:4, Insightful)
Re: (Score:3, Insightful)
So (Score:4, Funny)
Would be somewhat helpful saying "Hey look somebody is rooting me!"
Disable the dce/rpc preprocessor (Score:3, Informative)
There are some instances where this should be running such as internal traffic monitoring, but I don't see how this can hit people from the internet with fragmented RPC traffic unless they're allowing it at the firewall.
Also, don't run any network service as root. FC6 install of snort does run as root by default, kinda lame.
-u username -g groupname arguments in the init script when starting the daemon will make it run as username:groupname credentials. nobody:nogroup maybe. Consider also chroot jail.
Old tips http://isc.sans.org/diary.html?date=2005-10-18 [sans.org]
Darn... (Score:2)
Re: (Score:2)
Shouldn't be running as "root". (Score:2)
If an intrusion detection system has to run as root, it's part of the problem, not the solution.
Biggest single security problem with UNIX and Linux is that way too much stuff runs as "root". Too much trusted code.
Not that Windows is much better, although, in Vista, they're finally trying.
Re: (Score:2)
can anyone shed light on why we have wanted this in the first place
It was a Bill Joy thing in 4.2BSD. The idea was that UNIX systems could trust each other, but not their users. The old "rcp" protocol reflected this approach. The Berkeley guys were thinking of big multi-user time-sharing systems under central administration, not single user systems.
Early BSD team thinking was that it was good enough if BSD could talk to BSD. Interoperability with other TCP/IP systems had to be pounded into that cro
You're both wrong. (Score:2)
But I would hardly call this the "biggest security problem", especially considering the vast majority of stuff does NOT run as root, and even daemons which must be started as root drop privileges later on.
It seems equally likely you'd find some bitwise monstrosity to an actual mention of 1024/1023, but in any case, there is a good reason for this. Think NFS, or basically any other se
Re: (Score:2)
snort shouldn't be running as root (Score:2)
Snort has had a pretty poor track record for this (for that matter tcpdump has also had similar problems).
Completely unnecessary (Score:5, Informative)
(and no, the error isn't there, it's just the first thing I came across in the snort source)
Why are they even using C? Suprise, they make exploitable buffer overflow attacks! And they still have one verified, non-fixed issue detected by coverity, plus 33 "uninspected and pending" according to coverity's scan [coverity.com].
int CheckRule(char *str)
{
int len;
int got_paren = 0;
int got_semi = 0;
char *index;
len = strlen(str);
index = str + len - 1;
while((isspace((int)*index)))
{
if(index > str)
index--;
else
return 0;
}
if(*index == ')')
{
got_paren = 1;
index--;
}
while((isspace((int)*index)))
{
if(index > str)
index--;
else
return 0;
}
if(*index == ';')
Re: (Score:2)
Re: (Score:2)
To this:
And even if you would erradicate Buffer Overflow you are still
exposed to logical bugs, execution path subvertion, trust
bypass and many other security nasties.
I quote Babbage:
If you speak to him of a machine for peeling a potato, he will pronounce it impossible: if you peel a potato with it before his eyes, he will declare it useless, because it will not slice a pineapple.
Re: (Score:2)
Re: (Score:2)
Now can we stop using C, please? (Score:2)
Can we stop now using C, please? pretty please?
how many more buffer overflows do we need to get persuaded that C does not cut it any more? working at 95% of the cases is not good enough in this day and age.
How many times does it have to be said? [slashdot.org]
C is enough, much as I hate it (Score:2)
Personally, I wish we saw more "scripting" languages around, but those don't cut it either as soon as you start to care about performance. Getting there, but nowhere close to C... yet.
Re: (Score:2)
Anyway, even if C++ == bloat, you can still use stl's std::string, std::vector and std::map for most of the simple programming tasks. Sure, they're slow. They add like 1 meg of code bloat and stuff. But you don't get nasty errors from dealing with pointers and memory allocation stuff. And for a userland app that's perfectly reas
Re: (Score:2)
Privilege separation? (Score:2)
Re:Year of the .. (Score:5, Funny)
Boaring!
Parent
Re: (Score:2)
Ok, I'll talk about performance. Performance in this context is never, ever plural, unless you were talking about, say, dance performances.
But seriously, look at your Java VM. Look for all the benchmarks and justifications you like, but the fact is, I still have to wait on my machine in order to try Hello.java. It feels slow, and I can actually go find some benchmarks to prove it is slow.
Re: (Score:2)
You have to wait because you have to wait for the jvm to load.
Or the program was really poorly written.
Java isn't slow when the jvm is in memory. Imagine if you bench-marked helloworld.exe from the time windows started to boot until the program opened the wi
Re: (Score:2)
Hello, world? How, exactly, would I write that poorly?
At a second glance, however, you're right -- it's actually reasonably fast now. I distinctly remember having to wait quite awhile for just about any program -- and it was not disk thrashing, hard disk light was off.
Still, it will be awhile before you can convince me that Java is fast enough, and awhile more before you can convince me that the syntax is even tolerable. Yes, you can run other languages on the JVM
Re: (Score:2)
I like Java because it has a base object unlike c++ which is c with objects tacked on.
The support staff where I work calls back customers that request a support call so they don't have to wait on hold. I wrote the program that manages the support calls, RMAs, and issue tracking in Java using Postgresql as the back end. It has handled 300,000 support calls and I don't know how many RMAs over the years with no