srinivasulabhaskarprabhat-pixel/ThreatLens
GitHub: srinivasulabhaskarprabhat-pixel/ThreatLens
ThreatLens 是一个并行聚合多源威胁情报并输出统一威胁评分的 SOC 分析师分诊平台。
Stars: 1 | Forks: 0
[](https://git.io/typing-svg)
| **🔍 检测内容** - IP 地址 - 域名 - URL - 文件哈希 (MD5 / SHA1 / SHA256) - 内部 IOC 数据库 - VirusTotal - AbuseIPDB - AlienVault OTX - Cisco Talos | **📊 提供功能** - 加权威胁评分 (0–100) - 各来源颜色编码结果卡片 - 一键 IOC 导入 - 实时与缓存结果标记 - 完整的调查历史记录 - 基于角色的 SOC 仪表板 - CSV / JSON / HTML 报告 - 通知与审计跟踪 |
| 层级 | 技术 |
|:---:|:---|
| 🎨 **前端** | HTML5 · CSS3 · 原生 JavaScript · Chart.js · Font Awesome |
| ⚙️ **后端** | 核心 PHP 8 · PDO |
| 🗄️ **数据库** | MySQL — 22 表规范化 schema |
| 🌐 **情报来源** | VirusTotal · AbuseIPDB · AlienVault OTX · Cisco Talos |
| 🚀 **部署** | XAMPP · WAMP · LAMP |
## 📂 项目结构
```
ThreatLens/
│
├── 📄 index.php, login.php, dashboard.php # Entry points
├── 🔎 search.php # Universal search UI
├── 📋 indicators.php, reports.php, users.php # IOC / reporting / RBAC
├── ⚙️ settings.php, logout.php
│
├── 🎨 assets/css/style.css # Dark/light theme
├── ⚙️ assets/js/ # app.js · search.js
│ # dashboard.js · indicators.js
│
├── 🔧 includes/
│ ├── config.php, db.php, session.php, auth.php
│ ├── functions.php # correlate_results() engine
│ └── external_api.php # Provider integrations
│
├── 🌐 api/
│ ├── internal_search.php, virustotal.php, abuseipdb.php
│ ├── otx.php, talos.php, finalize_search.php
│ ├── import_ioc.php, indicators_crud.php, bulk_import.php
│ ├── export.php, dashboard_stats.php, notifications.php
│
├── 🗄️ sql/threat_platform.sql # Full schema + sample data
├── 📁 uploads/, exports/, cache/ # .htaccess write-protected
│
└── 📖 README.md
```
## ⚙️ 安装与设置
### 1️⃣ 克隆 / 复制项目
```
git clone https://github.com/YOUR-GITHUB-USERNAME/ThreatLens.git
cd ThreatLens
```
### 2️⃣ 导入数据库
```
phpMyAdmin → Import → sql/threat_platform.sql
```
一步创建 `threat_platform` 数据库、全部 22 张表以及示例数据。
### 3️⃣ 配置 API 密钥
```
cp .env.example .env
```
或者留空,等登录后通过 **Settings → API Keys** 再添加真实的密钥。
### 4️⃣ 本地部署
```
# XAMPP → 放置于:
htdocs/ThreatLens/
# WAMP → 放置于:
www/ThreatLens/
```
### 5️⃣ 启动并登录
```
http://localhost/ThreatLens/
Username: admin
Password: Admin@12345 ← change immediately
```
## 📊 搜索性能
| 阶段 | 行为 | 预估时间 |
|:---|:---:|:---:|
| 内部数据库查询 | 顺序执行,第一轮 | < 1s |
| 4 个外部提供商 | 通过 Promise.allSettled 并行 | 2–6s |
| 关联与评分 | 同步执行,请求内完成 | < 1s |
| **总计 (冷启动,未缓存)** | | **~3–7s** |
| **总计 (缓存命中)** | | **< 1s** |
## ✅ 功能覆盖范围
| 领域 | 状态 |
|:---|:---:|
| 多源并行搜索 | ✅ 已完成 |
| 加权关联引擎 | ✅ 已完成 |
| 基于角色的访问控制 (3 种角色) | ✅ 已完成 |
| 对更改状态请求的 CSRF 保护 | ✅ 已完成 |
| CSV / JSON / STIX 批量导入 | ✅ 已完成 |
| 审计日志 | ✅ 已完成 |
| 登录失败后的账户锁定 | ✅ 已完成 |
| 二进制 PDF 导出 | ⏳ 计划中 |
| GreyNoise / URLhaus / Shodan 集成 | ⏳ 计划中 |
## 🛡️ 安全强化
```
✔ PDO prepared statements everywhere ✔ CSRF tokens on state-changing requests
✔ password_hash() / password_verify() ✔ Secure session cookie configuration
✔ Role gating via require_role() ✔ Input validation & IOC type detection
✔ File-upload size/extension checks ✔ Full audit trail on every write
```
## 🔮 路线图
- [ ] 🌍 更多提供商 — GreyNoise、URLhaus、MalwareBazaar、Hybrid Analysis、Spamhaus、Shodan、Pulsedive、ThreatFox
- [ ] 🔗 更深度的 IOC 关联聚类 (重复 / 相关联域名 / 相关联 IP)
- [ ] 📄 服务端渲染的二进制 PDF 导出 (dompdf)
- [ ] 🗺️ 正式的 ER 图与架构图
- [ ] 📘 完全图文并茂的管理员/用户指南
- [ ] 🔔 在添加关键 IOC 时通过电子邮件 / webhook 告警
## 👨💻 作者
*如果这个项目对您有帮助,请点个 ⭐ —— 这对我来说意义非凡。* 
标签:OpenVAS, PHP, SOC分析, 关联分析引擎, 威胁情报, 安全运营, 开发者工具, 扫描框架, 数据可视化