{% extends "base.html" %} {% block title %}Detection rules · SD RMM{% endblock %} {% block content %} {% include "_security_nav.html" %}

Detection rules

{{ total_rules }} rules loaded (built-in + Sigma). Mute or re-grade any rule. {% if saved %}saved ✓{% endif %}

‹ Security

Find a rule

{% if q %} {% if results %} {% for r in results %} {% set ov = ov_map.get(r.rule_id) %} {% endfor %}
RuleSrcDefaultState / severity
{{ r.title }}
{{ r.rule_id }}{% if r.mitre %} · {{ r.mitre }}{% endif %}
{{ r.source }} {{ r.severity }}
{% if ov %}tuned{% endif %}

Showing up to 60 matches. Refine the search to narrow.

{% else %}

No rules match “{{ q }}”.

{% endif %} {% endif %}

Active overrides ({{ tuned|length }})

{% if tuned %} {% for t in tuned %} {% endfor %}
RuleStateSeverityBy
{{ t.meta.get('title', t.o.rule_id) }}
{{ t.o.rule_id }}
{% if t.o.enabled %}enabled{% else %}MUTED{% endif %} {% if t.o.severity %}{{ t.o.severity }}{% else %}default{% endif %} {{ t.o.updated_at| pt('%m-%d %H:%M') }}
{% else %}

No rule overrides — all {{ total_rules }} rules run at their default severity. Search above to mute or re-grade one.

{% endif %}

Tuning exclusions ({{ exclusions|length }})

Suppress detections when an event field matches a regex — for known-good tooling that trips behavioral rules (dev agents, SSH client cmdlines). Checked before any rule set raises a detection. Rule * = all rules; empty host = fleet-wide. Changes apply within a minute.

{% if exclusions %} {% for x in exclusions %} {% endfor %}
RuleHostFieldPatternNote
{{ x.rule_id }} {{ x.hostname or 'fleet' }} {{ x.field }} {{ x.pattern }} {{ x.note or '' }}
{% endif %}
{% endblock %}