dimaskaje/Malware-Detector-using-YARA-Rules

GitHub: dimaskaje/Malware-Detector-using-YARA-Rules

该项目是一个基于 YARA 规则的恶意软件静态检测工具包,通过预置的十大类威胁规则和 Python 扫描脚本实现批量样本分析与威胁等级评估。

Stars: 0 | Forks: 0

# 🛡️ YARA 恶意软件检测器 一个基于 YARA 的静态分析工具包,用于检测跨多个威胁类别的恶意行为模式。在 [REMnux](https://remnux.org/)(一个用于恶意软件分析的 Linux 发行版)上构建并测试。 ## 📋 目录 - [概述](#overview) - [项目结构](#project-structure) - [检测类别](#detection-categories) - [环境要求](#requirements) - [安装说明](#installation) - [使用方法](#usage) - [输出结果](#output) - [结果示例](#sample-results) - [运行环境](#environment) - [免责声明](#disclaimer) ## 概述 该项目提供了一套包含 **10 个 YARA 规则文件**的集合,涵盖常见的恶意软件行为,并配有一个 Python 扫描程序,可自动化执行批量扫描、记录规则的匹配与未命中情况、评估威胁等级,并支持导出为多种格式。 ## 项目结构 ``` malware-detector/ │ ├── results/ # Scan output — auto-generated │ ├── rules/ # YARA rule files (one per category) │ ├── rule_01.yar # Suspicious PowerShell │ ├── rule_02.yar # Macro Behavior │ ├── rule_03.yar # Downloader Clues │ ├── rule_04.yar # Packed Binary Hints │ ├── rule_05.yar # Credential Theft │ ├── rule_06.yar # Ransom Note Strings │ ├── rule_07.yar # Suspicious URLs │ ├── rule_08.yar # Persistence Clues │ ├── rule_09.yar # Obfuscation Patterns │ └── rule_10.yar # Remote Access Tool (RAT) │ ├── sample_name.md ├── scan.py # Main scanner harness ├── Sample_scan_results.PNG ├── Rule_Effectiveness.PNG ├── Summary_statistics.PNG └── README.md ``` ## 检测类别 | # | 规则文件 | 类别 | 检测内容 | |---|-----------|----------|---------| | 1 | `rule_01.yar` | **PowerShell** | 执行策略绕过、编码命令、AMSI 绕过、下载诱饵 | | 2 | `rule_02.yar` | **宏** | AutoOpen/AutoClose, Shell(), XMLHTTP, ADODB.Stream, VBA 安全设置篡改 | | 3 | `rule_03.yar` | **Downloader** | URLDownloadToFile, WinHTTP, BITS 滥用, certutil, 可疑临时路径 | | 4 | `rule_04.yar` | **加壳二进制文件** | UPX, ASPack, Themida, VMProtect, Obsidium, 可疑节名 | | 5 | `rule_05.yar` | **凭据窃取** | Mimikatz/sekurlsa, LSASS 转储, SAM/SYSTEM 配置单元, 浏览器凭据存储 | | 6 | `rule_06.yar` | **勒索软件** | 勒索信文本, Bitcoin/Tor 支付说明, 加密 API 调用 | | 7 | `rule_07.yar` | **可疑 URL** | 原始 IP URL, 挂马粘贴站点 C2, 动态 DNS, ngrok 隧道, .onion 域名 | | 8 | `rule_08.yar` | **持久化** | 注册表 Run 键, 计划任务, 服务安装, WMI, 启动文件夹 | | 9 | `rule_09.yar` | **混淆** | Base64 块, FromBase64String, XOR/RC4, 字符数组技巧, Invoke-Obfuscation | | 10 | `rule_10.yar` | **RAT** | Cobalt Strike, Metasploit, AsyncRAT, Remcos, 键盘记录器钩子, 进程注入 | ## 环境要求 - Python 3.10+ - [yara-python](https://pypi.org/project/yara-python/) - [rich](https://pypi.org/project/rich/) *(可选,用于终端彩色输出)* ## 安装说明 ``` # 克隆 repository git clone https://github.com/dimaskaje/Malware-Detector-using-YARA-Rules.git cd malware-detector # 安装 dependencies pip install yara-python rich ``` ## 使用方法 ### 基础扫描(默认路径) ``` python scan.py ``` 要求脚本所在的相对路径下存在 `./rules/` 和 `./samples/` 目录。 ### 自定义路径 ``` python scan.py -r ./rules -s ./samples -o ./results ``` ### 带误报基线扫描 ``` python scan.py -r ./rules -s ./samples -c ./clean -o ./results ``` `./clean/` 目录中的文件会被单独扫描。任何在干净文件上触发的规则都会被标记,如果恶意软件样本仅匹配到这些规则,则会被标记为 **误报候选**。 ### 所有选项 ``` -r, --rules Path to rules directory (default: ./rules) -s, --samples Path to samples directory (default: ./samples) -c, --clean Path to clean files dir (optional, for FP analysis) -o, --output Path to output directory (default: ./results) ``` ## 输出结果 每次扫描运行后,都会在输出目录中保存四个带有时间戳的文件: | 文件 | 格式 | 内容 | |------|--------|----------| | `scan_results_.json` | JSON | 完整详情:匹配的规则、字符串命中、偏移量、每个样本的元数据 | | `detection_matrix_.csv` | CSV | 样本 × 规则矩阵 — 每个单元格为 `HIT` 或 `miss` | | `scan_report_.txt` | TXT | 可读性高的报告,包含威胁等级和规则摘要 | | `suspicious_samples_.txt` | TXT | HIGH/CRITICAL 样本的扁平列表,包含哈希值和匹配的规则 | ### 威胁等级评分 | 分数 | 等级 | 含义 | |-------|-------|---------| | 0 | `CLEAN` | 没有匹配的规则 | | 1 | `LOW` | 匹配 1 条规则 | | 2–3 | `MEDIUM` | 匹配 2–3 条规则 | | 4–5 | `HIGH` | 匹配 4–5 条规则 | | 6+ | `CRITICAL` | 匹配 6 条及以上规则 | ## 结果示例 ``` Sample Matches Misses Threat Categories ────────────────────────────────────────────────────────────────── Sample_01.exe 5 5 HIGH Suspicious_PowerShell, Suspicious_Downloader, Credential_Theft_Strings, Persistence_Mechanism, Remote_Access_Tool Sample_02.exe 3 7 MEDIUM Persistence_Mechanism, Obfuscation_Patterns, Remote_Access_Tool_Clues Sample_03.elf 1 9 LOW Obfuscation_Patterns Sample_04.exe 2 8 MEDIUM Persistence_Mechanism, Obfuscation_Patterns Sample_05.exe 1 9 LOW Obfuscation_Patterns ... ``` ## 运行环境 | 组件 | 版本 | |-----------|---------| | 操作系统 | REMnux (基于 Ubuntu) | | 虚拟化环境 | VirtualBox | | Python | 3.10+ | | yara-python | latest | | YARA 引擎 | 4.x | ## 免责声明
标签:DNS 反向解析, Python, YARA, 云安全监控, 云资产可视化, 威胁情报, 开发者工具, 搜索语句(dork), 无后门, 逆向工具, 静态分析