YARA · Signature Base (Florian Roth / Nextron)
SIGNATURE_BASE_APT_Sandworm_Cyclopsblink_Handle_Mod_0X51_Command
Detects the code bytes used to check commands sent to module ID 0x51 and notable strings relating to the Cyclops Blink update process
- Author
- NCSC
- Date
- 2022-02-23
- Modified
- 2023-12-05
- Score / Quality
- 75 / 85
What this rule detects
Detects the code bytes used to check commands sent to module ID 0x51 and notable strings relating to the Cyclops Blink update process
Targets: Linux ELF.
It defines 7 patterns (4 text, 3 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
rule SIGNATURE_BASE_APT_Sandworm_Cyclopsblink_Handle_Mod_0X51_Command : FILE
{
meta:
= "Detects the code bytes used to check commands sent to module ID 0x51 and notable strings relating to the Cyclops Blink update process"
= "NCSC"
= "a6800aed-27dc-5d01-b005-1eb4a62344a3"
= "2022-02-23"
= "2023-12-05"
= "https://www.ncsc.gov.uk/news/joint-advisory-shows-new-sandworm-malware-cyclops-blink-replaces-vpnfilter"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/apt_sandworm_cyclops_blink.yar#L176-L200"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
= "3adf9a59743bc5d8399f67cab5eb2daf28b9b863"
= "c59bc17659daca1b1ce65b6af077f86a648ad8a8"
= "8a68f4a5f5b7a45819e9a198881aa41b75a65181b63788c8b824b339bfd6fc67"
= 75
= 85
= "FILE"
strings:
$cmd_check = {88 1F [2] 54 00 06 3E 2F 80 00 (01|02|03) }
$path1 = "/etc/wg/configd-hash.xml"
$path2 = "/etc/wg/config.xml"
$mnt_arg1 = "ext2"
$mnt_arg2 = "errors=continue"
$mnt_arg3 = {38 C0 0C 20}
$mnt_arg4 = {38 C0 0C 21}
condition:
( uint32( 0 ) == 0x464c457f ) and ( #cmd_check == 3 ) and ( ( @cmd_check [ 3 ] - @cmd_check [ 1 ] ) < 0x200 ) and ( all of ( $path* ) ) and ( all of ( $mnt_arg* ) )
}
Strings (7 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $cmd_check | hex | {88 1F [2] 54 00 06 3E 2F 80 00 (01|02|03) } | |
| $path1 | text | "/etc/wg/configd-hash.xml" | |
| $path2 | text | "/etc/wg/config.xml" | |
| $mnt_arg1 | text | "ext2" | |
| $mnt_arg2 | text | "errors=continue" | |
| $mnt_arg3 | hex | {38 C0 0C 20} | |
| $mnt_arg4 | hex | {38 C0 0C 21} |
Condition
( uint32( 0 ) == 0x464c457f ) and ( #cmd_check == 3 ) and ( ( @cmd_check [ 3 ] - @cmd_check [ 1 ] ) < 0x200 ) and ( all of ( $path* ) ) and ( all of ( $mnt_arg* ) )In plain words (Heuristic)
- The file must start with the ELF header — a Linux/Unix executable.
- All patterns in ( $path* ) must match.
- All patterns in ( $mnt_arg* ) must match.
- Pattern $cmd_check must occur == 3 times.
Test this rule in your browser
Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- 3adf9a59743bc5d8399f67cab5eb2daf28b9b863
- c59bc17659daca1b1ce65b6af077f86a648ad8a8
Licence & attribution
Author: NCSC
Source repository: Signature Base (Florian Roth / Nextron) @ 94a1c48d7a
Licence: Detection Rule License 1.1 (repository licence)
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: a6800aed-27dc-5d01-b005-1eb4a62344a3
Tags:FILE
Related rules
- APT / threat actorSignature Base (Florian Roth / Nextron)· NCSC· 2022-02-23
- APT / threat actorSignature Base (Florian Roth / Nextron)· NCSC· 2022-02-23
- APT / threat actorSignature Base (Florian Roth / Nextron)· NCSC· 2022-02-23
- APT / threat actorSignature Base (Florian Roth / Nextron)· NCSC· 2022-02-23
- APT / threat actorSignature Base (Florian Roth / Nextron)· NCSC· 2022-02-23
- APT / threat actorSignature Base (Florian Roth / Nextron)· NCSC· 2022-02-23
- MalwareSignature Base (Florian Roth / Nextron)· NCSC· 2024-10-22
- MalwareSignature Base (Florian Roth / Nextron)· NCSC· 2025-09-25