Sigma rules in Graylog Security

Sigma rules in Graylog Security turn community detection content into searchable, testable detections. This page covers import paths, stream mapping, field translation and testing against real data.

On this page

When Sigma rules in Graylog Security fit your detection program

Sigma rules in Graylog Security let a security team load community detection rules, map them to the right streams and turn matches into events, so coverage grows faster than analysts can write rules by hand. Importing Sigma rules requires the Graylog Security edition, not Graylog Open. Graylog Open is licensed under the Server Side Public License version 1 (SSPL-1.0), which is not an OSI-approved open source license, and it covers ingestion, search, dashboards and alerting. The Security edition adds SIEM features such as risk scoring, anomaly detection, investigations, compliance packs and prebuilt threat detection content, according to the Graylog pricing page and the Graylog Open product page.

Teams usually need this when they already have logs flowing into Graylog with reliable parsing, stable streams and enough retained history to test against, but have too few detections for the sources they collect. Typical signals are a long list of unmonitored log sources, a detection backlog that never shrinks, or an analyst team that wants a repeatable way to adopt public rules. Before buying, confirm with Graylog which Security features your planned deployment includes and which pricing tier and data volume minimum apply to your ingest, since the pricing page lists a minimum of 10 GB per day or 100 Graylog Compute Units.

It is premature when log collection is incomplete, field names differ across sources, or no one owns triage of the resulting events. Imported rules that match nothing or flood the queue create cost without coverage. In that case, first fix ingestion and normalization, define who reviews each event priority, and agree on which log sources a rule is allowed to target. The decision to license Security should follow a test of a small set of rules against your own data, which the rest of this page walks through.

Choosing how Sigma rules reach Graylog: GitHub repositories or uploads

A GitHub repository gives you a revision history for every rule. When a rule changes upstream, you can see what changed, when, and in which commit, and you can pin the import to a known revision so detections do not shift without notice. Manual uploads have no native history unless your team builds one, so a file replaced in the interface leaves no trail of what it used to say.

  • Revision pinning: A repository import can track a branch or a specific commit. Confirm in your Graylog Security version whether the import pins to a commit or follows a branch.
  • Change history: Git records who changed a rule and why, which supports incident reviews and audit questions.
  • Rollback: Reverting a bad upstream change is a Git operation. A manual upload means keeping copies of the previous file yourself.
  • Local fork: Many teams keep an internal fork with tuned rules, which needs a branch strategy so upstream updates do not overwrite local changes.
  • Storage of your own files: Uploads can also be committed to an internal repository first, giving you the same history without depending on the upstream project.

Whichever path you choose, confirm how Graylog records a rule update so you can match a detection back to the exact rule text that fired it.

Mapping each Sigma rule to the right stream

A Sigma rule only sees the events that reach the stream it is attached to, so routing decides whether a detection can fire at all. The cards below cover how to match rules to log sources, when to share a stream, and what the routing choice does to storage and retention.

Match each rule to its log source

Every Sigma rule declares a logsource block, such as a product, category or service. Before importing a rule, confirm which Graylog stream carries that source and that the events in it use the field names the rule expects. A rule attached to an empty or wrong stream produces no alerts and no error, so the miss stays silent. Check the stream's message count after the rule is attached to confirm it receives matching traffic.

One stream per log source

Giving each log source its own stream keeps rule scope narrow and makes it obvious which rules depend on which feed. It also means a broken collector shows up as one silent stream rather than a gap hidden inside a mixed one. The trade-off is more streams to administer, so agree on a naming convention with the team that owns the inputs before import starts.

Shared streams for cross-source rules

Some detections need events from several sources, such as authentication logs combined with endpoint process events. For these, route the relevant sources into a shared stream and document which rules depend on it. Shared streams simplify correlation but mix field schemas, so test each rule against sample events from every source the stream contains.

Index set and retention per stream

A stream writes to one index set, and that index set sets retention and rotation for everything in it. Routing security events into a stream with a short retention window can remove the history a rule's lookback needs, while routing noisy sources into a long-retention index set raises storage cost. Ask the team who owns retention to approve each index set before rules are mapped to it.

