
Analizzatore di regole YARA per migliorare qualità e prestazioni delle regole
Analizzatore di regole YARA per migliorare la qualità e le prestazioni delle regole
Le regole YARA possono essere sintatticamente corrette ma ancora disfunzionali. yaraQA cerca di trovare e segnalare questi problemi all'autore o al manutentore di un set di regole YARA.
I problemi che yaraQA cerca di rilevare sono, ad esempio:
2 of them nella condizione)$ = "\\Debug\\" fullword)$ = "AA"; possono essere esclusi dall'analisi usando --ignore-performance)Ho intenzione di estendere il set di test nel tempo. Ogni versione minore includerà nuove funzionalità o nuovi test.
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/
Sopprimi tutti i problemi di prestazioni e mostra solo i problemi di rilevamento/logica.
python3 yaraQA.py -d ./test/ --ignore-performance
Sopprimi tutti i problemi di tipo informativo
python3 yaraQA.py -d ./test/ -level 2
Usa una baseline per vedere solo i nuovi problemi (non quelli che hai già revisionato). Il file baseline è un vecchio output JSON di uno stato revisionato.
python3 yaraQA.py -d ./test/ -b yaraQA-reviewed-issues.json
Regole di esempio con problemi si trovano nella cartella ./test.
yaraQA scrive i problemi rilevati in un file chiamato yaraQA-issues.json per impostazione predefinita.
Questo elenco mostra un esempio dell'output generato da yaraQA in formato JSON: