
Calculadora de estadísticas de cadenas de reglas YARA y asistente de investigación de malware
_ _ _ ____ _ _
___| |_ __ _| |_(_) ___|| |_ _ __(_)_ __ __ _ ___
/ __| __/ _` | __| \___ \| __| '__| | '_ \ / _` / __|
\__ \ || (_| | |_| |___) | |_| | | | | | | (_| \__ \
|___/\__\__,_|\__|_|____/ \__|_| |_|_| |_|\__, |___/
|___/
Calculadora de Estadísticas de Strings para Reglas YARA
Shelly Raban (Sh3llyR), Febrero 2021, Versión 0.1
statiStrings es un calculador de estadísticas de strings para reglas YARA.
El objetivo es ayudar en la investigación de malware mediante:
Esta herramienta ayuda a escribir reglas YARA mejores y más precisas para la detección y caza de malware, basándose en bases de datos personalizadas de archivos maliciosos y limpios.
Para una regla YARA dada y un directorio de archivos, esta herramienta devuelve la prevalencia de cada string de la regla en los archivos coincidentes del directorio.
Para usar esta herramienta, debes tener Python instalado.
Instalar yara-python
pip install yara
Clonar el repositorio
git clone https://github.com/Sh3llyR/statiStrings.git
usage: statiStrings.py [-h] [-y YARA_RULE] [-d TEST_DIR] [-t OUTPUT_TYPE]
Generador de Estadísticas de Strings para Reglas YARA y Ayudante de Investigación de Malware
argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
-y YARA_RULE Ruta a la regla YARA
-d TEST_DIR Ruta al directorio de archivos a escanear
-t OUTPUT_TYPE Tipo de salida: s (suma - número de archivos en los que apareció cada string
de la regla YARA) / p (porcentaje - porcentaje de archivos en los que apareció cada string
de la regla YARA). Por defecto es s
Investigación de strings comunes en scripts batch maliciosos: Primero, escribí una regla YARA con muchos comandos que se encontraron en scripts maliciosos. La condición era "any of them" – muy genérica. Luego, ejecuté esta herramienta con la regla que escribí contra un directorio de scripts maliciosos (mostrado en el siguiente ejemplo). Finalmente, la ejecuté contra un directorio con scripts limpios. Después de revisar los resultados de ambos scripts limpios y 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}
Número de archivos escaneados: 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%'}
Número de archivos escaneados: 157
Enlace del proyecto: https://github.com/Sh3llyR/statiStrings