Detection rules › Elastic
Attempt to Disable SELinux
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
| Tactic | Techniques |
|---|---|
| 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.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.parent.args | eq | /usr/local/cpanel/bin/taskrun | excludes:process.parent.args field:"process.parent.args" value:"/usr/local/cpanel/bin/taskrun" |
process.parent.name | in | perl, taskrun | excludes:process.parent.name field:"process.parent.name" value:"perl" field:"process.parent.name" value:"taskrun" |
process.parent.args | wildcard | /home/*/.ansible/tmp/ansible-tmp-*.py | excludes:process.parent.args field:"process.parent.args" value:"/home/*/.ansible/tmp/ansible-tmp-*.py" |
process.parent.name | starts_with | python | excludes:process.parent.name field:"process.parent.name" value:"python" |
process.parent.args | wildcard | /tmp/ansible-tmp-*/AnsiballZ_command.py, /tmp/chef-script*, /root/fapolicyd_rebuild.sh, /opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.sh | excludes:process.parent.args |
process.parent.executable | in | /opt/Tanium/TaniumClient/Tools/TCMClientUpgrade/ClientManagementUpgrade-upgrade.sh, /opt/puppetlabs/puppet/bin/ruby, /usr/libexec/platform-python, /usr/share/centrifydc/libexec/dzdo | excludes:process.parent.executable |
process.parent.executable | starts_with | /usr/libexec/platform-python | excludes:process.parent.executable field:"process.parent.executable" value:"/usr/libexec/platform-python" |
process.working_directory | starts_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.