Skip to content

Snap Mac Detections#3935

Open
RavenTait wants to merge 1 commit intodevelopfrom
mac_from_snap
Open

Snap Mac Detections#3935
RavenTait wants to merge 1 commit intodevelopfrom
mac_from_snap

Conversation

@RavenTait
Copy link
Copy Markdown
Contributor

Added new Mac OS detections and analytic stories

Detections:

  • MacOS Account Created
  • MacOS Data Chunking
  • MacOS Gatekeeper Bypass
  • MacOS Hidden Files and Directories
  • MacOS Kextload Usage
  • MacOS Keychains Dumped
  • MacOS Log Removal
  • MacOS Loginhook Persistence
  • MacOS Network Share Discovery

Stories

  • MacOS Post-Exploitation
  • MacOS Persistence Techniques
  • MacOS Privilege Escalation

@RavenTait RavenTait added the WIP DO NOT MERGE Work in Progress label Mar 3, 2026
@nasbench nasbench added this to the v5.25.0 milestone Mar 16, 2026
@nasbench
Copy link
Copy Markdown
Contributor

Moving this to v5.25.0 since the TA missed out on this release.

type: Anomaly
description: The following analytic detects the creation of a new local user account on a MacOS system. It leverages osquery logs to identify this activity. Monitoring the creation of local accounts is crucial for a SOC as it can indicate unauthorized access or lateral movement within the network. If confirmed malicious, this activity could allow an attacker to establish persistence, escalate privileges, or gain unauthorized access to sensitive systems and data.
data_source:
- osquery
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RavenTait - lets update the data source object to reflect the latest TA information and in the contentctl.yml file

description: The following analytic detects the creation of a new local user account on a MacOS system. It leverages osquery logs to identify this activity. Monitoring the creation of local accounts is crucial for a SOC as it can indicate unauthorized access or lateral movement within the network. If confirmed malicious, this activity could allow an attacker to establish persistence, escalate privileges, or gain unauthorized access to sensitive systems and data.
data_source:
- osquery
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process IN ("*sysadminctl","*createhomedir*","*dseditgroup*") OR (Processes.process = "*dscl*" AND Processes.process IN ("*-create*","*-passwd*")) by Processes.dest Processes.original_file_name Processes.parent_process_id Processes.process Processes.process_exec Processes.process_guid Processes.process_hash Processes.process_id Processes.process_current_directory Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `macos_account_created_filter`'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we update the formatting all these SPL to make them pretty ? eg :

- field: dest
type: system
score: 18
threat_objects: []
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets consider adding process/ process_name as threat objects for all detections in the PR where applicable

data_source:
- osquery
search: '| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process IN ("dd *","*split *") by Processes.dest Processes.original_file_name Processes.parent_process_id Processes.process Processes.process_exec Processes.process_guid Processes.process_hash Processes.process_id Processes.process_current_directory Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)` | `macos_data_chunking_filter`'
how_to_implement: This detection uses osquery and endpoint security on MacOS. Follow the link in references, which describes how to setup process auditing in MacOS with endpoint security and osquery. Also the [TA-OSquery](https://github.com/d1vious/TA-osquery) must be deployed across your indexers and universal forwarders in order to have the osquery data populate the data models.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

text needs a minor update to mention TA and any other relavant Splunkbase links!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Detections Stories WIP DO NOT MERGE Work in Progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants