Detection: Detect Remote Access Software Usage Process

Description

The following analytic detects the execution of known remote access software within the environment. It leverages data from Endpoint Detection and Response (EDR) agents, focusing on process names and parent processes mapped to the Endpoint data model. We then compare with with a list of known remote access software shipped as a lookup file - remote_access_software.

 1
 2| tstats `security_content_summariesonly`
 3  count min(_time) as firstTime
 4        max(_time) as lastTime
 5        values(Processes.parent_process) as parent_process
 6
 7FROM datamodel=Endpoint.Processes WHERE
 8
 9[
10  
11| inputlookup remote_access_software
12  
13| search file_name!=""
14  
15| rename file_name as Processes.process_name
16  
17| table Processes.process_name
18]
19
20Processes.dest!="unknown"
21Processes.user!="unknown"
22
23BY Processes.action Processes.dest Processes.original_file_name Processes.parent_process Processes.parent_process_exec
24   Processes.parent_process_guid Processes.parent_process_id Processes.parent_process_name Processes.parent_process_path
25   Processes.process Processes.process_exec Processes.process_guid Processes.process_hash Processes.process_id
26   Processes.process_integrity_level Processes.process_name Processes.process_path Processes.user Processes.user_id
27   Processes.vendor_product
28
29
30| `drop_dm_object_name(Processes)`
31
32
33| lookup local=t remote_access_software file_name AS process_name OUTPUT app as signature, category, reference, description
34
35
36| `security_content_ctime(firstTime)`
37
38| `security_content_ctime(lastTime)`
39
40
41| `remote_access_software_usage_exceptions`
42
43
44| `detect_remote_access_software_usage_process_filter`

Data Source

Name Platform Sourcetype Source
Windows Event Log Security 4688 Windows icon Windows 'XmlWinEventLog' 'XmlWinEventLog:Security'
Sysmon EventID 1 Windows icon Windows 'XmlWinEventLog' 'XmlWinEventLog:Microsoft-Windows-Sysmon/Operational'
CrowdStrike ProcessRollup2 Other 'crowdstrike:events:sensor' 'crowdstrike'

Macros Used

Name Value
security_content_summariesonly summariesonly=summariesonly_config allow_old_summaries=oldsummaries_config fillnull_value=fillnull_config``
detect_remote_access_software_usage_process_filter search *
detect_remote_access_software_usage_process_filter is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.

Annotations

- MITRE ATT&CK
+ Kill Chain Phases
+ NIST
+ CIS
- Threat Actors
ID Technique Tactic
T1219 Remote Access Tools Command and Control
Command and Control
DE.AE
CIS 10

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

The detection is based on data that originates from Endpoint Detection and Response (EDR) agents. These agents are designed to provide security-related telemetry from the endpoints where the agent is installed. To implement this search, you must ingest logs that contain the process GUID, process name, and parent process. Additionally, you must ingest complete command-line executions. These logs must be processed using the appropriate Splunk Technology Add-ons that are specific to the EDR product. The logs must also be mapped to the Processes node of the Endpoint data model. Use the Splunk Common Information Model (CIM) to normalize the field names and speed up the data modeling process. The "exceptions" macro leverages both an Assets and Identities lookup, as well as a KVStore collection called "remote_software_exceptions" that lets you track and maintain device- based exceptions for this set of detections.

Known False Positives

It is possible that legitimate remote access software is used within the environment. Ensure that the lookup is reviewed and updated with any additional remote access software that is used within the environment. Known false positives can be added to the remote_access_software_usage_exception.csv lookup to globally suppress these situations across all remote access content

Associated Analytic Story

Intermediate Findings

Message Entity Field Entity Type Risk Score
A process [$process_name$] for a known remote access software [$signature$] was identified on [$dest$] by [$user$]. dest system 20
A process [$process_name$] for a known remote access software [$signature$] was identified on [$dest$] by [$user$]. user user 20

Threat Objects

Field Type
process_name process_name
signature signature

References

Atomic Tests

Learn more about Atomic Red Team tests here.

Atomic Test ID Atomic Test Name Supported Platform
8ca3b96d-8983-4a7f-b125-fc98cc0a2aa0 TeamViewer Files Detected Test on Windows Windows
d03683ec-aae0-42f9-9b4c-534780e0f8e1 LogMeIn Files Detected Test on Windows Windows
0ae9e327-3251-465a-a53b-485d4e3f58fa Ammyy Admin Software Execution Windows
fbff3f1f-b0bf-448e-840f-7e1687affdce RemotePC Software Execution Windows
ecca999b-e0c8-40e8-8416-ad320b146a75 NetSupport - RAT Execution Windows
19acf63b-55c4-4b6a-8552-00a8865105c8 UltraViewer - RAT Execution Windows
42e51815-a6cc-4c75-b970-3f0ff54b610e UltraVNC Execution Windows
b1b8128b-c5d4-4de9-bf70-e60419274562 MSP360 Connect Execution Windows
b025c580-029e-4023-888d-a42710d76934 Splashtop Execution Windows
3e1858ee-3550-401c-86ec-5e70ed79295b Splashtop Streamer Execution Windows
1aea6d15-70f1-4b4e-8b02-397b5d5ffe75 Microsoft App Quick Assist Execution Windows

Detection Testing

Test Type Status Dataset Source Sourcetype
Validation ✅ Passing N/A N/A N/A
Unit ✅ Passing Dataset XmlWinEventLog:Microsoft-Windows-Sysmon/Operational XmlWinEventLog
Integration ✅ Passing Dataset XmlWinEventLog:Microsoft-Windows-Sysmon/Operational XmlWinEventLog

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: 19