<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hammad Anjum</title>
    <description>The latest articles on DEV Community by Hammad Anjum (@hammad_anjum).</description>
    <link>https://dev.to/hammad_anjum</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4119055%2Ff459905a-f263-411b-a4ef-e00efe6b33ab.png</url>
      <title>DEV Community: Hammad Anjum</title>
      <link>https://dev.to/hammad_anjum</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hammad_anjum"/>
    <language>en</language>
    <item>
      <title>Your Firewall Already Saw the Attack: Bringing AI Detection to Network Logs</title>
      <dc:creator>Hammad Anjum</dc:creator>
      <pubDate>Sun, 18 Oct 2026 19:28:38 +0000</pubDate>
      <link>https://dev.to/hammad_anjum/your-firewall-already-saw-the-attack-bringing-ai-detection-to-network-logs-k9f</link>
      <guid>https://dev.to/hammad_anjum/your-firewall-already-saw-the-attack-bringing-ai-detection-to-network-logs-k9f</guid>
      <description>&lt;p&gt;Endpoint agents are good at seeing what happens &lt;em&gt;on&lt;/em&gt; a machine. But a lot of an attack happens &lt;em&gt;between&lt;/em&gt; machines: the scan that finds an exposed service, the exploit that lands on it, the malware download, the call home, the data leaving the building.&lt;/p&gt;

&lt;p&gt;And plenty of what sits on a network will never run an agent: printers, cameras, appliances, unmanaged laptops, and the firewalls themselves.&lt;/p&gt;

&lt;p&gt;The firewall, though, logs all of it. Every session, every denied connection, every IPS hit, every admin login. The problem has never been missing data. The problem is that the data is huge, vendor-specific, and noisy, so it mostly gets read &lt;em&gt;after&lt;/em&gt; an incident, not during one.&lt;/p&gt;

&lt;p&gt;At Logster we've spent the last few weeks building &lt;strong&gt;AI network detection&lt;/strong&gt;: extending the AI-driven detection that today explains attacks on &lt;a href="https://logster.ai/blog/logster-v1-3-0/" rel="noopener noreferrer"&gt;Windows and Linux endpoints&lt;/a&gt; to firewall and flow logs. It's not generally available yet, but it runs end to end, and we want to share how it works and how it performs.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI network detection does
&lt;/h2&gt;

&lt;p&gt;In one sentence: &lt;strong&gt;Logster reads the logs your firewalls and routers already produce, finds the activity that looks like an attack, and tells you, in plain language, what happened and why it thinks so.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Concretely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It ingests firewall syslog and NetFlow/IPFIX&lt;/strong&gt;, detects the vendor automatically, and converts every format into one common network event. FortiGate and Cisco ASA are tested on real data; Palo Alto and Juniper parsers are in progress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It looks for behaviour, not just signatures&lt;/strong&gt;: scanning, exploitation, malware downloads, beaconing, unusual data volume, tunnelling apps, brute force, and tampering with the firewall itself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It gives every verdict an explanation&lt;/strong&gt;: attack or benign, a confidence, a numbered story of the attack phases, and &lt;a href="https://attack.mitre.org/" rel="noopener noreferrer"&gt;MITRE ATT&amp;amp;CK&lt;/a&gt; techniques.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It shows the evidence as a graph&lt;/strong&gt;: who talked to whom, on which ports and applications, how many bytes moved in each direction, how sessions ended (completed, reset, no reply, denied), and what the firewall's own IPS flagged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It links network alerts to endpoint alerts&lt;/strong&gt; when both describe the same machine. More on that below; it's our favourite part.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Logster turns the logs your firewalls and routers already write into something an AI can reason about, and then checks its own answer before anybody gets paged. Vendor formats are collapsed into one common network event, activity is grouped by host, and what the AI finally sees is a compact picture of that host's behaviour rather than a wall of raw log lines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8zek5hohvlo4plxijv71.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8zek5hohvlo4plxijv71.png" alt="The Logster AI network detection pipeline: collect, normalize, AI reasoning, guard, and an alert linked to the endpoint incident" width="800" height="672"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Reason with the AI
&lt;/h3&gt;

&lt;p&gt;Each host's recent activity becomes a compact graph: the host in question, its peers, flow edges with states, applications and bytes, and IPS-alert edges. That graph goes to the AI with a network-specific prompt. Here is a real verdict for a web server under attack:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;host:192.168.250.70: 1. Recon - External host 40.80.148.42 performed extensive vulnerability scanning (Acunetix.Web.Vulnerability.Scanner). 2. Exploitation - The scanner successfully delivered multiple high-severity exploits, including Bash RCE (Bash.Function.Definitions.Remote.Code.Execution), PHP CGI Argument Injection, and HTTP XXE, all of which were allowed by the firewall.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And one for an infected workstation a few minutes after a malware download:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;host=192.168.250.100: 1. Recon - The host performed massive external scanning via UDP port 6892 and port 137 across thousands of external IPs. 2. Command and Control - The port 6892 traffic is identified as Cerber.Botnet, indicating active botnet communication. 3. Novelty - The host established connections to 6,421 new external peers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is roughly what the AI was looking at for that workstation: a completed download the firewall's IPS flagged as malware and let through, then thousands of unanswered connections labelled Cerber.Botnet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8kw9d9lr6x83bggovwsv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8kw9d9lr6x83bggovwsv.png" alt="Evidence graph of the infected desktop: a completed HTTP download flagged by the IPS, then over 11,000 unanswered connections to internet hosts on UDP 6892 labelled Cerber.Botnet" width="800" height="632"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Guard
&lt;/h3&gt;

&lt;p&gt;The AI's "attack" is not the last word. An alert also needs corroborating evidence, from more than one kind of observation. One odd connection is never enough to &lt;a href="https://logster.ai/blog/alert-fatigue-cost/" rel="noopener noreferrer"&gt;wake someone up&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  One incident, two views
&lt;/h2&gt;

&lt;p&gt;This is the part we're most excited about.&lt;/p&gt;

&lt;p&gt;When Logster's endpoint agent flags a machine &lt;em&gt;and&lt;/em&gt; the firewall flags that machine's IP address, those are two views of the same incident. In most SOCs, connecting them means someone looking up which host had that IP at that time, by hand.&lt;/p&gt;

&lt;p&gt;Logster does it automatically. It learns which machine owns which address from the endpoint's own network activity (an address that appears in most of a host's connections is that host's address) and from DHCP lease logs. When a network alert arrives for an IP, it's linked to the open endpoint alert for the machine behind it, in both directions.&lt;/p&gt;

&lt;p&gt;In our test replay of a real-world style infection, the endpoint alert ("this desktop's processes look malicious") and the network alert ("this IP downloaded malware and is now spraying the internet") arrived &lt;strong&gt;24 seconds apart, already linked&lt;/strong&gt; as one incident. The analyst gets the process tree and the network picture side by side, without matching anything by hand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foar5t10lfkmkndbvhpds.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foar5t10lfkmkndbvhpds.png" alt="A Windows alert on we8105desk and a firewall alert on 192.168.250.100 joined through the learned address map into one incident, 24 seconds apart" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How it performs
&lt;/h2&gt;

