makhembu/iris

GitHub: makhembu/iris

轻量级威胁情报聚合与IOC关联平台,从多个开源情报源拉取、去重、评分IOC并生成告警,通过REST API对外暴露数据。

Stars: 0 | Forks: 0

# Iris — 威胁情报聚合与 IOC 平台 聚合来自多个开源信息源(AlienVault OTX、URLhaus、PhishTank)的威胁情报,对 IOC 进行去重、置信度评分、生成告警,并通过 REST API 暴露所有数据。 ## 快速开始 ``` git clone https://github.com/makhembu/iris cd iris cp .env.example .env npm install npm run build npm start # 服务器运行在 http://localhost:3000 ``` ## 架构 ``` flowchart LR Feeds["Threat Feeds
OTX, URLhaus, PhishTank"] --> Iris["iris (this service)
IOC Aggregation
Port 3000"] Iris --> Sentry["sentry
Detection Rules
Port 3001"] Iris --> PhishKit["phishkit
Phishing Analysis
Port 3002"] Iris --> PacketWatch["packetwatch
Anomaly Detection
Port 3003"] Sentry --> Trace["trace
Incident Correlation
Port 3004"] PhishKit --> Trace PacketWatch --> Trace Trace --> Nexus["nexus
Dashboard & Gateway
Port 3100"] ``` iris 负责接入原始威胁信息源,对 IOC 进行去重和评分,然后提供给下游服务用于检测、分析和关联。 ## Docker ``` # 构建并运行独立版本 docker build -t iris . docker run -p 3000:3000 iris # 运行完整生态系统 docker compose -f ../nexus/docker-compose.yml up ``` ## 信息源接入 ``` # 从所有已启用的 feeds 获取 curl -X POST http://localhost:3000/feeds/ingest # 或离线运行 npm run feed:ingest ``` ## API ### 健康检查 ``` GET /health ``` ### 查询 IOC ``` GET /iocs?type=ip&severity=critical&source=urlhaus&q=192.168&minConfidence=0.5&limit=50&offset=0 ``` ### 单个 IOC ``` GET /iocs/:id ``` ### 统计信息 ``` GET /stats ``` 返回按类型、严重程度、来源的计数,高置信度 IOC、信息源状态以及最近的告警。 ### 信息源状态 ``` GET /feeds ``` ### 告警 ``` GET /alerts?acknowledged=false POST /alerts/:id/acknowledge ``` ## 演示 ``` # 健康检查 curl http://localhost:3000/health # 列出所有 IOC curl http://localhost:3000/iocs # Stats 仪表板 curl http://localhost:3000/stats # 获取 feeds curl -X POST http://localhost:3000/feeds/ingest ``` ## 评分 置信度公式:`sourceTrust × 0.3 + crossSourceHits × 0.3 + typeWeight × 0.2 + ageFactor × 0.2` | 来源 | 信任度 | |-----------|-------| | abuse.ch | 0.9 | | Talos | 0.85 | | URLhaus | 0.8 | | PhishTank | 0.75 | | AlienVault| 0.7 | | Manual | 1.0 | ## 信息源 - **AlienVault OTX** — IP、域名、哈希、URL - **URLhaus** — 恶意软件 URL - **PhishTank** — 钓鱼 URL - abuse.ch、Talos(计划中) ## 动机 跨信息源聚合威胁情报使 SOC 分析师能够关联发现结果、降低噪音,并专注于高置信度指标。专为流水线而构建:iris 的 IOC 为 sentry 的检测规则和 trace 的事件时间线提供数据。 ## 技术栈 - TypeScript - Hono(轻量级 API 框架) - better-sqlite3(本地持久化) - 可部署在 Cloudflare Workers + D1 ## 路线图 - [x] 多信息源接入(OTX、URLhaus、PhishTank) - [x] 基于跨来源置信度评分的 IOC 去重 - [x] 支持查询过滤与分页的 REST API - [x] 针对严重/跨来源 IOC 生成告警 - [x] 信息源状态跟踪与错误报告 - [ ] 定时信息源接入(cron) - [ ] STIX/TAXII 导出 - [ ] 富化流水线(ASN 查询、WHOIS、GeoIP) - [ ] Webhook 告警转发 ## 生态系统 属于涵盖检测、分析、异常检测、事件关联和统一仪表板的[威胁情报生态系统](ECOSYSTEM.md)的一部分: | 服务 | 端口 | 描述 | |---------|------|-------------| | **iris** | **3000** | **IOC 聚合** | | [sentry](https://github.com/makhembu/sentry) | 3001 | 检测规则 | | [phishkit](https://github.com/makhembu/phishkit) | 3002 | 钓鱼分析 | | [packetwatch](https://github.com/makhembu/packetwatch) | 3003 | 异常检测 | | [trace](https://github.com/makhembu/trace) | 3004 | 事件关联 | | [nexus](https://github.com/makhembu/nexus) | 3100 | 仪表板与网关 | 使用仓库根目录下的 `threat-stack.ps1` 来运行所有服务:`.\threat-stack.ps1 start`
标签:AMSI绕过, Docker, Docker Compose, ESC4, FTP漏洞扫描, GNU通用公共许可证, IOC聚合, IP 地址批量处理, Node.js, npm, OSINT, PhishTank, REST API, TypeScript, URLhaus, 事件关联, 关联分析, 失陷标示, 威胁情报, 威胁检测, 安全仪表盘, 安全告警, 安全插件, 安全编排, 安全网关, 安全防御评估, 实时处理, 开发者工具, 异常检测, 微服务架构, 情报源接入, 提示注入防御, 数据去重, 源代码安全, 程序员工具, 网络安全, 网络钓鱼分析, 置信度评分, 自动化攻击, 请求拦截, 隐私保护