Slashdot Mirror


Remote Code Execution Hole Found In Snort

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.

16 of 95 comments (clear)

  1. Re:Year of the .. by gbobeck · · Score: 5, Funny

    Year of the ... Pig!

    Boaring!
    --
    Navicula hydraulica plena anguilarum est. Omnes castelli tuus nostri sunt. Ed elli avea del cul fatto trombetta.
  2. SANS by azakem · · Score: 4, Informative

    Also covering this one: SANS ICS

  3. The very definition of irony by Anonymous Coward · · Score: 3, Insightful

    Something designed to make your network secure turning out to be a security risk...

    1. Re:The very definition of irony by whoever57 · · Score: 3, Informative

      Something designed to make your network secure turning out to be a security risk...
      Unfortunately, Snort seems to a history of such vulnerabilities.
      --
      The real "Libtards" are the Libertarians!
  4. Remote, what about stealth installations by Gothmolly · · Score: 4, Insightful

    Its a remote overflow, does it work if the sensor doesn't have an IP address? If it merely sees the right pattern of 1s and 0s on the wire, it roots itself? Article sadly lacking detail.

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. Re:Remote, what about stealth installations by Anonymous Coward · · Score: 3, Insightful
      To reply to myself:
          From snort 2.6:

      -g Run Snort as group ID after initialization.
                              This switch allows Snort to drop root privileges after
                              it's initialization phase has completed as a security
                              measure.

      That could be very helpful if the group is nobody or another group not allowed to mess with the rest of the system. Once again, it has to be used properly though.
    2. Re:Remote, what about stealth installations by Anonymous Coward · · Score: 3, Insightful

      Good point. This is also another reason to implement a passive only tap for your snort box. In that situation the worse case scenario is your sensor sniffs some traffic that causes it to get compromised and it stops working or at least not correctly. Even if somehow a worm gets injected into the system from this passive sniffing it can't go anywhere. Unless your dumb enough to have your IDS machines hooked up to your internal network via another NIC. Keep your IDS sensors passive and isolated!!!

    3. Re:Remote, what about stealth installations by gbobeck · · Score: 3, Informative

      I did a network security project for a class at Loyola University Chicago not too long ago. As part of that project, I built a passive ethernet tap.

      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.

      --
      Navicula hydraulica plena anguilarum est. Omnes castelli tuus nostri sunt. Ed elli avea del cul fatto trombetta.
  5. Somehow, this must be... by Anonymous Coward · · Score: 3, Funny

    ...Microsoft's fault.

  6. Silly Hackers by tyrax · · Score: 5, Funny

    People who run linux don't have any money to steal.

    1. Re:Silly Hackers by Lord+Ender · · Score: 4, Insightful

      People who run linux don't have any money to steal.

      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.
      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    2. Re:Silly Hackers by tsalaroth · · Score: 3, Funny

      Not to mention it increases the truthiness of your statement.

  7. Why this vulnerability? by madsheep · · Score: 4, Insightful

    It is interesting this vulnerability makes it into Slashdot where other [past Snort/Sourcefire] vulnerabilities of the same magnitude have not. It would definitely be time to upgrade but the number of people running 2.6.1, 2.6.1.1, 2.6.1.2 and 2.7.0 beta 1 are probably not as wide spread as 2.4.x, 2.6.0, and probably earlier versions. Luckily this vulnerability has been identified by a bunch of good researchers and the potential exploit probably hasn't been developed by anyone malicious. The real fear here of course is not just that *a box* might get rooted.. it's that a box running Snort/Sourcefire might get rooted. Generally this box will of course sit inline on the network or have sort of span/mirror port running to it. Whenever an IDS, switch, or router compromise is possible it can truly spell bad news. However, I'd say in this case it's not likely that a whole lot would happen even if an exploit should be developed.

  8. So by OverlordQ · · Score: 3, Funny

    What's the Snort signature for this?

    Would be somewhat helpful saying "Hey look somebody is rooting me!"

    --
    Your hair look like poop, Bob! - Wanker.
  9. Disable the dce/rpc preprocessor by caller9 · · Score: 3, Informative

    You shouldn't have the DCE/RPC preprocessor running, you shouldn't be exposing RPC to the internet anyway. FC6 default install of 2.1.1.2 has it disabled in snort.conf.

    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

  10. Completely unnecessary by Vintermann · · Score: 4, Informative

    Why oh why are we in 2007 seeing code like this in security apps? input verification in the classical C way with pointer arithmetic on strings.
    (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.


    int CheckRule(char *str)
    {
            int len;
            int got_paren = 0;
            int got_semi = 0;
            char *index;

            len = strlen(str);

            index = str + len - 1; /* go to the end of the string */

            while((isspace((int)*index)))
            {
                    if(index > str)
                            index--;
                    else
                            return 0;
            } /* the last non-whitspace character should be a ')' */
            if(*index == ')')
            {
                    got_paren = 1;
                    index--;
            }

            while((isspace((int)*index)))
            {
                    if(index > str)
                            index--;
                    else
                            return 0;
            } /* the next to last char should be a semicolon */
            if(*index == ';') ...

    --
    xkcd is not in the sudoers file. This incident will be reported.