&lt;p&gt;We built a replay harness that pushes labelled public datasets through the full AI network detection pipeline, the same services that run in production, and scores detection, time to first alert and false alarms. Two of the datasets were held out entirely: we never tuned on them.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Dataset&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Web server: vulnerability scan, SQL injection, Shellshock, reverse shell&lt;/td&gt;
&lt;td&gt;Splunk BOTS v1 (FortiGate)&lt;/td&gt;
&lt;td&gt;detected &lt;strong&gt;73 s&lt;/strong&gt; after the attack began, at real-time speed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workstation: malware download, then mass scanning&lt;/td&gt;
&lt;td&gt;Splunk BOTS v1&lt;/td&gt;
&lt;td&gt;detected &lt;strong&gt;12 s&lt;/strong&gt; after the download&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A normal business day&lt;/td&gt;
&lt;td&gt;Splunk BOTS v1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0 false alarms&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spam botnet with command-and-control &lt;em&gt;(held out)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;CTU-13 (NetFlow)&lt;/td&gt;
&lt;td&gt;detected; &lt;strong&gt;0 false alarms&lt;/strong&gt; across 81 normal hosts over an hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firewall tampering: internet admin login, logging disabled &lt;em&gt;(held out)&lt;/em&gt;
&lt;/td&gt;
&lt;td&gt;Splunk attack_data (Cisco ASA)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;both episodes detected&lt;/strong&gt;, in 42 s and 4 s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;5 of 5 attacks detected, 0 false alarms.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To be clear about what this is: public datasets, replayed through the real pipeline — which is the kind of evidence &lt;a href="https://logster.ai/blog/evaluating-threat-detection/" rel="noopener noreferrer"&gt;we think every detection vendor should be asked for&lt;/a&gt;. Validation on live networks is the next step, and some detections (brute force, lateral movement, beaconing, exfiltration) are built and unit-tested but not yet proven on a real-world dataset, because none of the ones we've run contain those attacks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The AI network detection pipeline runs end to end today. Next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;An Alerts view&lt;/strong&gt; in the dashboard that shows linked endpoint and network incidents together&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://logster.ai/blog/whitelisting-behaviour-patterns/" rel="noopener noreferrer"&gt;Whitelisting&lt;/a&gt;&lt;/strong&gt; for network rules, so approved scanners, backup jobs and management hosts stay quiet&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collectors and deployment packaging&lt;/strong&gt;, plus validation on live lab traffic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More coverage&lt;/strong&gt;: more vendors, and real-world validation for brute force, lateral movement, beaconing and exfiltration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sharper output&lt;/strong&gt;: technique IDs checked against the ATT&amp;amp;CK catalogue, and richer graph edges (packet counts, inbound data-theft detection)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;Logster started by explaining what happens on your machines. Soon it will explain what happens between them, and tell you when both views are describing the same attack.&lt;/p&gt;

&lt;p&gt;If you run a SOC, manage firewalls, or just have opinions about AI network detection, we'd love to hear from you. Tell us which vendors and which attacks you'd want covered first.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Datasets: &lt;a href="https://github.com/splunk/botsv1" rel="noopener noreferrer"&gt;Splunk Boss of the SOC v1&lt;/a&gt; (CC0), &lt;a href="https://www.stratosphereips.org/datasets-ctu13" rel="noopener noreferrer"&gt;CTU-13&lt;/a&gt; by the Stratosphere Lab at the Czech Technical University (CC BY), and &lt;a href="https://github.com/splunk/attack_data" rel="noopener noreferrer"&gt;Splunk attack_data&lt;/a&gt; (Apache 2.0). Thanks to their authors for making realistic security data public.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>networking</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Logster v1.3.0: Whitelisting You Can Trust, Evidence You Can Click</title>
      <dc:creator>Hammad Anjum</dc:creator>
      <pubDate>Mon, 28 Sep 2026 07:51:22 +0000</pubDate>
      <link>https://dev.to/hammad_anjum/logster-v130-whitelisting-you-can-trust-evidence-you-can-click-1i4o</link>
      <guid>https://dev.to/hammad_anjum/logster-v130-whitelisting-you-can-trust-evidence-you-can-click-1i4o</guid>
      <description>&lt;p&gt;Every detection platform asks for your trust twice: once when it raises an alert, and once when you tell it to stay quiet. &lt;strong&gt;Logster v1.3.0&lt;/strong&gt; is built around both halves of that bargain. It rebuilds &lt;strong&gt;whitelisting&lt;/strong&gt; so that approvals stay visible, measurable and impossible to hide behind, and it connects every explanation Logster gives you to the evidence that produced it.&lt;/p&gt;

