I only have hands-on experience with three, but here’s my take on them in the order of my experience with them from earliest to current:
Elastic (Open Source)
We initially set up Elastic when it was open source and came with Wazuh. It worked well as a SEIM, in that we could get alerts from it and then find the events in the logs that triggered the alert. It was happy days as we were able to shape it the way we wanted, but that also meant we had to write a lot of our own connectors. For example, we were using Forcepoint for Internet security at the time, and to get the logs from Forcepoint to Elastic I had to write a 3000+ line long multithreaded Python script that pulled their XML wrapped CSV files (I am not kidding) from their service, put it on a separate file server where a customized CSV ingest connector could pull the data into Elastic. But once it was going, and so long as our file management was on point with the ingest server, it just worked. We kept 90 days of Internet logs, the most we’ve ever had. Life was good.
Elastic (SaaS - Cloud based)
When Elastic finally went commercial, we stuck with it. Our price didn’t increase too much as we were already a customer, but it did increase. However, we no longer had to maintain the infrastructure on which our data resided, so it freed up time to do more analyst and less engineer work, and freed up our security engineers to move to new projects rather than maintaining infrastructure. Overall it worked well and we were content. As SaaS their connector library got better and better and we were able to ingest logs more easily and add to our growing list of data sources considerable. Those were happy days.
Rapid7
But eventually the global nature of our company caught up with us. We (the U.S.) was the first to have a SOC and any sort of dedicated security team, but eventually the company “got around” to looking to do the same for everyone else around the globe. And since they were in charge, we had to do it their way. But frankly their implementation of Rabid7 was hot garbage and the MSP they hired to run it was as well IMO. So we kept Elastic or ourselves and did double long ingests to give them what they wanted. I had access to Rapid7, and would occasionally have to use it whenever it actually generated an alert that wasn’t a false positive, but it was neither a consensual or happy experience.
Sentinel and XDR with Microsoft Defender for Endpoints
in 2024 company changes brought new visions to the table and the desire to unite globally under the one company everyone was already paying licensing fees to: Microsoft. With that came access to Sentinel and XDR - two products that are both SIEMs, do the some thing for the most part, have a shared query language, and only differ in that Sentinel is focused on Azure tenant level SIEM data, and XDR is focused more on client level logs. But boy howdy are those blurry lines. So much so that Sentinel is being merged into the XDR dashboard. That was supposed to start happening next month, but Microsoft postponed it to next March as they always so. Knowing that Sentinel would eventually get moved into XDR, I have spent 90% of my last two years in XDR, so I’ll talk mostly about that. What I will say about Sentinel is that it can pretty much do everything that XDR can do but with an interface that is even more engineer than XDR if you can imagine that (meaning an engineer designed it but they have never daily driven it so don’t really understand the ramifications of their design decisions.)
Of the three SIEMs I have used I find XDR to be the most capable with the very Microsoft forward environment the company has. However, if we were not so Microsoft dependent, I would hands down go back to Elastic just because we never had to wait days to get responses on trouble tickets and weeks to get things fixed. The biggest issue with XDR isn’t the platform, it’s the servicing of that platform. My company is big, but it’s not Fortune 500 big so we often feel like the red headed step child if you know what I mean. But fortunately XDR hasn’t had that many issues. That seems to be the purview of Sentinel, which I don’t rely on. I write all my rules in XDR and run them as XDR rules. And while I liked Elastic’s query language (EQL), I actually really like KQL. With EQL it was hard to do statistical analysis, and it sometimes felt like I had to jam a square peg into a round hole. But KQL does statistical analysis. It’s also a fairly capable programming language. While I might be able to make our logs dance a jig while singing Sea Shanties with a robust Python script, I can certainly make KQL hum along and hit the correct notes. It’s a better hunting environment than EQL, and that makes me happiest about the switch. What makes me the unhappiest is that most logs only give us 30 days of data, but that is changing.
Summary
That’s a lot of words and I’m not even sure I answered your points. So here’s my stab at your list.
-
Which ones are good?
- Elastic for non-Microsoft, XDR if married to Microsoft
-
Which ones are hot garbage?
-
How much ingest is too much?
- There is no such thing as too much ingest, but 90 days is good.
-
What are the most important things to ingest?
- IMO, environment dependent, and in order - Internet access logs, sign in logs, device activity logs (processes, network activity), email gateway logs, database (SQL, etc.) logs, everything else.
-
Cloud solutions vs On-prem solutions
- Small and medium business on-prem, large business needs cloud or infrastructure costs can eat you.
-
FOSS vs Vendors
- Yes? We literally have both in our security stack. Use what fits your needs. Donate to your FOSS!
-
How long do you keep the ingest data?
- As long as infrastructure and/or the accountants let us.
-
What policies/playbooks/automations do you use to separate the wheat from the chaff?
- OMG, start another post please.
-
Is a SOAR worth it? Or can you DIY a SOAR’s functions with playbooks and automations?
- Good questions. With Elastic we used TheHive as a SOAR so our analysts had playbooks, etc., to guide them and automated lookup tools (Cortex). A lot of that comes built into XDR. I can pull geo and registration data by clicking on an IP in a query result for example. We have DIYed anything else we needed. I feel that the role of a SOAR is being pulled more and more into the SIEM itself. One of the regional SOCs in my company uses a custom SOAR to management Sentinel/XDR alerts. IMO it’s more of a hinderance than a help and I can analyze circles around it. So no, a SOAR is not worth it to me using XDR. However, it provided missing functionality with Elastic; even their cloud offering. (Edit: and having reread that, I want to add that the reason for the SOAR makes a big difference. With Elastic, it added functionality Elastic did not have. That’s a good reason to have a SOAR. If your company’s reason to have a SOAR is because they think it’ll allow them to hire low skill analysts and save money, they have just taken their first step to being ransomed.)
Hope that’s at least entertaining!