高级 #security#malware#analysis
恶意软件分析
恶意软件(病毒、蠕虫、木马、勒索软件)是损害计算机系统的程序。分析恶意软件需要静态分析(反汇编)和动态分析(沙箱运行)两种手段
🦠 “电脑病毒”——和生物学病毒惊人的相似
生物学病毒:进入细胞→劫持细胞工厂→复制自己→感染更多细胞。
电脑病毒(恶意软件):进入计算机→劫持系统功能→复制自己→感染更多计算机。
📐 恶意软件(Malware) = Malicious(恶意)+ Software(软件)——任何有恶意目的的程序。
📋 恶意软件分类
| 类型 | 行为 | 类比 |
|---|---|---|
| 病毒(Virus) | 寄生在正常程序中,传播时需要用户操作 | 感冒病毒——需要接触到人 |
| 蠕虫(Worm) | 自我复制传播,不需要用户操作 | 空气传播——自动扩散 |
| 木马(Trojan) | 伪装成正常软件,用户主动安装 | 特洛伊木马——“看起来是礼物,里面是士兵” |
| 勒索软件(Ransomware) | 加密用户文件,索要赎金 | 绑匪绑票——“不给钱就撕票” |
| Rootkit | 隐藏自身,给攻击者后门 | 小偷在房子挖了密道——从外面看不出来 |
🔬 恶意软件分析的两条路径
静态分析——不运行,只看代码
静态分析 = "用肉眼看菜谱就知道菜好不好吃"
方法:
1. 查看文件类型、哈希值(在 VirusTotal 上查是否已知恶意)
2. 提取字符串——看有什么可疑的 URL、IP 地址
3. 反汇编——看代码逻辑
工具:IDA Pro、Ghidra(NSA 开源的反汇编器)
# 快速检查文件
file suspicious.exe # 查看文件类型
sha256sum suspicious.exe # 计算哈希
strings suspicious.exe | grep -i "http" # 提取可疑 URL
# 如果哈希在 VirusTotal 上有 60/70 个杀毒软件报告恶意
# → 基本确定是恶意软件
动态分析——在沙箱里运行观察
动态分析 = "尝一口就知道好不好吃"
方法:
1. 在隔离的虚拟机(沙箱)中运行恶意软件
2. 监控:文件系统变化、注册表变化、网络连接、进程行为
3. 分析恶意软件做了什么——创建了什么文件?连了哪个 IP?
工具:Cuckoo Sandbox(开源沙箱)
🏢 真实案例:WannaCry 勒索病毒(2017)
WannaCry 在 2017 年 5 月爆发——三天内感染了 150 个国家的 30 万台计算机。
攻击链:
1. 利用 Windows SMB 漏洞(EternalBlue)传播
2. 执行后加密用户文件
3. 弹出勒索界面——要求支付比特币赎金
4. 未支付则文件永久丢失
受影响:英国 NHS(医疗系统瘫痪)、联邦快递、日产汽车……
停止:一名研究人员发现了"杀死开关"域名——注册后病毒停止传播
📝 小结
| 概念 | 一句话 |
|---|---|
| 病毒 | 寄生传播——需用户操作 |
| 蠕虫 | 自动传播——无需用户操作 |
| 木马 | 伪装成正常软件——用户主动安装 |
| 勒索软件 | 加密文件索要赎金 |
| 静态分析 | 不运行——反汇编、查字符串、看结构 |
| 动态分析 | 在沙箱运行——观察行为 |
为什么先学这个? 了解恶意软件后,学习怎么防御——防火墙与入侵检测。