The hypothesis is that the detection rule identifies potential CORESHELL/SOURFACE implant activity by APT28, which is a sophisticated and persistent malware used for long-term access and data exfiltration. SOC teams should proactively hunt for this behavior in Azure Sentinel to detect and mitigate advanced persistent threats before they cause significant damage.
rule IMPLANT_2_v20 {
meta:
description = "CORESHELL/SOURFACE Implant by APT28"
author = "US CERT"
reference = "https://www.us-cert.gov/ncas/current-activity/2017/02/10/Enhanced-Analysis-GRIZZLY-STEPPE"
date = "2017-02-10"
score = 85
strings:
$func = { 0F B6 5C 0A FE 8D 34 02 8B 45 D4 03 C2 0F AF D8 8D 7A 01 8D 42
FF 33 D2 F7 75 F4 C1 EB 07 8B C7 32 1C 0A 33 D2 B9 06 00 00 00 F7 F1
8A 4D F8 8B 45 0C 80 E9 02 02 4D 0B 32 0C 02 8B 45 F8 33 D2 F7 75 F4
8B 45 0C 22 0C 02 8B D7 02 D9 30 1E 8B 4D 0C 8D 42 FE 3B 45 E8 8B 45
D8 89 55 F8 72 A0 }
condition:
(uint16(0) == 0x5A4D or uint16(0) == 0xCFD0 or uint16(0) == 0xC3D4 or
uint32(0) == 0x46445025 or uint32(1) == 0x6674725C) and all of them
}
This YARA rule can be deployed in the following contexts:
This rule contains 1 string patterns in its detection logic.
Scenario: Scheduled system maintenance task using PowerShell to update system files
Filter/Exclusion: process.name != "powershell.exe" OR process.args NOT LIKE '%Update-ExecutionPolicy%'
Scenario: Legitimate use of Microsoft Sysinternals Process Explorer for administrative troubleshooting
Filter/Exclusion: process.name != "procexp.exe" OR process.args NOT LIKE '%-enable'
Scenario: Automated backup job using Veeam Backup & Replication that executes scripts
Filter/Exclusion: process.name != "veeam.exe" OR process.args NOT LIKE '%backup%'
Scenario: System administrator using Windows Task Scheduler to run a legitimate script for log cleanup
Filter/Exclusion: process.name != "schtasks.exe" OR process.args NOT LIKE '/create /tn LogCleanup /tr "C:\Scripts\cleanlogs.ps1"'
Scenario: Use of Windows Event Viewer to manually review logs for troubleshooting
Filter/Exclusion: process.name != "eventvwr.exe" OR process.args NOT LIKE '/s'