anpa1200/opencti-intelligent-shield

GitHub: anpa1200/opencti-intelligent-shield

基于 OpenCTI 的威胁情报平台方案,通过 Claude AI 自动化提取实体与关系,集成多源情报连接器并支持 TAXII 输出。

Stars: 0 | Forks: 0

# 智能盾牌 — AI 驱动的 CTI 平台 **在线文档:** [1200km.com/opencti-intelligent-shield](https://1200km.com/opencti-intelligent-shield/) **主要指南:** [/docs/intelligent-shield](https://1200km.com/opencti-intelligent-shield/docs/intelligent-shield) **Medium 文章:** [The Intelligent Shield](https://medium.com/@1200km/the-intelligent-shield-057c9b4b9394) ## 项目简介 本仓库将 OpenCTI 部署为一个全面运作的威胁情报平台,包含: - **STIX 2.1 知识图谱** — 每个威胁行为者、恶意软件、检测指标和 ATT&CK 技术都存储为带有类型的、关系链接的 STIX 对象 - **免费和商业情报源连接器** — MITRE ATT&CK, CVE/NVD, AlienVault OTX, Abuse.ch, VirusTotal, Mandiant, Recorded Future, ISAC/政府 TAXII 情报源 - **Claude AI 富化连接器** — 自定义 Python 连接器,可读取已接入的报告,利用 Anthropic API 提取实体,将其映射到 STIX 关系,并自动写回系统 - **OpenCTI 推理规则** — 根据归因链、目击事件和 ATT&CK 父/子技术层级自动创建关系 - **TAXII 2.x 输出** — 将精选的检测指标集合推送到 SIEM、NGFW 或 EDR 平台 ## 架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ OpenCTI Stack │ │ │ │ OpenCTI Platform (Node.js) ←→ RabbitMQ (message broker) │ │ ↕ ↕ │ │ ElasticSearch (search) Connectors (Python workers) │ │ JanusGraph (graph) ├── MITRE ATT&CK │ │ MinIO (file store) ├── CVE / NVD │ │ Redis (cache) ├── AlienVault OTX │ │ ↕ ├── Abuse.ch │ │ TAXII 2.x Server ├── Shodan │ │ GraphQL / REST API └── Claude AI enrichment │ └─────────────────────────────────────────────────────────────┘ ``` **硬件要求:** - 最低配置:8 核 / 16 GB 内存 / 200 GB SSD - 推荐配置:16 核 / 32 GB 内存 / 1 TB NVMe ## 仓库内容 ``` opencti-intelligent-shield/ ├── docker-compose.yml # Core stack (OpenCTI + ES + MinIO + Redis + RabbitMQ) ├── docker-compose.connectors.yml # Standard connectors (MITRE, CVE, OTX, Abuse.ch) ├── docker-compose.ai.yml # AI enrichment connector ├── docker-compose.kibana.yml # Optional Kibana for ES visualization ├── connectors/ │ └── ai-enrichment/ # Custom Claude connector (Python + pycti) │ ├── Dockerfile │ ├── connector.py # Main connector logic │ └── requirements.txt ├── scripts/ │ ├── start-all.sh # Start all three stacks in order │ └── stop-all.sh # Stop all stacks, preserve volumes ├── terraform/ # Optional cloud infrastructure ├── .env.example # Template — copy to .env and fill values └── docs-site/ # Docusaurus documentation site ├── docs/ │ └── intelligent-shield.md # Full guide (780 lines, 31 screenshots) └── static/img/article/ # All 31 article infographics and screenshots ``` ## 快速开始 ``` git clone https://github.com/anpa1200/opencti-intelligent-shield.git openCTI cd openCTI cp .env.example .env nano .env # fill OPENCTI_ADMIN_TOKEN, ELASTIC_PASSWORD, ANTHROPIC_API_KEY, etc. ``` 启动所有三个技术栈: ``` ./scripts/start-all.sh ``` 或按顺序手动启动(在核心组件启动后等待 60 秒,以便 ElasticSearch 初始化): ``` docker compose up -d docker compose -f docker-compose.connectors.yml up -d docker compose -f docker-compose.ai.yml up -d --build ``` OpenCTI UI:`http://localhost:8080` 停止服务而不破坏数据: ``` ./scripts/stop-all.sh ``` ## Claude AI 富化连接器 `connectors/ai-enrichment` 连接器订阅 RabbitMQ 队列以获取新接入的报告(text/HTML, PDF)。对于每份报告,它会: 1. **提取实体** — 威胁行为者、恶意软件、IOC、ATT&CK 技术、CVE、攻击活动 2. **推断关系** — `actor → uses → malware`、`malware → uses → technique`、`indicator → indicates → actor` 3. **写回 OpenCTI** — 通过 GraphQL API 作为原生 STIX 2.1 对象写入,并附带置信度分数和来源引用 ``` # 简化的提取流程 message = anthropic_client.messages.create( model="claude-haiku-4-5-20251001", # cost-efficient for high-volume enrichment max_tokens=4096, messages=[{"role": "user", "content": EXTRACTION_PROMPT.format(report=report_text)}] ) entities = json.loads(message.content[0].text) # → 为每个 entity + relationship 创建 STIX objects ``` 使用 `claude-haiku-4-5-20251001` 进行持续富化(低成本,速度快)。对于高优先级报告,切换至 `claude-sonnet-4-6`。 ## 情报源 | 层级 | 情报源 | 连接器 | |------|------|-----------| | 免费 | MITRE ATT&CK | `opencti/connector-mitre` | | 免费 | CVE / NVD | `opencti/connector-cve` | | 免费 | AlienVault OTX | `opencti/connector-alienvault` | | 免费 | Abuse.ch | `opencti/connector-abuse-threat-fox` | | 免费 | Shodan | `opencti/connector-shodan` | | 商业 | VirusTotal | `opencti/connector-virustotal` | | 商业 | Mandiant | `opencti/connector-mandiant` | | 商业 | Recorded Future | `opencti/connector-recordedfuture` | | ISAC/政府 | CISA AIS | TAXII client | | ISAC/政府 | NATO MISP | MISP connector | | 自定义 | Claude AI | 本仓库 — `connectors/ai-enrichment` | ## 安全性 在连接到网络或添加真实情报源之前: - 在 `.env` 中更改 `OPENCTI_ADMIN_TOKEN`、`OPENCTI_ADMIN_PASSWORD` 和 `ELASTIC_PASSWORD` - 在带有 TLS 的 nginx/Traefik 反向代理后运行(切勿直接暴露 8080 端口) - 在 ElasticSearch 配置中设置 `xpack.security.enabled=true` - 将 RabbitMQ 管理 UI(端口 15672)限制在 localhost - 在情报源上线前,在连接器级别配置 TLP 标记 真实的 `.env`、本地 token 和草稿文件已被 gitignore 忽略。切勿提交凭据。 ## 文档 位于 [docs-site/](docs-site/) 的 Docusaurus 网站通过 GitHub Pages 发布。 本地运行: ``` cd docs-site npm install npm start ``` 主要指南([intelligent-shield.md](docs-site/docs/intelligent-shield.md))涵盖: - 完整的架构解析 - 带有 TLP 分配的情报源设置 - 包含完整 YAML 的三个 Docker Compose 技术栈 - Claude 连接器内部机制与 prompt engineering - 推理规则(6 条规则,通俗语言解释) - 9 步安全加固检查清单 - 监控:RabbitMQ 队列、ElasticSearch 堆、连接器健康状况 - 5 个调查工作流:威胁行为者分析、报告接入、IOC 追踪、CVE 研究、事件响应 - 所有 31 张文章信息图和截图均放置在正确的内容位置 ## 生态系统 本项目是 [1200KM.COM](https://1200km.com/) CTI 实践者生态系统的一部分: | 项目 | 作用 | |---------|------| | [CTI 分析员实战手册](https://1200km.com/cti-analyst-field-manual/) | 专业技术标准 — 证据原则、归因方法论、从 CTI 到检测的链条 | | [沙漠九头蛇行动](https://1200km.com/operation-desert-hydra/) | 完整流水线案例研究 — 用于 MuddyWater 检测覆盖的 OpenCTI 知识图谱 | | [以色列威胁行为者 CTI](https://1200km.com/israel-government-threat-actors-cti/) | 用于 OpenCTI 导入的 22 个结构化行为者档案(伊朗、巴勒斯坦、以色列相关) | | [客户驱动的 AI CTI](https://1200km.com/customer-driven-ai-cti-project/) | 交付方法论 — 如何将 AI 富化转变为受控的客户交互 | | [CTI as a Code](https://1200km.com/CTI_as_a_Code/) | 实验室框架 — 应用 CTI 专业技术的结构化任务 | | [AI vs Defense](https://1200km.com/ai-vs-defense/) | AI 时代威胁模型 — 随着攻击手段演进,OpenCTI 需要追踪什么 | ## 作者 Andrey Pautov — 从 CTI 到检测的实践者,特拉维夫 [1200km.com](https://1200km.com/) · [Medium](https://medium.com/@1200km) · [LinkedIn](https://www.linkedin.com/in/andrey-pautov/) · [GitHub](https://github.com/anpa1200) ## 1200km 生态系统 本项目是 1200km 安全研究生态系统的一部分。使用 [AdversaryGraph](https://1200km.com/adversarygraph/) 进行从 CTI 到检测的工作流、ATT&CK/ATLAS 映射、行为者相关性分析、IOC 富化以及为分析员准备的报告。 - [AdversaryGraph 项目中心](https://1200km.com/adversarygraph/) - [AdversaryGraph 文档](https://1200km.com/adversarygraph-docs/) - [实时 ATT&CK/ATLAS 工作区](https://1200km.com/threat-matrix/) - [1200km 安全研究生态系统](https://1200km.com/)
标签:AI驱动, ElasticSearch, MITM代理, Python连接器, STIX标准, 威胁情报, 开发者工具, 搜索引擎查询, 自定义脚本, 请求拦截, 逆向工具