
Analyseur de règles YARA pour améliorer la qualité et les performances des règles
Analyseur de règles YARA pour améliorer la qualité et les performances des règles
Les règles YARA peuvent être syntaxiquement correctes mais toujours dysfonctionnelles. yaraQA essaie de détecter et de signaler ces problèmes à l'auteur ou au mainteneur d'un ensemble de règles YARA.
Les problèmes que yaraQA essaie de détecter sont par exemple :
2 of them dans la condition)$ = "\\Debug\\" fullword)$ = "AA" ; peuvent être exclus de l'analyse en utilisant --ignore-performance)J'ai l'intention d'étendre l'ensemble de tests au fil du temps. Chaque version mineure inclura de nouvelles fonctionnalités ou de nouveaux tests.
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/
Supprimez tous les problèmes de performance et n'affichez que les problèmes de détection / logique.
python3 yaraQA.py -d ./test/ --ignore-performance
Supprimez tous les problèmes de type informatif
python3 yaraQA.py -d ./test/ -level 2
Utilisez une base de référence pour ne voir que les nouveaux problèmes (pas ceux que vous avez déjà examinés). Le fichier de base de référence est une ancienne sortie JSON d'un état examiné.
python3 yaraQA.py -d ./test/ -b yaraQA-reviewed-issues.json
Des exemples de règles avec problèmes se trouvent dans le dossier ./test.
Par défaut, yaraQA écrit les problèmes détectés dans un fichier nommé yaraQA-issues.json.
Cette liste montre un exemple de la sortie générée par yaraQA au format JSON :