aayushi484/MalScan
GitHub: aayushi484/MalScan
融合本地静态解析与多源威胁情报并行查询的恶意软件分析平台,通过加权风险评分模型为安全人员提供快速可视化的样本研判能力。
Stars: 0 | Forks: 0
```
███╗ ███╗ █████╗ ██╗ ███████╗ ██████╗ █████╗ ███╗ ██╗
████╗ ████║██╔══██╗██║ ██╔════╝██╔════╝██╔══██╗████╗ ██║
██╔████╔██║███████║██║ ███████╗██║ ███████║██╔██╗ ██║
██║╚██╔╝██║██╔══██║██║ ╚════██║██║ ██╔══██║██║╚██╗██║
██║ ╚═╝ ██║██║ ██║███████╗███████║╚██████╗██║ ██║██║ ╚████║
╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝
```
# MalScan AI 辅助恶意软件行为分析器
MalScan 是一款高性能、专业级的分类看板,专为快速恶意软件分析而设计。它弥补了深度本地静态分析与多引擎云端智能之间的鸿沟,能在数秒内提供统一的高置信度风险评估。
## 📑 目录
1. [概述](#-overview)
2. [功能](#-features)
3. [架构](#-architecture)
4. [技术栈](#-tech-stack)
5. [算法](#-algorithm)
6. [项目结构](#-project-structure)
7. [API 参考](#-api-reference)
8. [入门指南](#-getting-started)
9. [设置](#-setup)
10. [环境变量](#-environment-variables)
11. [测试](#-testing)
12. [UI 设计](#-ui-design)
## 🔍 概述
MalScan 专为安全研究人员和事件响应人员设计,他们需要快速确定可疑文件的性质。MalScan 不依赖于单一的检测方法,而是协调一系列本地静态检查和并行的云端沙箱结果,从而生成**加权风险评分 (60/40)**。它开箱即支持 Windows PE 和 Linux ELF 格式。
## ✨ 功能
- **并发 API 编排**:利用 `ThreadPoolExecutor` 同时查询 4 个主要的威胁情报源。
- **深度静态分析**:在本地解析 IAT、导出表、入口点和节区。
- **Shannon 熵热力图**:可视化文件加壳和混淆模式。
- **AI 分类字符串**:将原始二进制字符串隔离到网络、路径、命令和恶意类别中。
- **共识构建器**:交叉参考 VT 结论、Hybrid Analysis 报告和 MalwareBazaar 签名。
- **安全执行**:所有处理均在主机外进行或为纯静态分析;本地机器上不会发生任何恶意软件的执行。
## 🏗 架构
MalScan 采用解耦架构,UI 绝不会因网络或繁重的计算任务而阻塞。
```
graph TD
A[User Uploads File] --> B{Streamlit Sidebar}
B --> C[Local Static Engine]
B --> D[API Orchestrator]
subgraph "Local Engine"
C --> C1[PE/ELF Parser]
C --> C2[Entropy Calculator]
C --> C3[Regex String Category]
end
subgraph "API Orchestrator (Parallel)"
D --> D1[VirusTotal v3]
D --> D2[Hybrid Analysis v2]
D --> D3[MalwareBazaar]
D --> D4[URLScan.io]
end
C1 & C2 & C3 --> E[Consensus Engine]
D1 & D2 & D3 & D4 --> E
E --> F[Weighted Risk Score]
F --> G[Outfit-based Dashboard]
```
## 🛠 技术栈
- **Dashboard**:[Streamlit](https://streamlit.io/)(前端和数据层)
- **可视化**:[Plotly](https://plotly.com/)(熵热力图和风险仪表盘)
- **解析**:`pefile` (Windows),`pyelftools` (Linux)
- **核心**:Python 3.10+,`Pandas`,`concurrent.futures`
- **APIs**:Hybrid Analysis v2,VirusTotal v3,MalwareBazaar,URLScan.io
## 🧮 算法
MalScan 使用加权分布计算**最终风险评分 (0-100)**:
### 1. 静态分析评分 (40%)
| 组件 | 指标 | 评分影响 |
|-----------|--------|--------------|
| Entropy | 全局熵值 > 7.5 | +15 分 |
| Sections | 高熵节区 (>7.0) | 每个 +20 分(最高 60) |
| Imports | 可疑的 Win32/API 调用 | 每个 +10 分(最高 50) |
| Strings | 网络/恶意指标 | 每个 +5/8 分(最高 40) |
### 2. API 情报评分 (60%)
- **VirusTotal**:如 5 个及以上引擎检测到,则 +50 分。
- **Hybrid Analysis**:判定为“malicious”(恶意)时 +50 分,判定为“suspicious”(可疑)时 +25 分。
- **MalwareBazaar**:明确匹配到家族签名时 +40 分。
`Risk Score = Min(100, (Static_Score * 0.4) + (API_Score * 0.6))`
## 📁 项目结构
```
streamlit-dashboard-v2/
├── app.py # Main UI and Dashboard logic
├── analysis_engine.py # Local Static Analysis (PE/ELF/Strings)
├── api_clients.py # Concurrent API Orchestration & Life-cycle
├── config.py # Global constants and Theme configuration
└── requirements.txt # Dependency manifest
```
## 🔌 API 参考
编排器维护以下集成:
- **Hybrid Analysis**:全生命周期支持(上传 -> 轮询 -> 报告)。
- **VirusTotal**:实时哈希声誉和供应商明细。
- **MalwareBazaar**:通过 SHA-256 查找即时识别家族。
- **URLScan.io**:对提取的网络指标进行声誉评分。
## 🚀 入门指南
### 设置
1. **克隆并进入**:
git clone https://github.com/aayushi484/MalScan
cd streamlit-dashboard-v2
2. **环境**:
python -m venv venv
source venv/bin/activate # 或在 Windows 上使用 `venv\Scripts\activate`
pip install -r requirements.txt
### 环境变量
在 `config.py` 中配置您的密钥:
```
HYBRID_ANALYSIS_API_KEY = "..."
VIRUSTOTAL_API_KEY = "..."
URLSCAN_API_KEY = "..."
```
## 🧪 测试
在本地运行看板以验证环境健康状况:
```
streamlit run app.py --server.port 8504
```
**静态测试**:上传一个已知无害的二进制文件(如 `calc.exe`),以验证解析引擎能否正确识别其格式和入口点。