dipsh0v/PERSEPTOR

GitHub: dipsh0v/PERSEPTOR

AI 驱动的检测工程平台,自动将威胁情报报告转化为 Sigma/YARA 检测规则、SIEM 查询和 ATT&CK 技术映射。

Stars: 7 | Forks: 2

PERSEPTOR v2.0

PERSEPTOR

AI 驱动的检测工程平台
自动将威胁情报转化为可执行的检测规则。

Get Started Report Bug

Python React TypeScript Flask Docker License

## 问题所在 安全团队花费**数小时**手动阅读威胁报告、提取失陷指标、映射 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绕过, 目标导入, 网络安全, 网络调试, 自动化, 自动化侦查工具, 自动化攻击, 自动化攻击, 规则生成, 请求拦截, 逆向工具, 防御自动化, 隐私保护