Confirm routing with test events

Before relying on a mapping, send a known test event through the real input and confirm it lands in the intended stream and matches the rule. Keep a short list of test events per rule so the check can be repeated after pipeline or collector changes. Routing rules that were correct at import can break when a collector or processing pipeline is updated.

Record the mapping for audits

Keep a written record that links each imported rule to its stream, index set and owner. Reviewers and auditors ask how detections are scoped to data, and a current mapping answers that quickly. Review the record whenever streams are renamed, split or merged, because a stale mapping is the most common cause of rules that stop firing.

Translating SigmaHQ fields to the Graylog Illuminate or GIM schema

Sigma rules name fields from their own taxonomy, and those names must match the fields your ingest pipelines actually produce in Graylog. A SigmaHQ rule written for Windows process creation may reference fields such as Image or CommandLine, while your Graylog messages carry whatever names your inputs, extractors and processing pipelines write. Graylog Security maps incoming data to its Illuminate Common Information Model, referred to in this section as the GIM schema, so a rule can only fire when the event data it expects is present under the expected name. Before importing a large batch, list the fields each rule references and compare them against the fields that exist in the streams it targets. Confirm the exact GIM field names and the mapping files that ship with your version against the current Graylog documentation for version 7.2, because field sets change between releases.

Unmapped fields show up as rules that load without error but never match. To find them, sample recent messages from each source stream, note the field names present after parsing, and diff that list against the fields each rule uses. Processing pipelines are the normal place to close the gap: a pipeline rule can copy a source-specific field into the GIM name, normalize values such as event IDs or user formats, or drop noise before it reaches the detection stage. Keep these translations in version-controlled pipeline definitions so that a change in a source's log format is visible in review rather than discovered as silent misses. Ask your Graylog partner or internal owner to document which pipeline stage performs each translation, because a mapping applied after the rule runs is no mapping at all for that rule.

A rule that matches nothing is therefore a field mapping problem until proven otherwise, not evidence that the threat is absent from your environment. Test each translated rule against logs that are known to contain the behavior, such as a recorded test event from a lab host, and check that the match count moves. If a rule still returns no results, confirm that the source is sending the event type at all, that the stream routing sends it to the expected stream, and that the field value formats agree with the rule's modifiers. Record the result of each test so that a later pipeline change can be checked against the same samples, and so that reviewers can tell a rule that is quiet by design from one that is quiet because its fields never arrive.

Importing and enabling Sigma rules step by step

