This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

IPS really needs to improve

Warning: this is a rant triggered by losing (yet again) 3 hours of time trying to configure that piece of... canine byproduct which is the ASL IPS module.

While the whole ASL package in nice and user-friendly, the built-in IPS is not usable in it's present state. It generates a truckload of false positives which have to be handeled manually. Now, getting false positive is ok: tailoring the IPS to your use is part of doing your job when managing security. Unfortunately, the tools provided by ASL for the task are completely lacking to the point of being dangerous.

it all start with reporting: there is no mention at all in the log of what triggered the attack: you get no dump, no rule description, just a few link that most of the time go to 404 web pages. So you're left on your own to dig through the snort rulesets to find what the problem was. That, in itself, is very bad because you don't have the necessary tools to decide if a specific attack is a false positive or not and therefore cannot make a motivated decision about what to do next.

But let's assume it was a false positive and that you know it's a false positive: for instance, editing a web page from the typo3 CMS will freeze the page if you have web client attack set to block (default). 

So, what will you do ? the basic idea would be to disable the specific rule that caused problem for teh specific network that triggered it. Well, you can't. Not only that, but you can't even remove that network properly as you'll need a blanket "to OR from" rule for it to work.

So, next step is to disable the problematic rule: that could be for these zillons of silly false poitives triggered by, for instance, IMC sessions. There you can work it out somehow: go in "advanced" add a manual rule modification, enter the rule SID and disable it.

But here comes the problem: you CANNOT see what rule you've disabled, you cannot see when the exception whas created, by who or even setup a note for the exception. The net result is that, 6 month after you've setup the exception, you'll have no more idea why it's there or even if it's valid. That can be solved by maintaining external documentation (which is always good) but the failure mode of that work model is disastrous as a single omission makes it impossible to maintain consistency.

So, to sum up: Astaro's IPS interface should either be rewritten completely, this time without assuming people will simply disable it or removed from the product altogether. In it's current state, it's dangerous to use and cases way too many headache. For a security gateway product, that's not acceptable.

(rant off. Sorry but I had to get that out of my system).


This thread was automatically locked due to age.
  • Well...

    It actually is a simple process; the logs do denote what SID has been triggered, and you can setup the IPS to email you a neat little summary of the event when it occurs.  As far as determining whether a triggered rule is a false positive, no, there is no magic algorithm that will help you make that decision.

    You have to look at the source IP, see where the IP was trying to go, etc. and make a decision yourself.  I do agree that the links in the alert emails should be fixed; Astaro really should just host their own online lookup DB, Sourcefire has been goofing off for a year or more while the old lookup system has been offline.  In the meantime, try SnortID.com - Search for SNORT ID's - Snort is a registered trademark of Sourcefire, Inc and plug in your alert SIDs there.

    As to "who" and "when" an exception is made, sure, it'd be nice to have that info in the Webadmin.  Most of my customers (and our internal / external contract management group) have security policies that state such changes will be documented elsewhere anyway (or they should).  We just simply note in a customer's file which rules are disabled, when, why, and who did it.
  • It actually is a simple process; the logs do denote what SID has been triggered, and you can setup the IPS to email you a neat little summary of the event when it occurs. As far as determining whether a triggered rule is a false positive, no, there is no magic algorithm that will help you make that decision.


    I'm afraid that far from sufficient: if there was an algoritm ti pick false positives from real threats, I'm sure it would be implemented in snort already. The problem is that ASL simply doesn't keep the information that's necessary to do an analysis around so deciding what's an attack and what's a false positive can be done by flipping a coin with the same level of accuracy.

    Some of the documentation tools will be in V8. 


    That's some improvement, but it's hardly going to be of much help to the poor smuck (most  likely me) confronted with a list of 50 numerical references to disabled rules and no more info as to why they where disabled or even what they do.

    As to "who" and "when" an exception is made, sure, it'd be nice to have that info in the Webadmin. Most of my customers (and our internal / external contract management group) have security policies that state such changes will be documented elsewhere anyway (or they should). We just simply note in a customer's file which rules are disabled, when, why, and who did it.


    Yes, that's what I do as well. Or should have been doing, shall I say, since there are references in my FW which aren't referenced in my doc. But that's only a small part of the problem: the IPS module is horrible because it hides you the complexity of the tool behind it too well without giving you the necessary visibility to use it well. It's like a car with no steering wheel but a "right" and "left" button and no canopy: you can turn but you can't tell it how much you want to turn or even judge the result (until you hit the wall, that is).

    But enough ranting. Like I said in my first message, I find the IPS part of ASL to be lacking to the extreme. It looks like a peice of software that was built by someone who thinks that, as far as it compiles, it qualifies as "working". Unfortunately, I have little constructive to add to this and don't expect anyone here to be able to help at all.

    Thanks anyway for ready though my rant [:)]
  • A while back I had written a package that swapped the snort executable for a statically compiled binary that had the MySQL connector built in. It also had a bunch of commands to change configuration files and restart the snort engine to output data to an external MySQL DB for use with ACID/BASE. It worked fine if HA feature wasn't used. I also used the external syslog feature to send the packet filter logs to the same server which would capture an write the logs to a file. I then used a sql command to parse the test into another ACID DB for analyzing the packet filter data.

    In my humble opinion ASG needs to incorporate the Barnyard or Barnyard2 enigine to send Snort unified/unified2 data to an external DB. Barnyard caches the alerts if the DB is unavailable at the time. A nice feature mine never had.

    There's a huge gulf between what ASG includes as an IPS/IDS system and what a fully functional/fully configurable system should be. But Rome wasn't built in a day, so any contributions we can make will help.
  • I'm afraid that far from sufficient: if there was an algoritm ti pick false positives from real threats, I'm sure it would be implemented in snort already. The problem is that ASL simply doesn't keep the information that's necessary to do an analysis around so deciding what's an attack and what's a false positive can be done by flipping a coin with the same level of accuracy.


    I've found that any IPS which does not log the full session makes it hard to track down what's happening, although logging the packet would certainly be an improvement.

    For anyone interested in something which does log the whole session (actually it records ALL traffic), check out SGUIL. It's free. It's a lot of work to setup, but there are some VM images.
    I have one running sniffing an ethernet tap in front of Astaro. It really comes in handy once in a while.

    Barry
  • Barry,
    Isn't Sguil an analysis/alert console that monitors Snort log files? Or is it the IDS/IPS engine itself.
  • It's an NSM (Network Security Monitoring system) partially based on Snort with additional packet capturing and a few other features such as flow logging, etc.

    So Snort is used for generating the IDS Alerts, but even if an alert was not generated, you can still view the traffic.

    Take a look at the free sample chapters from this book (written by one of the Sguil contributors):
    InformIT: Tao of Network Security Monitoring, The: Beyond Intrusion Detection

    and also Sguil - NSMWiki

    Barry