DevSecLawrence/yara-rules-collection
GitHub: DevSecLawrence/yara-rules-collection
一套原创的 YARA 恶意软件检测规则集合,涵盖可疑字符串、高熵值和 UPX 加壳三类检测场景。
Stars: 0 | Forks: 0
# YARA 规则集合




这些是我作为 180 天 SOC 分析师学习路线(第 22 天)的一部分,在 Kali Linux 中编写并测试的原创 YARA 规则。每个规则都包含了检测逻辑、目标对象、测试方法以及已知的局限性。
YARA 是一款用于文件的 pattern-matching(模式匹配)工具——Sigma 用于检测日志中的可疑事件,而 YARA 用于检测文件中的可疑内容。这些规则均是从零开始编写的,并未从现有的代码库中复制。
## 规则
### 规则 1 — 可疑字符串
**文件:** `suspicious_strings.yar`
**检测对象:** 包含对 cmd.exe 或 powershell.exe 引用的文件
**应用场景:** 标记引用了 Windows shell 的脚本和 dropper
**测试基准:** 包含 "powershell.exe" 的纯文本文件(匹配)和干净的文本文件(不匹配)
```
rule suspicious_strings {
meta:
description = "Detects files referencing cmd.exe or powershell.exe"
author = "Lawrence"
date = "2026-06-05"
strings:
$a = "cmd.exe" nocase
$b = "powershell.exe" nocase
condition:
any of them
}
```
**已知局限:** 误报率较高——许多合法的安装程序和管理员脚本都会引用这些二进制文件。该规则最适合与其他条件结合使用,或用于初步分类筛查,而不适合作为最终的判定标准。
### 规则 2 — 高熵值
**文件:** `high_entropy.yar`
**检测对象:** 熵值超过 7.0 的文件——可能被加壳或加密
**应用场景:** 标记加壳的恶意软件、加密的 payload、混淆的脚本
**测试基准:** Zip 文件(匹配——压缩后 = 高熵值)和纯文本(不匹配)
```
import "math"
rule high_entropy_file {
meta:
description = "Flags files with entropy above 7.0 — possible packing or encryption"
author = "Lawrence"
date = "2026-06-05"
condition:
math.entropy(0, filesize) > 7.0
}
```
**已知局限:** 合法的压缩文件(zip、jar、docx)也会触发此规则。在生产环境中部署之前,需要根据已知干净的二进制文件基线对 7.0 的阈值进行调整。
### 规则 3 — UPX PE 节
**文件:** `unusual_pe_sections.yar`
**检测对象:** 通过查找 .upx0 和 .upx1 节名称来识别使用 UPX 加壳的二进制文件
**应用场景:** 识别加壳的可执行文件——加壳工具常用于逃避 AV 查杀
**测试基准:** 经过 UPX 加壳的 /usr/bin/whoami 副本(匹配)和原始二进制文件(不匹配)
```
import "pe"
rule unusual_pe_sections {
meta:
description = "Detects binaries packed with UPX by PE section name"
author = "Lawrence"
date = "2026-06-05"
condition:
pe.is_pe and
for any i in (0 .. pe.number_of_sections - 1) : (
pe.sections[i].name == ".upx0" or
pe.sections[i].name == ".upx1" or
pe.sections[i].name == ".packed"
)
}
```
**已知局限:** PE 模块针对的是 Windows PE 格式。在 Linux ELF 二进制文件上,pe.is_pe 条件将不会匹配。对于加壳的 ELF 二进制文件,请改用 `readelf -S binary | grep -i upx` 进行验证。
## 测试环境
- **操作系统:** Kali Linux (VM)
- **YARA 版本:** 4.5.5
- **安装方式:** `sudo apt install yara -y`
# 关联内容
[SOC 分析师之旅 — 180 天路线图](https://github.com/DevSecLawrence/soc-analyst-journey)
标签:DNS信息、DNS暴力破解, DNS 反向解析, YARA规则, 威胁情报, 安全, 开发者工具, 蓝军, 超时处理