JC118711/BFOR643-VirusTotal-IR-Analysis
GitHub: JC118711/BFOR643-VirusTotal-IR-Analysis
该项目利用Python脚本调用VirusTotal API,自动化分析并可视化Phantom Stealer恶意软件样本的IOC指标,以辅助事件响应流程中的威胁分流与调查。
Stars: 0 | Forks: 0
# VirusTotal 事件响应分析:使用 API 自动化进行 IOC 调查
期末项目 | BFOR 643 - 事件处理
团队成员:Nicholas Suchy, Jack Carroll, Humaira Rezaie, Dylan Langdon
## 🔷 项目概述
本项目演示了如何在真实世界的事件响应 (IR) 场景中使用 VirusTotal 分析与恶意软件活动相关的威胁指标 (IOC)。
我们开发了一个基于 Python 的脚本,利用 VirusTotal API 自动查询和分析 IOC,包括文件哈希、IP 地址和域名。该脚本检索检测统计数据,如恶意、可疑、无害和未检测到的数量,并将结果导出到结构化的 CSV 文件中。
随后对这些结果进行可视化,以支持分析,并展示安全分析师如何在真实环境中对潜在威胁进行分流。
本项目强调事件响应生命周期中的技术实现和实际应用。
**目标:**
通过自动化 IOC 分析、验证潜在威胁并支持分析师决策,模拟实用的事件响应工作流程。
## 🔷 项目相关性(事件响应背景)
VirusTotal 是网络安全和事件响应 (IR) 中广泛使用的工具,用于分析可疑文件、URL、IP 地址和域名。它聚合了来自数十种防病毒引擎和威胁情报源的检测结果,允许分析师快速确定某个指标是否为恶意的。
### 🔹 在事件响应生命周期中的作用
VirusTotal 在事件响应生命周期的多个阶段发挥着关键作用:
| IR 阶段 | VirusTotal 的作用 |
|--------------|------------------|
| 检测 | 从警报或日志中识别可疑或已知的恶意指标 |
| 分析 | 调查 IOC,如文件哈希、域名和 IP 地址 |
| 遏制 | 提供可用于阻断恶意基础设施 (IP/域名) 的情报 |
| 根除 | 通过重新检查关联的 IOC 来验证已知威胁的移除 |
| 恢复 | 帮助验证系统不再与已知恶意实体通信 |
### 🔹 在真实场景中的实际应用
在真实环境中,安全分析师使用 VirusTotal 来:
- 验证安全工具 (SIEM, IDS/IPS, EDR) 生成的警报
- 利用威胁情报丰富威胁指标 (IOC)
- 识别恶意软件样本、域名和 IP 地址之间的关系
- 根据多个引擎的检测置信度对威胁进行优先级排序
例如,当针对可疑网络流量触发警报时,分析师可以提取关联的 IP 地址或域名,并查询 VirusTotal 以快速确定其是否与已知的恶意活动有关。
### 🔹 为什么 VirusTotal 很重要
VirusTotal 通过提供以下功能显著提高了威胁分流的速度和效率:
- 跨多个安全供应商的快速信誉检查
- 对威胁情报数据的集中访问
- 分析大量 IOC 的可扩展方式
然而,重要的是要注意 VirusTotal 是一个**辅助工具**,而不是确定的真相来源。分析师必须将其结果与额外的背景信息和调查结合起来,以做出准确的决策。
这使得 VirusTotal 成为现代事件响应工作流程中的关键组成部分,特别是对于初始威胁验证和调查。
### 🔹 Phantom Stealer:为何选择此威胁
Phantom Stealer 是一种信息窃取恶意软件,针对浏览器凭据、保存的密码、Cookie、加密货币钱包和 Discord 会话令牌。由于它能够在感染后快速泄露敏感数据,分析师检测和遏制它的窗口期非常狭窄。
选择从 malware-traffic-analysis.net 获取的 2026 年 1 月样本,是因为它代表了一个当前的、真实世界的威胁,并且在多种类型的文件哈希、IP 地址和域名上有明确记录的 IOC。这使其成为演示 Python 自动化 VirusTotal 工作流程如何应用于现实事件响应场景的理想示例。与其使用通用的 IOC,不如从实际的恶意软件样本入手,使项目立足于与 SOC 分析师必须处理的类似条件中。
Phantom Stealer 通常通过包含恶意 ISO 文件的钓鱼邮件进行分发,这些文件旨在绕过基于电子邮件的防病毒扫描。一旦执行,它会通过 Telegram 机器人 API、Discord Webhook 和 FTP 服务器泄露窃取的数据。对外部基础设施的依赖意味着与样本关联的域名和 IP 地址是高度可操作的 IOC。这就是为什么在网络层面阻止它们是分析师在活动事件期间可以采取的最有效的遏制方法之一。
## 🔷 方法论
### 🔹 工具与技术
- Python(用于脚本和自动化)
- VirusTotal API(用于 IOC 分析)
- CSV(用于结构化数据存储)
- 可视化工具(例如 matplotlib 或类似工具) *(如果使用)*
### 🔹 数据来源
本项目使用的威胁指标 (IOC) 源自 Phantom Stealer 恶意软件样本 (2026-01-30),获取自:
- https://www.malware-traffic-analysis.net/
分析的 IOC 类型:
- 文件哈希 (MD5/SHA256)
- IP 地址
- 域名
提取并手动选择了这些 IOC 以进行自动化分析。
*(队友:简要描述 IOC 是如何收集或选择的)*
### 🔹 脚本功能
开发了一个基于 Python 的脚本,用于自动执行查询 VirusTotal 进行 IOC 分析的过程。
#### 核心功能:
- 接受输入 IOC(文件哈希、IP、域名)
- 向 VirusTotal 发送 API 请求
- 提取检测统计数据:
- 恶意
- 可疑
- 无害
- 未检测
- 将结果输出到 CSV 文件
*(队友:描述任何附加功能,例如循环、过滤或错误处理)*
### 🔹 API 交互
该脚本通过以下方式与 VirusTotal API 交互:
1. 使用 API 密钥进行身份验证
2. 为每个 IOC 发送请求
3. 接收并解析 JSON 响应
4. 提取相关的检测统计数据
*(队友:指定如何发出请求 — 例如,使用的 Python 库、API 端点、请求格式)*
### 🔹 数据处理与输出
- 每个 IOC 单独处理
- 结果被格式化为包含以下内容的行:
- IOC 值
- IOC 类型
- 检测计数
- 输出保存为 `results/` 文件夹中的 `.csv` 文件
*(队友:解释数据在 CSV 文件中是如何结构化或格式化的)*
### 🔹 可视化
对检测结果进行可视化以支持分析。
可能的可视化包括:
- 显示恶意、可疑、无害、未检测计数的饼图
- IOC 类型之间的检测计数分布
*(队友:描述创建了什么可视化以及使用了什么工具/库)*
### 🔹 工作流程
项目的整体工作流程如下:
1. 从恶意软件样本中收集 IOC
2. 将 IOC 输入 Python 脚本
3. 查询每个 IOC 的 VirusTotal API
4. 提取检测结果
5. 将结果保存到 CSV
6. 生成可视化
7. 在事件响应背景下分析结果
### 🔹 工作流程图

*(队友:如果可能,也许创建一个显示此过程的图表)*
## 🔷 结果总结
标签:API自动化, Ask搜索, IOC分析, IP信誉, Mutation, PB级数据处理, Phantom Stealer, Python, Ubuntu, VirusTotal, 代码示例, 可视化, 哈希检测, 域名检测, 威胁情报, 安全运维, 库, 应急响应, 开发者工具, 恶意软件, 数据分析, 无后门, 无服务器架构, 样本分析, 网络安全, 逆向工具, 隐私保护