
Calculadora de Estatísticas de Strings de Regras YARA e Auxiliar de Pesquisa de Malware
_ _ _ ____ _ _
___| |_ __ _| |_(_) ___|| |_ _ __(_)_ __ __ _ ___
/ __| __/ _` | __| \___ \| __| '__| | '_ \ / _` / __|
\__ \ || (_| | |_| |___) | |_| | | | | | | (_| \__ \
|___/\__\__,_|\__|_|____/ \__|_| |_|_| |_|\__, |___/
|___/
YARA Rule Strings Statistics Calculator
Shelly Raban (Sh3llyR), February 2021, Version 0.1
statiStrings é uma calculadora de estatísticas de strings para regras YARA.
O objetivo é auxiliar a pesquisa de malware:
Esta ferramenta ajuda a escrever regras YARA melhores e mais precisas para detecção e caça a malware, com base em bancos de dados personalizados de arquivos maliciosos e limpos.
Para uma dada regra YARA e um diretório de arquivos, esta ferramenta retorna a prevalência de cada string da regra nos arquivos correspondentes do diretório.
Para usar esta ferramenta, você deve ter o Python instalado.
Instalar yara-python
pip install yara
Clonar o repositório
git clone https://github.com/Sh3llyR/statiStrings.git
usage: statiStrings.py [-h] [-y YARA_RULE] [-d TEST_DIR] [-t OUTPUT_TYPE]
YARA Rule Strings Statistics Generator and Malware Research Helper
optional arguments:
-h, --help show this help message and exit
-y YARA_RULE Path to the YARA Rule
-d TEST_DIR Path to the Directory of Files to be Scanned
-t OUTPUT_TYPE Output Type: s (sum - number of files in which each string
from the YARA rule ocuured) / p (percentage - percent of
files in which each string from the YARA rule ocuured).
Default is s
Pesquisa de strings comuns em scripts batch maliciosos: Primeiro, escrevi uma regra YARA com muitos comandos encontrados em scripts maliciosos. A condição era "any of them" — muito genérica. Depois, executei esta ferramenta com a regra que escrevi contra um diretório de scripts maliciosos (mostrado no exemplo a seguir). Finalmente, executei-a contra um diretório com scripts limpos. Após analisar os resultados de ambos os conjuntos (limpos e maliciosos), pude:
{'$s_ren': 1, '$n_set': 8, '$s_mem': 1, '$s_reg_add': 8, '$s_taskkill': 4, '$n_exit': 9, '$s_maybe_block_sites_hosts_file': 1, '$s_move': 2, '$s_attrib': 6, '$n_copy': 6, '$n_start': 10, '$n_type': 7, '$n_echo': 26, '$n_reg': 11, '$s_aes': 1, '$s_cscript': 1, '$s_change_mouse_settings': 1, '$n_net': 3, '$n_find': 6, '$s_infinite_loop': 2, '$s_shutdown': 9, '$n_del': 6, '$n_goto': 12, '$s_generic_bat_maybe_copy_itself': 5, '$n_ipconfig': 2, '$n_maybe_time_change': 5, '$n_system': 2, '$s_tskill': 3, '$s_cpu_damage': 1, '$s_erase': 3, '$s_make_random_folders': 1, '$s_sleep': 4, '$n_bat_maybe_copy_itself': 9}
Number of files scanned: 157
{'$s_maybe_block_sites_hosts_file': '0.64%', '$s_sleep': '2.55%', '$s_shutdown': '5.73%', '$s_attrib': '3.82%', '$s_change_mouse_settings': '0.64%', '$n_maybe_time_change': '3.18%', '$s_erase': '1.91%', '$s_move': '1.27%', '$n_net': '1.91%', '$s_aes': '0.64%', '$n_reg': '7.01%', '$n_system': '1.27%', '$n_set': '5.1%', '$s_cscript': '0.64%', '$n_find': '3.82%', '$s_generic_bat_maybe_copy_itself': '3.18%', '$s_cpu_damage': '0.64%', '$n_goto': '7.64%', '$s_tskill': '1.91%', '$s_ren': '0.64%', '$s_mem': '0.64%', '$n_type': '4.46%', '$s_taskkill': '2.55%', '$n_exit': '5.73%', '$n_echo': '16.56%', '$s_infinite_loop': '1.27%', '$n_start': '6.37%', '$s_make_random_folders': '0.64%', '$n_bat_maybe_copy_itself': '5.73%', '$n_ipconfig': '1.27%', '$s_reg_add': '5.1%', '$n_del': '3.82%', '$n_copy': '3.82%'}
Number of files scanned: 157
Link do Projeto: https://github.com/Sh3llyR/statiStrings