&lt;p&gt;Alongside that, this release adds storage that looks after itself and a delivery model for air-gapped clusters. Here is what changed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Whitelisting you can trust
&lt;/h2&gt;

&lt;p&gt;A whitelist is a statement of trust, and, as we have written before, &lt;a href="https://logster.ai/blog/whitelisting-behaviour-patterns/" rel="noopener noreferrer"&gt;whitelisting a graph is harder than whitelisting a filename&lt;/a&gt;. Logster v1.3.0 makes that statement easier to write precisely, easier to check, and much harder to abuse.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Attackers can't hide under an approved parent.&lt;/strong&gt; This is the most important change in the release. An approved process that starts something &lt;em&gt;unapproved&lt;/em&gt; is no longer removed. The whole branch is kept and scored, so running malware from inside a trusted backup job doesn't make it disappear.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approve by description, not only by example.&lt;/strong&gt; New attribute rules let you approve "this exact backup command" or "anything writing to this log path" by typing it, with no source graph needed. Rules can apply to every endpoint or just one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch before you enforce.&lt;/strong&gt; New rules start in observe-only mode. They report what they &lt;em&gt;would&lt;/em&gt; have excluded ("would have excluded 214 nodes in 7 days") without changing any verdicts. Switch a rule to enforcing once the numbers match what you intended.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A breadth check that says no.&lt;/strong&gt; Before a rule is saved, Logster tests it against recent activity. A rule that would silence a large share of everything is refused unless someone deliberately overrides it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing disappears silently.&lt;/strong&gt; Whitelisted activity is excluded from scoring but still kept and visibly marked on the graph, and fully approved windows are still recorded. Every entry shows what it covers and how much it has excluded over the last seven days, so entries nobody needs any more are easy to find.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backup and restore.&lt;/strong&gt; Whitelist entries are the only thing in Logster your analysts create by hand. They can now be exported to a file and restored from the console or from a script.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unknown parents handled safely.&lt;/strong&gt; When a process's parent started before Logster began observing, the parent appears as an unknown placeholder. Placeholders can now be included in approvals, but Logster refuses any approval where an unknown parent is the only actor, because "unknown" would otherwise match any long-running program, malware included.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why this matters beyond convenience: every suppression that nobody can explain later is &lt;a href="https://logster.ai/blog/alert-fatigue-cost/" rel="noopener noreferrer"&gt;tuning debt&lt;/a&gt;, a permanent blind spot. Approvals should stay visible, measurable and reversible, and Logster v1.3.0 is built that way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evidence you can click
&lt;/h2&gt;

&lt;p&gt;When Logster flags an attack, it explains its reasoning. In Logster v1.3.0 that explanation is &lt;strong&gt;connected to the evidence&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Open an investigation and the events behind the verdict move to the top of the list. The graph highlights the handful of nodes that form the attack chain, out of what can be dozens of routine ones. Click a step in the explanation, for example "PowerShell wrote to the startup folder", and the graph spotlights exactly the nodes that step refers to.&lt;/p&gt;

&lt;p&gt;This runs only when an analyst opens an investigation, so it never slows detection. It also annotates the original verdict rather than re-deciding it, so what you click through is the reasoning that produced the alert. Linux events now carry the same traceability back to their source, so this works across Windows and Linux.&lt;/p&gt;

