matinsh94/Security_Agent_Polytechnic

GitHub: matinsh94/Security_Agent_Polytechnic

一个AI驱动的网络威胁情报平台,用于自动化安全威胁的摄入、分析和报告,解决威胁情报处理效率低下的问题。

Stars: 0 | Forks: 0

# AI 驱动的网络威胁情报 (CTI) 平台 ## 概述 一个**生产级网络威胁情报 (CTI) 平台**,专为自动化摄入、增强、关联和分析来自现实世界来源的安全威胁而设计。 该系统作为一个轻量级的**威胁情报平台 (TIP)**,在概念上与 **MISP** 等系统和商业 CTI 解决方案保持一致。它专为**运营级网络安全用途**设计,而非演示或学术原型。 本仓库中生成的所有输出、日志、报告和文档仅以英文维护。 ### 核心能力 - **实时威胁情报摄入**:从经过验证的安全来源 - **结构化 CVE 漏洞分析**:带有 CVSS 评分 - **IOC(失陷指标)提取与关联**(IP、域名、哈希、URL、载荷) - **AI 驱动的威胁分析**(DeepSeek API,带备用模拟模式) - **威胁评分引擎**(0-100 风险模型,带加权信号) - **MITRE ATT&CK 映射**:用于攻击者行为分类 - **历史上下文存储**:使用 SQLite - **去重与状态化处理**(SQLite) - **多格式报告**(JSON、Markdown、CSV、CTI 就绪的导出) - **可选告警系统**(Telegram、Discord、Slack 集成) - **增强层**(NVD、CISA KEV、MITRE) - **活动关联引擎**(共享的 CVE/IOC/软件分组) ## 系统架构 ``` graph LR A[Threat Feeds] --> B[Fetcher Layer] B --> C[IOC Extraction Engine] C --> D[Deduplication & State Manager] D --> E[Enrichment Layer
NVD/KEV/MITRE] E --> F[AI Analysis Engine] F --> G[Threat Scoring Engine] G --> H[Correlation Engine] H --> I[Report Generator] I --> J[Alerting System] J --> K[Output Formats
JSON/MD/CSV/STIX] ``` **数据流**:原始数据源 → 解析条目 → 提取的 IOC → 持久化状态和去重 → 用 CVE/KEV/MITRE 元数据增强 → 分析和评分 → 关联成活动 → 格式化报告 → 告警分发 ## 技术栈 ## 安装 ### 前置条件 - Python 3.11 或更高版本 - pip 或 conda - DeepSeek API 密钥(用于实时分析;可选——模拟模式可离线运行) - 可选:Discord 或 Slack Webhook URL(用于告警) ### 安装步骤 1. **克隆仓库** git clone https://github.com/matinsh94/Security_Agent_Polytechnic.git cd Security_Agent_Polytechnic 2. **创建虚拟环境** python3 -m venv venv source venv/bin/activate # 在 Windows 上:venv\Scripts\activate 3. **安装依赖项** pip install -r requirements.txt 4. **配置环境变量** touch .env # 或手动创建 export DEEPSEEK_API_KEY="your-api-key-here" # 可选 export TELEGRAM_BOT_TOKEN="your-telegram-token" # 可选 export TELEGRAM_CHAT_ID="your-chat-id" # 可选 export DISCORD_WEBHOOK_URL="your-discord-webhook" # 可选 export SLACK_WEBHOOK_URL="your-slack-webhook" # 可选 5. **初始化数据库** python3 main.py --init-db ## 使用说明 ### 基本用法(模拟模式——无需 API 密钥) 使用合成情报运行代理: ``` python3 main.py --test --mock-ai ``` ### 生产模式(实时数据源 + AI 分析) 获取实时安全情报并使用 DeepSeek 进行分析: ``` python3 main.py --live --enable-enrichment ``` ### 高级选项 ``` # ll: "组合选项" python3 main.py --live --enable-enrichment --enable-alerting # 6. **AI Engine** python3 main.py --reset-db --live # - "AI Engine" – "AI" is a common abbreviation, often kept in English, "Engine" could be translated, but as a term, it might be kept. In the example, "API Reference" keeps "API". So, "AI Engine" -> "AI 引擎" or keep as "AI Engine". I'll translate "Engine" to "引擎", but keep "AI" in English. python3 main.py --live --output-format markdown --output-file report.md # - Full: "AI 引擎" python3 main.py --live --deduplicate-only # 7. **Optional: Additional Integrations** python3 main.py --live --enable-enrichment --enable-alerting --output-format json ``` ### 命令行参数 | 参数 | 描述 | |----------|-------------| | `--test` | 使用合成测试数据而非实时数据源 | | `--mock-ai` | 使用模拟 AI 分析(无需 API 密钥) | | `--live` | 从实时安全数据源获取(需要互联网) | | `--enable-enrichment` | 使用 NVD、CISA KEV、MITRE ATT&CK 进行增强 | | `--enable-alerting` | 通过 Telegram/Discord/Slack 发送告警 | | `--test-alerts` | 测试已配置的告警通道并退出 | | `--reset-db` | 处理前清空数据库 | | `--init-db` | 初始化/迁移数据库 schema | | `--output-format` | 输出格式:`json`、`markdown`、`csv`、`stix`(默认:json) | | `--output-file` | 将结果写入文件而非标准输出 | | `--deduplicate-only` | 仅去重,跳过分析 | | `--verbose` | 启用调试日志 | ## 数据库 Schema(生产环境) SQLite 使用以下 schema 存储结构化情报: ``` -- Processed articles tracking CREATE TABLE processed_articles ( id INTEGER PRIMARY KEY AUTOINCREMENT, url TEXT NOT NULL UNIQUE, title TEXT NOT NULL, source TEXT NOT NULL, processed_at TEXT NOT NULL ); -- Processed fingerprints for hybrid deduplication CREATE TABLE processed_signatures ( id INTEGER PRIMARY KEY AUTOINCREMENT, fingerprint TEXT NOT NULL UNIQUE, url TEXT NOT NULL, title TEXT NOT NULL, cve_id TEXT, source TEXT NOT NULL, processed_at TEXT NOT NULL ); -- Extracted vulnerabilities CREATE TABLE vulnerabilities ( id INTEGER PRIMARY KEY AUTOINCREMENT, cve_id TEXT UNIQUE, cvss_base_score REAL, cvss_vector TEXT, description TEXT, published_date TEXT, nist_severity TEXT, source TEXT, discovered_at TEXT NOT NULL ); -- Indicators of Compromise CREATE TABLE iocs ( id INTEGER PRIMARY KEY AUTOINCREMENT, ioc_type TEXT NOT NULL, value TEXT NOT NULL, source_article_id INTEGER, confidence_score REAL DEFAULT 0.8, extracted_at TEXT NOT NULL, FOREIGN KEY(source_article_id) REFERENCES processed_articles(id), UNIQUE(ioc_type, value) ); -- Threat analysis results CREATE TABLE threat_analysis ( id INTEGER PRIMARY KEY AUTOINCREMENT, article_id INTEGER NOT NULL, cve_id TEXT, threat_score INTEGER, severity TEXT, attack_vector TEXT, affected_assets TEXT, remediation_en TEXT, remediation_fa TEXT, analyzed_at TEXT NOT NULL, FOREIGN KEY(article_id) REFERENCES processed_articles(id) ); -- MITRE ATT&CK mappings CREATE TABLE mitre_mappings ( id INTEGER PRIMARY KEY AUTOINCREMENT, cve_id TEXT, tactic TEXT, technique_id TEXT, technique_name TEXT, mapped_at TEXT NOT NULL ); -- Malware campaign tracking CREATE TABLE malware_campaigns ( id INTEGER PRIMARY KEY AUTOINCREMENT, campaign_name TEXT UNIQUE, description TEXT, first_seen TEXT, last_seen TEXT, ioc_ids TEXT, severity TEXT ); -- Historical context storage CREATE TABLE historical_context ( id INTEGER PRIMARY KEY AUTOINCREMENT, reference_key TEXT UNIQUE, context_data TEXT, source TEXT, stored_at TEXT NOT NULL ); -- Campaign correlation storage CREATE TABLE campaign_correlations ( id INTEGER PRIMARY KEY AUTOINCREMENT, campaign_id TEXT NOT NULL UNIQUE, related_cves TEXT NOT NULL, risk_score INTEGER NOT NULL, explanation TEXT NOT NULL, finding_titles TEXT NOT NULL, created_at TEXT NOT NULL ); -- Create indexes for performance CREATE INDEX idx_processed_articles_url ON processed_articles(url); CREATE INDEX idx_processed_articles_title ON processed_articles(title); CREATE INDEX idx_processed_articles_source ON processed_articles(source); CREATE INDEX idx_processed_signatures_fp ON processed_signatures(fingerprint); CREATE INDEX idx_processed_signatures_cve ON processed_signatures(cve_id); CREATE INDEX idx_vulnerabilities_cve ON vulnerabilities(cve_id); CREATE INDEX idx_iocs_type_value ON iocs(ioc_type, value); CREATE INDEX idx_threat_analysis_cve ON threat_analysis(cve_id); CREATE INDEX idx_mitre_mappings_cve ON mitre_mappings(cve_id); ``` ## 支持的情报标准 本平台符合行业 CTI 标准: * **MITRE ATT&CK 框架** — 攻击者战术和技术映射 * **CVE / NVD** — 漏洞识别和 CVSS 评分 * **CISA KEV** — 已知被利用漏洞数据库 * **类 STIX 格式** — 结构化威胁情报交换(内部) * **IOC 标准** — IP、域名、哈希、URL、恶意软件指标 * **通用弱点枚举 (CWE)** — 弱点分类 ## 威胁评分模型 (0–100) 每个威胁使用加权情报信号进行评分: | 信号 | 权重 | 影响 | |--------|--------|--------| | CVSS 基础评分 | 30% | 主要漏洞严重性 | | 活跃利用 | 25% | 列入 KEV 或存在公开 PoC | | 恶意软件关联 | 20% | 恶意软件家族或活动关联 | | 攻击面 | 15% | 受影响的公开资产 | | 勒索软件关联 | 10% | 已知勒索软件活动 | **自动升级规则:** - 列入 KEV → 最低 **高** 严重性 - 活跃勒索软件 → 自动升级为 **严重** - 存在公开漏洞利用 → 分数提升 (+15 分) - 检测到大规模利用 → 分数提升 (+10 分) ## IOC 提取引擎 自动提取并标准化失陷指标: | IOC 类型 | 示例 | |----------|----------| | IPv4 地址 | 192.168.1.1, 10.0.0.0/8 | | 域名 | attacker.com, c2.evil.org | | URL | https://malware.site/drop.exe | | 电子邮件地址 | attacker@domain.com | | SHA256 哈希 | a1b2c3d4e5f6... | | MD5 哈希 | 5d41402abc4b... | | PowerShell 载荷 | Base64 编码的脚本 | | 编码载荷 | Base64 / 十六进制编码数据 | | 恶意软件基础设施 | 释放的文件、C2 指标 | 输出经过标准化、去重并存储以供关联。 ## MITRE ATT&CK 映射 每个漏洞自动映射到: * **战术** — 例如,初始访问、执行、影响、持久化 * **技术** — 例如,T1190(利用面向公众的应用程序) * **子技术** — 细粒度的攻击方法 这实现了: - 攻击者行为分类 - 活动关联 - 战术性威胁评估 - 防御差距分析 ## AI 分析引擎 **DeepSeek API 集成**(兼容 OpenAI): - 漏洞分类 - 影响分析 - 利用推理 - 修复指导 - 带有增强感知的提示上下文 - 利用可能性标记 - 分析和报告仅限英文输出 **备用模式**(完全离线): - 结构化模拟情报生成(非随机) - 确定性威胁分析 - 零依赖运行 ## 历史上下文存储 SQLite 持久化平台所需的运行状态: - 已处理文章指纹用于去重 - 提取的 CVE 和 IOC 记录 - 威胁分析输出 - MITRE ATT&CK 映射 - 历史上下文记录 - 相关活动的关联集群 ## 报告系统 **多格式输出:** | 格式 | 用例 | |--------|----------| | **JSON** | 机器可读,自动化,SIEM 导入 | | **Markdown** | SOC 报告,文档,存档 | | **CSV** | 电子表格分析,批量导出 | | **STIX** | 类 STIX 结构化数据源 | **报告内容:** - 执行摘要(威胁概述) - 前 10 大威胁 - 严重性分布 - 带 CVSS 评分的主要 CVE - IOC 清单和发现 - MITRE ATT&CK 概述 - 关联摘要和集群详情 - 修复指导 ## 数据源(生产环境) 仅限真实安全情报来源: | 来源 | 类型 | 频率 | |--------|------|-----------| | The Hacker News | RSS | 实时 | | Krebs on Security | RSS | 每日 | | CISA KEV | JSON API | 每日 | | 模拟威胁数据 | 合成数据 | 仅测试模式 | **验证与韧性:** - 带指数退避的重试逻辑 - 请求超时强制执行(默认 15 秒) - 速率限制合规 - 跨数据源去重 - 输入清理 ## 项目结构 ``` Security_Agent_Polytechnic/ ├── main.py # CLI entrypoint ├── requirements.txt # Python dependencies ├── README.md # This file ├── data/ │ └── agent_state.db # SQLite database (production schema) ├── scripts/ │ ├── fetcher.py # Feed ingestion + normalization │ ├── analyzer.py # AI analysis engine │ ├── state_manager.py # Database state & deduplication │ ├── ioc_extractor.py # IOC extraction engine │ ├── threat_scorer.py # Threat scoring (0-100) │ ├── enricher.py # NVD/KEV/MITRE enrichment │ ├── correlation_engine.py # Campaign correlation and clustering │ ├── report_generator.py # Multi-format report creation │ └── alerter.py # Telegram/Discord/Slack alerts └── tests/ ├── test_enricher.py ├── test_ioc_extraction.py └── test_threat_scorer.py ``` ## 系统演进路线图 ### 当前版本 (v1.1) - ✅ 实时数据源摄入(RSS + API) - ✅ IOC 提取和标准化 - ✅ 威胁评分 (0-100) - ✅ MITRE ATT&CK 映射 - ✅ AI 驱动分析(DeepSeek) - ✅ 结构化报告(JSON/Markdown/CSV) - ✅ SQLite 去重和状态管理 ### 第二阶段:情报增强层已实施 - ✅ NVD/CISA KEV 增强和 CVE 匹配 - ✅ 活动关联和集群持久化 - ✅ 仅英文告警和报告 - ✅ 增强感知的 AI 分析上下文 ### 第三阶段:集成与协作 (v1.2) - [ ] SIEM 集成(Splunk、ELK、Sumo Logic) - [ ] 用于威胁查询的 REST API 端点 - [ ] 用于实时告警的 Slack/Teams/Discord 机器人 - [ ] Docker 容器化 - [ ] Kubernetes 部署清单 ### 第四阶段:高级情报 (v1.3) - [ ] 向量数据库集成(语义搜索) - [ ] 威胁模式中的异常检测 - [ ] 威胁行为者归因(OSINT) - [ ] 基于地理位置的威胁映射 - [ ] 自动化修复剧本 ### 第五阶段:机器学习 (v2.0) - [ ] 自定义威胁分类模型 - [ ] 使用 ML 过滤减少误报 - [ ] 预测性泄露可能性评分 - [ ] 行为恶意软件聚类 - [ ] 零日漏洞预测 ## 安全性与韧性 **输入验证:** - 所有数据源数据经过清理 - IOC 格式验证 - API 响应 schema 强制执行 **API 韧性:** - 指数退避重试逻辑 - 请求超时强制执行(15 秒) - 失败端点的断路器 - 优雅降级到模拟模式 **数据隐私:** - API 密钥不存储在数据库中 - 环境变量秘密管理 - SQLite 加密支持(可选) - 符合 GDPR/CCPA 的日志记录 **数据源验证:** - RSS 签名验证(可选) - 域名白名单强制执行 - 速率限制合规 - 重复来源检测 ## 输出格式标准 所有情报输出必须遵守: | 要求 | 标准 | |-------------|----------| | **语言** | 仅限英文(SOC 标准) | | **结构** | JSON 用于机器处理,Markdown 用于报告 | | **STIX** | 类 STIX 输出用于结构化数据源 | | **编码** | 无 BOM 的 UTF-8 | | **时间戳** | ISO 8601 (UTC) | | **CVSS** | CVSS v3.1 标准 | | **CVE 格式** | CVE-YYYY-NNNNN | | **IOC 格式** | 域名、哈希标准化为小写 | | **严重性级别** | 严重、高、中、低 | ## 配置 ### 环境变量 ``` # - "Optional" -> "可选", "Additional Integrations" -> "附加集成" or "额外集成". "Integrations" is a technical term, so keep it in English? But it's not a proper noun. I should translate it. DEEPSEEK_API_KEY=your_api_key_here DEEPSEEK_API_URL=https://api.deepseek.com/v1 # - The instruction says to keep technical jargon in English, but "integrations" might be common in software contexts. To be safe, I'll translate. # - Full: "可选:附加集成" TELEGRAM_BOT_TOKEN=bot_token TELEGRAM_CHAT_ID=chat_id DISCORD_WEBHOOK_URL=webhook_url SLACK_WEBHOOK_URL=webhook_url # 8. **Optional: Alerting** FEED_TIMEOUT=15 FEED_RETRY_ATTEMPTS=3 FEED_RETRY_BACKOFF=2 # - "Optional" -> "可选", "Alerting" -> "告警" or keep as "Alerting" if it's a term. In the first heading, I kept "alerting" in English, so I should be consistent. DATABASE_PATH=data/agent_state.db DATABASE_BACKUP_PATH=data/backups/ # - In the first heading, I used "alerting" in English. So here, keep "Alerting" in English. LOG_LEVEL=INFO LOG_FILE=logs/cti_agent.log ``` ## 性能指标 生产环境下的性能: | 指标 | 性能 | |--------|-------------| | 数据源解析 | ~150 篇文章/分钟 | | IOC 提取 | ~1000 个 IOC/分钟 | | AI 分析 (DeepSeek) | 5-10 篇文章/分钟 | | 模拟分析 | 500+ 篇文章/分钟 | | 数据库查询 | <50 毫秒/查询 | | 内存使用 | 200-300MB (1000+ 篇文章) | | 去重 | <5 毫秒/文章 | ## 部署选项 ### 本地开发 ``` python3 main.py --test --mock-ai ``` ### Docker(即将推出) ``` docker build -t cti-agent:latest . docker run --env-file .env -v data:/app/data cti-agent:latest ``` ### Kubernetes(即将推出) ``` kubectl apply -f k8s/deployment.yaml ``` ### 云集成 - AWS Lambda(无服务器摄入) - Google Cloud Functions - Azure Functions - 定时 Cron 作业 ## 合规与标准对齐 本平台遵守: * **NIST 网络安全框架** — 风险管理实践 * **ISO/IEC 27001** — 信息安全标准 * **GDPR** — 数据隐私法规 * **CCPA** — 加州隐私权 * **CTI 行业标准** — STIX、MISP、OpenTAXII ## 贡献 欢迎贡献!请: 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/enhancement`) 3. 提交更改 (`git commit -am '添加增强功能'`) 4. 推送到分支 (`git push origin feature/enhancement`) 5. 提交拉取请求 所有贡献必须包括: - 更新的文档 - 测试覆盖率 (pytest) - 向后兼容性评估 ## 许可证 本项目采用 MIT 许可证——详情参见 [LICENSE](LICENSE) 文件。 ## 引用 如果您在学术或专业工作中使用本项目,请引用: ``` @software{security_agent_cti_2026, author = {Matin Shafiei}, title = {AI-Powered Cyber Threat Intelligence Platform}, year = {2026}, url = {https://github.com/matinsh94/Security_Agent_Polytechnic}, note = {Production-grade CTI system} } ``` ## 支持与文档 - **问题**:[GitHub Issues](https://github.com/matinsh94/Security_Agent_Polytechnic/issues) - **讨论**:[GitHub Discussions](https://github.com/matinsh94/Security_Agent_Polytechnic/discussions) - **电子邮件**:matinsh94@example.com - **文档**:[Wiki](https://github.com/matinsh94/Security_Agent_Polytechnic/wiki) ## 致谢 - **都灵理工大学** — 学术基础 - **DeepSeek** — AI 分析引擎 - **MITRE ATT&CK** — 威胁框架 - **CISA** — 漏洞情报 - **NVD** — CVE 数据库 - **安全社区** — 数据源提供商和贡献者 **平台状态**:生产就绪 (v1.1) **最后更新**:2026 年 5 月 21 日 **维护者**:Matin Shafiei ## 最终声明 这是一个面向**生产的网络威胁情报平台**,专为现实世界的网络安全运营而设计。它不是原型、演示或学术模拟。该系统在运营可靠性、可扩展性和符合行业标准方面进行了精心设计。 **使用场景:** - SOC 分析师支持和自动化 - 自主威胁情报摄入 - 恶意软件跟踪和归因 - CVE 关联和趋势分析 - AI 驱动的安全运营 - 企业威胁情报计划
标签:AI驱动, CISA KEV, CVE分析, IOC提取, MITRE ATT&CK映射, NVD, SQLite数据库, STIX导出, 关联引擎, 内核监控, 多格式报告, 威胁分析, 威胁情报, 威胁评分引擎, 开发者工具, 深度学习API, 生产级系统, 网络威胁情报平台, 网络安全, 自动化侦查工具, 自动化威胁摄入, 警报系统, 逆向工具, 隐私保护