Security service stopped

Severity highLinuxSingle eventstablelinux.defense_evasion.security_service_stopped · v1.0.0

A systemd unit that provides logging, endpoint monitoring, or host firewalling was stopped.

What it detects

A systemd unit that provides logging, endpoint monitoring, or host firewalling was stopped. Turning off the thing that would have recorded the intrusion is usually the step immediately before the part the attacker did not want recorded, and it is the reason the rest of the timeline goes quiet.

The unit name comes from the unit= field inside the SERVICE_STOP record's nested msg='...', so this fires on the audit daemon's own account of the stop rather than on a command line that may never have been captured.

MITRE ATT&CK mapping

  • T1489Service Stop· Impact
  • T1562.001Impair Defenses: Disable or Modify Tools· Defense Evasion
  • T1562.004Impair Defenses: Disable or Modify System Firewall· Defense Evasion

False positives and triage

Almost every one of these units is stopped legitimately during a package upgrade, an agent version rollout, or a maintenance window — the stop is real, the intent is not malicious. Separate them by:

* What else ran at that moment. A stop framed by apt/dnf/yum activity, or followed within seconds by a matching start of the same unit, is an upgrade. * Who stopped it. A stop with a login uid behind it, from an interactive session, is a person; a stop from a package transaction is a machine. * Whether it came back. A security agent stopped and never restarted is the case that matters, whatever the reason given.

Do NOT tune this by removing units from the list because they are noisy in your estate — a noisy unit is one an attacker can stop without anyone noticing. Suppress the specific maintenance windows and the config-management account instead.

The rule

Declarative YAML read by the detection engine — data, never executed. Confidence 70%. Source: rules/linux/security_service_stopped.yaml, licensed under the Apache License 2.0.

id: linux.defense_evasion.security_service_stopped
version: 1.0.0
status: stable
severity: high
confidence: 0.7
platforms: [linux]
mitre_techniques: [T1489, T1562.001, T1562.004]
description: |
  A systemd unit that provides logging, endpoint monitoring, or host firewalling was
  stopped. Turning off the thing that would have recorded the intrusion is usually
  the step immediately before the part the attacker did not want recorded, and it is
  the reason the rest of the timeline goes quiet.

  The unit name comes from the `unit=` field inside the SERVICE_STOP record's nested
  `msg='...'`, so this fires on the audit daemon's own account of the stop rather
  than on a command line that may never have been captured.
match:
  event_action: service_stopped
  service_name_contains_any:
    - auditd
    - rsyslog
    - syslog
    - journald
    - osquery
    - sysmon
    - falcon
    - crowdstrike
    - carbonblack
    - cbagent
    - mdatp
    - wazuh
    - ossec
    - filebeat
    - splunk
    - fluentd
    - td-agent
    - suricata
    - snort
    - fail2ban
    - clamav
    - firewalld
    - ufw
    - nftables
    - iptables
    - apparmor
    - auditbeat
false_positive_guidance: |
  Almost every one of these units is stopped legitimately during a package upgrade,
  an agent version rollout, or a maintenance window — the stop is real, the intent is
  not malicious. Separate them by:

  * What else ran at that moment. A stop framed by `apt`/`dnf`/`yum` activity, or
    followed within seconds by a matching start of the same unit, is an upgrade.
  * Who stopped it. A stop with a login uid behind it, from an interactive session,
    is a person; a stop from a package transaction is a machine.
  * Whether it came back. A security agent stopped and never restarted is the case
    that matters, whatever the reason given.

  Do NOT tune this by removing units from the list because they are noisy in your
  estate — a noisy unit is one an attacker can stop without anyone noticing. Suppress
  the specific maintenance windows and the config-management account instead.

Related detections

Run this rule on your own logs — offline

KIROSEC runs this rule and the rest of the library over Windows, Linux, macOS and cloud audit logs on the analyst's own machine. Every alert links to the events that raised it, and nothing leaves the device.

Browse all detections