&lt;p&gt;It answers the question we think every buyer should ask a detection vendor: &lt;em&gt;show me a finding exactly as an analyst receives it.&lt;/em&gt; (More on that in our guide to &lt;a href="https://logster.ai/blog/evaluating-threat-detection/" rel="noopener noreferrer"&gt;evaluating threat detection platforms&lt;/a&gt;.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Storage that looks after itself
&lt;/h2&gt;

&lt;p&gt;Security data grows quietly until the disk fills up, usually at the worst possible moment. Logster v1.3.0 adds &lt;strong&gt;storage-aware retention&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sensible defaults out of the box: events for 30 days, detections for 90 days, activity graphs for 14 days.&lt;/li&gt;
&lt;li&gt;If disk usage crosses its target anyway, the oldest data is removed first, before storage becomes an outage.&lt;/li&gt;
&lt;li&gt;The System Health dashboard now shows storage use per data type with a forecast against the target, plus message-queue lag, so you can see a problem coming.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Built for air-gapped environments
&lt;/h2&gt;

&lt;p&gt;For organisations that can't send security data anywhere, the Logster AI model can now be delivered &lt;strong&gt;separately from its runtime image&lt;/strong&gt; and loaded from local storage inside an air-gapped OpenShift cluster. The runtime image is much smaller, the two downloads can be verified independently, and the model runs fully offline with no internet access at runtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Under the bonnet
&lt;/h2&gt;

&lt;p&gt;A few smaller things that shipped with Logster v1.3.0:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Splunk receiver has been rebuilt in Rust, and correctly handles large, multi-line PowerShell events.&lt;/li&gt;
&lt;li&gt;Shipped container images passed our release security scan with zero known fixable CVEs, including a move to a hardened, rebuilt monitoring image.&lt;/li&gt;
&lt;li&gt;Linux events collected through eBPF and auditd now keep a link back to the original event, so every node in a Linux graph can be traced to its source.&lt;/li&gt;
&lt;li&gt;Many stability improvements across ingestion, inference and the dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Upgrading to Logster v1.3.0
&lt;/h2&gt;

&lt;p&gt;Logster v1.3.0 is available now. Upgrade instructions from v1.2.1, including the new retention settings, are in the &lt;a href="https://docs.eunomatix.com/logster/" rel="noopener noreferrer"&gt;Logster documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you'd like to see Logster v1.3.0 on your own data, &lt;a href="https://logster.ai/contact/" rel="noopener noreferrer"&gt;get in touch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published at &lt;a href="https://logster.ai/blog/logster-v1-3-0/" rel="noopener noreferrer"&gt;logster.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
      <category>devops</category>
      <category>sysadmin</category>
    </item>
    <item>
      <title>12 Questions That Actually Separate Threat Detection Vendors</title>
      <dc:creator>Hammad Anjum</dc:creator>
      <pubDate>Thu, 10 Sep 2026 10:45:05 +0000</pubDate>
      <link>https://dev.to/hammad_anjum/12-questions-that-actually-separate-threat-detection-vendors-5c6a</link>
      <guid>https://dev.to/hammad_anjum/12-questions-that-actually-separate-threat-detection-vendors-5c6a</guid>
      <description>&lt;p&gt;Most threat detection evaluations are decided by a demo, and demos are designed to succeed. The data is curated, the attack is one the product has seen, and the environment has none of the strange legacy software that makes your estate yours.&lt;/p&gt;

&lt;p&gt;The second problem is that every vendor's marketing now says the same words. AI-powered. Behavioural. Zero-day. Reduces alert fatigue. The words no longer discriminate between products, which means the burden falls entirely on the questions you ask.&lt;/p&gt;

&lt;p&gt;Below are twelve that do discriminate — in the sense that different products give genuinely different answers, and the answers are hard to fake. I've included what a good answer sounds like and what should worry you.&lt;/p&gt;

&lt;p&gt;Full disclosure, since it's relevant: I work on a detection platform. I've tried to write these so they'd be useful against us too, and I've flagged the ones where our own answer is uncomfortable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Detection quality
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What is the false positive rate at my event volume — not on your benchmark?
&lt;/h3&gt;

&lt;p&gt;This is the single most important question and the most commonly dodged.&lt;/p&gt;

&lt;p&gt;Detection rates are quoted constantly; false positive rates rarely are. But at security's base rates the FP rate is what determines whether the product is usable. A system that catches 99% of attacks and produces 500 false positives a day is not a detection system, it's a queue that your team will learn to ignore.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; a number, with the event volume it was measured at, and an acknowledgement that it varies by environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; a detection rate offered in place of a false positive rate. Or a percentage with no denominator — "99.9% accurate" is meaningless when the positive class is one in ten million.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What was the model trained or tuned on, and how similar is that to my estate?
&lt;/h3&gt;

&lt;p&gt;Real labelled attack data is scarce. Everyone improvises — lab-generated attacks, public datasets, red team exercises, customer telemetry. Each has different failure modes, and a model trained on lab data has learned the artefacts of the lab's generation process alongside the actual attack behaviour.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; specifics about the data, honest about the gap between it and production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; "proprietary" as a complete answer, or "millions of samples" without saying what kind. Ask specifically whether the training data came from lab-executed MITRE ATT&amp;amp;CK techniques, public datasets, or production customer telemetry — the three have very different failure modes.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. What is your unit of detection — an event, or a relationship?
&lt;/h3&gt;

&lt;p&gt;This distinction determines more about a product's behaviour than any feature list.&lt;/p&gt;

&lt;p&gt;If each event is scored independently, an attack made of individually-benign steps produces either nothing or a scatter of low-severity alerts that get closed one by one — which is a large part of why &lt;a href="https://logster.ai/blog/alert-fatigue-cost/" rel="noopener noreferrer"&gt;alert fatigue costs what it does&lt;/a&gt;. If the product reasons over relationships between events, that same attack can surface as a single correlated incident.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; a clear description of what gets correlated and how.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; confusion between correlation and aggregation. Grouping alerts by host and time window is not the same as understanding that one process created another.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. What happens with activity you've never seen before?
&lt;/h3&gt;

&lt;p&gt;Everyone claims zero-day detection. Push on the mechanism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; a specific explanation — anomaly relative to a learned baseline, structural patterns that hold across technique variants, behavioural constraints that any implementation of a technique must satisfy — plus its limitations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; "our AI detects unknown threats" with no mechanism. Also worth noting: if the answer is purely statistical anomaly detection, ask how they handle the fact that living-off-the-land attacks are specifically designed to sit inside the normal distribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it's actually like to operate
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5. Show me a finding exactly as an analyst receives it.
&lt;/h3&gt;

&lt;p&gt;Ask for a screenshot of the real thing, not a slide. This one question tells you more about daily life with the product than an hour of feature discussion.&lt;/p&gt;

&lt;p&gt;If a finding is a severity score and a rule name, your analysts will reconstruct the reasoning themselves from raw logs — which is the work you were trying to avoid. If it carries the evidence chain, they can verify or dismiss it in minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; they show you one immediately, and it contains enough for you to form your own judgement about the activity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; reluctance, or a mockup.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Can a mid-level analyst verify a finding without escalating?
&lt;/h3&gt;

&lt;p&gt;Related but distinct. A finding can be detailed and still be unverifiable — buried in jargon, or requiring knowledge of the model's internals.&lt;/p&gt;

&lt;p&gt;The practical test: could someone eighteen months into the job look at this and decide whether it's real? If every finding needs your best person, the product hasn't reduced your workload, it's concentrated it.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. What's the median time from finding to decision?
&lt;/h3&gt;

&lt;p&gt;Ask existing customers, not the vendor. This is the number that converts to money, and it's the one you should be measuring in a POC.&lt;/p&gt;

&lt;h3&gt;
  
  
  8. What happens when my environment changes?
&lt;/h3&gt;

&lt;p&gt;New software, a migration, a reorganisation, a merger. Baseline-dependent systems degrade as the estate drifts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; a clear account of retraining or re-baselining — cadence, who performs it, whether it's included, how long it takes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; "it learns continuously" with no operational detail. Ask what happens on day one of a new deployment, and how long until it's useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coverage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  9. Which telemetry sources, on which platforms, and what does each give you?
&lt;/h3&gt;

&lt;p&gt;Specificity matters here. "Full endpoint visibility" means nothing. Sysmon, auditd, eBPF, ETW, and vendor-proprietary collectors see genuinely different things — we wrote a &lt;a href="https://logster.ai/blog/sysmon-vs-auditd-vs-ebpf/" rel="noopener noreferrer"&gt;detailed comparison of what each endpoint telemetry source actually captures&lt;/a&gt; if you want the specifics and have different overheads and kernel requirements.&lt;/p&gt;

&lt;p&gt;Ask particularly about Linux, which is where coverage is usually thinnest — and about which kernel versions are supported, since eBPF-based collection has real floor requirements and older estates fall back to something else.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. What are you &lt;em&gt;not&lt;/em&gt; good at?
&lt;/h3&gt;

&lt;p&gt;The most informative question in the list, and the one whose value comes entirely from how it's answered rather than what's said.&lt;/p&gt;

&lt;p&gt;Every product has a shape. A vendor who can describe theirs has thought about it; one who claims comprehensive coverage of everything is either inexperienced or managing you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; a real limitation, stated without being walked back in the next sentence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; "that's a great question" followed by a strength.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adversarial
&lt;/h2&gt;

&lt;h3&gt;
  
  
  11. Which of your detections still work if the attacker knows exactly how the system works?
&lt;/h3&gt;

&lt;p&gt;Assume your vendor's documentation is public and read. Which detections survive?&lt;/p&gt;

&lt;p&gt;Detections keyed on things cheap to change — filenames, hashes, specific strings, timing — don't survive. Detections keyed on what an attack must structurally do to succeed are much more durable, because changing them means changing the attack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good answer:&lt;/strong&gt; an explicit distinction between the two, and an honest statement that some detections are in the first category.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red flag:&lt;/strong&gt; a claim that everything is durable. Nothing is entirely durable, and saying so signals they haven't modelled an adaptive adversary.&lt;/p&gt;

&lt;h3&gt;
  
  
  12. What happens when an attacker kills the agent?
&lt;/h3&gt;

&lt;p&gt;They will try. Ask what the product does when telemetry stops — whether agent silence is itself an alert, how quickly it fires, and what tamper protections exist.&lt;/p&gt;

&lt;p&gt;An agent going quiet on one host at 3am is a finding. Surprisingly many products treat it as a health metric on a dashboard nobody watches.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Every vendor answers these the same way:&lt;/strong&gt; "Do you use AI?" · "Do you detect zero-days?" · "Do you reduce false positives?" · "Do you map to MITRE ATT&amp;amp;CK?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These separate them:&lt;/strong&gt; "What's your false positive rate at my event volume?" · "Show me a finding exactly as an analyst receives it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to run the evaluation itself
&lt;/h2&gt;

&lt;p&gt;The questions matter less than the test. Four things worth insisting on:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use your own data.&lt;/strong&gt; A POC on vendor-supplied data tells you the product works on data the vendor chose. Run it against your estate, including the odd legacy application nobody wants to talk about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Measure false positives over at least two weeks.&lt;/strong&gt; Detection is easy to demonstrate and false positives take time to accumulate. A three-day POC systematically flatters every product in this category.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run a real technique, not a sample file.&lt;/strong&gt; Executing an actual ATT&amp;amp;CK technique — with Atomic Red Team, Caldera, or by hand — tells you far more than dropping EICAR. Have the vendor &lt;em&gt;not&lt;/em&gt; know when you're doing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Have the analysts who'll use it do the triage.&lt;/strong&gt; Not the security architect who ran the procurement. The people whose queue this becomes will tell you within a week whether findings are actionable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable ones
&lt;/h2&gt;

&lt;p&gt;In the interest of the disclosure at the top — the questions above that are hardest for &lt;em&gt;us&lt;/em&gt; to answer:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question 2&lt;/strong&gt;, on training data. Like everyone in this space, we generate attacks in a lab — MITRE techniques executed on baremetal Windows and Linux VMs — and lab-generated attacks differ from real ones in ways that are genuinely hard to characterise. Anyone claiming otherwise is not describing a situation that exists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question 8&lt;/strong&gt;, on environmental change, is a real cost for any behavioural system and it's worth pressing every vendor on, including us.&lt;/p&gt;

&lt;p&gt;Where we do well is 3, 5, and 11 — the unit of detection is a behavioural graph rather than an individual event, findings carry the evidence chain that produced them, and structural features are considerably more expensive for an attacker to evade than name-based ones. Those are the questions we'd want asked. Which is exactly why you should ask all twelve, of everyone, including us.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What should you ask a threat detection vendor before buying?
&lt;/h3&gt;

&lt;p&gt;Start with the false positive rate at your own event volume, not their benchmark. Then ask to see a finding exactly as an analyst receives it, and ask what the product is &lt;em&gt;not&lt;/em&gt; good at. Those three separate serious vendors from marketing faster than any feature comparison, because none of them can be answered with a slide.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long should a threat detection POC run?
&lt;/h3&gt;

&lt;p&gt;At least two weeks, on your own data. Detection is easy to demonstrate on day one; false positives take time to accumulate. Short proofs of concept systematically flatter every product in this category, which is why vendors like them short.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's the difference between detection rate and false positive rate?
&lt;/h3&gt;

&lt;p&gt;Detection rate is the proportion of attacks caught. False positive rate is how much benign activity is wrongly flagged. Vendors quote the first constantly and the second rarely — but at security's base rates, where genuine intrusions are extremely rare against millions of daily events, the false positive rate is what determines whether a SOC can actually use the product.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do EDR, XDR, SIEM and behavioural detection differ?
&lt;/h3&gt;

&lt;p&gt;EDR collects and analyses endpoint telemetry. XDR extends that across more signal sources. SIEM aggregates logs centrally and runs rules over them. Behavioural detection describes the &lt;em&gt;method&lt;/em&gt; rather than the category — reasoning over what processes do and how they relate, rather than matching known-bad artefacts. The categories overlap heavily, which is why question 3 above — what is your unit of detection — discriminates better than asking which acronym a product belongs to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does behavioural detection replace signature-based detection?
&lt;/h3&gt;

&lt;p&gt;No, and be sceptical of anyone saying it does. Signatures are fast, cheap, and produce near-zero false positives on known threats. They just have no coverage of anything novel. Production estates run both.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://logster.ai/blog/alert-fatigue-cost/" rel="noopener noreferrer"&gt;What alert fatigue actually costs you&lt;/a&gt; — the budget case, with a model you can run on your own figures&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://logster.ai/blog/sysmon-vs-auditd-vs-ebpf/" rel="noopener noreferrer"&gt;Sysmon vs auditd vs eBPF&lt;/a&gt; — what each endpoint telemetry source really sees&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://logster.ai/blog/paste-logs-into-llm/" rel="noopener noreferrer"&gt;You can't just paste logs into an LLM&lt;/a&gt; — why context selection, not model choice, is the hard part&lt;/li&gt;
&lt;li&gt;&lt;a href="https://logster.ai/product/" rel="noopener noreferrer"&gt;How Logster works&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;&lt;a href="https://logster.ai" rel="noopener noreferrer"&gt;Logster&lt;/a&gt; is a threat detection platform for Windows and Linux built on behavioural graphs rather than per-event scoring. Technical detail is in the &lt;a href="https://docs.eunomatix.com/logster/" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;. You can read &lt;a href="https://logster.ai/product/" rel="noopener noreferrer"&gt;how it works&lt;/a&gt; or see &lt;a href="https://logster.ai/pricing/" rel="noopener noreferrer"&gt;pricing&lt;/a&gt;. If you're mid-evaluation and want these twelve questions answered directly, &lt;a href="https://logster.ai/contact/" rel="noopener noreferrer"&gt;ask us&lt;/a&gt; — including the uncomfortable ones.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>security</category>
    </item>
  </channel>
</rss>
