YARA · Signature Base (Florian Roth / Nextron)
SIGNATURE_BASE_MAL_ELF_Torchtriton
Detection for backdoor (TorchTriton) distributed with a nightly build of PyTorch
- Author
- Silas Cutler
- Date
- 2023-01-02
- Modified
- 2023-12-05
- Score / Quality
- 75 / 85
What this rule detects
Detection for backdoor (TorchTriton) distributed with a nightly build of PyTorch
Targets: Linux ELF.
It defines 8 patterns (8 text, 0 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
rule SIGNATURE_BASE_MAL_ELF_Torchtriton : FILE
{
meta:
= "Detection for backdoor (TorchTriton) distributed with a nightly build of PyTorch"
= "Silas Cutler"
= "85e98ee7-30bf-554f-a0ac-9df263e6dfe4"
= "2023-01-02"
= "2023-12-05"
= "https://www.bleepingcomputer.com/news/security/pytorch-discloses-malicious-dependency-chain-compromise-over-holidays/"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/yara/gen_100days_of_yara_2023.yar#L88-L117"
= "https://github.com/Neo23x0/signature-base/blob/94a1c48d7ab499879287ff611dfe7f9c56376030/LICENSE"
= "2385b29489cd9e35f92c072780f903ae2e517ed422eae67246ae50a5cc738a0e"
= "12de3c3785aaf3623097db58abfe8ee2cbd9a0e712bf752165952de9a5fdb07d"
= 75
= 85
= "FILE"
= "1.0"
= "2/100"
strings:
$error = "failed to send packet"
$aes_key = "gIdk8tzrHLOM)mPY-R)QgG[;yRXYCZFU"
$aes_iv = "?BVsNqL]S.Ni"
$func01 = "splitIntoDomains("
$func02 = "packageForTransport"
$func03 = "gatherFiles"
$func04 = "void sendFile("
$domain = "&z-%`-(*"
condition:
uint32( 0 ) == 0x464c457f and ( ( all of ( $aes_* ) ) or ( all of ( $func* ) and $error ) or ( $domain and 2 of them ) )
}
Strings (8 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $error | text | "failed to send packet" | |
| $aes_key | text | "gIdk8tzrHLOM)mPY-R)QgG[;yRXYCZFU" | |
| $aes_iv | text | "?BVsNqL]S.Ni" | |
| $func01 | text | "splitIntoDomains(" | |
| $func02 | text | "packageForTransport" | |
| $func03 | text | "gatherFiles" | |
| $func04 | text | "void sendFile(" | |
| $domain | text | "&z-%`-(*" |
Condition
uint32( 0 ) == 0x464c457f and ( ( all of ( $aes_* ) ) or ( all of ( $func* ) and $error ) or ( $domain and 2 of them ) )In plain words (Heuristic)
- The file must start with the ELF header — a Linux/Unix executable.
- All patterns in ( $aes_* ) must match.
- All patterns in ( $func* ) must match.
- At least 2 patterns in the rule must match.
- Pattern $error must be present.
- Pattern $domain must be present.
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).
- 2385b29489cd9e35f92c072780f903ae2e517ed422eae67246ae50a5cc738a0e
Licence & attribution
Author: Silas Cutler
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: 85e98ee7-30bf-554f-a0ac-9df263e6dfe4
Metadata
| version | 1.0 |
|---|---|
| DaysofYARA | 2/100 |
Tags:FILE
Related rules
- MalwareSignature Base (Florian Roth / Nextron)· Silas Cutler· 2023-01-03