YARA-Namens- und Stilkonventionen
Konventionen öffentlicher YARA-Regelsammlungen: Namenspräfixe (MAL_, HKTL_…), Meta-Felder, String-Benennung ($x, $s, $fp), Formatierung mit yr fmt und Versionierung.
Stil ändert nicht, was eine Regel erkennt, aber ob der nächste Analyst sie versteht, ihr vertraut und sie pflegen kann. Diese Konventionen stammen aus großen öffentlichen Sammlungen wie Signature Base und den YARA-Forge-Paketen.
Regelnamen
Üblich ist PRÄFIX_Familie_Detail_Datum:
| Präfix | Bedeutung | Beispiel |
|---|---|---|
MAL_ | Malware | MAL_Emotet_Loader_Mar24 |
APT_ | Werkzeuge eines Akteurs | APT_UNC0000_Backdoor_Config |
HKTL_ | Hacktool | HKTL_CobaltStrike_Beacon_Strings |
SUSP_ | Verdächtiges Merkmal | SUSP_PE_Overlay_Base64_Script |
EXPL_ | Exploit | EXPL_CVE_2023_23397_Outlook |
WEBSHELL_ | Webshell | WEBSHELL_PHP_Generic_Eval |
PUA_ | Potenziell unerwünscht | PUA_Miner_XMRig_Config |
YARA Forge stellt zusätzlich den Quellnamen voran (SIGNATURE_BASE_…) — deshalb zeigen die Seiten der Bibliothek beide Namen.
Meta-Felder
| Feld | Zweck |
|---|---|
description | Ein Satz: was die Regel erkennt |
author | Autor (unter DRL 1.1 in Ausgaben sichtbar) |
reference | Bericht oder Fall als Anlass |
date / modified | Erstellung / letzte Änderung (JJJJ-MM-TT) |
id | Stabile UUID |
hash | Proben-Hashes (Schlüssel wiederholt) |
score | Konfidenz 0–100 |
license | Lizenz, falls abweichend vom Repository |
rule MAL_Example_Conventions_Sep26
{
meta:
= "Beispiel-Loader mit den üblichen Meta-Feldern"
= "yararules.org"
= "https://yararules.org/de/learn/style-conventions"
= "2026-09-29"
= "2026-09-29"
= "5b0f7a58-1f35-4c1c-9d3e-6b2f4b1b8a10"
= 75
= "DRL-1.1"
strings:
$x1 = "ExampleLoader_v3_config" ascii
$s1 = "Stage2Url" wide
$s2 = "InjectInto" ascii
$fp1 = "Copyright (c) Example Software GmbH" wide
condition:
uint16(0) == 0x5A4D and filesize < 2MB and
not 1 of ($fp*) and
(1 of ($x*) or all of ($s*))
}
String-Benennung
$x* starke Indikatoren, $s* unterstützende, $a*/$op* thematische Gruppen, $fp* Ausnahmen gegen False Positives. So liest sich 1 of ($x*) or 3 of ($s*) von selbst.
Warum das zählt
Gut benannte Regeln lassen sich filtern und priorisieren, ohne sie zu öffnen: Ein SOC-Analyst weiß, dass ein MAL_-Treffer dringender ist als ein SUSP_-Treffer, und eine Pipeline kann HKTL_ anders routen. Vollständige Metadaten erlauben es, die Herkunft einer Detektion auch Monate später nachzuvollziehen.
Formatierung und Kommentare
yr fmt formatiert kanonisch; der Linter enthält einen Formatierer, der nur Leerraum ändert und Regeln mit Kommentaren unangetastet lässt. Kommentare für Begründungen, meta für alles, was in Treffern sichtbar sein soll.
Versionierung
Namen nie für andere Logik wiederverwenden, id stabil halten, modified bei jeder Änderung aktualisieren, False Positives festhalten (Tests und CI) und eine Lizenz angeben (Öffentliche Regelsammlungen).
FAQ
- Was bedeuten Präfixe wie MAL_ oder HKTL_?
- Sie klassifizieren die Regel: MAL_ Malware, HKTL_ Hacktool, SUSP_ verdächtiges Merkmal, APT_ Werkzeuge eines Akteurs, EXPL_ Exploit, WEBSHELL_ Webshell, PUA_ potenziell unerwünschte Anwendung.
- Welche Meta-Felder sollte jede Regel haben?
- Mindestens description, author, date und reference; viele Sammlungen ergänzen id, modified, score, hash und license.
- Gibt es einen offiziellen Formatierer?
- YARA-X bringt yr fmt mit. Der Linter dieser Website enthält zudem einen vorsichtigen Formatierer, der nur Leerraum ändert.