
_ _ _ ____ _ _
___| |_ __ _| |_(_) ___|| |_ _ __(_)_ __ __ _ ___
/ __| __/ _` | __| \___ \| __| '__| | '_ \ / _` / __|
\__ \ || (_| | |_| |___) | |_| | | | | | | (_| \__ \
|___/\__\__,_|\__|_|____/ \__|_| |_|_| |_|\__, |___/
|___/
YARAルール文字列統計計算機
Shelly Raban (Sh3llyR), 2021年2月, バージョン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