AI security · detection engineering

From vulnerability to detection

AI is speeding up how fast vulnerabilities are found and exploited. Detection rules have not kept up. This piece lays out the gap, a flow that closes it, and an experiment with open tools that shows how it works.

Usman Chaudhary · Field CISO at Google Cloud · written in a personal capacity, views are my own · October 2026

TL;DR

The gap this piece is trying to close

The idea: a vulnerability should not stop at a ticket. It should also get a detection decision that covers the time until the patch is proven in production.

Part 1 · The problem and the fix

1AI is finding vulnerabilities faster than we can patch them

AI scanners now read code, find real vulnerabilities, and in many cases confirm them with a working reproduction. On the vendor side, CISA's catalog of known exploited vulnerabilities stood at 1,734 entries this week, with 300 added in the last twelve months. Attackers have access to the same class of tools.

Patching has not sped up at the same rate. Change windows, regression testing, and vendor fixes that arrive late all set the pace. The result is simple arithmetic: at any given moment, more vulnerabilities are known and exploitable than are fixed.

2Between discovery and patch, detection is the missing layer

Every vulnerability has a window. It opens when the vulnerability is known and closes when the fix is running in production and proven to work. What fills that window depends on whose code it is:

Mitigations can reduce exploitability, but inside that window, detection is what tells the SOC whether someone is trying. By detection I mean a SIEM detection rule that matches an exploit attempt in the logs you collect; I'll call it a rule for short. Without it, you may hear about the attempt later, from the incident.

In Handling the Vulnerability Deluge Without Panic I argued for prioritizing the flood. This piece asks what the SOC can watch for while the fix is still coming.

3But writing the SIEM rule is left to the customer

I keep seeing the same gap from two directions:

In both cases the burden of turning a vulnerability into a detection lands on the customer's SOC, the team with the least time to do it.

To see how thin open coverage is, I checked every CVE on CISA's exploited list against four widely used open SIEM rulesets: SigmaHQ, Splunk, Elastic and Google SecOps community rules. A CVE counts as covered if any rule in any of the four mentions it.

196 of 1,734exploited CVEs are mentioned in at least one open SIEM rule (11%)
29 of 300for the CVEs added to the list in the last 12 months (10%)

Some of that gap is by design. Open rulesets favor behavior, like "web server spawns a shell," which catches many exploits without naming any. Network devices are often covered by IPS signatures and vendors' private content. Some vulnerabilities leave little in logs at all. But none of that answers the question a SOC gets the day a CVE lands: are we covered for this one, on these assets, with the logs we collect?

All of that work lands on the customer, and for nine of every ten new exploited CVEs, there is no open rule to start from.

4One flow builds a SIEM rule for every vulnerability

The pieces already exist. Scanners find vulnerabilities. Open rulesets hold a lot of detection content. Models can draft and translate rules. What is missing is the sequence that connects them, so that every vulnerability you find ends in one of three places: a rule you deploy, a log you start collecting, or a clear statement that only the patch will help.

Every tool named is public. The model in stage 3 is whichever you have access to.

Four design choices matter most:

Part 2 · The experiment

5So I built the flow with open tools

To test whether this holds up outside a diagram, I built it, and ran it on two targets:

For each vulnerability, the flow checks coverage against four open rulesets, has a model draft or translate a rule where none exists, and runs agentic checks on every draft. AI wrote the code under my direction; I set the requirements and made the calls on what went in. Everything uses public sources, and there are no exploit details on this page.

6It turned vulnerabilities in custom and vendor code into SIEM rules

Custom code. VVAH confirmed 63 vulnerabilities in the test app, found and verified in a lab rather than seen exploited in the wild. The flow gave every one of them an answer:

Detection engineering cannot manufacture telemetry that does not exist, but knowing which bucket a vulnerability falls into is useful even when the answer is "patch it."

Vendor code. Example Corp had 99 exposures to known exploited CVEs. I started with these because that is where public detail exists to write a rule from; the flow treats every other vulnerability the same way.

Of the 48 on assets that send logs, 5 were correctly marked as having no rule possible, so the answer is to patch. Most of the rest lacked enough public detail to write a responsible rule.

11gaps where a public rule already existed, in Splunk or Elastic format

The 11 surprised me most. A public rule already existed, written for Splunk or Elastic. They were still gaps, because a rule that isn't deployed detects nothing, and it has to be converted to whatever SIEM you run before it can be. But translating an existing rule is far cheaper than writing a new one, and a model is good at it. In the flow, the model translates it to Sigma, an open rule format that converts to most SIEMs.

7I used agentic code checks to speed up approval

