dipsh0v/PERSEPTOR
GitHub: dipsh0v/PERSEPTOR
AI 驱动的检测工程平台,自动将威胁情报报告转化为 Sigma/YARA 检测规则、SIEM 查询和 ATT&CK 技术映射。
Stars: 7 | Forks: 2
PERSEPTOR
AI 驱动的检测工程平台
自动将威胁情报转化为可执行的检测规则。
## 问题所在
安全团队花费**数小时**手动阅读威胁报告、提取失陷指标、映射 MITRE ATT&CK 技术以及编写检测规则。此过程:
- **速度慢** — 一份威胁报告可能需要 2-4 小时才能完全投入实战
- **易出错** — 手动提取会遗漏 IoCs 和 TTPs
- **不一致** — 规则质量因分析师而异
- **不可扩展** — 新威胁出现的速度超过了团队的响应速度
## 解决方案
**PERSEPTOR** 自动化整个检测工程流程。粘贴威胁报告 URL,几分钟后您将获得:
| 输出 | 描述 |
|--------|-------------|
| **威胁摘要** | 包含关键发现的结构化情报简报 |
| **IoC 提取** | IP、域名、URL、哈希、注册表键、互斥体 |
| **TTP 映射** | 自动化的 MITRE ATT&CK 技术识别 |
| **Sigma 规则** | YAML 格式的生产就绪检测规则 |
| **YARA 规则** | 基于模式的恶意软件检测签名 |
| **SIEM 查询** | 适用于 Splunk、QRadar、Elastic 的即用型查询 |
| **Atomic 测试** | 与检测项映射的红队测试场景 |
| **QA 评分** | 带有置信度分数的自动化质量验证 |
## 主要特性
### 多提供商 AI 引擎
即时切换 AI 提供商 — 无厂商锁定:
| 提供商 | 模型 |
|----------|--------|
| **OpenAI** | GPT-4.1, GPT-4o, O4 Mini (Reasoning), O3 Mini |
| **Anthropic** | Claude Sonnet 4, Claude Opus 4, Claude Haiku 4.5 |
| **Google** | Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.0 Flash |
### 全局 Sigma 匹配引擎
将分析结果与来自官方 SigmaHQ 仓库的 **2,750 条社区 Sigma 规则** 进行交叉比对。在您编写任何规则之前,自动浮现与此威胁匹配的现有检测项。
### Atomic Red Team 集成
生成与您的 Sigma 规则一致的可执行测试场景。验证您的检测项是否能针对模拟的攻击技术实际触发。
### 实时 SSE 流式传输
通过 Server-Sent Events 查看分析流程的逐步执行。每个阶段 —— 从内容提取到规则生成 —— 都实时将进度流式传输到 UI。
### 生产级安全
- 使用 Fernet(cryptography 库)进行 **Session 加密**
- 通过令牌桶算法进行 **速率限制**
- 通过阻断私有 IP 和 DNS 解析检查来 **防止 SSRF**
- **输入清洗** 和请求大小验证
- 具有可配置允许来源的 **CORS**
## 架构
```
PERSEPTOR v2.0
│
├── perseptor-ui/ # Frontend (React 19 + TypeScript + MUI 7)
│ ├── pages/
│ │ ├── Dashboard # URL input → full analysis pipeline
│ │ ├── Reports # Historical analysis results
│ │ ├── CreatedRules # Generated Sigma/YARA rules library
│ │ ├── QA # Quality scoring dashboard
│ │ ├── Settings # Provider/model/API key configuration
│ │ └── AboutPerseptor # Platform info with scroll animations
│ ├── components/
│ │ ├── MitreNavigator # ATT&CK technique heatmap
│ │ ├── ConfidenceGauge # Visual QA score gauge
│ │ ├── ProgressTracker # SSE pipeline progress
│ │ └── AnalysisProgressOverlay # Full-screen analysis overlay
│ └── store/ # Redux Toolkit state management
│
├── api/
│ └── app.py # Flask API (13 endpoints, SSE streaming)
│
├── modules/
│ ├── ai_engine.py # Multi-provider AI orchestration
│ ├── content_fetcher.py # URL fetch, OCR, Playwright rendering
│ ├── sigma_generator.py # Sigma rule generation engine
│ ├── yara_generator.py # YARA rule generation engine
│ ├── siem_query_generator.py # Splunk/QRadar/Elastic query builder
│ ├── sigma_matcher.py # Global Sigma Match (2,750 rules)
│ ├── quality_analyzer.py # QA scoring and validation framework
│ ├── pdf_reporter.py # PDF report generation
│ ├── cli_formatter.py # Terminal UI formatting (Rich)
│ ├── mitre_mapping.py # MITRE ATT&CK technique mapper
│ ├── security.py # SSRF prevention, API key validation
│ ├── session_manager.py # Fernet-encrypted session management
│ ├── middleware.py # Rate limiting, request validation
│ ├── config.py # Central configuration (dataclasses)
│ ├── ai/ # Provider abstraction layer
│ │ ├── base_provider.py # Abstract provider interface
│ │ ├── openai_provider.py # OpenAI implementation
│ │ ├── anthropic_provider.py # Anthropic implementation
│ │ ├── google_provider.py # Google Gemini implementation
│ │ ├── provider_factory.py # Factory pattern for providers
│ │ └── retry_handler.py # Exponential backoff retry logic
│ ├── database/ # SQLite with WAL mode
│ │ ├── models.py # ORM models
│ │ └── repository.py # Data access layer
│ ├── pipeline/ # Processing pipeline
│ │ ├── cache.py # Result caching
│ │ └── output_validator.py # Output format validation
│ └── prompts/ # Prompt engineering
│ ├── templates.py # Structured prompt templates
│ └── few_shot.py # Few-shot learning examples
│
├── Global_Sigma_Rules/ # 2,750 community Sigma rules (SigmaHQ)
│
└── docker/ # Container orchestration
├── docker-compose.yml
├── Dockerfile.backend
├── Dockerfile.frontend
└── nginx.conf
```
## 分析流程
```
URL Input
│
▼
┌─────────────────────────────┐
│ 1. CONTENT EXTRACTION │ Playwright headless browser + OCR
│ Fetch page → parse HTML │ Images → EasyOCR → text
│ Extract text + images │ PDF documents → PyPDF2
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ 2. AI ANALYSIS │ Multi-provider (OpenAI/Anthropic/Google)
│ Threat summarization │ Structured JSON output
│ IoC extraction │ TTP identification
│ MITRE ATT&CK mapping │ Confidence scoring
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ 3. DETECTION GENERATION │ IoC-based + behavior-based rules
│ Sigma rules (YAML) │ Per-IoC and per-TTP generation
│ YARA rules │ Pattern matching signatures
│ SIEM queries │ Splunk │ QRadar │ Elastic
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ 4. ENRICHMENT │ Cross-reference with 2,750 rules
│ Global Sigma Match │ Existing detection surfacing
│ Atomic Red Team tests │ Attack simulation scenarios
│ QA scoring │ Automated quality validation
└─────────────┬───────────────┘
│
▼
┌─────────────────────────────┐
│ 5. OUTPUT │ Real-time SSE streaming to UI
│ Dashboard visualization │ PDF report generation
│ Rule library storage │ SQLite persistence (WAL mode)
└─────────────────────────────┘
```
## 快速开始
### 选项 A: Docker (推荐)
```
# 1. Clone
git clone https://github.com/dipsh0v/PERSEPTOR.git
cd PERSEPTOR
# 2. 启动
cd docker
docker-compose up -d
# 3. 打开
# http://localhost:3000
```
就是这样。前端和后端均已容器化并预配置。
### 选项 B: 手动设置
**前置条件:** Python 3.8+ 和 Node.js 16+
```
# 1. Clone
git clone https://github.com/dipsh0v/PERSEPTOR.git
cd PERSEPTOR
# 2. Backend
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python3 api/app.py # Starts on :5000
# 3. Frontend (新终端)
cd perseptor-ui
npm install
npm start # Starts on :3000
```
### 首次运行
1. 打开 `http://localhost:3000`
2. 进入 **Settings** → 输入您的 AI 提供商 API 密钥(OpenAI、Anthropic 或 Google)
3. 选择您偏好的模型
4. 进入 **Dashboard** → 粘贴威胁报告 URL
5. 观察实时分析流程执行
## 配置
所有配置均通过项目根目录下的环境变量或 `.env` 文件管理:
```
# AI Provider (选择一个或多个)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=AI...
# 默认 provider: "openai" | "anthropic" | "google"
DEFAULT_AI_PROVIDER=openai
DEFAULT_MODEL=gpt-4.1-2025-04-14
# 服务器
BACKEND_HOST=0.0.0.0
BACKEND_PORT=5000
FLASK_ENV=development
# 安全
SECRET_KEY=your-secret-key-here
SESSION_EXPIRY_HOURS=24
RATE_LIMIT_PER_MINUTE=60
CORS_ORIGINS=http://localhost:3000
# 数据库
DATABASE_PATH=data/perseptor.db
# 日志
LOG_LEVEL=INFO
LOG_FORMAT=json
```
## API 参考
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| `POST` | `/api/analyze` | 完整分析流程(JSON 响应) |
| `POST` | `/api/analyze/stream` | 完整分析流程(SSE 流式传输) |
| `POST` | `/api/generate_rule` | 生成单个检测规则 |
| `GET` | `/api/rules` | 列出所有生成的规则 |
| `DELETE` | `/api/rules/:id` | 删除特定规则 |
| `GET` | `/api/rules/:id/download` | 下载规则文件 |
| `GET` | `/api/reports` | 列出所有分析报告 |
| `DELETE` | `/api/reports/:id` | 删除特定报告 |
| `POST` | `/api/session` | 创建加密 Session |
| `DELETE` | `/api/session` | 终止 Session |
| `GET` | `/api/session/usage` | 获取 Token 使用统计 |
| `GET` | `/api/health` | 健康检查 |
| `GET` | `/api/models` | 按提供商列出可用的 AI 模型 |
## 技术栈
### 后端
| 组件 | 技术 |
|-----------|-----------|
| Framework | Flask 2.3+ |
| AI Providers | OpenAI, Anthropic, Google Generative AI |
| Content Extraction | Playwright, BeautifulSoup4, EasyOCR |
| Rule Processing | pySigma, PyYAML |
| PDF Generation | ReportLab, Matplotlib, Seaborn |
| NLP | NLTK |
| Database | SQLite (WAL mode) |
| Session Security | Cryptography (Fernet) |
### 前端
| 组件 | 技术 |
|-----------|-----------|
| Framework | React 19 |
| Language | TypeScript 4.9 |
| UI Library | MUI (Material UI) 7 |
| State Management | Redux Toolkit 2.2 |
| HTTP Client | Axios |
| Charts | Recharts |
| Routing | React Router 7 |
| Notifications | Notistack |
## 项目结构
```
PERSEPTOR/
├── api/ # Backend API
│ └── app.py # Flask application (13 REST + SSE endpoints)
├── modules/ # Core processing modules
│ ├── ai/ # AI provider abstraction (3 providers)
│ ├── database/ # Data persistence layer
│ ├── pipeline/ # Processing pipeline & caching
│ └── prompts/ # Prompt templates & few-shot examples
├── perseptor-ui/ # Frontend application
│ └── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Route-level page components
│ ├── store/ # Redux store & slices
│ └── services/ # API client layer
├── Global_Sigma_Rules/ # 2,750 community detection rules
├── docker/ # Docker configuration
│ ├── docker-compose.yml
│ ├── Dockerfile.backend
│ ├── Dockerfile.frontend
│ └── nginx.conf
├── requirements.txt # Python dependencies
└── .env # Environment configuration (create this)
```
## 远程 / SSH 服务器部署
PERSEPTOR 可在远程服务器、云实例和 VPN 环境中无缝运行:
```
# 在你的服务器上
cd docker && docker-compose up -d
# 从本地机器访问
# http://YOUR_SERVER_IP:3000
```
**注意:**
- 确保防火墙/安全组中开放了端口 `3000` 和 `5000`
- CORS 已为本地和远程访问预配置
- 兼容 Tailscale、WireGuard 和其他 VPN 解决方案
- 无需额外配置 —— 只需通过服务器 IP 访问
## 故障排除
后端无法启动
```
# 检查端口 5000 是否被占用
lsof -i :5000 # macOS/Linux
netstat -ano | findstr :5000 # Windows
# 终止占用进程
kill -9 # macOS/Linux
taskkill /PID /F # Windows
```
前端无法连接到后端
- 验证后端是否正在运行: `curl http://localhost:5000/api/health`
- Docker: `docker-compose ps` 检查容器状态
- Docker 日志: `docker-compose logs backend`
- 远程: 确保防火墙允许端口 5000
AI 提供商错误
- 在 Settings 页面验证您的 API 密钥
- 检查提供商状态页面是否有服务中断
- 尝试切换到其他提供商/模型
- 检查 `LOG_LEVEL=DEBUG` 以获取详细的错误日志
模块导入错误
```
pip install -r requirements.txt
python3 -c "import sys; print(sys.path)"
```
npm/Node.js 问题
```
cd perseptor-ui
rm -rf node_modules package-lock.json
npm install
```
## 贡献
欢迎贡献。请先开一个 Issue 讨论您想要改变的内容。
1. Fork 本仓库
2. 创建您的功能分支 (`git checkout -b feature/your-feature`)
3. 提交您的更改 (`git commit -m 'Add your feature'`)
4. 推送到分支 (`git push origin feature/your-feature`)
5. 打开一个 Pull Request
### 报告 Bug
使用 [GitHub Issues](https://github.com/dipsh0v/PERSEPTOR/issues) 并提供:
- 重现步骤
- 预期行为与实际行为
- 系统信息(OS、Python 版本、Node 版本)
## 联系方式
**Aytek AYTEMUR**
- GitHub: [@dipsh0v](https://github.com/dipsh0v)
- Email: [aytek.aytemur@outlook.com](mailto:aytek.aytemur@outlook.com)
## 许可证
基于 MIT 许可证分发。
## 致谢
- [MITRE ATT&CK](https://attack.mitre.org/) — 威胁分类框架
- [SigmaHQ](https://github.com/SigmaHQ/sigma) — 社区检测规则
- [Atomic Red Team](https://github.com/redcanaryco/atomic-red-team) — 攻击模拟框架
PERSEPTOR — 检测工程,自动化。
标签:Cloudflare, DNS信息、DNS暴力破解, Docker, Flask, IoC提取, MITRE ATT&CK, Petitpotam, Python, React, Sigma规则, Syscalls, TTP映射, TypeScript, YARA规则, 人工智能, 威胁分析, 威胁情报, 安全插件, 安全运营, 安全防御评估, 开发者工具, 开源, 扫描框架, 无后门, 特征检测, 用户模式Hook绕过, 目标导入, 网络安全, 网络调试, 自动化, 自动化侦查工具, 自动化攻击, 自动化攻击, 规则生成, 请求拦截, 逆向工具, 防御自动化, 隐私保护