
YARA-Regelanalysator zur Verbesserung der Regelqualität und -leistung
YARA-Regel-Analyzer zur Verbesserung der Regelqualität und -leistung
YARA-Regeln können syntaktisch korrekt, aber dennoch funktionsuntüchtig sein. yaraQA versucht, diese Probleme zu finden und dem Autor oder Betreuer eines YARA-Regelsatzes zu melden.
Die Probleme, die yaraQA zu erkennen versucht, sind z. B.:
2 of them in der Bedingung)$ = "\\Debug\\" fullword)$ = "AA"; kann mit --ignore-performance von der Analyse ausgeschlossen werden)Ich werde den Testsatz im Laufe der Zeit erweitern. Jede Nebenversion wird neue Funktionen oder neue Tests enthalten.
pip install -r requirements.txt
usage: yaraQA.py [-h] [-f yara files [yara files ...]] [-d yara files [yara files ...]] [-o outfile] [-b baseline] [-l level]
[--ignore-performance] [--debug]
YARA RULE ANALYZER
optional arguments:
-h, --help show this help message and exit
-f yara files [yara files ...]
Path to input files (one or more YARA rules, separated by space)
-d yara files [yara files ...]
Path to input directory (YARA rules folders, separated by space)
-o outfile Output file that lists the issues (JSON, default: 'yaraQA-issues.json')
-b baseline Use a issues baseline (issues found and reviewed before) to filter issues
-l level Minium level to show (1=informational, 2=warning, 3=critical)
--ignore-performance Suppress performance-related rule issues
--debug Debug output
python3 yaraQA.py -d ./test/
Alle Leistungsprobleme unterdrücken und nur Erkennungs-/Logikprobleme anzeigen.
python3 yaraQA.py -d ./test/ --ignore-performance
Alle Probleme mit informationsmäßigem Charakter unterdrücken.
python3 yaraQA.py -d ./test/ -level 2
Eine Basislinie verwenden, um nur neue Probleme zu sehen (nicht die, die Sie bereits überprüft haben). Die Basislinie ist eine alte JSON-Ausgabe eines überprüften Zustands.
python3 yaraQA.py -d ./test/ -b yaraQA-reviewed-issues.json
Beispielregeln mit Problemen finden Sie im Ordner ./test.
yaraQA schreibt die erkannten Probleme standardmäßig in eine Datei mit dem Namen yaraQA-issues.json.
Diese Auflistung zeigt ein Beispiel der von yaraQA im JSON-Format erzeugten Ausgabe: