rushi0818/Threatlens
GitHub: rushi0818/Threatlens
基于机器学习与 YARA 规则的多引擎网络威胁情报分析平台,为 SOC 分析师提供从 URL、邮件、文档到恶意软件的一站式威胁检测与报告生成能力。
Stars: 0 | Forks: 0
# 🔍 ThreatLens — 网络威胁情报平台





## 📌 什么是 ThreatLens?
ThreatLens 是一个多引擎网络威胁分析平台,可帮助 SOC 分析师
在一个界面中调查可疑的 URL、电子邮件、文档和文件。
它作为 SOC 分析师实习项目的一部分而构建,并展示了安全运营中心
使用的真实威胁检测工作流。
## ⚡ 功能
| 功能 | 描述 |
|--------|-------------|
| 🔗 URL 扫描器 | 在 11,000+ 个 URL 上训练的 ML 模型,用于检测钓鱼链接 |
| 📧 电子邮件分析器 | 关键词、紧迫性和品牌冒充检测 |
| 📄 PDF / DOCX 扫描器 | 从文档中提取链接和内容 |
| 🦠 静态恶意软件分析 | 字符串、熵、PE 头、可疑 API 检测 |
| 📌 YARA 扫描器 | 基于规则的恶意软件家族识别 |
| 🔍 哈希情报 | VirusTotal + MalwareBazaar 哈希信誉检查 |
| 🌐 网络 IOC 提取器 | 自动从文件中提取 IP、URL、域名 |
| 📋 SOC 报告生成器 | 带有建议操作的结构化判定结果 |
## 🖥️ 截图
### URL 扫描器

### 电子邮件分析器

### 恶意软件静态分析

### YARA 规则匹配

## 🏗️ 项目结构
```
threatlens/
├── app.py # Flask web application (main entry point)
├── preprocess.py # Feature extraction & data preprocessing
├── train_model.py # ML model training & evaluation
├── requirements.txt # Python dependencies
├── scanner/
│ ├── email_scanner.py # Email phishing detection
│ ├── pdf_scanner.py # PDF content analysis
│ ├── doc_scanner.py # Word document analysis
│ ├── hash_checker.py # VirusTotal hash reputation
│ ├── static_analyzer.py # Static malware analysis
│ ├── yara_scanner.py # YARA rules engine
│ ├── network_extractor.py # Network IOC extraction
│ └── malware_reporter.py # SOC report generator
├── yara_rules/
│ └── general.yar # Custom YARA rules
└── templates/
└── index.html # ThreatLens UI
```
## 🚀 如何在本地运行
### 1. 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/threatlens.git
cd threatlens
```
### 2. 安装依赖项
```
pip install -r requirements.txt
```
### 3. 下载数据集
从 Kaggle 下载钓鱼 URL 数据集:
[网页钓鱼检测数据集](https://www.kaggle.com/datasets/shashwatwork/web-page-phishing-detection-dataset)
将 CSV 文件作为 `webpagedataset_phishing.csv` 放在根文件夹中。
### 4. 训练模型
```
python preprocess.py
python train_model.py
```
### 5. 运行应用
```
python app.py
```
打开浏览器并访问:**http://127.0.0.1:5000**
## 🤖 ML 模型性能
使用多种算法在具有 88 个特征的 11,430 个 URL 上进行了训练:
| 模型 | 准确率 | 精确率 | 召回率 | F1-Score | ROC-AUC |
|-------|----------|-----------|--------|----------|---------|
| **Gradient Boosting** ⭐ | **96.2%** | **95.8%** | **96.8%** | **96.3%** | **99.4%** |
| Random Forest | 96.1% | 95.7% | 96.6% | 96.1% | 99.3% |
| Linear SVM | 93.7% | 93.9% | 93.4% | 93.7% | 98.2% |
| Logistic Regression | 93.6% | 93.9% | 93.3% | 93.6% | 98.1% |
**最佳模型:Gradient Boosting,准确率为 96.2%**
## 🛡️ 包含的 YARA 规则
| 规则 | 检测内容 |
|------|---------|
| `Ransomware_Generic` | 勒索软件指标和付款要求 |
| `Phishing_Document` | 文档中的钓鱼短语 |
| `Suspicious_PowerShell` | 混淆的 PowerShell 执行 |
| `Malware_Process_Injection` | 代码注入技术 |
| `Keylogger_Indicators` | 键盘挂钩和监控 |
| `Suspicious_Network_Activity` | C2 通信模式 |
| `EICAR_Test_File` | 标准 AV 测试文件 |
## 🔧 技术栈
- **后端** — Python 3.14, Flask
- **机器学习** — Scikit-learn, Pandas, NumPy
- **恶意软件分析** — pefile, yara-python
- **文档解析** — pdfplumber, python-docx
- **威胁情报** — VirusTotal API, MalwareBazaar API
- **前端** — HTML5, CSS3, Vanilla JavaScript
## 📦 环境要求
```
flask
pandas
numpy
scikit-learn
joblib
matplotlib
pdfplumber
python-docx
pefile
requests
extract-msg
```
安装全部:
```
pip install -r requirements.txt
```
## 🔑 API 密钥设置
要进行 VirusTotal 集成,请添加您的免费 API 密钥:
1. 在 [virustotal.com](https://www.virustotal.com) 注册
2. 转到 Profile → API Key
3. 打开 `scanner/hash_checker.py`
4. 将 `YOUR_VIRUSTOTAL_API_KEY_HERE` 替换为您的密钥
免费层:每天 500 个请求 — 足够用于测试。
## 📚 展示的技能
- ✅ IOC 分析与威胁情报
- ✅ 用于网络安全的机器学习
- ✅ 静态恶意软件分析
- ✅ YARA 规则编写
- ✅ OSINT 调查
- ✅ Flask Web 开发
- ✅ SOC 分析师工作流自动化
- ✅ VirusTotal 和 MalwareBazaar API 集成
## ⚠️ 免责声明
ThreatLens 仅为**教育和安全研究目的**而构建。
未经适当授权,请勿使用它来分析生产系统上的文件。
始终在隔离环境(VM)中分析恶意软件样本。
## 📄 许可证
MIT 许可证 — 可自由使用、修改和分发,但需注明出处。
标签:Apex, DAST, DNS 反向解析, Flask, Go语言工具, Python, YARA, 云资产可视化, 威胁情报, 开发者工具, 恶意软件分析, 数据可视化, 无后门, 机器学习, 逆向工具, 钓鱼检测