Snort – Network Intrusion Detection and Prevention System
snort.org
snort.org
The best option is to mirror all traffic from switches directly to capture boxes where the detection and logging happens. This should be sent to a central system that has a full picture of the network and traffic patterns. That central system should be the one making the decisions, and it should be very smart. Automatic firewall rules should be close to the source, and shutdown switchports should be close to the client.
For safe IPS operation there needs to be several layers of filters, not just a list of "allowed rule IDs". This is the sort of project that takes at least a year to fully roll out - it's not the kind of thing a "security whiz" can set up in an afternoon.
At best, it can be a very useful diagnostic, logging, and threat detection tool. At worst, it can cause very difficult to predict and troubleshoot network problems.
My friend once got "install snort" as a take-home test for a customer support role (I'm guessing the interviewer never tried). We laughed so hard that it ended up with us recording a parody song about it.
My favorite lines, translated to English, go:
If someone disses me on mIRC
I immediately counter-attaRC
I go and hack into his host
I see his host is "localhost"
He tries to counterhack my box
I catch him with Snort
Yes, yes, Snort is good... I install it on my machine and on _his_ comp too!
> I immediately counter-attaRC
This is a good stanza! For the non-IRC people, mIRC is often pronounced "merk", rhymes with "jerk".
With most everything fully encrypted, what's left for the rules to detect? If I remember correctly, one of the first performance optimization recommended by snort/suricata is to detect and skip encrypted traffic, to not waste cpu cycles on random bits.
If a malware wants to exfiltrate data or receive commands from a remote command and control, won't they simply masquerade their traffic as regular outgoing https requests and bypass the IDS easily?
In my professional opinion requiring insecure internal connections is also a bad idea.
You can force everyone to go over a proxy where you can MitM it, or have MitM that swaps out all TLS negotiations to use your own certs and replace things (but then all clients need to have your local CA cert installed on all machines egressing the network.
IPS's have had this downfall for a long while, and likely just keeps getting worse. I think MitM is the only way to do deep packet inspection. Otherwise you're just going to do host/traffic analysis to look for oddities in the hosts being connected to and how much is flowing. Host analysis can give you some data, but no where near as good as what Snort can do with deep packet inspection.
ingress is tls offloading at waf
https://www.thesslstore.com/blog/an-introduction-to-pinning/
I see no issues here - your WAF itself is initiating and terminating outgoing and incoming TLS connections. DHE keys are generated on the WAF. The WAF's cert could be the authoritative one.
The WAF could then re-establish a new connection to applications behind it.
There does not seem to be any technical boundary here.
You've only unwrapped one layer of the onion this way, which only works if the data inside it is in plaintext. If it's encrypted you're back to square one.
Perfect security is commonly unusable and therefore often useless, because the business requirements still come in and need a solution.
If not, is there a lighter IDS that would be? Curious to know what the SOTA options are for non-enterprise network security.
Maybe its not as noisy in a smaller/home environment but you'll still be going through the alerts.
Then when you do get an alert that looks interesting it might take you a lot of time to understand what it means and if it is real or matches the pattern for some other reason.
While you may learn things, and you can block things Snort finds to prevent issues before they happen, you'll have some work to do. Some are up for that work and some are not.
I've had IDS systems show me things I did not know about. I've never had one save my bacon. IDS is one of those 'part of this complete breakfast' things that doesn't stand alone well but needs to be part of a security solution/approach.
But it happily updates it's ruleset daily, and consumes some 10-20% cpu power from my Intel c2d 3.2ghz cpu. One of these days it might pay off?
I have since left that position so I can’t see the code, but I am sure it was appalling. Even with that, I will also have a warm and fuzzy spot for Snort/Suricata.
Both Suricata and Snort are GPLv2
(my personal speculation) Suricata was funded by DHS because Snort was used heavily within the US government and I think they were worried about having such a central tool being owned by a corporation . There were also some issues with how Snort did scaling to multiple CPUs (Snort 2 was single CPU bound, so to run on multiple CPUs, you'd have to start up an instance of snort per CPU). Snort 3 finally is out years later and has fixed this problem.
I'm also guessing that it partially was started when Sourcefire was about to be bought by Checkpoint systems back in 2006 (https://www.washingtonpost.com/archive/politics/2006/03/24/p...), which was SUPER close to happening but got killed for "reasons".
To peer comment: note that many personal installs of Suricata out there still use the VRT rule sets released by the Snort/Cisco teams. Rule sets are where Sorucefire made some of its money (though most was the hardware boxes they sell to corporations). Suricata never got in the business of publishing rulesets as far as I understand.
At IBM's Watson lab, I tried rules and was not thrilled.
E.g., there was no way to know what the false alarm rate was or to adjust it or know what change in the false alarm rate an particular adjustment would make.
And the rate of missed detections was also a problem. For that, for the highest possible detection rate, there is the Neyman-Pearson result, and we should at least try to do something similar in practice!
And to write the rules, it appeared needed an expert in the system being monitored.
So I worked up some solutions, responses to these issues, with some math, and published.
But the people using rules are correct! Rules are what the market wants!
And attacking the problems assuming knowing some relatively fine details about the system, e.g., some Web server, that is the target of the work and the problems want to detect and correct has been common. E.g., when have an instance of some bad stuff that didn't detect soon enough but want to, analyze that problem or class of similar problems and build a detector just for that. And, yup, for that particular problem, might have a nicely low false alarm rate and relatively high detection rate -- on this class of problems seen before, analyzed, and understood. So, here maybe should say that have built a model.
But I was not impressed with rules, didn't want to need a lot of fine expertise in the target system, and wanted to detect also problems never seen before, with some good progress on rates of false alarms and miss detections.
Yes, what I did is not easily called "model-based" and was supposed to be "new, correct, and significant". Maybe it was at least partly new; maybe it still is.
I started with the data being random variables -- that's not assuming much! Then would like to have the assumptions of independent and identically distributed (i.i.d.) random variables, but for practice that is asking a bit too much! And for some positive integer n, having i.i.d. random n-tuples seemed a bit much!
Well, I used something weaker, but still strong enough, with some math, to get some results, called exchangability.
So, right, my techniques are distribution free, that is, assume nothing about probability distributions and make no attempt to estimate such. Gee, I certainly didn't assume a Gaussian distribution!
I was able to get false alarm rate adjustable and known exactly in advance. Looked like progress to me!
I had some real data, fed it into my software, and, presto, bingo, the false alarm rate was as adjusted and desired!
And using a classic result of S. Ulam, I was able to show that for detection rate the math was not trivial, that is, was better than merely trivial. More progress?
To use the work, don't have to be an expert in the system being monitored, don't have anything like a model, and get to detect problems never seen before, sometimes called zero day problems.
So, just have some random variables, exchangability, and the Ulam result.
But, you are correct: Rules, models, thresholds, etc. are what is popular; the Ulam result is not very popular!
My paper has been in the literature for many years now, and I suspect that so far the number of readers is 0.00. Not really popular! Not likely to compete with the new Tom Cruise movie!
Ah, I forgot: I also worked up a relatively fast algorithm for the core calculations!
I learned my lesson and am doing things quite different now! I started with a problem some hundreds of millions of people would like solved!
At Easter, I talked to a guy who works in computer and network security. I asked him what would be the security risks if a computer with an up to date instance of Windows Server as a Web server just openly faced the Internet? His reaction was that the results would be multiple disasters from attackers around the world. He mentioned "SQL injection" -- gads, I thought I was quite careful when I took the data from the user and constructed my SQL queries!
So, near the top of my TODO list is just to write a little .NET code, listen on some IP ports, scribble what comes in to a file, and see what I get!
Anyone want to predict what I'm likely to get?
We use all these. I guess this could be considered IDS + IPS?
Basically what you need to do is set up VPC-Mirroring on every single interface in that VPC and send all the traffic to an endpoint attached to your snort server.
https://docs.aws.amazon.com/vpc/latest/mirroring/what-is-tra...
It's a ton of work, and is quite expensive, since you're paying per interface + per traffic.
A better way to handle it (imo) is to just enable VPC flow logging and pull the cloudwatch stream into your SIEM. Suricata/snort isn't that useful for threat detection anymore (thanks to HTTPS), so the important data to capture is just firewall logs.
You can still have suricata/snort, but you have to be more selective with it.
Thank you. Any recommendations for SEIM for a small company?