Detection rules › Elastic

Attempt to Disable SELinux

Source
github.com/elastic/protections-artifacts

Adversaries may attempt to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to support access control policies. Disabling SELinux can allow malicious activities to continue undetected.

MITRE ATT&CK coverage

TacticTechniques
Defense Impairment

Rule body

[rule]
description = """
Adversaries may attempt to disable Security-Enhanced Linux (SELinux), which is a Linux kernel security feature to
support access control policies. Disabling SELinux can allow malicious activities to continue undetected.
"""
id = "54aabfc3-7a78-4241-b0b2-e0de46d8e7b7"
license = "Elastic License v2"
name = "Attempt to Disable SELinux"
os_list = ["linux"]
version = "1.0.4"

query = '''
process where event.type == "start" and event.action == "exec" and
process.name == "setenforce" and process.args == "0" and
not (
  process.parent.args like (
    "/tmp/ansible-tmp-*/AnsiballZ_command.py", "/tmp/chef-script*", "/root/fapolicyd_rebuild.sh",
    "/opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.sh"
  ) or
  process.parent.executable in (
    "/opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.sh", "/usr/libexec/platform-python",
    "/usr/share/centrifydc/libexec/dzdo", "/opt/puppetlabs/puppet/bin/ruby"
  ) or
  (process.parent.name like "python*" and process.parent.args like "/home/*/.ansible/tmp/ansible-tmp-*.py") or
  (process.parent.name in ("taskrun", "perl") and process.parent.args == "/usr/local/cpanel/bin/taskrun") or
  process.parent.executable like "/usr/libexec/platform-python*" or
  process.working_directory like "/opt/symantec/install/*"
)
'''

min_endpoint_version = "7.15.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0

[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1562"
name = "Impair Defenses"
reference = "https://attack.mitre.org/techniques/T1562/"
[[threat.technique.subtechnique]]
id = "T1562.001"
name = "Disable or Modify Tools"
reference = "https://attack.mitre.org/techniques/T1562/001/"



[threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"

[internal]
min_endpoint_version = "7.15.0"

Stages and Predicates

Stage 1: process

process where event.type == "start" and event.action == "exec" and
process.name == "setenforce" and process.args == "0" and
not (
  process.parent.args like (
    "/tmp/ansible-tmp-*/AnsiballZ_command.py", "/tmp/chef-script*", "/root/fapolicyd_rebuild.sh",
    "/opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.sh"
  ) or
  process.parent.executable in (
    "/opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.sh", "/usr/libexec/platform-python",
    "/usr/share/centrifydc/libexec/dzdo", "/opt/puppetlabs/puppet/bin/ruby"
  ) or
  (process.parent.name like "python*" and process.parent.args like "/home/*/.ansible/tmp/ansible-tmp-*.py") or
  (process.parent.name in ("taskrun", "perl") and process.parent.args == "/usr/local/cpanel/bin/taskrun") or
  process.parent.executable like "/usr/libexec/platform-python*" or
  process.working_directory like "/opt/symantec/install/*"
)

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
process.parent.argseq/usr/local/cpanel/bin/taskrunexcludes:process.parent.args field:"process.parent.args" value:"/usr/local/cpanel/bin/taskrun"
process.parent.nameinperl, taskrunexcludes:process.parent.name field:"process.parent.name" value:"perl" field:"process.parent.name" value:"taskrun"
process.parent.argswildcard/home/*/.ansible/tmp/ansible-tmp-*.pyexcludes:process.parent.args field:"process.parent.args" value:"/home/*/.ansible/tmp/ansible-tmp-*.py"
process.parent.namestarts_withpythonexcludes:process.parent.name field:"process.parent.name" value:"python"
process.parent.argswildcard/tmp/ansible-tmp-*/AnsiballZ_command.py, /tmp/chef-script*, /root/fapolicyd_rebuild.sh, /opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.shexcludes:process.parent.args
process.parent.executablein/opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.sh, /opt/puppetlabs/puppet/bin/ruby, /usr/libexec/platform-python, /usr/share/centrifydc/libexec/dzdoexcludes:process.parent.executable
process.parent.executablestarts_with/usr/libexec/platform-pythonexcludes:process.parent.executable field:"process.parent.executable" value:"/usr/libexec/platform-python"
process.working_directorystarts_with/opt/symantec/install/excludes:process.working_directory field:"process.working_directory" value:"/opt/symantec/install/"

Indicators

These rows show field, operator, and value matches.