The detection identifies the use of RustDesk, a remote management tool, to create processes that may indicate adversary persistence or command and control activity. SOC teams should proactively hunt for this behavior in Azure Sentinel to detect potential compromise of endpoints managed by RMM tools.
KQL Query
let Time_start = now(-5d);
let Time_end = now();
//
DeviceProcessEvents
| where Timestamp between (Time_start..Time_end)
| where ProcessVersionInfoProductName has 'rustdesk'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
id: a06c66b9-35be-4b73-9b9a-4f8710c52c94
name: Remote Management and Monitoring tool - RustDesk - Create Process
description: |
Remote Monitoring and Management (RMM) programs are IT to manage remote endpoints. Attackers have begun to abuse these programs to persist or provide C2 channels.
https://github.com/jischell-msft/RemoteManagementMonitoringTools
requiredDataConnectors:
- connectorId: MicrosoftThreatProtection
dataTypes:
- DeviceProcessEvents
tactics: CommandAndControl
relevantTechniques: T1219
query: |
let Time_start = now(-5d);
let Time_end = now();
//
DeviceProcessEvents
| where Timestamp between (Time_start..Time_end)
| where ProcessVersionInfoProductName has 'rustdesk'
| summarize FirstSeen=min(Timestamp), LastSeen=max(Timestamp),
Report=make_set(ReportId), Count=count() by DeviceId, DeviceName
| Sentinel Table | Notes |
|---|---|
DeviceProcessEvents | Ensure this data connector is enabled |
Scenario: IT Admin Deploys RustDesk for Remote Support
Description: A system administrator uses RustDesk to remotely support end-users by creating a process to connect to a user’s machine.
Filter/Exclusion: process.name != "RustDesk" OR process.parent.name == "Remote Desktop Services"
Scenario: Scheduled Job for System Maintenance via RustDesk
Description: A scheduled task is configured to run a maintenance script using RustDesk to manage multiple endpoints during off-peak hours.
Filter/Exclusion: process.parent.name == "Task Scheduler" OR process.name == "RustDesk.exe"
Scenario: RustDesk Used for Patch Management
Description: IT uses RustDesk to deploy patches or updates to endpoints, which involves creating processes on target machines.
Filter/Exclusion: process.parent.name == "RustDesk" OR process.name == "RustDesk.exe"
Scenario: Admin Uses RustDesk to Monitor System Performance
Description: An admin tool like RustDesk is used to monitor system performance metrics across the network, which may involve creating processes on monitored hosts.
Filter/Exclusion: process.parent.name == "RustDesk" OR process.name == "RustDesk.exe"
Scenario: RustDesk Integration with SIEM for Log Collection
Description: RustDesk is configured to send logs to a SIEM system, which may involve creating processes to facilitate log transmission.
Filter/Exclusion: process.parent.name == "RustDesk" OR process.name == "RustDesk.exe"