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, 威胁情报, 安全运营中心, 开发者工具, 搜索引擎查询, 测试用例, 网络映射, 请求拦截, 逆向工具