Detection: Linux Deletion of SSL Certificate
Description
The following analytic detects the deletion of SSL certificates on a Linux machine. It leverages filesystem event logs to identify when files with extensions .pem or .crt are deleted from the /etc/ssl/certs/ directory. This activity is significant because attackers may delete or modify SSL certificates to disable security features or evade defenses on a compromised system. If confirmed malicious, this behavior could indicate an attempt to disrupt secure communications, evade detection, or execute a destructive payload, potentially leading to significant security breaches and data loss.
Search
1
2| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Filesystem
3 WHERE Filesystem.action=deleted Filesystem.file_path = "/etc/ssl/certs/*" Filesystem.file_path IN ("*.pem", "*.crt")
4 BY Filesystem.action Filesystem.dest Filesystem.file_access_time
5 Filesystem.file_create_time Filesystem.file_hash Filesystem.file_modify_time
6 Filesystem.file_name Filesystem.file_path Filesystem.file_acl
7 Filesystem.file_size Filesystem.process_guid Filesystem.process_id
8 Filesystem.user Filesystem.vendor_product
9
10| `drop_dm_object_name(Filesystem)`
11
12| `security_content_ctime(firstTime)`
13
14| `security_content_ctime(lastTime)`
15
16| `linux_deletion_of_ssl_certificate_filter`
Data Source
Macros Used
| Name |
Value |
| security_content_ctime |
convert timeformat="%Y-%m-%dT%H:%M:%S" ctime($field$) |
| linux_deletion_of_ssl_certificate_filter |
search * |
linux_deletion_of_ssl_certificate_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
| ID |
Technique |
Tactic |
| T1070.004 |
File Deletion |
Stealth |
| T1485 |
Data Destruction |
Impact |
Exploitation
Actions on Objectives
Default Configuration
This detection is configured by default in Splunk Enterprise Security to run with the following settings:
| Setting |
Value |
| Disabled |
true |
| Cron Schedule |
0 * * * * |
| Earliest Time |
-70m@m |
| Latest Time |
-10m@m |
| Schedule Window |
auto |
| Creates Finding (Notable) |
No |
| Creates Intermediate Finding (Risk Event) |
Yes |
Anomaly detections generate Intermediate Findings (Risk Events). They do not generate a Finding (Notable) directly.
Implementation
To successfully implement this search, you need to be ingesting logs with the process name, parent process, and command-line executions from your endpoints. If you are using Sysmon, you can use the Add-on for Linux Sysmon from Splunkbase.
Known False Positives
Administrator or network operator can execute this command. Please update the filter macros to remove false positives.
Associated Analytic Story
| Message |
Entity Field |
Entity Type |
Risk Score |
| SSL certificate deleted on host $dest$ by process GUID- $process_guid$ |
dest |
system |
20 |
Threat Objects
| Field |
Type |
| file_name |
file_name |
References
Detection Testing
| Test Type |
Status |
Dataset |
Source |
Sourcetype |
| Validation |
✅ Passing |
N/A |
N/A |
N/A |
| Unit |
✅ Passing |
Dataset |
Syslog:Linux-Sysmon/Operational |
sysmon:linux |
| Integration |
✅ Passing |
Dataset |
Syslog:Linux-Sysmon/Operational |
sysmon:linux |
Replay any dataset to Splunk Enterprise by using our replay.py tool or the UI.
Alternatively you can replay a dataset into a Splunk Attack Range
Source: GitHub |
Version: 12