Jamesuchechi/threatlens

GitHub: Jamesuchechi/threatlens

ThreatLens 是一个 AI 驱动的威胁情报仪表盘,专为中小企业提供实时、易懂的网络安全威胁分析和行动建议。

Stars: 0 | Forks: 0

# 🛡️ ThreatLens — AI驱动的威胁情报仪表盘 [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Node.js](https://img.shields.io/badge/Node.js-18%2B-green)](https://nodejs.org) [![Python](https://img.shields.io/badge/Python-3.11%2B-blue)](https://python.org) [![React](https://img.shields.io/badge/React-18-61DAFB)](https://reactjs.org) [![Built for](https://img.shields.io/badge/Built%20for-Beyond%20Tomorrow%20Hackathon%202026-purple)]() ## 📌 概述 **ThreatLens** 是一个实时的、AI驱动的网络安全威胁情报平台,专为缺乏专职安全团队资源的中小型企业设计。它从公共信息源(CVE、漏洞报告、漏洞数据库)摄取实时威胁数据,然后利用大型语言模型将复杂的技术威胁情报转化为通俗易懂的摘要、可操作的建议和优先级风险评分。 大多数中小企业在面对网络安全威胁时犹如盲人摸象。像Splunk或CrowdStrike这样的企业级工具每年成本高达数万美元。ThreatLens填补了这一空白:提供专业级情报,且无需任何安全专业知识。 ## 🎯 问题陈述 每天都有数百个新的CVE(常见漏洞和暴露)被公布。勒索软件团伙会公布受害者名单。数据泄露事件也被公开。对于大型企业,他们有专职的安全运营中心团队实时监控和分类这些威胁。但对于占总数99%的非企业级公司来说,这些情报实际上是不可见的。 其后果十分严重: - 43%的网络攻击针对小型企业(Verizon DBIR报告) - 中小企业的数据泄露平均成本超过20万美元 - 60%遭受重大泄露的中小企业会在6个月内倒闭 - 大多数中小企业主甚至缺乏理解基本威胁通告的技术词汇 **ThreatLens 通过使威胁情报变得易于理解、清晰明了和可操作——面向所有人——来解决这个问题。** ## ✨ 核心功能 ### 核心功能(最小可行产品) - **实时威胁信息源摄取** — 从NVD(国家漏洞数据库)、CISA已知被利用漏洞目录和AbuseIPDB拉取数据 - **AI驱动的通俗摘要** — 每项威胁都被翻译成清晰、无术语的解释,说明其含义、风险对象和应对措施 - **风险评分引擎** — 结合CVSS评分与AI评估的业务影响,生成统一的优先级评分(1–10) - **可视化威胁仪表盘** — 使用React构建的、颜色编码的风险矩阵、趋势图和可筛选的威胁表格 - **行业筛选器** — 用户指定其所属行业(零售、医疗、金融等),仅接收相关威胁 - **警报摘要** — 通过电子邮件/webhook发送的每日摘要,列出与用户档案相关的最高威胁 ### 扩展功能 - **域名监控** — 输入你的域名,检测关联的电子邮件或资产是否出现在已知泄露数据中 - **补丁追踪器** — 追踪哪些CVE影响你已知的技术栈以及是否已有可用补丁 - **自然语言查询** — 像“我是否受到最新Apache漏洞的影响?”这样的问题可以直接获得答案 - **Slack / Teams集成** — 将关键警报直接推送到团队频道 ## 🏗️ 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ FRONTEND │ │ React 18 + Tailwind CSS + Recharts │ │ Dashboard │ Alert Feed │ Threat Detail View │ └─────────────────────┬───────────────────────────────────────┘ │ REST API (JSON) ┌─────────────────────▼───────────────────────────────────────┐ │ BACKEND API │ │ FastAPI (Python 3.11) │ │ Auth │ Threat Endpoints │ AI Summarizer │ Scheduler │ └──────┬──────────────┬────────────────────────┬──────────────┘ │ │ │ ┌──────▼──────┐ ┌─────▼──────┐ ┌───────▼──────────┐ │ PostgreSQL │ │ Redis │ │ GROQ API │ │ (Threats, │ │ (Cache + │ │ (Summarization + │ │ Users, │ │ Queue) │ │ Risk Analysis) │ │ Scores) │ └────────────┘ └───────────────────┘ └─────────────┘ │ ┌──────▼──────────────────────────────────────────────────────┐ │ DATA INGESTION LAYER │ │ NVD API │ CISA KEV │ AbuseIPDB │ Have I Been Pwned API │ │ Scheduled via APScheduler (every 6h) │ └─────────────────────────────────────────────────────────────┘ ``` ## 🛠️ 技术栈 | 层级 | 技术 | 用途 | | ------------- | ----------------------------------------- | ------------------------------ | | 前端 | React 18 | UI框架 | | 样式 | Tailwind CSS | 工具类优先的CSS | | 图表 | Recharts | 数据可视化 | | 后端 | FastAPI (Python) | REST API服务器 | | 数据库 | PostgreSQL | 持久化数据存储 | | 缓存 | Redis | API响应缓存、任务队列 | | AI层 | GROQ API (`GROQ-sonnet-4-20250514`) | 威胁摘要与评分 | | 任务调度器 | APScheduler | 定期信息源摄取 | | 认证 | JWT + bcrypt | 用户身份验证 | | 容器化 | Docker + Docker Compose | 本地与生产环境部署 | | 托管 | Railway / Render (后端), Vercel (前端) | 部署 | ## 📁 项目结构 ``` threatlens/ ├── frontend/ │ ├── public/ │ ├── src/ │ │ ├── components/ │ │ │ ├── Dashboard/ │ │ │ │ ├── ThreatTable.jsx │ │ │ │ ├── RiskMatrix.jsx │ │ │ │ ├── TrendChart.jsx │ │ │ │ └── StatCards.jsx │ │ │ ├── ThreatDetail/ │ │ │ │ ├── SummaryPanel.jsx │ │ │ │ ├── RecommendationList.jsx │ │ │ │ └── TechDetails.jsx │ │ │ ├── AlertFeed/ │ │ │ │ └── AlertItem.jsx │ │ │ └── common/ │ │ │ ├── RiskBadge.jsx │ │ │ ├── Navbar.jsx │ │ │ └── LoadingSpinner.jsx │ │ ├── pages/ │ │ │ ├── Home.jsx │ │ │ ├── Dashboard.jsx │ │ │ ├── ThreatDetail.jsx │ │ │ └── Settings.jsx │ │ ├── hooks/ │ │ │ ├── useThreats.js │ │ │ └── useAlerts.js │ │ ├── services/ │ │ │ └── api.js │ │ ├── store/ │ │ │ └── threatStore.js │ │ ├── App.jsx │ │ └── main.jsx │ ├── package.json │ └── tailwind.config.js │ ├── backend/ │ ├── app/ │ │ ├── main.py │ │ ├── config.py │ │ ├── database.py │ │ ├── models/ │ │ │ ├── threat.py │ │ │ ├── user.py │ │ │ └── alert.py │ │ ├── schemas/ │ │ │ ├── threat.py │ │ │ └── user.py │ │ ├── routers/ │ │ │ ├── threats.py │ │ │ ├── auth.py │ │ │ ├── alerts.py │ │ │ └── health.py │ │ ├── services/ │ │ │ ├── ai_summarizer.py │ │ │ ├── risk_scorer.py │ │ │ ├── feed_ingestion.py │ │ │ └── alert_dispatcher.py │ │ ├── ingestion/ │ │ │ ├── nvd_client.py │ │ │ ├── cisa_client.py │ │ │ └── abuseipdb_client.py │ │ └── scheduler.py │ ├── tests/ │ │ ├── test_threats.py │ │ ├── test_ai_summarizer.py │ │ └── test_ingestion.py │ ├── requirements.txt │ └── Dockerfile │ ├── docker-compose.yml ├── .env.example ├── README.md ├── DOCUMENTATION.md └── TODO.md ``` ## 🚀 快速开始 ### 前置条件 - Node.js 18+ - Python 3.11+ - Docker & Docker Compose - API密钥:GROQ API、NVD API(免费)、AbuseIPDB(免费套餐) ### 1. 克隆仓库 ``` git clone https://github.com/yourusername/threatlens.git cd threatlens ``` ### 2. 设置环境变量 ``` cp .env.example .env ``` 编辑 `.env` 文件并填写: ``` # 人工智能 GROQ_API_KEY=your_GROQ_api_key # 数据库 DATABASE_URL=postgresql://postgres:password@localhost:5432/threatlens REDIS_URL=redis://localhost:6379 # 外部 APIs NVD_API_KEY=your_nvd_api_key ABUSEIPDB_API_KEY=your_abuseipdb_key # 身份验证 JWT_SECRET=your_very_long_random_secret JWT_EXPIRY_HOURS=24 # 应用程序 ENVIRONMENT=development FRONTEND_URL=http://localhost:5173 ``` ### 3. 使用 Docker Compose 启动 ``` docker-compose up --build ``` 这将同时启动 PostgreSQL、Redis、FastAPI后端和 React 开发服务器。 ### 4. 手动设置(不使用 Docker) **后端:** ``` cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt alembic upgrade head # Run database migrations uvicorn app.main:app --reload --port 8000 ``` **前端:** ``` cd frontend npm install npm run dev ``` ### 5. 访问应用 | 服务 | URL | | ------------------ | --------------------------- | | 前端 | http://localhost:5173 | | 后端 API | http://localhost:8000 | | API文档 (Swagger) | http://localhost:8000/docs | | API文档 (Redoc) | http://localhost:8000/redoc | ## 🔑 API密钥获取方式 | 密钥名称 | 来源 | 费用 | 备注 | | ------------------- | ----------------------------------------------------------------------------- | ------------- | -------------------------- | | `GROQ_API_KEY` | [console.GROQ.com](https://console.GROQ.com) | 按使用付费 | 约每项威胁摘要 $0.003 | | `NVD_API_KEY` | [nvd.nist.gov/developers](https://nvd.nist.gov/developers/request-an-api-key) | 免费 | 拥有密钥可获得更高请求限额 | | `ABUSEIPDB_API_KEY` | [abuseipdb.com](https://www.abuseipdb.com/api) | 免费套餐 | 每日1000次免费查询 | ## 📊 与评审标准对齐 | 标准 | 权重 | ThreatLens如何满足要求 | | ------------------------ | ---- | -------------------------------------------------------------------------------------------------------- | | 创新性与创造力 | 25% | 首个专为中小企业构建的AI原生威胁情报工具;通俗易懂的AI层具有真正的创新性 | | 技术实现 | 25% | 全栈:React + FastAPI + PostgreSQL + Redis + GROQ API + 实时外部信息源;异步架构 | | 实际影响 | 25% | 解决了一个有据可查的、平均超过20万美元泄露成本的问题,影响全球数百万中小企业 | | 设计、演示与用户体验 | 25% | 可视化风险仪表盘、颜色编码的警报、简洁的上手流程;专为非技术用户设计 | ## 📄 许可证 MIT 许可证 — 详情请见 [LICENSE](LICENSE)。 ## 👤 作者 为 **Beyond Tomorrow Hackathon 2026** 而构建 — _编码未来,塑造世界。_
标签:AI安全工具, Apex, CVE分析, DLL 劫持, GNU通用公共许可证, GPT, masscan, Node.js, Python, React, Syscalls, 中小企业安全, 人工智能, 企业级安全, 优先级评分, 公共数据源, 可操作建议, 大语言模型, 威胁分析, 威胁情报, 威胁情报平台, 安全仪表板, 开发者工具, 搜索引擎查询, 数据可视化, 无后门, 机器学习, 测试用例, 漏洞管理, 用户模式Hook绕过, 网络安全, 网络安全解决方案, 自动化侦查工具, 自定义脚本, 请求拦截, 逆向工具, 隐私保护