Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linux_auditd_detection #3089

Merged
merged 55 commits into from
Sep 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
c6d3eac
linux_auditd_detection
tccontre Aug 9, 2024
7d0046c
linux_auditd_detection
tccontre Aug 9, 2024
110f60b
linux_auditd_detection
tccontre Aug 9, 2024
727701b
linux_auditd_detection
tccontre Aug 9, 2024
b8c18cc
linux_auditd_detection
tccontre Aug 9, 2024
02bd864
Branch was auto-updated.
patel-bhavin Aug 9, 2024
0800a90
linux_auditd_detection
tccontre Aug 12, 2024
47ef91e
linux_auditd_detection
tccontre Aug 12, 2024
4feedcd
Branch was auto-updated.
patel-bhavin Aug 12, 2024
c6ac136
Branch was auto-updated.
patel-bhavin Aug 13, 2024
382113b
Branch was auto-updated.
patel-bhavin Aug 13, 2024
e0a111f
linux_auditd_detection
tccontre Aug 14, 2024
6d9be3f
linux_auditd_detection
tccontre Aug 16, 2024
b0a092a
linux_auditd_detection
tccontre Aug 19, 2024
6a3e5f7
linux_auditd_detection
tccontre Aug 20, 2024
1440ec4
linux_auditd_detection
tccontre Aug 20, 2024
e978f7d
linux_auditd_detection
tccontre Aug 21, 2024
abd3d21
Branch was auto-updated.
patel-bhavin Aug 21, 2024
e9feb0f
Branch was auto-updated.
patel-bhavin Aug 21, 2024
cd513e7
Branch was auto-updated.
patel-bhavin Aug 21, 2024
e7bf43d
linux_auditd_detection
tccontre Aug 22, 2024
d4d1d24
linux_auditd_detection
tccontre Aug 22, 2024
afcc5b3
Branch was auto-updated.
patel-bhavin Aug 22, 2024
dbbc8dd
linux_auditd_detection
tccontre Aug 22, 2024
e7b0e43
Merge branch 'linux_auditd_detection' of github.com:splunk/security_c…
tccontre Aug 22, 2024
5438b11
Branch was auto-updated.
patel-bhavin Aug 22, 2024
6dfe91a
Branch was auto-updated.
patel-bhavin Aug 22, 2024
cc10ee9
Branch was auto-updated.
patel-bhavin Aug 22, 2024
6f875c5
Branch was auto-updated.
patel-bhavin Aug 22, 2024
b2c176c
Branch was auto-updated.
patel-bhavin Aug 22, 2024
041c0f9
Branch was auto-updated.
patel-bhavin Aug 22, 2024
5cd31d8
Branch was auto-updated.
patel-bhavin Aug 23, 2024
9038f13
Branch was auto-updated.
patel-bhavin Aug 23, 2024
1a371cd
Branch was auto-updated.
patel-bhavin Aug 23, 2024
ae316bf
linux_auditd_detection
tccontre Aug 23, 2024
a0a4c26
Merge branch 'linux_auditd_detection' of github.com:splunk/security_c…
tccontre Aug 23, 2024
5649a1b
linux_auditd_detection
tccontre Aug 23, 2024
14e298b
Branch was auto-updated.
patel-bhavin Aug 23, 2024
66c7ccb
Branch was auto-updated.
patel-bhavin Aug 23, 2024
434704c
Branch was auto-updated.
patel-bhavin Aug 26, 2024
548c6f3
Branch was auto-updated.
patel-bhavin Aug 26, 2024
a94e51b
linux_auditd_detection
tccontre Aug 27, 2024
c84da44
Branch was auto-updated.
patel-bhavin Aug 30, 2024
b6ade72
linux_auditd_detection
tccontre Sep 2, 2024
c1176e3
linux_auditd_detection
tccontre Sep 2, 2024
cb40877
Branch was auto-updated.
patel-bhavin Sep 2, 2024
cbcf588
Branch was auto-updated.
patel-bhavin Sep 4, 2024
8baa0b8
Branch was auto-updated.
patel-bhavin Sep 4, 2024
498f52a
Branch was auto-updated.
patel-bhavin Sep 4, 2024
0cbd5e0
Branch was auto-updated.
patel-bhavin Sep 4, 2024
9555914
linux_auditd_detection
tccontre Sep 4, 2024
5c34169
linux_auditd_detection
tccontre Sep 4, 2024
e557fd7
updating message and text
Sep 4, 2024
852b529
trigger
patel-bhavin Sep 4, 2024
db9b276
Branch was auto-updated.
patel-bhavin Sep 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions detections/endpoint/linux_auditd_add_user_account.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Linux Auditd Add User Account
id: aae66dc0-74b4-4807-b480-b35f8027abb4
version: 1
date: '2024-09-04'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: The following analytic detects the creation of new user accounts on Linux
systems using commands like "useradd" or "adduser." It leverages data from Endpoint
Detection and Response (EDR) agents, focusing on process names and command-line
executions. This activity is significant as adversaries often create new user accounts
to establish persistence on compromised hosts. If confirmed malicious, this could
allow attackers to maintain access, escalate privileges, and further compromise
the system, posing a severe security risk.
data_source:
- Linux Auditd Proctitle
search: '`linux_auditd` `linux_auditd_normalized_proctitle_process`| rename host as
dest | where LIKE (process_exec, "%useradd%") OR LIKE (process_exec, "%adduser%")
| stats count min(_time) as firstTime max(_time) as lastTime by process_exec proctitle
dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`|
`linux_auditd_add_user_account_filter`'
how_to_implement: To implement this detection, the process begins by ingesting auditd
data, that consist SYSCALL, TYPE, EXECVE and PROCTITLE events, which captures command-line
executions and process details on Unix/Linux systems. These logs should be ingested
and processed using Splunk Add-on for Unix and Linux (https://splunkbase.splunk.com/app/833),
which is essential for correctly parsing and categorizing the data. The next step
involves normalizing the field names to match the field names set by the Splunk
Common Information Model (CIM) to ensure consistency across different data sources
and enhance the efficiency of data modeling. This approach enables effective monitoring
and detection of linux endpoints where auditd is deployed
known_false_positives: Administrator or network operator can execute this command.
Please update the filter macros to remove false positives.
references:
- https://linuxize.com/post/how-to-create-users-in-linux-using-the-useradd-command/
tags:
analytic_story:
- Linux Privilege Escalation
- Linux Persistence Techniques
- Compromised Linux Host
asset_type: Endpoint
confidence: 50
impact: 50
message: A [$process_exec$] event occurred on host - [$dest$] to add a user account.
mitre_attack_id:
- T1136.001
- T1136
observable:
- name: dest
type: Endpoint
role:
- Victim
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- proctitle
risk_score: 25
security_domain: endpoint
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1136.001/linux_auditd_add_user/linux_auditd_add_user.log
source: /var/log/audit/audit.log
sourcetype: linux:audit
70 changes: 70 additions & 0 deletions detections/endpoint/linux_auditd_add_user_account_type.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Linux Auditd Add User Account Type
id: f8c325ea-506e-4105-8ccf-da1492e90115
version: 1
date: '2024-09-04'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: The following analytic detects the suspicious add user account type.
This behavior is critical for a SOC to monitor because it may indicate attempts
to gain unauthorized access or maintain control over a system. Such actions could
be signs of malicious activity. If confirmed, this could lead to serious consequences,
including a compromised system, unauthorized access to sensitive data, or even a
wider breach affecting the entire network. Detecting and responding to these signs
early is essential to prevent potential security incidents.
data_source:
- Linux Auditd Add User
search: ' `linux_auditd` type=ADD_USER | rename hostname as dest| stats count min(_time)
as firstTime max(_time) as lastTime by exe pid dest res UID type | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`| `linux_auditd_add_user_account_type_filter`'
how_to_implement: To implement this detection, the process begins by ingesting auditd
data, that consist SYSCALL, TYPE, EXECVE and PROCTITLE events, which captures command-line
executions and process details on Unix/Linux systems. These logs should be ingested
and processed using Splunk Add-on for Unix and Linux (https://splunkbase.splunk.com/app/833),
which is essential for correctly parsing and categorizing the data. The next step
involves normalizing the field names to match the field names set by the Splunk
Common Information Model (CIM) to ensure consistency across different data sources
and enhance the efficiency of data modeling. This approach enables effective monitoring
and detection of linux endpoints where auditd is deployed
known_false_positives: Administrator or network operator can use this application
for automation purposes. Please update the filter macros to remove false positives.
references:
- https://www.splunk.com/en_us/blog/security/deep-dive-on-persistence-privilege-escalation-technique-and-detection-in-linux-platform.html
tags:
analytic_story:
- Linux Living Off The Land
- Linux Privilege Escalation
- Linux Persistence Techniques
- Compromised Linux Host
asset_type: Endpoint
confidence: 50
impact: 50
message: New [$type$] event on host - [$dest$] to add a user account type.
mitre_attack_id:
- T1136
- T1136.001
observable:
- name: dest
type: Hostname
role:
- Victim
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- exe
- pid
- hostname
- res
- UID
- type
risk_score: 25
security_domain: endpoint
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1136.001/linux_auditd_add_user_type/linux_auditd_add_user_type.log
source: /var/log/audit/audit.log
sourcetype: linux:audit
75 changes: 75 additions & 0 deletions detections/endpoint/linux_auditd_at_application_execution.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Linux Auditd At Application Execution
id: 9f306e0a-1c36-469e-8892-968ca12470dd
version: 1
date: '2024-09-04'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: The following analytic detects the execution of the "At" application
in Linux, which can be used by attackers to create persistence entries on a compromised
host. This detection leverages data from Endpoint Detection and Response (EDR) agents,
focusing on process names and parent process names associated with "at" or "atd".
This activity is significant because the "At" application can be exploited to maintain
unauthorized access or deliver additional malicious payloads. If confirmed malicious,
this behavior could lead to data theft, ransomware attacks, or other severe consequences.
Immediate investigation is required to determine the legitimacy of the execution
and mitigate potential risks.
data_source:
- Linux Auditd Syscall
search: '`linux_auditd` type=SYSCALL comm IN ("at", "atd") OR exe IN ("/usr/bin/at","/usr/bin/atd")
AND NOT (UID IN("daemon")) | rename host as dest | stats count min(_time) as firstTime
max(_time) as lastTime by comm exe SYSCALL UID ppid pid dest | `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`| `linux_auditd_at_application_execution_filter`'
how_to_implement: To implement this detection, the process begins by ingesting auditd
data, that consist SYSCALL, TYPE, EXECVE and PROCTITLE events, which captures command-line
executions and process details on Unix/Linux systems. These logs should be ingested
and processed using Splunk Add-on for Unix and Linux (https://splunkbase.splunk.com/app/833),
which is essential for correctly parsing and categorizing the data. The next step
involves normalizing the field names to match the field names set by the Splunk
Common Information Model (CIM) to ensure consistency across different data sources
and enhance the efficiency of data modeling. This approach enables effective monitoring
and detection of linux endpoints where auditd is deployed
known_false_positives: Administrator or network operator can use this application
for automation purposes. Please update the filter macros to remove false positives.
references:
- https://attack.mitre.org/techniques/T1053/001/
- https://www.linkedin.com/pulse/getting-attacker-ip-address-from-malicious-linux-job-craig-rowland/
tags:
analytic_story:
- Scheduled Tasks
- Linux Privilege Escalation
- Linux Persistence Techniques
- Linux Living Off The Land
- Compromised Linux Host
asset_type: Endpoint
confidence: 30
impact: 30
message: A SYSCALL - [$comm$] event was executed on host - [$dest$] to execute the "at" application.
mitre_attack_id:
- T1053.002
- T1053
observable:
- name: dest
type: Endpoint
role:
- Victim
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- comm
- exe
- SYSCALL
- UID
- ppid
- pid
risk_score: 9
security_domain: endpoint
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1053.002/linux_auditd_at/linux_auditd_at_execution.log
source: /var/log/audit/audit.log
sourcetype: linux:audit
69 changes: 69 additions & 0 deletions detections/endpoint/linux_auditd_auditd_service_stop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Linux Auditd Auditd Service Stop
id: 6cb9d0e1-eabe-41de-a11a-5efade354e9d
version: 1
date: '2024-09-04'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: The following analytic detects the suspicious auditd service stop. This
behavior is critical for a SOC to monitor because it may indicate attempts to gain
unauthorized access or maintain control over a system. Such actions could be signs
of malicious activity. If confirmed, this could lead to serious consequences, including
a compromised system, unauthorized access to sensitive data, or even a wider breach
affecting the entire network. Detecting and responding to these signs early is essential
to prevent potential security incidents.
data_source:
- Linux Auditd Service Stop
search: '`linux_auditd` type=SERVICE_STOP unit IN ("auditd") | rename host as dest
| stats count min(_time) as firstTime max(_time) as lastTime by type pid UID comm
exe unit dest | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`|
`linux_auditd_auditd_service_stop_filter`'
how_to_implement: To implement this detection, the process begins by ingesting auditd
data, that consist SYSCALL, TYPE, EXECVE and PROCTITLE events, which captures command-line
executions and process details on Unix/Linux systems. These logs should be ingested
and processed using Splunk Add-on for Unix and Linux (https://splunkbase.splunk.com/app/833),
which is essential for correctly parsing and categorizing the data. The next step
involves normalizing the field names to match the field names set by the Splunk
Common Information Model (CIM) to ensure consistency across different data sources
and enhance the efficiency of data modeling. This approach enables effective monitoring
and detection of linux endpoints where auditd is deployed
known_false_positives: Administrator or network operator can use this application
for automation purposes. Please update the filter macros to remove false positives.
references:
- https://www.splunk.com/en_us/blog/security/deep-dive-on-persistence-privilege-escalation-technique-and-detection-in-linux-platform.html
tags:
analytic_story:
- Linux Living Off The Land
- Linux Privilege Escalation
- Linux Persistence Techniques
- Compromised Linux Host
asset_type: Endpoint
confidence: 50
impact: 50
message: A service event - [$type$] event occured on host - [$dest$].
mitre_attack_id:
- T1489
observable:
- name: dest
type: Endpoint
role:
- Victim
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- type
- pid
- UID
- comm
- exe
risk_score: 49
security_domain: endpoint
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1489/linux_auditd_auditd_service_stop/linux_auditd_auditd_service_stop.log
source: /var/log/audit/audit.log
sourcetype: linux:audit
69 changes: 69 additions & 0 deletions detections/endpoint/linux_auditd_base64_decode_files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Linux Auditd Base64 Decode Files
id: 5890ba10-4e48-4dc0-8a40-3e1ebe75e737
version: 1
date: '2024-09-04'
author: Teoderick Contreras, Splunk
status: production
type: Anomaly
description: The following analytic detects suspicious Base64 decode operations that
may indicate malicious activity, such as data exfiltration or execution of encoded
commands. Base64 is commonly used to encode data for safe transmission, but attackers
may abuse it to conceal malicious payloads. This detection focuses on identifying
unusual or unexpected Base64 decoding processes, particularly when associated with
critical files or directories. By monitoring these activities, the analytic helps
uncover potential threats, enabling security teams to respond promptly and mitigate
risks associated with encoded malware or unauthorized data access.
data_source:
- Linux Auditd Execve
search: '`linux_auditd` `linux_auditd_normalized_execve_process` | rename host as
dest | where LIKE(process_exec, "%base64%") AND (LIKE(process_exec, "%-d %") OR
LIKE(process_exec, "% --d%")) | stats count min(_time) as firstTime max(_time) as
lastTime by argc process_exec dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`|
`linux_auditd_base64_decode_files_filter`'
how_to_implement: To implement this detection, the process begins by ingesting auditd
data, that consist SYSCALL, TYPE, EXECVE and PROCTITLE events, which captures command-line
executions and process details on Unix/Linux systems. These logs should be ingested
and processed using Splunk Add-on for Unix and Linux (https://splunkbase.splunk.com/app/833),
which is essential for correctly parsing and categorizing the data. The next step
involves normalizing the field names to match the field names set by the Splunk
Common Information Model (CIM) to ensure consistency across different data sources
and enhance the efficiency of data modeling. This approach enables effective monitoring
and detection of linux endpoints where auditd is deployed
known_false_positives: Administrator or network operator can use this application
for automation purposes. Please update the filter macros to remove false positives.
references:
- https://www.splunk.com/en_us/blog/security/deep-dive-on-persistence-privilege-escalation-technique-and-detection-in-linux-platform.html
- https://gtfobins.github.io/gtfobins/dd/
tags:
analytic_story:
- Linux Living Off The Land
- Linux Privilege Escalation
- Linux Persistence Techniques
- Compromised Linux Host
asset_type: Endpoint
confidence: 50
impact: 50
message: A [$process_exec$] event occurred on host - [$dest$] to decode a file using base64.
mitre_attack_id:
- T1140
observable:
- name: dest
type: Endpoint
role:
- Victim
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
required_fields:
- _time
- argc
- process_exec
risk_score: 25
security_domain: endpoint
tests:
- name: True Positive Test
attack_data:
- data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1140/linux_auditd_base64/linux_auditd_base64.log
source: /var/log/audit/audit.log
sourcetype: linux:audit
Loading