kingdavid200/threatlens

GitHub: kingdavid200/threatlens

威胁透镜是一个基于Python的威胁情报仪表板,用于聚合多个外部情报源进行统一风险评分和分析。

Stars: 1 | Forks: 0

# 威胁透镜 一款基于Python构建的SOC分析师级威胁情报仪表板。可跨多个外部情报源分析IP地址、域名、URL和文件哈希,生成统一的风险评分,并在专业暗色主题仪表板中呈现结果。 ## 功能特性 - 单输入框自动识别指标类型(IPv4/6、域名、URL、MD5/SHA1/SHA256) - 并行查询VirusTotal、AbuseIPDB、Shodan和WHOIS - 加权风险评分引擎,生成0-100分并提供完整分项说明 - 判定分类:安全、可疑、恶意 - 暗色SOC风格Streamlit界面,搭配Plotly图表 - SQLite支持的调查历史记录(侧边栏、时间线图表) - 一键下载PDF和CSV报告 - 演示模式——无需API密钥即可使用真实模拟数据运行 ## 系统架构 ``` threatlens/ ├── app.py # Streamlit dashboard ├── config.py # Keys, paths, thresholds ├── requirements.txt ├── .env.example # API key template ├── threatlens.db # SQLite (auto-created) ├── reports/ # Report output directory └── src/ ├── input_analyzer.py # Detect + validate indicator type ├── virustotal_client.py # VT v3 API client ├── abuseipdb_client.py # AbuseIPDB v2 API client ├── shodan_client.py # Shodan API client ├── whois_client.py # WHOIS lookup (python-whois) ├── scoring_engine.py # Weighted risk score aggregation ├── database.py # SQLite CRUD layer ├── visualizations.py # Plotly chart builders ├── report_generator.py # PDF (ReportLab) + CSV export └── utils.py # Logging, formatting helpers ``` ## 快速开始 ### 1. 克隆与安装 ``` git clone https://github.com/yourusername/threatlens.git cd threatlens python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt ``` ### 2. 配置API密钥(可选) ``` cp .env.example .env ``` 编辑 `.env` 文件: ``` VIRUSTOTAL_API_KEY=your_key_here ABUSEIPDB_API_KEY=your_key_here SHODAN_API_KEY=your_key_here ``` 无密钥时应用以**演示模式**完整运行——为每个缺失来源注入模拟数据。 ### 3. 运行 ``` streamlit run app.py ``` 打开 http://localhost:8501 ## API密钥获取指南 | 来源 | 免费额度 | 网址 | |------------|--------------------|-------------------------| | VirusTotal | 4次查询/分钟 | virustotal.com | | AbuseIPDB | 1,000次/天 | abuseipdb.com | | Shodan | 100查询积分/月 | shodan.io | ## 风险评分模型 信号经标准化处理后乘以对应权重: | 来源 | 权重 | 信号描述 | |------------|--------|--------------------------------------------| | VirusTotal | 45分 | 检出率(恶意+可疑检测引擎/总检测引擎) | | AbuseIPDB | 25分 | 滥用置信度评分(0-100%) | | Shodan | 20分 | 开放端口暴露数量 + CVE漏洞计数 | | WHOIS | 10分 | 域名年龄(越新风险越高) | 不可用或不适配当前指标类型的数据源将被排除,剩余权重将重新标准化。 ### 判定阈值 | 分值区间 | 判定结果 | |----------|----------| | 0–30 | 安全 | | 31–70 | 可疑 | | 71–100 | 恶意 | ## 支持的指标类型 | 类型 | 示例 | |--------|-----------------------------------| | IPv4 | `8.8.8.8`, `185.220.101.47` | | IPv6 | `2001:4860:4860::8888` | | 域名 | `google.com`, `malware-domain.xyz` | | URL | `https://github.com`, `http://evil.tk/phish` | | MD5 | 32位十六进制字符串 | | SHA1 | 40位十六进制字符串 | | SHA256 | 64位十六进制字符串 | ## 技术栈 - **Python 3.12+** - **Streamlit** — 暗色SOC风格仪表板 - **Plotly** — 交互式图表(仪表盘、环形图、柱状图、时间线) - **ReportLab** — PDF生成 - **SQLite** — 本地调查历史存储 - **python-whois** — 域名WHOIS数据获取 - **python-dotenv** — 环境变量管理 ## 演示模式 当API密钥缺失时,每个数据源会返回真实模拟数据,以便完整演示UI界面和评分流程。侧边栏会显示各数据源处于"演示"还是"实时"状态。 ## 未来改进计划 - 集成URLScan.io实现URL截图与DOM分析 - 接入OTX(AlienVault开放威胁交换)威胁情报源 - 批量分析模式(CSV文件输入) - 高风险发现时发送邮件/Slack告警 - 提供Docker容器与gunicorn部署方案 - API密钥轮换与请求限速队列 - IP/域名地理定位地图展示 ## 免责声明 本项目仅为展示与教育目的。生产环境安全决策请勿仅依赖此工具。
标签:AbuseIPDB API, AMSI绕过, API集成, IP地址分析, Kubernetes, PDF导出, Plotly图表, Python项目, Shodan API, Sigma 规则, SOC分析, SQLite数据库, Streamlit应用, URL扫描, VirusTotal API, WHOIS查询, 代码示例, 内核监控, 加权评分, 协议探测, 可观测性, 域名分析, 威胁情报, 威胁情报仪表板, 威胁检测, 安全分析工具, 安全运营中心, 并行处理, 开发者工具, 情报收集, 指标自动检测, 数据分析, 文件哈希检查, 暗黑主题仪表板, 漏洞研究, 网络安全, 网络映射, 调查历史, 逆向工具, 隐私保护, 风险评分引擎