Zion44719/Zionhilt_Threat_Scanner
GitHub: Zion44719/Zionhilt_Threat_Scanner
一款结合哈希签名、YARA 风格规则引擎和启发式检测的轻量级文件与 URL 安全扫描器,支持 CLI 和 JSON 输出,便于集成到自动化流程中。
Stars: 0 | Forks: 0
# Zionhilt Threat Scanner
一个结合了文件与 URL 的安全扫描器:基于哈希的签名匹配、小型的 YARA 风格规则引擎、内容/文件名启发式检测,以及 URL 黑名单 + 钓鱼模式启发式检查器。
本包包含**引擎** (`internal/engine`)、**报告格式化** (`internal/report`) 以及 **CLI** (`cmd/zionhilt-cli`)。GUI 层(Wails 桌面应用)是下一步的独立计划——引擎已经为此暴露了 `NewEngineFromBytes`,因此 GUI 可以通过 `go:embed` 直接将其数据文件嵌入到二进制文件中,而无需从磁盘读取。
## 环境要求
- Go 1.22 或更高版本
## 构建
```
go build -o zionhilt-cli ./cmd/zionhilt-cli
```
## 运行
```
# 扫描单个文件(默认使用 ./data/{signatures.db,rules.yar,blacklist.csv})
./zionhilt-cli file -path /path/to/file
# 递归扫描目录
./zionhilt-cli folder -path /path/to/folder
# 检查 URL
./zionhilt-cli url -u "http://example.com/path"
# JSON 输出(用于 scripting/CI)
./zionhilt-cli file -path /path/to/file -json
# 指向不同的数据目录
./zionhilt-cli file -path /path/to/file -data-dir /custom/data/path
```
### 退出代码
| 代码 | 含义 |
|------|----------------------|
| 0 | 安全 (Clean) |
| 1 | 用法/运行时错误 |
| 2 | 恶意 (Malicious) |
| 3 | 可疑 (Suspicious) |
## 数据文件 (`data/`)
- **`signatures.db`** — `hash,threat-name`(哈希、威胁名称)键值对(SHA-256 或 MD5,每行一条)。内置了标准的 EICAR 防病毒测试文件签名,用于安全的端到端测试。
- **`rules.yar`** — YARA 风格规则。支持带引号的文本字符串(`nocase`、`*` 通配符)和十六进制字节模式(`{ 4D 5A ?? ?? }`),条件语句支持 `and`/`or`/`not`、括号、`N of (...)` 以及 `any`/`all of them`。
- **`blacklist.csv`** — `host,reason`(主机、原因)键值对。已列出主机的子域名也会匹配(例如,列出 `evil.tk` 也会拦截 `login.evil.tk`)。
直接编辑这些文件即可自定义检测规则——CLI 无需重新编译。
## 安全测试
该仓库包含**真实的 EICAR 测试字符串**(这是行业标准,所有防病毒厂商都使用这一无害文件来验证检测流程)。
要自行生成它:
```
echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > eicar.com
./zionhilt-cli file -path eicar.com
```
这应该会报告 `MALICIOUS`,同时命中哈希签名和 `EICAR_Test_String` 规则,并退出且返回代码 `2`。
## 运行测试套件
```
go test ./...
```
## 项目结构
```
cmd/zionhilt-cli/ CLI entry point
internal/engine/ Detection engine (hashing, rules, heuristics, URL checks)
internal/report/ Text/JSON report rendering + shared ASCII banner
data/ Signature DB, rule set, URL blacklist (CLI loads these from disk)
```
标签:EVTX分析, Go, Ruby工具, URL扫描, YARA, 云资产可视化, 威胁扫描, 文档结构分析, 日志审计, 防病毒