
Analisador de regras YARA para melhorar a qualidade e o desempenho das regras
Analisador de regras YARA para melhorar a qualidade e o desempenho das regras
Regras YARA podem ser sintaticamente corretas, mas ainda assim disfuncionais. O yaraQA tenta encontrar e relatar esses problemas ao autor ou mantenedor de um conjunto de regras YARA.
Os problemas que o yaraQA tenta detectar são, por exemplo:
2 of them na condição)$ = "\\Debug\\" fullword)$ = "AA"; pode ser excluído da análise usando --ignore-performance)Pretendo ampliar o conjunto de testes ao longo do tempo. Cada versão secundária incluirá novos recursos ou novos testes.
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/
Suprimir todos os problemas de desempenho e mostrar apenas problemas de detecção/lógica.
python3 yaraQA.py -d ./test/ --ignore-performance
Suprimir todos os problemas de caráter informativo
python3 yaraQA.py -d ./test/ -level 2
Usar uma linha de base para ver apenas novos problemas (não aqueles que você já revisou). O arquivo de linha de base é uma saída JSON antiga de um estado revisado.
python3 yaraQA.py -d ./test/ -b yaraQA-reviewed-issues.json
Exemplos de regras com problemas podem ser encontrados na pasta ./test.
O yaraQA escreve os problemas detectados em um arquivo chamado yaraQA-issues.json por padrão.
Esta listagem mostra um exemplo da saída gerada pelo yaraQA no formato JSON: