diagonalciso/soc-intel

GitHub: diagonalciso/soc-intel

一款自托管的统一网络威胁情报平台,集成了情报采集、暗网追踪、案件管理、富化与检测规则管理功能。

Stars: 0 | Forks: 0

# SOCINT **统一、自托管的网络威胁情报平台。** SOCINT 将指标管理、暗网追踪、案件管理、富化、检测规则管理和连接器框架整合到一个单一的 Docker Compose 部署中 —— 取代 OpenCTI + MISP + TheHive + Cortex。 ## 功能特性 - **STIX 2.1 原生** — 所有威胁对象均以 STIX 2.1 格式存储和交换 - **44 个内置连接器**(35 个计划任务)— abuse.ch、OTX、MISP feeds + Galaxy、TAXII、CISA KEV、NVD/EPSS、MITRE ATT&CK、Sigma + YARA 规则、勒索软件追踪器等 - **暗网作为一等公民** — 基于 Tor 的勒索软件泄露站点抓取、受害者追踪、IAB 挂牌信息、凭证泄露、窃密日志 - **IOC 去重** — 确定性指标 ID(type:value 的 UUID5)防止所有导入源中出现重复项 - **误报抑制** — MISP 警告列表在存储前过滤前 1000 个域名、CDN 范围、云 IP - **TLP 标记** — 每个 STIX 对象都带有一个标准的 TLP 字段(CLEAR/GREEN/AMBER/AMBER+STRICT/RED);可在 Intel 浏览器中进行过滤 - **来源信任评分** — 在摄入数据时,将每个连接器的可靠性权重(0–100)应用于指标置信度;CISA KEV = 95,OTX 社区 = 65 - **指标衰减** — 置信度随时间自动降低;在 90 天后撤销老化的 IoC;被观测到的指标免受衰减影响 - **观测记录** — 记录在您的环境中观测到指标的时间;更新衰减豁免和正在运行的观测计数 - **富化引擎** — 对 IP、域名、URL 和文件哈希进行按需并行富化,并带有风险评分 - **检测规则** — 自动导入 500 多条 Sigma 规则;支持 YARA、Snort、Suricata 和 STIX Pattern 存储,并与 MITRE 技术关联 - **MITRE ATT&CK 热力图** — 展示您知识库覆盖率的交互式矩阵 - **知识图谱** — 在每个 STIX 对象上使用 Cytoscape.js 关系图 - **案件管理** — 受 TheHive 启发的案件/任务/可观测对象/警报工作流 - **NVD + EPSS** — 包含 CVSS v3 分数和利用概率的完整 CVE 数据库 - **API 优先** — 每个功能均可通过 REST 访问(GraphQL schema 已就绪) - **支持自托管** — 只需一次 `docker compose up` 即可运行完整技术栈 ## 内置连接器 ### 导入(自动化、定时任务) 调度器中注册了 35 个连接器(总共 44 个内置)。按注册顺序: | 连接器 | 来源 | 计划任务 | 备注 | |-----------|--------|----------|-------| | AlienVault OTX | otx.alienvault.com | 每 2h | 需要免费的 API key (OTX_API_KEY) | | MISP Public Feeds | Botvrij.eu + abuse.ch | 每 4h | 免费 | | TAXII 2.1 | Anomali Limo (免费) | 每 6h | 免费,guest/guest | | Ransomwatch | joshhighet/ransomwatch | 每 2h | 免费,存档源 | | Ransomware.live | api.ransomware.live/v2 | 每 2h | 免费,受害者 + 组织画像 | | RansomLook | ransomlook.io | 每 3h | 免费 CC BY 4.0 | | DeepDarkCTI | fastfire/deepdarkCTI | 每天 06:00 | 免费,200+ 组织 + onion URL | | Ransomware Leak Sites | Tor 抓取器 | 每 3h | 需要 Tor 代理 | | ShinyHunters Breach Tracker | ransomware.live + OTX | 每天 12:00 | 免费 | | CTI News Feed | 安全 RSS feeds | 每 2h | 免费 | | Telegram CTI Monitor | Telegram 频道 | 每小时 | 需要 Telegram 配置 | | URLhaus | abuse.ch | 每 30min | 免费 | | ThreatFox | abuse.ch | 每 4h | 免费 | | Feodo Tracker | abuse.ch | 每 6h | 免费 | | Spamhaus DROP/EDROP | spamhaus.org | 每 12h | 免费 | | OpenPhish | openphish.com | 每 12h | 免费 | | SANS ISC DShield | isc.sans.edu | 每 12h | 免费 | | CISA KEV | cisa.gov | 每 12h | 免费,官方 | | NVD + EPSS | nvd.nist.gov + first.org | 每天 04:00 | 免费;可选 NVD_API_KEY | | MITRE ATT&CK | github.com/mitre/cti | 每周日 00:00 | 免费,官方 | | Sigma Rules | GitHub 上的 SigmaHQ/sigma | 每周一 05:00 | 免费;Windows/Linux/network/cloud | | MalwareBazaar | abuse.ch | 每 6h | 免费(无 key 批量源) | | Malpedia | malpedia.caad.fkie.fraunhofer.de | 每周日 06:00 | 免费 key(注册 → Account → API);如果未设置 MALPEDIA_API_KEY 则跳过 | | MISP Galaxy | github.com/MISP/misp-galaxy | 每周日 06:00 | 免费,无需账户 (CC0);恶意软件 + 威胁行为者分类 — Malpedia 的无 key 替代方案 | | YARA Rules | Neo23x0/signature-base | 每周一 05:00 | 免费 | | PhishTank | phishtank.org | 每 8h | 免费 | | Pulsedive | pulsedive.com | 每 6h | 免费层;可选 PULSEDIVE_API_KEY | | OSV.dev | osv.dev | 每 6h | 免费,供应链漏洞 | | URLScan.io | urlscan.io | 每 4h | 免费;可选 URLSCAN_API_KEY | | VulnCheck KEV | vulncheck.com | 每 12h | 可选 VULNCHECK_API_KEY(扩展 KEV) | | NIST SP 800-53 | nist.gov | 每周日 03:00 | 免费,官方(合规控制) | | NIST CSF 2.0 | nist.gov | 每周日 04:00 | 免费,官方(框架) | | Blocklist.de | blocklist.de | 每 4h | 免费 | | C2 Tracker | abuse.ch SSLBL | 每 3h | 免费 | | IPsum | stamparm/ipsum | 每 8h | 免费,聚合屏蔽列表 | ### 富化(按需) | 连接器 | 富化对象 | 需要密钥 | |-----------|----------|--------------| | AlienVault OTX | IP、域名、URL、hash | 免费 | | GreyNoise | IP | 免费社区层 | | AbuseIPDB | IP | 免费层 | | VirusTotal | IP、域名、URL、hash | 付费 | 这 4 个提供商已接入并行富化流水线 (`app/enrichment/pipeline.py`),并按每个可观测对象按需运行。其他 富化连接器随附在 `connectors/builtin/` 中(Criminal IP、Hudson Rock) 但尚未在流水线中注册 — 在此处添加它们即可激活。 ## 快速开始 ``` git clone https://github.com/diagonalciso/soc-intel.git cd SOCint cp .env.example .env # 生成 secret keys SECRET=$(python3 -c "import secrets; print(secrets.token_hex(32))") CONNECTOR_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))") sed -i "s/change-me-to-a-long-random-string/$SECRET/" .env sed -i "s/change-me-connector-key/$CONNECTOR_KEY/" .env # 设置您的 admin password sed -i "s/changeme123!/YourStrongPassword!/" .env docker compose up -d --build ``` 打开 **http://localhost:3000** ### 操作系统要求 (OpenSearch) ``` sudo sysctl -w vm.max_map_count=262144 echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf ``` ## 系统要求 | | 最低配置 | 推荐配置 | |-|---------|-------------| | CPU | 4 核心 | 8 核心 | | RAM | 8 GB | 16 GB | | 磁盘 | 50 GB | 200 GB | | Docker | 24.0+ | 最新版 | ## 技术栈 | 层级 | 技术 | |-------|-----------| | 后端 API | Python / FastAPI | | 前端 | React 18 + TypeScript | | STIX 对象存储 | OpenSearch 2.x | | 关系型数据库 | PostgreSQL 16 | | 缓存 / 发布-订阅 | Redis 7 | | 消息总线 | RabbitMQ 3.13 | | 文件存储 | MinIO (S3 兼容) | | 图谱可视化 | Cytoscape.js 3.x | | 暗网访问 | Tor 代理 | | 调度器 | APScheduler (cron) | ## 页面 | URL | 描述 | |-----|-------------| | `/dashboard` | KPI 卡片、顶级勒索组织、按来源划分的情报、近期警报 | | `/intel` | STIX 对象浏览器 — 全文搜索、TLP 过滤、类型过滤 | | `/intel/:id` | 对象详情 — 核心字段、TLP 徽章、观测计数、Report Sighting 按钮、关系图谱 | | `/attack` | 带有技术覆盖率的 MITRE ATT&CK 矩阵热力图 | | `/rules` | 检测规则管理 — 自动导入 500+ Sigma 规则;YARA / Snort / Suricata / STIX Pattern | | `/cases` | 带有任务和可观测对象的应急响应案件管理 | | `/darkweb` | 勒索受害者、凭证、IAB 挂牌、窃密日志 | | `/connectors` | 连接器状态、可靠性评分和手动触发 | ## 端口 | 端口 | 服务 | |------|---------| | 3000 | 前端 | | 8000 | API (文档位于 `/api/docs`) | | 9200 | OpenSearch | | 5601 | OpenSearch Dashboards | | 15672 | RabbitMQ 管理 | | 9001 | MinIO 控制台 | ## API 密钥 所有来源均无需 API 密钥即可工作。可选密钥可解锁额外的覆盖范围或更高的速率限制: | 密钥 | 来源 | 益处 | |-----|--------|---------| | `OTX_API_KEY` | [otx.alienvault.com](https://otx.alienvault.com) | OTX 导入必需 | | `NVD_API_KEY` | [nvd.nist.gov](https://nvd.nist.gov/developers/request-an-api-key) | 将 NVD 速率限制提升 10 倍 | | `GREYNOISE_API_KEY` | [greynoise.io](https://greynoise.io) | 更高的富化配额 | | `ABUSEIPDB_API_KEY` | [abuseipdb.com](https://www.abuseipdb.com) | IP 信誉富化 | | `VIRUSTOTAL_API_KEY` | [virustotal.com](https://www.virustotal.com) | 多重防病毒富化 | 在 `.env` 中设置 — 有关所有选项,请参见 `.env.example`。 ## 计划任务 除了连接器之外,worker 还运行: | 任务 | 计划 | 描述 | |-----|----------|-------------| | 指标衰减 | 每天 03:00 | 降低旧 IoC 的置信度,在 90 天时撤销;30 天内被观测到的指标免受衰减影响 | | 警告列表刷新 | 每 24h | 从 MISP warninglists 刷新误报抑制列表 | ## 观测记录 从指标详情页面 (`/intel/:id`) 或通过 API 记录在您的环境中观测到指标的时间: ``` curl -X POST http://localhost:8000/api/sightings \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{ "sighting_of_ref": "indicator--...", "count": 1, "source": "siem", "note": "Seen in firewall logs" }' ``` 被观测到的指标将作为 STIX `sighting` 对象存储,并在 30 天内免受置信度衰减的影响。 ## TLP 过滤 每个 STIX 对象在摄入时都会设置一个标准的 `tlp` 字段。在 Intel 浏览器下拉菜单中或通过 API 按 TLP 进行过滤: ``` # 所有 TLP:AMBER indicators curl "http://localhost:8000/api/intel/objects?type=indicator&tlp=TLP:AMBER" # 按 source 筛选 curl "http://localhost:8000/api/intel/objects?source=cisa-kev" ``` ## 来源信任评分 每个连接器都有一个可靠性分数(0–100),在摄入数据时应用于指标置信度: | 分数 | 连接器 | |-------|-----------| | 95 | CISA KEV、NVD、MITRE ATT&CK | | 85 | Spamhaus | | 80 | Feodo Tracker、Ransomware.live、RansomLook | | 75 | URLhaus、ThreatFox、DShield | | 70–72 | MISP Feeds、TAXII | | 65–68 | AlienVault OTX、OpenPhish | 如果来自连接器(可靠性 65)的 OTX 指标的原始置信度为 60,则存储时的置信度为 `60 × 65/100 = 39`。 ## 自定义连接器 ``` from app.connectors.sdk.base import BaseConnector, ConnectorConfig, IngestResult class MyConnector(BaseConnector): def __init__(self): super().__init__(ConnectorConfig( name="my-connector", display_name="My Source", connector_type="import_external", schedule="0 */6 * * *", source_reliability=75, # 0-100, applied to indicator confidence default_tlp="TLP:CLEAR", # default TLP for all objects from this connector )) async def run(self) -> IngestResult: result = IngestResult() resp = await self.http.get("https://my-source.example.com/feed.json") r = await self.push_to_platform(self._parse(resp.json())) result.objects_created += r.objects_created return result ``` 在 `backend/app/workers/scheduler.py` 中注册它。 ## 验证连接器 无需完整技术栈即可针对实时来源测试所有连接器: ``` cd /path/to/soc-intel pip install -r backend/requirements.txt python validate_connectors.py ``` ## 生产环境 有关使用 systemd 自动启动的生产部署: ``` sudo bash scripts/install-service.sh ``` 有关反向代理设置、防火配置和数据卷备份,请参阅 [INSTALL.md](INSTALL.md)。 ## 许可证 MIT
标签:Docker Compose, Shodan, STIX, 威胁情报, 安全运营中心, 开发者工具, 搜索引擎查询, 测试用例, 网络映射, 请求拦截, 逆向工具