Product Updates

What Is a Managed Sigma Rule Service?

HuntRule Team · · 8 min read

A dark archive room with one filing drawer pulled open and a single index card lifted under a work lamp
On this page

git clone https://github.com/SigmaHQ/sigma gives you 4,244 YAML files. On 31 July 2026 the repository carried 3,137 rules under rules/, 470 under rules-emerging-threats/, 140 under rules-threat-hunting/ and 172 already retired under deprecated/. Windows alone accounts for 2,403 of them. That clone takes four seconds. Everything after it is the job.

A managed Sigma rule service is a product category built around that gap. Someone else tracks the upstream repository, checks each rule still parses, records what changed and when, and hands you a rule with the context you need to decide whether to deploy it. What it cannot do is decide for you. That distinction is most of this post.

The clone is the easy part

Sigma is a portable detection format, not a deployment target. A rule in the repository is a YAML document with a logsource block, a detection block and a condition. It says nothing about whether your EDR emits AccessList, whether your Windows event forwarding subscription includes Event ID 4663, or whether your SIEM normalizes ProcessName to something else entirely.

So the moment you clone, you own four recurring tasks:

  1. Deciding which rules apply to telemetry you actually collect.

  2. Tracking upstream changes to the rules you deployed.

  3. Re-testing when a field mapping shifts on your side or the rule's side.

  4. Noticing when a rule was retired upstream and yours is still firing.

None of those are one-time. They run for as long as the detections do. If detection engineering as a practice is new to you, we covered the wider discipline separately.

One month of upstream commits

Here is what that maintenance load looks like measured rather than described. Between 24 June 2026 and 31 July 2026, SigmaHQ landed 37 commits on master. Those commits touched 99 rule YAML files:

Change

Count

Added

20

Modified

61

Moved or renamed

18

Deleted outright

0

The 20 additions were mostly emerging threats, including three rules for CVE-2026-63030 and two for CVE-2026-31431. Of the 18 moves, five pushed a rule into deprecated/, and several more moved Azure sign-in rules out of rules/ and into rules-placeholder/, which means they are no longer shipped as ready-to-run detections.

Note the zero. Almost nothing gets deleted. Rules get moved, and a move is a delete plus an add if you are tracking by file path. Any tooling that keys on the path rather than the Sigma id will report a retirement and a brand new rule for the same detection.

What one modified rule costs you

Take a real one from that window. rules/windows/builtin/security/win_security_susp_lsass_dump_generic.yml carries Sigma id 4a1b6da0-d94f-4fc3-98fc-2d9cb9e5ee76, title "Potentially Suspicious AccessMask Requested From LSASS", tagged attack.t1003.001. It was authored 2019-11-01 and its modified field moved from 2023-12-19 to 2026-06-29.

logsource:
    product: windows
    service: security
detection:
    selection_1:
        EventID: 4656 # A handle to an object was requested.
        ObjectName|endswith: '\lsass.exe'
        AccessMask|contains:
            - '0x40'
            - '0x1400'
            - '0x100000'
            - '0x1410'    # car.2019-04-004
            - '0x1f0fff'
            - '0x1f1fff'
    selection_2:
        EventID: 4663 # An attempt was made to access an object
        ObjectName|endswith: '\lsass.exe'
        AccessList|contains:
            - '4484'
            - '4416'
    condition: 1 of selection_* and not 1 of filter_main_* and not 1 of filter_optional_*

What it catches: a process opening a handle to lsass.exe with an access mask that permits reading process memory. That is the generic shape of credential dumping, T1003.001, and it fires on the handle request rather than on a named tool. What it misses: anything that reads LSASS without a 4656 or 4663 event reaching your SIEM. Object access auditing on the LSASS process is not on by default, so on an unaudited host this rule produces silence, not a negative.

Its false positives are the reason the rule runs to 118 lines. The filter blocks name Defender (MsMpEng.exe), Process Explorer (procexp64.exe), THOR (thor64.exe), vmtoolsd.exe, taskmgr.exe, wmiprvse.exe and a Realtek audio service, plus a blanket exclusion for anything under :\Program Files.

The June change added exactly three strings: \procexp64a.exe, :\Windows\Sysmon64a.exe and \procmon64a.exe. Sysinternals shipped ARM64 builds, and the existing filters missed them.