A model can draft a rule in seconds, but a bad rule costs more than no rule. A noisy one burns analyst time. A silent one gives false confidence. Today every rule waits for a detection engineer to read it, and as volume grows, that review becomes the slowest step.

So I put layers of agentic checks in front of the reviewer. By the time a rule reaches a person, it has already been checked and questioned, and approval is quick. Each layer catches what the one before it cannot. I built the first two.

Layer 1Automated checks

Each rule must be valid Sigma, read a log the asset actually sends, and use only values that appear in the source material. That last check earned its place: in one case a model wrote a rule from what it remembered about a CVE instead of the sources it was given, and the check flagged every value as untraceable.

Layer 2An AI reviewer

A second model, separate from the one that drafted the rule, reviews it the way a detection engineer would. Would it fire on normal traffic? Is it really about this CVE? Did a translation change the logic? Do our logs carry the fields it needs? I first did this review in a working session, then automated it as a step in the flow. It caught:

All of this happened before any person looked at a rule. But the two reviews did not always agree on what to do with a rule. An AI reviewing an AI is still an opinion, not evidence.

Layer 3Prove it before it alerts

A natural extension is a third layer: proof. Many AI scanners already produce a working reproduction of the vulnerability. Replay that attack in your SIEM's development environment and confirm the rule fires. It never touches production, and it turns a reviewed rule into a proven one.

The standard is simple: a rule fires on the attack, in your own SIEM, on the logs you actually collect. The reviewer then approves on evidence and spends their time on the exceptions.

Conclusion

You now have a working model from vulnerability to SIEM rule. Every vulnerability you find gets a rule, a log to collect, or a clear "patch only" answer, and that protects your environment in the window before the patch lands. The pieces are open tools, the drafting is automated, and agentic checks keep approval quick.

Recap

  1. 1

    The problem

    AI finds vulnerabilities faster than we patch them

    More are known and exploitable at any moment than are fixed.

  2. 2

    The problem

    Detection is the missing layer

    Until the fix is live, a SIEM rule is how the SOC sees an attempt.

  3. 3

    The problem

    Writing that rule is left to the customer

    For nine in ten new exploited CVEs, no open rule exists.

  4. 4

    The fix

    One flow covers every vulnerability

    Check coverage, draft or translate, verify, deploy, retire.

  5. 5

    The experiment

    I built it with open tools

    Vulnerabilities in custom and vendor code became SIEM rules.

  6. 6

    The experiment

    Agentic checks speed up approval

    Bad rules were caught before anyone looked.

Call to action

Embed detection in your vulnerability and patch process.

Every vulnerability ticket should answer two questions, not one: when will it be patched, and how will we see an attack until then? The second answer is a SIEM rule, a log to start collecting, or "patch only." It ships with the ticket and retires when the patch is proven.

Try it yourself

The code, the example data and the reviewed rules are open source.

github.com/usmanaminch/ai-mastery-2026 · vvah-to-sigma ↗

Open tools used

Appendix · How the code maps to the flow

The repository has two programs, one per input:

StageCustom codeVendor codeWhere in the codeStatus
Signal
1FindReads VVAH's report of confirmed vulnerabilitiesReads Trivy or Grype scans, an inventory CSV, or a scanner export. Every vulnerability gets a verdict and a draft; CISA KEV and EPSS only set the ordervvah_to_sigma/convert.pyexposure_to_sigma/adapters.pyfeeds.pyBuilt
Create
2Check coverageNot yet: writes a rule for every detectable weaknessYour rules plus SigmaHQ, Splunk, Elastic and SecOps rules, and whether the asset sends the log each rule readsrulesets.pyanalyze.pyreport.pyPartly
3Draft or translateNo model needed: each weakness type maps to a rule template, scoped to the exact URL route in your codeYour chosen model translates an existing rule, or drafts one from advisory text and scanner checkscwe_map.pyroutes.pydraft.pyBuilt
Verify
4Automated checksTemplates are fixed, so nothing to groundEvery value traced to the source, the log is one the asset sends, and the rule is valid Sigmadraft.pyBuilt
5AI reviewNot needed for fixed templatesA second model reviews each rule like a detection engineer and answers keep, edit, hunt or rejectdraft.py --reviewBuilt
6Prove itReplay VVAH's reproduction in the SIEM's development environment and confirm the rule firesReplay the scanner check in the SIEM's development environment and confirm the rule firesNot builtExtension
Operate
7DeployConvert to your SIEM's language with sigma-cliSamepipelines/secops_webserver.ymlPartly
8RetireEach rule says when to retire itRe-running the coverage check shows what is patchedRule descriptionsPartly

Files are under vvah-to-sigma/ in the repository. "Partly" means the step exists as a manual action or a note, not as automation yet.