This sequence takes Sigma detection rules from a community source into Graylog Security in a controlled order, so each rule is mapped, tested and observed before it can notify anyone. The end state is a small set of rules that match expected events in search, with alerting left off until the team has reviewed them.

  1. Confirm Security licensing and OpenSearch version

    Before importing anything, the platform owner confirms that the Graylog instance holds a Graylog Security license, since the prebuilt threat detection content and Sigma handling belong to that edition, and that the search backend meets the Security requirement of OpenSearch 2.0 or later. Check the compatibility matrix for the exact Graylog and backend versions in use, and confirm with Graylog which content features your license includes. This step is done when the license shows Security features in the administration area and the backend version is recorded in your change log. Where the backend is OpenSearch 1.x, plan the move to a supported backend first, because the installation docs say 1.x use is deprecated since Graylog 7.0 and will be removed in Graylog 8.0.

  2. Choose and pin the rule source

    Decide where the rules come from: a GitHub repository of community Sigma rules, or a set of rule files your team has reviewed and uploaded directly. For a repository, record the exact commit or tag you import so the rule set can be reproduced and reviewed later. For uploads, store the files in your version-controlled configuration repository. The output is a written source reference, with the owner who approves changes to it. Ask your platform team to confirm whether your change process requires review before any external content reaches the production Graylog cluster, since that approval shapes the rest of this sequence.

  3. Import a small rule set

    Start with a narrow set of rules that cover one log source you already collect well, such as Windows authentication events or Linux authentication logs. Import them through the Sigma rule import path in Graylog Security, then review the list of imported rules and any that failed to load, with the parse error for each. Keep the first batch small enough that a reviewer can read every rule's logic. Done when the imported rules appear in the rule list with their titles, levels and source references, and every failure has a recorded reason. Do not import the full community catalog at this stage.

  4. Map each rule to its stream

    For each imported rule, choose the stream that carries the matching log source, so the rule only evaluates events it was written for. A rule written for Windows Security events placed on a stream that receives firewall logs will never match, and an overly broad stream adds load and false positives. Document the stream chosen for each rule in your configuration notes. Done when every rule in the batch has exactly one target stream and a reviewer has confirmed that the stream carries the log source named in the rule's logsource section.

  5. Translate fields to the GIM schema

    Sigma rules name fields from the SigmaHQ conventions, while your events carry fields as your inputs and pipelines produce them. Compare the field names each rule references with the fields present on the mapped stream, using a sample search. Where a field differs, add a field translation through the Graylog Illuminate or processing configuration, so the rule's field name resolves to the field your events actually use. Confirm the translation against a known event that contains the value. Done when a search on the stream returns events for each referenced field and the sample event has the expected value under the translated name.

  6. Enable rules without alerting

    Turn the rules on in a state that produces detections or matches for review but does not send notifications to responders. Confirm that no notification is attached to the generated events and that the rules do not route output into the triage queue your responders watch. Record the date of enablement and the owner of each rule. Done when the rules show as enabled, the notification list for them is empty, and the owner has accepted the non-alerting state in writing.

  7. Check that expected matches appear

    Verify each rule against data you know should trigger it. Run a test event through the pipeline, or replay a known historical sample, and confirm that the rule produces a match in the search view on the mapped stream. Also check for an expected negative: a benign event from the same stream should not match. Record the result for each rule. Done when every rule in the batch returns the expected hits on the test sample, the negative check is clean, and any rule that is too noisy has been identified for tuning before it is considered for alerting.

  8. Review results before enabling notifications

    Once the non-alerting period shows the match volume and false positive pattern, the rule owner and the responder lead decide which rules can attach notifications. Each rule that moves forward gets its notification and priority set in a separate change, so a rule that needs more tuning does not block the others. Done when the decision for each rule is recorded, the rules approved for alerting have a notification attached, and the rules still in review remain without one.

Sigma rule import options and when each fits

This table compares five decisions in importing Sigma rules into Graylog Security: where rules come from, how they are updated, how they are reviewed, how they map to streams and how each rule alerts. Read each row for effort, audit trail and noise risk, then check the owner column to assign the decision. The main takeaway: pin your source, map rules by log source, and keep notifications off until a rule has been reviewed.

OptionEffort and auditabilityRisk of noisy alertsOwner and best fit
GitHub repository importLow effort to start; auditable if you pin a specific commitHigh if you enable the full community set without tuningDetection engineer; teams tracking upstream rules
Manual file uploadMore effort per update; each file has a clear review recordModerate; you choose exactly which rules enterSecurity engineer; small, curated rule sets
Scheduled sync or re-importAutomated refresh, but changes still need review before production useCan grow quietly as upstream adds or changes rulesPlatform team with a change approval step
Stream mapping by log sourceClear ownership; requires a maintained source-to-stream mapLow when each stream carries only logs the rule expectsGraylog administrator with input owners
Rule-level alert settingsSet priority and notification per rule; document each choiceLargest lever: low priority or no notification reduces noiseSOC lead approves; detection engineer sets values
Staged review before alertingExtra review steps, with a record of who approved each ruleLower, since rules run without notifications until approvedSOC lead and compliance owner in regulated teams

Testing Sigma rules against real data before they alert

Run every imported Sigma rule in a testing state against historical data before any event definition sends a notification. The goal is to learn how often the translated rule fires on normal activity in your environment, which tells you whether its conditions, field mappings and stream selection are sound. Start by running the rule's translated query as a historical search over logs you have already retained in Graylog, scoped to the stream the rule was mapped to. Compare the hits with what you expected from the rule's description and the ATT&CK technique it targets. If the rule matches nothing across a long window, confirm that the source fields it depends on exist in that stream, because an empty result can mean a broken field mapping rather than a clean environment.

