jayelbotvibe-web/threat-intel-arbiter
GitHub: jayelbotvibe-web/threat-intel-arbiter
一个基于组织上下文的轻量级威胁情报优先级排序工具,以单一 Go 二进制将 MISP 和 CISA KEV 数据转化为可操作的评分与分诊建议。
Stars: 0 | Forks: 0
# Threat Intel Arbiter
**基于组织上下文感知的威胁优先级排序,结合 SSVC v2.1 决策树分诊与 ATT&CK 标签。**
[](LICENSE)
[](https://go.dev/)
[](https://github.com/jayelbotvibe-web/threat-intel-arbiter/actions/workflows/test.yml)
单一 Go 二进制文件。仅一个运行时依赖:modernc.org/sqlite(纯 Go SQLite 驱动)。使用 Go 1.25+ 可在 60 秒内部署完毕。

Threat Intel Arbiter 将来自 MISP 和 CISA KEV 的原始威胁情报转化为针对特定组织的、经过评分和解释的操作。它只回答一个问题:
每个警报都包含:**严重程度** + **置信度** + **操作** + **解释**,并附带完整的风险评分明细。
**👥 适用人群:** 已经在运行 MISP 但没有专用 TIP 或漏洞优先级排序层的 SOC 团队。如果您淹没在 MISP 订阅源中,并且需要进行 CVE 到技术栈的匹配,但又不想搭建 OpenCTI 或 Nucleus,那么这款工具适合您。如果您没有运行 MISP,这款工具目前还派不上用场 —— 纯 KEV 模式已在路线图中。
## 产品简介
- ✅ **威胁优先级排序引擎** — 根据您的技术栈、行业部门和暴露面进行威胁评分
- ✅ **多数据源** — 目前支持 MISP + CISA KEV,路线图中包含 NVD + GitHub Advisory
- ✅ **SSVC v2.1 分诊** — CMU/CISA 决策树(Act / Attend / Track* / Track)附带可追溯的决策分支路径
- ✅ **ATT&CK 标签** — 自动将威胁映射到 MITRE ATT&CK 技术
- ✅ **EDR 集成** — 实时将 IOC 推送到 CrowdStrike Falcon
- ✅ **多用户仪表板** — admin/reader 角色,内联编辑,支持从 CMDB 导入 CSV
- ✅ **全量拉取,本地过滤** — 从 MISP 拉取所有数据,并在内部根据您的上下文进行匹配
## 什么不是
- ❌ 威胁情报平台 — [MISP](https://www.misp-project.org/) 已经做这件事了
- ❌ 漏洞扫描器 — Nessus、Qualys 等已经做这件事了
- ❌ SIEM 或 SOAR
- ❌ CMDB — 它是从 CMDB 中导入数据的
- ❌ 基于 IOC 的威胁情报工具 — 优先级排序是由 CVE 驱动的。IOC(IP、域名、哈希)会被提取用于 EDR 推送,但不会用于匹配或评分。这是一个以 MISP 作为传输渠道的 CVE 优先级排序引擎。
### 为什么不使用 SOAR / ThreatConnect / Nucleus?
这些平台非常重量级 —— 它们需要专门的基础设施、专职管理员和数周的适应期。Threat Intel Arbiter 是一个**仅 16MB 的单一二进制文件**,可在 60 秒内部署到任何机器上。如果您已经在运行 MISP,并且需要在不搭建另一个平台的情况下获取已排序优先级的警报,这就是轻量级的替代方案。它不会取代您的 SIEM 或工单系统 —— 它是为它们提供输入数据的。
## 架构
[](https://jayelbotvibe-web.github.io/threat-intel-arbiter/architecture.html)
*[点击图表 → 交互式架构页面](https://jayelbotvibe-web.github.io/threat-intel-arbiter/architecture.html),其中包含每个组件的详情抽屉。*
六阶段流水线:数据接入 → 规范化 → 缓冲 → 关联与评分 → 持久化 → 响应与展示 —— 全部封装在单一 Go 二进制文件中。
| 阶段 | 功能描述 |
|---|---|
| **Ingestion(接入)** | 拉取完整的 MISP API 数据流(无预过滤)+ CISA KEV 目录 |
| **Normalization(规范化)** | 去重、属性解析、IOC 提取、元数据丰富 |
| **Match & Score(匹配与评分)** | 在本地运行匹配器 —— 技术栈、行业部门契合度、KEV 因子、严重程度模型、置信度模型 |
| **Explainer(解释器)** | 从相同的评分结构体生成人类可读的决策依据 |
| **Routing(路由分发)** | 根据严重程度、置信度和 TLP 路由至 Slack、Teams、邮件、CrowdStrike、SIEM |
**匹配器在本地根据您的上下文运行:** 技术栈(精确/模糊 CVE 匹配)、行业契合度(NIS 行业威胁)、KEV 提升权重(被主动利用)、CVSS/EPSS 严重程度模型,以及基于数据源可靠性 + 匹配质量 + 时效性的置信度评分。
## 快速开始
```
# 前提条件:Go 1.25+,一个正在运行的 MISP 实例
go build -o arbiter ./cmd/arbiter/
# 设置你的 tech stack
cp config/techstack.csv.example config/techstack.csv
# 运行
export MISP_API_KEY="your-misp-api-key"
export ARBITER_ADMIN_KEY="your-admin-key"
./arbiter --config ./config/
```
打开 **http://localhost:8080** —— 使用用户名 `admin` 和首次启动时打印到 stdout 的密码进行登录。
## 工作原理
*单一二进制文件流水线 —— 全量拉取,本地过滤,匹配组织上下文,评分,解释,路由。*
1. **拉取** —— 从 MISP 获取所有事件(无 galaxy/tag/CVE 预过滤)。MISP 充当对等节点、ISAC、OSINT 订阅源、商业和政府数据源的聚合渠道。过滤会在本地根据您的上下文进行。
2. **规范化** —— 提取 CVE、CVSS、标签、威胁行为者、参考资料,以及用于 EDR 集成的 IOC(IP、域名、哈希)。规范的 ThreatEvent 模型与数据源无关。
3. **过滤** —— 通过 MISP 警告列表(noticelists)和公告列表(warninglists)丢弃 TLP:RED、有争议的 CVE 和已知的误报。(分析师误报标记/反馈循环已在路线图中。)
4. **匹配** —— 可插拔的匹配器:CVEMatcher(版本感知)、SectorMatcher(分类标签)、KEVMatcher(主动利用)。
5. **评分** —— 4 个维度:可能性 × 影响 × 暴露面 ÷ 最大值,置信度作为独立的维度。
6. **解释** —— 从计算得分的相同结构体中提取人类可读的明细。没有单独的代码路径。
7. **路由** —— 根据严重程度 + 置信度。紧急+高 → #sec-alerts。中 → 每周摘要。低 → 仅记录日志。IOC → CrowdStrike Falcon EDR。
### 为什么全量拉取,本地过滤
仲裁器**不**按 galaxy、tag 或 CVE 查询 MISP。它调用:
```
GET /events/restSearch?returnFormat=json&limit=100
```
在 MISP API 层面进行预过滤会遗漏威胁:未追踪的行为者在您的技术栈中利用 CVE、没有 galaxy 标签但包含与行业相关分类的事件,或者您未订阅但仍包含相关 CVE 的数据源。MISP 是一个威胁情报聚合渠道,而不是过滤网关。
### 为什么 MISP 优先
以 MISP 为优先意味着 v1 版本带来了完整的产品体验 —— 所有四个风险维度都有数据支撑。SectorMatcher 使用 MISP 分类法。置信度评分使用 sighting(目击事件)和社区信任度。解释引擎除了“CVSS 很高”(所有工具都已具备的功能)之外,还有更多实质内容可以解释。
仅依靠 NVD 将产生较单薄的产品,与 CVSS 过滤器没有区别。MISP 数据为我们提供了差异化优势。v2 将增加 NVD 和 GitHub Advisory,以覆盖没有 MISP 的组织。
## Web 仪表板
内置单页应用程序 —— 无需框架,无需构建步骤,纯粹由二进制文件提供服务的 HTML/CSS/JS。

| 屏幕 | 描述 |
|---|---|
| **Alerts(警报)** | 可搜索/可过滤的表格。点击任意行可查看包含解释、CVSS、匹配的应用程序和操作标签的完整风险明细。 |
| **Tech Stack(技术栈)** | 可内联编辑。版本(点击编辑)、关键程度(下拉菜单)、是否面向互联网(下拉菜单)。通过自定义确认对话框添加/删除应用程序。 |
| **Import CSV(导入 CSV)** | 从 CMDB(ServiceNow、Ivanti、Snipe-IT 等)拖放批量上传。增量检测显示添加/删除的内容。 |
| **Users(用户)** | 仅限管理员。创建/编辑/删除具有 admin/reader 角色的用户帐户。 |
| **Settings(设置)** | 配置管理员 API 密钥、Slack/Teams/邮件 webhook URL、CrowdStrike 凭据。 |
### 用户帐户
| 角色 | 权限 |
|---|---|
| **admin** | 完全访问权限:警报、技术栈 CRUD、CSV 导入、用户管理、设置 |
| **reader** | 只读:警报列表、警报详情、技术栈视图。无写入权限。 |
- Session cookie 认证(HttpOnly、SameSite=Strict),有效期 12 小时
- 密码哈希:Argon2id,登录时支持传统的 SHA-256 透明升级
- Session token:在 SQLite 中静态存储为 SHA-256 哈希值
- 首次启动时使用随机的一次性密码(打印到 stdout)生成默认管理员帐户。您**必须在首次登录时更改它** —— 不存在长期保留的默认凭据。
- 通过 `X-Arbiter-Key` 请求头进行程序化访问(API 密钥始终具有管理员权限)
## 部署
```
go build -o arbiter ./cmd/arbiter/
# → ~16MB static binary
# → 复制到任何 Linux/macOS/Windows 机器
# → 设置 4 个 env vars。运行。完成。
```
- 零基础设施:无需 Docker、Postgres、Redis、Python、Node
- SQLite 是单一文件 —— 备份 = `cp data/arbiter.db data/arbiter.db.bak`
- 交叉编译:`GOOS=linux GOARCH=amd64 go build`
## 延伸阅读
| 文档 | 涵盖内容 |
|---|---|
| [系统设计](docs/design.md) | 完整架构、评分公式、数据库 schema、定位策略 |
| [EDR — CrowdStrike Falcon](docs/edr-crowdstrike.md) | IOC 提取、OAuth2、批处理、去重、模拟模式 |
| [架构图](https://jayelbotvibe-web.github.io/threat-intel-arbiter/architecture.html) | 交互式 6 阶段流水线 —— 点击任意区块查看详情 |
| [API 参考](#api) | 完整的 endpoint 参考(见下文) |
| [安全策略](SECURITY.md) | 威胁模型、缓解措施、漏洞报告 |
## v1 数据源
- **MISP** ★ 主要来源 — REST API,HMAC-SHA256 认证。每 15 分钟拉取一次。追踪 NEW/MODIFIED/DELETED 事件。提取所有 galaxy、分类法和 sighting 数据。
- **CISA KEV** ★ 次要来源 — 公开 JSON,无需认证。每天拉取。每个条目都是确认被主动利用的漏洞。
v2 路线图:NVD API、GitHub Advisory、供应商订阅源、RSS 连接器。
## 设计决策
| 决策 | 原因 |
|---|---|
| 全量拉取,本地过滤 | 在 MISP 处预过滤会遗漏威胁。匹配引擎拥有完整的组织上下文。 |
| 从第一天起就采用规范的 ThreatEvent | 增加一个数据源 = 添加 1 个规范化器。如果没有这个 = 重写引擎。 |
| 具有 admin/reader 角色的多用户认证 | SOC 团队需要独立的登录凭据。自包含于 SQLite 中,无需外部 IdP。 |
| 使用 Argon2id 而非 bcrypt | golang.org/x/crypto 是慢速 KDF 中最接近标准库的方案。自描述的哈希格式支持传统的 SHA-256 透明升级。 |
| 单一二进制文件,每个组织一个 | 几分钟内即可部署。多租户将在 v2 中支持。 |
| 通过 IOC 进行 EDR 集成,而不仅仅是警报 | 闭环从检测到预防。实时将 IOC 提供给 CrowdStrike Falcon。 |
## 技术栈
| 组件 | 技术 | 原因 |
|---|---|---|
| 语言 | Go 1.25+ | 单一二进制文件,标准库涵盖约 95% 的功能 |
| HTTP | net/http | 标准库 |
| 数据库 | SQLite (modernc.org/sqlite) | 纯 Go,零配置,基于文件 |
| 认证 | golang.org/x/crypto/argon2 + crypto/sha256 | Argon2id 密码哈希 + session token |
| **依赖项** | **1** | modernc.org/sqlite(及其传递依赖) |
## 文件结构
```
threat-intel-arbiter/
├── cmd/arbiter/main.go # Entry point
├── internal/
│ ├── source/ # MISP + KEV connectors + normalizers
│ ├── model/ # Canonical ThreatEvent, Match, Alert, OrgContext
│ ├── filter/ # Warning list filter
│ ├── match/ # CVEMatcher, SectorMatcher, KEVMatcher + version subsystem
│ ├── risk/ # 4-dim scoring + explainability + dedup
│ ├── notify/ # Slack, Teams, Email, Webhook, CrowdStrike routers
│ ├── api/ # HTTP server, auth, dashboard
│ ├── store/ # SQLite layer
│ └── config/ # JSON config loading + CSV parsing
├── config/ # Example config files
├── docs/ # Design document, architecture diagrams, EDR docs
└── data/ # SQLite database (created at runtime)
```
## API 参考
所有 endpoint 都需要认证(session cookie 或 `X-Arbiter-Key`)。`/health` 是唯一的 endpoint。
### 认证
| Endpoint | 方法 | 描述 |
|---|---|---|
| `/login` | GET | 登录页面 (HTML) |
| `/auth/login` | POST | `{username, password}` → session cookie + `{role, username}` |
| `/auth/logout` | POST | 清除 session |
| `/auth/session` | GET | 当前的 `{username, role}` |
### 警报与数据
| Endpoint | 方法 | 描述 |
|---|---|---|
| `/api/alerts` | GET | 列出警报。查询参数:`?severity=`、`?status=`、`?q=`、`?app=` |
| `/api/alerts/:id` | GET | 包含 explanation、action、routed_to 的单个警报 |
| `/api/techstack` | GET | 包含所有字段的完整技术栈 |
| `/api/stats` | GET | 按严重程度统计的警报数 + 追踪的应用程序 |
| `/health` | GET | 公开。MISP 状态、KEV 条目、警报计数 |
### 管理(需要管理员角色或 API 密钥)
| Endpoint | 方法 | 描述 |
|---|---|---|
| `/admin/ack/:id` | POST | 更新警报状态:`acked`、`false_pos`、`resolved` |
| `/admin/import` | POST | 上传 techstack.csv,增量检测 |
| `/admin/pull` | POST | 触发立即从所有数据源拉取 |
| `/admin/techstack` | POST | 添加单个应用程序 |
| `/admin/techstack` | PUT | 更新单个应用程序 |
| `/admin/techstack` | DELETE | 删除单个应用程序 `{name}` |
| `/admin/users` | GET | 列出所有用户 |
| `/admin/users` | POST | 创建用户 `{username, password, role}` |
| `/admin/users` | PUT | 更新用户角色/密码 |
| `/admin/users` | DELETE | 删除用户(无法删除最后一个管理员) |
## 许可证
MIT — 有关全文,请参见 [LICENSE](LICENSE)。
由 [@jayelbotvibe](https://github.com/jayelbotvibe-web) 构建
⭐ 如果觉得有用,请**给本仓库点 Star**。如需提交 Bug 或功能请求,请[开启一个 issue](https://github.com/jayelbotvibe-web/threat-intel-arbiter/issues)。
**路线图:** NVD API + GitHub Advisory 数据源,Microsoft Defender / SentinelOne EDR 连接器,多租户。
*单一二进制文件流水线 —— 全量拉取,本地过滤,匹配组织上下文,评分,解释,路由。*
1. **拉取** —— 从 MISP 获取所有事件(无 galaxy/tag/CVE 预过滤)。MISP 充当对等节点、ISAC、OSINT 订阅源、商业和政府数据源的聚合渠道。过滤会在本地根据您的上下文进行。
2. **规范化** —— 提取 CVE、CVSS、标签、威胁行为者、参考资料,以及用于 EDR 集成的 IOC(IP、域名、哈希)。规范的 ThreatEvent 模型与数据源无关。
3. **过滤** —— 通过 MISP 警告列表(noticelists)和公告列表(warninglists)丢弃 TLP:RED、有争议的 CVE 和已知的误报。(分析师误报标记/反馈循环已在路线图中。)
4. **匹配** —— 可插拔的匹配器:CVEMatcher(版本感知)、SectorMatcher(分类标签)、KEVMatcher(主动利用)。
5. **评分** —— 4 个维度:可能性 × 影响 × 暴露面 ÷ 最大值,置信度作为独立的维度。
6. **解释** —— 从计算得分的相同结构体中提取人类可读的明细。没有单独的代码路径。
7. **路由** —— 根据严重程度 + 置信度。紧急+高 → #sec-alerts。中 → 每周摘要。低 → 仅记录日志。IOC → CrowdStrike Falcon EDR。
### 为什么全量拉取,本地过滤
仲裁器**不**按 galaxy、tag 或 CVE 查询 MISP。它调用:
```
GET /events/restSearch?returnFormat=json&limit=100
```
在 MISP API 层面进行预过滤会遗漏威胁:未追踪的行为者在您的技术栈中利用 CVE、没有 galaxy 标签但包含与行业相关分类的事件,或者您未订阅但仍包含相关 CVE 的数据源。MISP 是一个威胁情报聚合渠道,而不是过滤网关。
### 为什么 MISP 优先
以 MISP 为优先意味着 v1 版本带来了完整的产品体验 —— 所有四个风险维度都有数据支撑。SectorMatcher 使用 MISP 分类法。置信度评分使用 sighting(目击事件)和社区信任度。解释引擎除了“CVSS 很高”(所有工具都已具备的功能)之外,还有更多实质内容可以解释。
仅依靠 NVD 将产生较单薄的产品,与 CVSS 过滤器没有区别。MISP 数据为我们提供了差异化优势。v2 将增加 NVD 和 GitHub Advisory,以覆盖没有 MISP 的组织。
## Web 仪表板
内置单页应用程序 —— 无需框架,无需构建步骤,纯粹由二进制文件提供服务的 HTML/CSS/JS。

| 屏幕 | 描述 |
|---|---|
| **Alerts(警报)** | 可搜索/可过滤的表格。点击任意行可查看包含解释、CVSS、匹配的应用程序和操作标签的完整风险明细。 |
| **Tech Stack(技术栈)** | 可内联编辑。版本(点击编辑)、关键程度(下拉菜单)、是否面向互联网(下拉菜单)。通过自定义确认对话框添加/删除应用程序。 |
| **Import CSV(导入 CSV)** | 从 CMDB(ServiceNow、Ivanti、Snipe-IT 等)拖放批量上传。增量检测显示添加/删除的内容。 |
| **Users(用户)** | 仅限管理员。创建/编辑/删除具有 admin/reader 角色的用户帐户。 |
| **Settings(设置)** | 配置管理员 API 密钥、Slack/Teams/邮件 webhook URL、CrowdStrike 凭据。 |
### 用户帐户
| 角色 | 权限 |
|---|---|
| **admin** | 完全访问权限:警报、技术栈 CRUD、CSV 导入、用户管理、设置 |
| **reader** | 只读:警报列表、警报详情、技术栈视图。无写入权限。 |
- Session cookie 认证(HttpOnly、SameSite=Strict),有效期 12 小时
- 密码哈希:Argon2id,登录时支持传统的 SHA-256 透明升级
- Session token:在 SQLite 中静态存储为 SHA-256 哈希值
- 首次启动时使用随机的一次性密码(打印到 stdout)生成默认管理员帐户。您**必须在首次登录时更改它** —— 不存在长期保留的默认凭据。
- 通过 `X-Arbiter-Key` 请求头进行程序化访问(API 密钥始终具有管理员权限)
## 部署
```
go build -o arbiter ./cmd/arbiter/
# → ~16MB static binary
# → 复制到任何 Linux/macOS/Windows 机器
# → 设置 4 个 env vars。运行。完成。
```
- 零基础设施:无需 Docker、Postgres、Redis、Python、Node
- SQLite 是单一文件 —— 备份 = `cp data/arbiter.db data/arbiter.db.bak`
- 交叉编译:`GOOS=linux GOARCH=amd64 go build`
## 延伸阅读
| 文档 | 涵盖内容 |
|---|---|
| [系统设计](docs/design.md) | 完整架构、评分公式、数据库 schema、定位策略 |
| [EDR — CrowdStrike Falcon](docs/edr-crowdstrike.md) | IOC 提取、OAuth2、批处理、去重、模拟模式 |
| [架构图](https://jayelbotvibe-web.github.io/threat-intel-arbiter/architecture.html) | 交互式 6 阶段流水线 —— 点击任意区块查看详情 |
| [API 参考](#api) | 完整的 endpoint 参考(见下文) |
| [安全策略](SECURITY.md) | 威胁模型、缓解措施、漏洞报告 |
## v1 数据源
- **MISP** ★ 主要来源 — REST API,HMAC-SHA256 认证。每 15 分钟拉取一次。追踪 NEW/MODIFIED/DELETED 事件。提取所有 galaxy、分类法和 sighting 数据。
- **CISA KEV** ★ 次要来源 — 公开 JSON,无需认证。每天拉取。每个条目都是确认被主动利用的漏洞。
v2 路线图:NVD API、GitHub Advisory、供应商订阅源、RSS 连接器。
## 设计决策
| 决策 | 原因 |
|---|---|
| 全量拉取,本地过滤 | 在 MISP 处预过滤会遗漏威胁。匹配引擎拥有完整的组织上下文。 |
| 从第一天起就采用规范的 ThreatEvent | 增加一个数据源 = 添加 1 个规范化器。如果没有这个 = 重写引擎。 |
| 具有 admin/reader 角色的多用户认证 | SOC 团队需要独立的登录凭据。自包含于 SQLite 中,无需外部 IdP。 |
| 使用 Argon2id 而非 bcrypt | golang.org/x/crypto 是慢速 KDF 中最接近标准库的方案。自描述的哈希格式支持传统的 SHA-256 透明升级。 |
| 单一二进制文件,每个组织一个 | 几分钟内即可部署。多租户将在 v2 中支持。 |
| 通过 IOC 进行 EDR 集成,而不仅仅是警报 | 闭环从检测到预防。实时将 IOC 提供给 CrowdStrike Falcon。 |
## 技术栈
| 组件 | 技术 | 原因 |
|---|---|---|
| 语言 | Go 1.25+ | 单一二进制文件,标准库涵盖约 95% 的功能 |
| HTTP | net/http | 标准库 |
| 数据库 | SQLite (modernc.org/sqlite) | 纯 Go,零配置,基于文件 |
| 认证 | golang.org/x/crypto/argon2 + crypto/sha256 | Argon2id 密码哈希 + session token |
| **依赖项** | **1** | modernc.org/sqlite(及其传递依赖) |
## 文件结构
```
threat-intel-arbiter/
├── cmd/arbiter/main.go # Entry point
├── internal/
│ ├── source/ # MISP + KEV connectors + normalizers
│ ├── model/ # Canonical ThreatEvent, Match, Alert, OrgContext
│ ├── filter/ # Warning list filter
│ ├── match/ # CVEMatcher, SectorMatcher, KEVMatcher + version subsystem
│ ├── risk/ # 4-dim scoring + explainability + dedup
│ ├── notify/ # Slack, Teams, Email, Webhook, CrowdStrike routers
│ ├── api/ # HTTP server, auth, dashboard
│ ├── store/ # SQLite layer
│ └── config/ # JSON config loading + CSV parsing
├── config/ # Example config files
├── docs/ # Design document, architecture diagrams, EDR docs
└── data/ # SQLite database (created at runtime)
```
## API 参考
所有 endpoint 都需要认证(session cookie 或 `X-Arbiter-Key`)。`/health` 是唯一的 endpoint。
### 认证
| Endpoint | 方法 | 描述 |
|---|---|---|
| `/login` | GET | 登录页面 (HTML) |
| `/auth/login` | POST | `{username, password}` → session cookie + `{role, username}` |
| `/auth/logout` | POST | 清除 session |
| `/auth/session` | GET | 当前的 `{username, role}` |
### 警报与数据
| Endpoint | 方法 | 描述 |
|---|---|---|
| `/api/alerts` | GET | 列出警报。查询参数:`?severity=`、`?status=`、`?q=`、`?app=` |
| `/api/alerts/:id` | GET | 包含 explanation、action、routed_to 的单个警报 |
| `/api/techstack` | GET | 包含所有字段的完整技术栈 |
| `/api/stats` | GET | 按严重程度统计的警报数 + 追踪的应用程序 |
| `/health` | GET | 公开。MISP 状态、KEV 条目、警报计数 |
### 管理(需要管理员角色或 API 密钥)
| Endpoint | 方法 | 描述 |
|---|---|---|
| `/admin/ack/:id` | POST | 更新警报状态:`acked`、`false_pos`、`resolved` |
| `/admin/import` | POST | 上传 techstack.csv,增量检测 |
| `/admin/pull` | POST | 触发立即从所有数据源拉取 |
| `/admin/techstack` | POST | 添加单个应用程序 |
| `/admin/techstack` | PUT | 更新单个应用程序 |
| `/admin/techstack` | DELETE | 删除单个应用程序 `{name}` |
| `/admin/users` | GET | 列出所有用户 |
| `/admin/users` | POST | 创建用户 `{username, password, role}` |
| `/admin/users` | PUT | 更新用户角色/密码 |
| `/admin/users` | DELETE | 删除用户(无法删除最后一个管理员) |
## 许可证
MIT — 有关全文,请参见 [LICENSE](LICENSE)。
由 [@jayelbotvibe](https://github.com/jayelbotvibe-web) 构建
⭐ 如果觉得有用,请**给本仓库点 Star**。如需提交 Bug 或功能请求,请[开启一个 issue](https://github.com/jayelbotvibe-web/threat-intel-arbiter/issues)。
**路线图:** NVD API + GitHub Advisory 数据源,Microsoft Defender / SentinelOne EDR 连接器,多租户。标签:EVTX分析, Go, Ruby工具, SSVC, 威胁情报, 安全运营, 开发者工具, 扫描框架, 日志审计, 漏洞优先级排序