
YARA 규칙 문자열 통계 계산기 및 악성코드 연구 도우미
_ _ _ ____ _ _
___| |_ __ _| |_(_) ___|| |_ _ __(_)_ __ __ _ ___
/ __| __/ _` | __| \___ \| __| '__| | '_ \ / _` / __|
\__ \ || (_| | |_| |___) | |_| | | | | | | (_| \__ \
|___/\__\__,_|\__|_|____/ \__|_| |_|_| |_|\__, |___/
|___/
YARA Rule Strings Statistics Calculator
Shelly Raban (Sh3llyR), February 2021, Version 0.1
statiStrings는 YARA 규칙의 문자열 통계 계산기입니다.
악성코드 연구를 돕기 위한 목표:
이 도구는 악성 및 클린 파일의 사용자 정의 데이터베이스를 기반으로, 더 나은 정밀한 YARA 규칙을 작성하여 악성코드 탐지 및 헌팅을 돕습니다.
주어진 YARA 규칙과 파일 디렉토리에 대해, 이 도구는 규칙의 각 문자열이 디렉토리 내 일치하는 파일에서 얼마나 자주 나타나는지를 반환합니다.
이 도구를 사용하려면 Python이 설치되어 있어야 합니다.
yara-python 설치
pip install yara
레포지토리 클론
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
악성 배치 스크립트의 공통 문자열 연구: 먼저 악성 스크립트에서 발견된 여러 명령어를 포함하는 YARA 규칙을 작성했습니다. 조건은 "any of them" – 매우 일반적이었습니다. 그런 다음, 작성한 규칙을 사용하여 악성 스크립트 디렉토리에 대해 이 도구를 실행했습니다 (아래 예시 참조). 마지막으로, 클린 스크립트가 있는 디렉토리에 대해 실행했습니다. 클린 스크립트와 악성 스크립트의 결과를 비교한 후, 다음을 수행할 수 있었습니다:
{'$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
프로젝트 링크: https://github.com/Sh3llyR/statiStrings