Build a known-benign baseline before you judge a rule. Pick a window of activity your team has already reviewed, such as a normal change window or a period with routine administration, and record every hit. Those hits are your measured false positives for that rule. Tune the conditions by narrowing on fields that identify the legitimate source, such as a known service account, a management host or an approved process path, and by adding exclusions in the search rather than deleting the detection logic. Write each tuning change down with the rule version, the date and the reason. For rules with no matches in recent logs, use sample events that reproduce the behavior the rule describes, labeled clearly as test data, to confirm that the event definition fires at all. Replaying those samples is the only way to check rules for activity you rarely see.

Promote a rule from testing to live notification only when its false positive count over the baseline window is one your responders can absorb, its matches map to fields they can act on, and an owner has accepted it in writing. Confirm which event definition type and notification channel the rule will use, since those options are covered elsewhere in this group and depend on your Graylog edition. Keep rules that still need tuning out of the channels your on-call staff watch, and review them again after the first weeks of live matches. Confirm with your team how they will record decisions on each rule so the review trail stays intact.

Security and operational risks of importing community rules

Community Sigma rules are useful starting points, but each one is code that decides what Graylog Security alerts on and what it reads. The cards below cover the risks that appear once rules move from a repository into your cluster, and the control to apply to each before the rules go live.

Untrusted rule content

A Sigma rule is a YAML file that can contain search logic, field names and metadata you did not write. Before import, review the rule's source repository, commit history and license, and check the detection logic line by line rather than trusting the rule title or tags. Store the reviewed copy in your own version-controlled repository and import from that copy, not directly from the upstream branch that may change later.

Rules that query sensitive fields

Some rules match on fields such as usernames, source addresses, command lines or message bodies that may contain personal or regulated data. Once imported, those rules run against every message in the mapped stream, and their matches are stored as events. Check which fields each rule references, confirm that the streams they read are approved for that data, and restrict who can open the resulting events.

Alert floods after import

A broad rule enabled against a high-volume stream can generate thousands of events within hours, which buries the analysts who need to see the real signal. Enable rules in a staged order, starting with a single stream and a non-paging notification route. Watch the event count for the first few days, and tune or disable any rule that fires on normal activity before adding notifications that page people.

Permission scope for enabling and editing

Enabling a rule, changing its stream mapping or editing its condition changes what your team is alerted on, so these actions carry the same weight as changing a production firewall rule. Limit edit rights to a small detection team, give read-only access to analysts, and confirm in the role settings which Graylog Security permissions cover Sigma content. Record who approved each change so that a silent edit can be traced.

Tracking rule versions

Community rules are revised upstream, and a re-import can silently overwrite a tuned rule with a new version that drops your exclusions. Keep each imported rule tied to its source commit or release, record local changes in the same repository, and review upstream diffs before updating. Ask your vendor how Graylog Security identifies a rule after re-import so that you can confirm which version is running.

Questions teams ask before importing Sigma rules into Graylog

Do we need a Graylog Security license to import Sigma rules?

Graylog Open is free, but the SIEM features in Graylog Security, including prebuilt threat detection content, sit in a paid edition. Confirm with Graylog which parts of the Sigma import workflow your edition includes before you plan the project, because the answer depends on the features in the version you run. Graylog Open is licensed under SSPL-1.0, which is not an OSI-approved open source license, so review that license with your legal team as well. Ask for the feature list for your target version in writing before you commit to a rule set that depends on it.

How much does Graylog Security cost per year?

The Graylog pricing page lists Graylog Security at 18,000 US dollars per year, with a minimum of 10 GB per day or 100 Graylog Compute Units. Licensing is based on processed data, and the page states there are no per-user or per-device fees. The subscription is the recurring cost. Your own cost also includes the infrastructure for OpenSearch or Graylog Data Node, MongoDB and the engineering time to translate and test rules. Ask the vendor to confirm how the minimum applies to your daily volume, and ask for a quote that separates the license from any services work.

