mason-rosenbergerl/malscan
GitHub: mason-rosenbergerl/malscan
malscan 是一款静态恶意软件辅助分析工具,在不运行文件的前提下对可疑文件进行多维检查并输出综合评分报告,帮助安全人员快速完成初步研判。
Stars: 0 | Forks: 0
# malscan
这是我构建的一个静态恶意软件辅助分析工具。你只需将一个疑似可疑的文件交给它,它就会为你返回一份报告,包含哈希值、熵值、发现的任何可疑字符串、程序调用的 Windows 函数、YARA 规则匹配结果,以及描述该文件企图执行操作的 MITRE ATT&CK 画像,且整个过程完全不会运行该文件。
最后一点正是该工具的核心所在。“静态分析”意味着它所有的检查操作都是通过读取文件来完成的,而不是去运行它。因此,你可以安全地查看某个可能确实是恶意软件的文件,而不必担心它会对你的机器造成任何破坏。
## 为什么开发这个工具
当安全团队的人员拿到一个新文件进行检查时,他们首先要做的就是进行初步判定,即快速收集足够的信息,以决定是否值得深入分析。我想要一个能帮我完成这首轮筛查的工具,这样就不必每次挨个运行一堆单独的工具了,malscan 会一次性执行所有检查,并给出一个我能够清楚解释的综合评分。
## 检查项目
- **Hashes** — MD5、SHA1 和 SHA256,它们基本上是文件的指纹。你可以将其中一个粘贴到 VirusTotal 中,看看它是否已经被标记为恶意,而无需运行任何程序。
- **Entropy** — 一个 0 到 8 之间的数值,用于表示字节的随机程度。普通文件通常在 4-6 左右,但加壳或加密文件(恶意软件常用来隐藏自身)的数值会接近 8,因此极高的数值是一个危险信号。
- **Suspicious strings** — 它会提取文件中可读的文本,并标记出 URL、IP 地址以及那些频繁出现在恶意软件中的词汇。
- **Windows functions** — 对于 .exe/.dll 文件,它会读取程序调用的 Windows 函数列表,并标记出那些主要由恶意程序使用的函数(例如用于将代码注入到其他程序的函数)。
- **YARA rules** — 使用一些我可以自行添加的检测规则来对文件进行匹配。
- **MITRE ATT&CK mapping** — 提取它发现的所有指标,并将它们映射到真实的攻击者技术(例如 T1055 Process Injection 或 T1003 Credential Dumping)。ATT&CK 是安全行业用来描述攻击者实际行为的框架,因此它不仅仅是给我列出一系列危险信号,报告还能告诉我该文件*企图*做什么。这些映射是启发式的,即某个指标暗示了某种技术,但并不能完全证明——不过,这使得输出的信息比单纯原始堆砌的字符串要有用得多。
- **A score** — 将上述所有内容汇总为一个 0-100 的数值,这样我就不必每次都去阅读整份报告了。
## 如何运行
首先安装两个额外的库:
```
pip install -r requirements.txt
```
然后直接将其指向目标文件即可:
```
python malscan.py somefile.exe
```
想要在没有真实恶意软件样本的情况下进行尝试?这里有一个辅助脚本,可以生成一个填满可疑词汇的无害文本文件:
```
python make_test_file.py
python malscan.py test_sample.txt
```
## 开发过程(AI 声明)
坦白说:我使用了 AI 助手来帮助我构建这个工具的第一个版本,并解释每个部分的功能,因为我还在学习阶段。在此基础上,我自己又仔细研究了整个项目,将其简化为我习惯的编写方式,并进行了各种修改。我将其视为一个可以不断学习并持续完善的项目,而不是一个复制粘贴后就抛之脑后的东西。其中的任何错误均由我个人承担。
## 接下来计划添加的功能
- 自动在 VirusTotal 上查询 Hash
- 处理 Linux (ELF) 文件,而不仅仅是 Windows 文件
- 编写更多属于我自己的 YARA rules
- 支持一次性扫描整个文件夹
## 安全提示
标签:逆向工具