That is a tuning fix, not a logic change. It is also the exact change that hurts if you forked the file and edited it locally, because now you have a merge conflict in a filter block you also touched. Multiply by the 61 modified files in one month and you have a standing weekly task that nobody wants to own.

What a managed service can take off your hands

The mechanical half, honestly, is most of the work:

  • Watching upstream and computing the delta, so you review 99 files a month instead of re-reading 3,137.

  • Parsing and validating every rule before it reaches you, so a broken upstream document is caught rather than deployed.

  • Tracking identity by Sigma id instead of path, so a move does not read as a deletion.

  • Recording versions, so "what changed in this rule since I deployed it" has an answer.

  • Carrying the license and attribution, which for SigmaHQ content is DRL 1.1 and is not optional.

  • Marking a rule deprecated when it leaves the source, so you learn about a retirement without diffing anything.

What no service can do for you

No vendor can see your telemetry. That means nobody outside your org can answer whether Event ID 4663 is being forwarded from your domain controllers, whether your filter_main_* exclusions cover the EDR you actually run, or whether AccessList survives your normalization pipeline intact. Any service claiming to auto-select rules for you is guessing at a field inventory it has never seen.

Tuning is the same story. The Realtek exclusion in that LSASS rule exists because one org found the false positive and wrote it up. Your equivalent is sitting in your environment right now, and it is not in anybody's catalog.

What HuntRule does today

We track SigmaHQ as a source with a delta-only sync. The crawler asks the Worker for the last synced sha, then runs a git diff in name-status mode between that sha and HEAD to classify every changed .yml file as added, modified or deleted. It processes that delta plus any paths that failed on a previous run, minus paths an admin has blacklisted. That is what lets the synced sha advance past a permanently broken upstream file instead of re-scanning the tree forever.

Each rule is then parsed by an offline Sigma validator with hard limits (256 KB, 5,000 nodes, depth 24) that rejects YAML aliases and refuses correlation and filter rules as outside the supported subset. Checks cover missing id, status, description and level, undefined selection references in the condition, defanged IOCs, unanchored .exe matches, logsource keys leaking into selections and fields that do not exist for the resolved logsource. Any error-severity finding stops publication and drops the rule into a human review queue.

Enrichment rewrites prose only. A model rewrites title, description and summary, then the Worker independently re-compares detection and logsource against the original and rejects the payload with detection_mutated if either moved. Detection logic is never model-authored.

Versioning is content-addressed. A new version is written only when the body under a known Sigma id has a new contentSha256, which makes a re-sync of unchanged rules free. When an upstream rule disappears from the source, the rule is marked deprecated by Sigma id and the public page renders a deprecation notice.

What you get per rule on the page, without an account: severity, primary domain, MITRE techniques, linked threat entities, telemetry requirements, prerequisites, limitations, known false positives, changelog, license and attribution. Every SigmaHQ-derived rule is free to read in full. The catalog is at huntrule.com/rules, and the Windows slice is at /rules?domain=windows. There is a public JSON list at /api/rules for the same projection, which never includes rule bodies.

What it does not do

You deploy rules one at a time. The rule page has a Copy button and a Download button, and Download gives you a single <slug>.yaml. There is no pack, no bundle and no bulk export, and no endpoint serves rule bodies today, authenticated or otherwise. Retrieval over the API is planned and not shipped. There is no conversion to SPL, KQL or EQL, because Sigma is the only format stored. If you need 40 Windows rules, that is 40 downloads.

We would rather say that plainly than let the word "managed" imply a deployment pipeline we have not built.

Summary

A SigmaHQ clone is 4,244 files that changed 99 times in the last month, and the changes are mostly small tuning edits to filter blocks you may have forked. A managed Sigma rule service can carry the mechanical half: delta tracking, validation, identity by Sigma id, versioning, licensing and deprecation. It cannot decide which rules match telemetry only you can see, and it cannot write the false-positive exclusion your environment needs. HuntRule does the mechanical half today and hands you one rule at a time.

Rule referenced: 4a1b6da0-d94f-4fc3-98fc-2d9cb9e5ee76
Technique:       T1003.001 (OS Credential Dumping: LSASS Memory)
Events needed:   Windows Security 4656, 4663 with object access auditing
                 enabled on the LSASS process
Fields needed:   EventID, ObjectName, AccessMask, AccessList, ProcessName
Catalog:         https://huntrule.com/rules?domain=windows

Related articles