How much effort does Sigma field translation and testing take?

Effort depends mainly on how many rules you import, how far your log fields differ from the field names in the SigmaHQ rules, and how many log sources each rule must cover. Rules written for Windows event logs usually need different mapping than rules for Linux, firewall or cloud logs. Each rule needs a check that its stream receives the right events, that its conditions match real messages, and that its alert volume is acceptable. Ask for a quote that counts rules, log sources and the test data you will provide, and that lists which rules are excluded from the first release.

Can our own team import Sigma rules without a partner?

A team that already runs Graylog, understands its streams and pipelines, and can read Sigma rule syntax can do the import in-house. The work is straightforward for a small set of rules from one log source. It becomes harder when the rules span many sources, when field mappings must be written and reviewed, or when detection engineers and platform engineers do not have time for testing. DeployOpen implements, customizes and tests open-source platforms inside your infrastructure on a fixed scope agreed in writing, so a partner can take the mapping and testing work while your team keeps ownership of the rules.

What do we need to provide before a Sigma import starts?

You need read access to the Graylog streams and indices that will receive the rules, and sample messages from each log source, ideally including both normal and suspicious events. You also need named owners who can approve which rules go live, who receives the alerts, and which stream each rule belongs to. Information about your retention settings and index sets helps set realistic test windows. Without owners, rules tend to stall in review. Without representative samples, field mappings are guesses, and testing proves very little.

How long does a first Sigma rule set take to validate?

No validated duration is available for this work, so treat any figure you hear with caution. The timeline is driven by the number of rules in the first set, the number of log sources they cover, how quickly you can supply sample data, and how many alert reviews your owners must complete. A narrow first set covering one or two sources moves faster than a broad set across endpoints, identity, network and cloud. Ask for a schedule with milestones for mapping, test runs, tuning and sign-off, and confirm which dependencies sit on your side.

What usually goes wrong after importing community Sigma rules?

The most common problems are rules that reference fields your logs never populate, so they match nothing, and rules that match too broadly, so they flood responders with alerts. Duplicate alerts appear when several rules describe the same behavior, and rules sent to the wrong stream miss events entirely. Rules that work in one environment often need tuning for your naming conventions, service accounts and normal administrative activity. Plan a tuning period with the owners who triage alerts, and record every change so the rule set stays explainable to auditors and responders.

Which OpenSearch or Data Node version do we need for Graylog Security?

Graylog Security needs OpenSearch 2.0 or later, according to the Graylog compatibility matrix. For Graylog 7.0 to 7.2, the same matrix lists supported OpenSearch versions from 1.1.x up to 3.7.x, but Graylog recommends Data Node as the search backend, and use of OpenSearch 1.x has been deprecated since Graylog 7.0 and will be removed in Graylog 8.0. Check the matrix for the exact pairing of your Graylog, MongoDB and search backend versions before you import rules, and plan any backend upgrade as a separate step with its own test window.

How DeployOpen scopes Sigma rule work in Graylog

DeployOpen plans and implements Sigma rule work in Graylog as a fixed-scope engagement that runs in your own infrastructure, on your Graylog servers, Data Nodes and MongoDB. The scope is agreed in writing before work starts and normally covers four parts: review of the rule sources you choose, mapping each rule to the right stream and field set, testing against data from your environment, and documentation that your team can maintain. Scope and timelines are fixed in that written agreement, so the decisions that drive effort (which rule repositories are in play, how many log sources are involved, and whether Graylog Security is already licensed) are settled before the first rule is imported.

Ongoing tuning is a separate option. Community rules tend to need adjustment once they run against your own data, so many teams keep a retainer for reviewing false positives, updating mappings after Graylog or log source changes and adding rules as your detection needs change. Ask any partner to state in writing which of these items are one-time and which recur, and who owns the rule repository and the mapping documentation after handover. DeployOpen prepares detection content, test evidence and documentation that your own security and compliance staff can use. DeployOpen does not issue audit reports, attestations or certifications. If you need an assessment of your detection program against a framework, that assessment comes from an independent auditor or certification body, and you should confirm early which evidence they will expect.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.