Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ThreatIntel-Aggregator — 自托管威胁情报平台——支持情报源聚合、AI 分诊、MITRE ATT&CK 覆盖,以及与 Sentinel 集成的检测工程。可独立运行,也可与 Azure 完全集成。 | Kitploit
工具/GitHubGitHub/ethan-andrews/threatintel-aggregator
防御工具危害指标 (IOC) 管理威胁源与聚合器漏洞分析信息收集安全虚拟化威胁情报事件响应AI 安全

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
日志分析
GitHubethan-andrews/threatintel-aggregator

ThreatIntel-Aggregator

自托管威胁情报平台——支持情报源聚合、AI 分诊、MITRE ATT&CK 覆盖,以及与 Sentinel 集成的检测工程。可独立运行,也可与 Azure 完全集成。

查看仓库
1491天前尚未审核

威胁情报聚合器

Banner

Typing SVG

License Backend Tests Frontend Build Buy Me a Coffee

一个自托管的威胁情报平台,聚合来自 60 多家安全厂商的 RSS 源,运行 AI 分类,将发现与您的 RunZero 资产清单进行关联,并通过深色模式 Web 仪表板呈现可操作的警报。

设计为可独立运行、零云依赖,或完全集成到 Azure/Entra/Sentinel 环境中——选择与您现有条件相匹配的层级。


部署层级

层级脚本AI 分类认证存储您将获得
基础版scripts/setup-basic.sh关闭本地 API 密钥本地 Postgres (Docker)源聚合、IOC 提取、MITRE 矩阵、仪表板——无 AI、无云、无需注册任何服务
基础版 + APIscripts/setup-basic-api.shAnthropic(直连)本地 API 密钥本地 Postgres (Docker)上述所有功能,外加 AI 严重性/TTP/摘要分类
Azure + APIscripts/setup-azure.ps1Azure AI FoundryMicrosoft Entra ID SSO您自己的 Postgres(Azure Database for PostgreSQL 等)完整部署到 Azure Container Apps,支持按用户角色的 SSO。(detections.ai 管道集成将在未来版本中推出——见下文。)

这三个层级运行完全相同的应用程序代码——唯一变化的是设置了哪些环境变量。完整参考请参见环境变量。```bash

Basic — no AI, no cloud

./scripts/setup-basic.sh

Basic + API — adds direct Anthropic triage

./scripts/setup-basic-api.sh

Azure + API — full SIEM-integrated deployment (PowerShell 7+, az CLI)

./scripts/setup-azure.ps1

root@kitploit:~
两个 bash 脚本会启动一个本地 Postgres 容器、应用 schema,并为你生成 `backend/.env` / `frontend/.env.local` —— 然后打印出实际启动应用的两条命令(`pip install` + 运行后端,`npm install` + 运行前端开发服务器)。`setup-azure.ps1` 是 `infra/provision.ps1` 的轻量封装,后者才是真正的 Azure Container Apps 部署运行手册。

---

## 功能特性

- **Feed 聚合** —— 按计划轮询 60+ 个 Tier 1/2/3 安全 RSS 源;自动去重并过滤推广内容
- **AI 分诊** —— 对每个条目进行分类,标注严重性(Critical/High/Medium/Low/Informational)、MITRE ATT&CK TTP 以及通俗易懂的摘要。提供商模块化:可直接使用 Anthropic API 或 Azure AI Foundry,通过一个环境变量即可切换,两种方式功能均无损失
- **IOC 提取** —— 自动从每个条目中提取 IP、域名、URL、文件哈希和 CVE
- **RunZero 集成** —— 同步你的资产清单,并将威胁情报与实时资产进行关联;基于 CVE、软件名称、操作系统版本和 IP 地址进行匹配。`RUNZERO` 下有三个子标签页:**Matches**(与你的清单关联的条目,可按严重性/日期/置信度/KEV 过滤)、**Exposure**(组织级别的已确认/可能暴露状态及修复跟踪)和 **Metrics**(随时间变化的摄入与修复趋势)
- **Your Stack** —— 定义你环境中的软件/操作系统;按相关性对所有条目重新评分
- **IOC 台账** —— 所有已提取指标的可搜索台账,包含条目交叉引用和 STIX/CSV 导出
- **MITRE ATT&CK 矩阵** —— 已摄入威胁情报中 TTP 覆盖范围的热力图
- **Feed 健康仪表盘** —— 每个 Feed 的轮询状态、连续失败跟踪以及 7 天文章量
- **Detections** —— 一个 9 标签页的审查界面(见下文),涵盖所有注册为检测的内容,无论是 AI 生成的、从你自己的文件导入的,还是从实时 Sentinel 工作区同步的
- **模块化认证** —— 支持基于角色的访问控制的 Microsoft Entra ID SSO,或使用单个共享本地 API 密钥且零 Azure 依赖。由前端自动检测;参见 [认证模式](#auth-modes)

### 两个与检测相关的功能

本仓库实际上在“detections”这一总括下提供了两个相关但可独立使用的东西:

1. **`DETECTIONS` 标签页** —— 一个自包含的审查界面,分为九个子标签页:
   - **All Detections** —— 已注册分析规则的完整目录,可按技术/处置/审查状态过滤,每条均可展开查看其描述和完整 KQL。
   - **Defender Custom Detections** —— 同一目录,但锁定为面向 Microsoft Defender for Endpoint 自定义检测规则而非 Sentinel 分析规则的检测。
   - **Alignment Reviews** —— 每当一个检测分析规则针对某个 MITRE 技术注册时,AI 检查会将其实际覆盖范围与 MITRE 对该技术的自身描述进行比较。当出现偏差或仅部分覆盖该技术时,它会作为人工审查项出现在这里,附带 AI 的推理、建议的 KQL 修复以及该修复自身的验证结果(静态门禁 + 回测)—— 绝非盲目建议。
   - **Disposition Alerts** —— 一个腐化检测队列:已批准的分析规则若其遥测衰减或其底层规则开始报错,会在此被标记以供重新审查,以其自身的检测名称命名,而不仅仅是共享的 MITRE 技术。
   - **Generated Hunts** —— 检测被分组为 hunt(目前每个导入文件一个;一旦该集成上线,每个来源 TI 文章/detections.ai 项目一个),与 Microsoft Sentinel 自身的 Hunts 功能相匹配。一个 hunt 可以同步到真实的 Sentinel 工作区,作为 `Microsoft.SecurityInsights/hunts` 对象及其组成部分的已保存搜索查询(受 `SENTINEL_HUNTING_SYNC_ENABLED` 和 `mode` —— off/manual/auto —— 控制,可在 Settings > API Settings 中按团队配置;除非你选择加入,否则绝不会静默自动推送)。
   - **Sentinel Hunts** —— 实际部署到你的 Sentinel 工作区 Hunting 功能中的实时清单,直接从 ARM 拉取,而非本应用自身的同步历史;包含可按查询测试/调优建议,你可以就地应用或忽略。
   - **Sentinel Analytics Rules** —— 对 Microsoft Sentinel 的 Analytics Rules(`Microsoft.SecurityInsights/alertRules`)采用相同思路 —— 这是与 Hunting 不同的 Sentinel 资源类型,因为这些才是按计划实际触发事件/告警的规则 —— 并具有相同的调优建议应用/忽略工作流。
   - **Local Detections** —— 参见下文 [在没有 Sentinel 或 AI 提供商的情况下运行](#running-without-sentinel-or-an-ai-provider-local-detections-import)。
   - **Audit Log**(仅管理员)—— 本应用实际运行过的每一项检查的跨管道记录:AI 生成的检测门禁/控制探针结果、Sentinel hunt 同步尝试以及 Sentinel hunt 查询/分析规则测试运行,合并为一个分页、可过滤的列表 —— 刻意覆盖任何单一审查标签页都无法独自覆盖的内容。

   完全在主后端内运行,审查界面本身无需额外部署。其自身的 API 设计刻意遵循下文 detections.ai 的约定,尽管它完全自包含。
2. **detections.ai 管道编排器 —— 即将推出。** detections.ai 正在开发一个用于 AI 辅助检测生成的公共 API,本仓库已为其构建了真实集成(`backend/detection_pipeline/orchestrator.py`),它接收已分诊的威胁情报,对照现有检测覆盖范围进行检查,并作为计划任务为你的 Sentinel 工作区生成 KQL 草稿。该集成将在 API 可用后支持它,目前尚未包含在此公开版本中。与此同时,**你完全不需要它就能使用 Detections 标签页** —— 下文 [Local Detections Import](#running-without-sentinel-or-an-ai-provider-local-detections-import) 为当今无 AI 生成和无 Sentinel 的设置覆盖了相同的“将真实检测引入本应用”目标。

### 在没有 Sentinel 或 AI 提供商的情况下运行:Local Detections Import

鉴于本应用的名称和主要卖点,**Basic** 层自托管用户最常见的问题大概是 *“我没有配置 Sentinel 或 AI 提供商 —— 我还能从 Detections/Hunts 标签页中得到任何东西吗?”* 答案是肯定的:将应用指向你自己检测规则文件的文件夹(手写的、从真实 Sentinel/Defender 租户导出的,或从公共 Sigma/Sentinel 规则仓库拉取的),它就会对它们进行编目、MITRE 标记和静态验证 —— 这一切都不需要 Sentinel 连接,也不需要 `DETECTIONS_AI_API_KEY`/Anthropic 密钥。

- **第一天支持的格式:** 原始 `.kql`/`.txt`/`.yar`/`.spl` 或任意扩展名的文件,每个文件可选配一个 `.json`/`.yaml` sidecar(`{"file": "myrule.kql", "title": "...", "description": "...", "technique_id": "T1059.001"}`)以提供元数据,而 Microsoft 自身的导出无需单独声明这些元数据;YARA;Suricata;Sigma YAML(单文档或多文档);Splunk SPL;以及 Microsoft 自身原生导出的 Analytics Rule/Hunting Query JSON(只有 `Scheduled` 类型的规则携带本应用可评估的原始 KQL 查询 —— 其他所有类型都会被识别并报告,而非静默跳过)。
- **导入文件上实际运行的内容:** 对 KQL 内容进行静态验证(与 AI 生成路径使用的相同的持久性/发现引擎);如果你*确实*配置了 AI 提供商,还会进行 MITRE 对齐检查(这是独立于 Sentinel 的一个维度 —— 你可以拥有其一、两者或都没有);所有依赖 Sentinel 的内容(回测、遥测探针、处置跟踪)都不在范围内,并会显示为“未配置 Sentinel 连接”,而不是误导性的空白单元格。
- **它显示在哪里:** 导入的内容会成为普通的 hunt/检测行 —— 相同的表格、相同的审查工作流、相同的 MITRE 技术显示,与 AI 管道生成的任何内容一样 —— 因此它也会出现在常规的 `ALL DETECTIONS`/`GENERATED HUNTS` 视图中,而不仅仅是它自己的标签页。专用的 **Local Detections** 子标签页(位于 `DETECTIONS` 下,仅管理员可触发导入)是你将其指向文件夹并查看每个文件进度/结果的地方。
- **设置:** 将 `LOCAL_IMPORT_DIR` 设置为后端文件系统上的绝对路径(在容器部署中为挂载卷)—— 所有导入内容都必须位于该根目录下;UI 允许你在其下选择子路径,而绝不是任意文件系统位置。参见 [环境变量](#environment-variables)。
- **立即试用:** `examples/local-detections-samples/` 附带一个小的即用型导入文件夹 —— 两条有效的 KQL 规则(其中一条配有 `.json` sidecar 以展示该机制)、一条故意无效的规则(以查看标记为无效的横幅)以及一个无法识别的文件(以查看导入失败的横幅)。将 `LOCAL_IMPORT_DIR` 指向它,即可在你的首次导入中看到全部三种结果状态,无需编写规则。

**Local Detections** —— 一次完成的导入运行:摘要横幅会指出那些已被编目但被静态分析标记为无效的文件(此处是一条针对单个硬编码哈希告警的规则),与那些干净导入的文件并列显示,并且每个文件都会成为下方普通的 hunt/检测行

![Local Detections](https://assets.kitploit.com/production/public/readmes/55296/caf1d88594b2bef58bc52b99a779da6d51aeb2b032ae1808fb114c1b8d6aca07/8985c51d3404ac6592121c1d2217d5faa6551c97d65600b3a9b050d5cd4767ce-display-v1.webp)

---

## 截图

以下所有截图均使用为文档生成的合成数据(虚假组织名称、RFC 5737 示例 IP、`.example` 域名)—— 不包含真实威胁情报或客户数据。

**Feed** —— 浏览和过滤已分诊的威胁情报条目,包含严重性、标签、IOC 和 TTP

![Feed](https://assets.kitploit.com/production/public/readmes/55296/e75cea290ced1c3b96346bf04578c6964569b5c70ac4982b91a9f2fea761c4e9/75ad877a8fafd97692b94e9f033f28191973ff10ec6d94626633f13cad189cc1-display-v1.webp)

<br>

**Dashboard** —— 一目了然的严重性分布和顶级 MITRE ATT&CK 技术

![Dashboard](https://assets.kitploit.com/production/public/readmes/55296/eb48a8bbda9454d3f9e134228080ca250d581375f16e4828da282592278c7118/58f1568d9f9896867c01334e00cc8ef3dfb55f2e31a637a349ff2c5f0718b4c2-display-v1.webp)

<br>

**MITRE ATT&CK** —— 已摄入情报中技术覆盖范围的完整矩阵热力图

![MITRE ATT&CK](https://assets.kitploit.com/production/public/readmes/55296/9df0d60a5197e785dd85356a6beba126ef16bd91518f2d84108b987afaaf9b06/cac6e7cbe4f1b993265c84719288aa8789814fe1aff97821b5f0f27baaf65e3d-display-v1.webp)

<br>

**Your Stack** —— 定义你的环境;Feed 条目按相关性重新评分

![Your Stack](https://assets.kitploit.com/production/public/readmes/55296/40839d08db86d678c276bb6d52ec403f807a6593f58b341db27e3e7d8701f652/b7ebedd6e968a264cdf73259aa8d8fef404795023efd998f5a9b0255556f77c2-display-v1.webp)

<br>

**IOCs** —— 所有已提取指标的可搜索台账,支持 STIX/CSV 导出

![IOCs](https://assets.kitploit.com/production/public/readmes/55296/87ac0ff28d571697f6f3ab0ca6905ab5e137bb190cc0bca1fc064db88904614b/e7f960a68d10c87a9467eb42e438cdd81026c5eb5daa9667f9185dc7b395ebe6-display-v1.webp)

<br>

**Integrations** —— Sentinel、Defender 和 RunZero 的连接器概览:已配置/已启用状态以及进入各自标签页的快捷方式

![Integrations](https://assets.kitploit.com/production/public/readmes/55296/b261064e5162d7dd615fab4d8eb332735cc412ae6ada1e095c2bca0f0afcf989/d92aa2477825a8eeb126bb5fa3396f3292fe8af23a7806538d9f74eb561efac2-display-v1.webp)

<br>

**RunZero** —— 资产关联、组织级暴露跟踪和修复指标,全部来源于你的 RunZero 清单

![RunZero](https://assets.kitploit.com/production/public/readmes/55296/1c14c9bf6fa927012db3fef13c5fbe9187aaf3a9e914358b7408a872f61dc6d0/be053e10181d5b79a14a9aff7b249c3450cf787f0379d84651bb060bf9c2b8b6-display-v1.webp)

<br>

**Exposure** —— 按威胁匹配数量排名的组织;点击任意卡片查看匹配的条目

![Exposure](https://assets.kitploit.com/production/public/readmes/55296/f80096a602e70e3b462c5d98ac4f04b0ebdc6c47c1efb055bd56f552d55823e4/0bfec2320b8e1f189bfd645a816444587f7fd056377e85ff2c1d34df12b1ab44-display-v1.webp)

<br>

**Detections** —— 已注册分析规则的完整目录(AI 生成和本地导入的皆然),每条均带有其静态门禁/回测/审查状态和 MITRE 技术

![Detections](https://assets.kitploit.com/production/public/readmes/55296/bbf5ddc849c368101e54def614a377ba8bcca705cecf65949dc7b93f1a9dea1f/75df6746fea32f7dac1a0f52b099142c3d48fcdd1dbfcea87b9d20306d178ccd-display-v1.webp)

<br>

**Settings** —— AI 分诊控制、Feed 健康监控、来源信任评分和用户管理

![Settings](https://assets.kitploit.com/production/public/readmes/55296/af5be9150416723dd8d0bd311029cc530869c52d514c67f4974a9bbf3d699f99/5964908fc2ae52d0f88149bb6d040898addf7fe99ef154eb7598e1adc3fefda5-display-v1.webp)

---

## 架构```
┌─────────────────────────────────────────┐
│  Next.js 16 frontend (port 3000)        │
│  Tailwind CSS · dark theme              │
└──────────────┬──────────────────────────┘
               │ REST API (Bearer token)
┌──────────────▼──────────────────────────┐
│  FastAPI backend (port 8000)            │
│  APScheduler · slowapi rate limiting    │
└──┬──────────┬──────────┬────────────┬───┘
   │          │          │            │
Postgres   AI provider  RunZero API  detections.ai
           (modular:    (asset sync)  (coming soon --
           Anthropic or                see Features below)
           Azure AI Foundry)

后端(backend/)—— Python 3.12 + FastAPI。所有存储均使用 Postgres(SQLite 和 Azure Blob Storage 已完全弃用)。AI 提供商和认证方式均通过环境变量选择,而非硬编码——详见下文。

前端(frontend/)—— Next.js 16、纯 JavaScript、Tailwind CSS。加载时自动从后端检测认证模式。

基础设施(infra/)—— 用于 Container Apps、Key Vault 和 Container Registry 的 Azure Bicep 模板(apps.bicep + platform.bicep + app-stack.bicep,通过 provision.ps1 部署)。仅与 Azure + API 层级相关。


认证模式

设置了 AZURE_AD_TENANT_ID → Entra 模式:Microsoft Entra ID SSO,按用户分配角色(首次登录者成为管理员,其余人默认为查看者)。

未设置 AZURE_AD_TENANT_ID → 本地模式:单个共享的 LOCAL_API_KEY 为任何持有者授予管理员访问权限。无用户管理,无 Azure 依赖。前端在加载时调用 GET /api/auth/mode,并自动渲染匹配的登录界面——前端侧无需任何配置。

两种模式随后都会签发相同类型的应用签名 JWT,因此无论令牌由哪种模式签发,其他所有路由(require_auth/require_admin)的工作方式完全相同。


本地开发

前置条件

  • Python 3.12+
  • Node.js 20+
  • Docker(用于本地 Postgres——参见安装脚本)

最快路径

运行 scripts/setup-basic.sh 或 scripts/setup-basic-api.sh(参见部署层级)——它们会为你处理 Postgres 和 .env 生成。然后:```bash cd backend && pip install -r requirements.txt && uvicorn main:app --reload --port 8000 cd frontend && npm install && npm run dev

root@kitploit:~
### 手动设置```bash
cd backend
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp env.example .env              # fill in required values — see Environment Variables below
uvicorn main:app --reload --port 8000

使用示例

基本用法

root@kitploit:~
# 扫描单个目标
python3 cve_2025_55182.py -u https://target.example.com

# 使用详细输出进行扫描
python3 cve_2025_55182.py -u https://target.example.com -v

# 扫描多个目标
python3 cve_2025_55182.py -f targets.txt -o results.json

高级用法

root@kitploit:~
# 使用自定义超时和线程数
python3 cve_2025_55182.py -u https://target.example.com -t 30 --threads 10

# 使用代理进行扫描
python3 cve_2025_55182.py -u https://target.example.com --proxy http://127.0.0.1:8080

# 使用自定义载荷进行扫描
python3 cve_2025_55182.py -u https://target.example.com --payload custom_payload.txt

命令行选项

root@kitploit:~
选项:
  -h, --help            显示此帮助信息并退出
  -u URL, --url URL     要扫描的目标 URL
  -f FILE, --file FILE  包含目标 URL 的文件
  -o OUTPUT, --output OUTPUT
                        输出文件(JSON 格式)
  -t TIMEOUT, --timeout TIMEOUT
                        请求超时时间(秒,默认:10)
  --threads THREADS     并发线程数(默认:5)
  --proxy PROXY         用于请求的代理 URL
  -v, --verbose         启用详细输出
  --payload PAYLOAD     自定义载荷文件

工作原理

该工具利用 CVE-2025-55182 漏洞,这是一个影响 [组件名称] 的 [漏洞类型] 漏洞。该漏洞允许攻击者 [漏洞影响描述]。

攻击流程

  1. 侦察:工具首先检查目标是否可访问,并识别 [组件名称] 的版本。
  2. 漏洞检测:发送特制请求以确定目标是否易受攻击。
  3. 利用:如果目标易受攻击,工具会发送利用载荷以 [利用效果]。
  4. 验证:工具验证利用是否成功。

技术细节

该漏洞存在于 [组件名称] 的 [具体功能] 中。当 [触发条件] 时,攻击者可以 [攻击效果]。

该工具使用以下技术:

  • [技术 1]
  • [技术 2]
  • [技术 3]

输出格式

该工具支持多种输出格式:

控制台输出

root@kitploit:~
[+] 目标: https://target.example.com
[+] 状态: 易受攻击
[+] 版本: [组件名称] 1.2.3
[+] 详情: [漏洞详情]

JSON 输出

root@kitploit:~
{
  "target": "https://target.example.com",
  "vulnerable": true,
  "version": "1.2.3",
  "details": "[漏洞详情]",
  "timestamp": "2025-01-01T00:00:00Z"
}

免责声明

本工具仅供教育和道德安全测试目的使用。未经授权访问计算机系统是非法的。在使用本工具之前,请确保您已获得目标系统的明确许可。

作者对因使用或滥用本工具而造成的任何损害不承担责任。```bash cd frontend npm install cp env.local.example .env.local # set NEXT_PUBLIC_API_URL=http://localhost:8000 npm run dev

root@kitploit:~
### Docker Compose(两个服务)```bash
cp backend/env.example backend/.env   # fill in required values
docker compose up --build

前端 → http://localhost:3000 后端 API 文档 → http://localhost:8000/docs


环境变量

将 backend/env.example 复制为 backend/.env 并填写。按所需层级分组:

始终必需:

变量描述
PG_DSNPostgres 连接字符串
JWT_SECRET_KEY用于签名应用会话令牌的密钥(python -c "import secrets; print(secrets.token_hex(32))")

认证 — 选择一种模式:

AI 分诊 — 可选,选择一种提供商(两者都省略则以禁用分诊模式运行):

可选:

前端(frontend/.env.local 或 frontend/env.local.example):

变量描述
NEXT_PUBLIC_API_URL浏览器所见的后端 URL。在构建时嵌入 JS 包中。保持未设置以通过内置的同源代理(frontend/pages/api/[...proxy].js)路由 API 调用 — 当后端没有公共入口时(例如 Azure + API 层的仅内部 Container App)必须如此

detections.ai 编排器 — 即将推出(尚未包含在此公开版本中;此处记录以便发布时参考。Azure + API 层,独立可部署 — 参见 backend/detection_pipeline/orchestrator.py):

Sentinel Hunts 同步(可选,默认关闭 — 参见设置 > API 设置中的开/关/手动/自动模式):


Azure 部署

真实、当前的 IaC 是 infra/apps.bicep + infra/platform.bicep + infra/app-stack.bicep,通过 infra/provision.ps1(或轻量包装脚本 scripts/setup-azure.ps1)部署。它配置 Container Apps、Key Vault 支持的密钥和托管标识 — Postgres 本身不由本仓库配置;将 PG_DSN(存储为 pg-dsn Key Vault 密钥)指向任何可访问的 Postgres 服务器。```powershell ./scripts/setup-azure.ps1

or directly:

cd infra cp migration.psd1.example migration.psd1 # fill in your resource group, apps, etc. ./provision.ps1

root@kitploit:~
`provision.ps1` 是幂等的——在编辑清单后可以安全地重新运行。有关完整的逐步流程(平台 → 应用栈 → 密钥 → Easy Auth → 镜像导入 → 应用 → 事后检查),请参阅其自身的头部注释。

detections.ai 编排器(一个由 `migration.psd1` 中的 `Orchestrator` 块驱动的计划 Container Apps Job——有关其结构,请参阅 `migration.psd1.example`,并将你的密钥存储为 `DETECTIONSAIAPIKEY` Key Vault 密钥)尚未包含在此公开版本中——请参阅上文的[两个与 detections 相关的功能](#two-detections-related-features)。

---

## 项目结构```
├── backend/
│   ├── main.py                  # FastAPI app, all endpoints
│   ├── db.py                    # Postgres queries
│   ├── pgcompat.py              # connection pool + SQLite-style placeholder translation
│   ├── feed_manager.py          # RSS polling, AI triage (provider-modular), scheduler
│   ├── enrichment.py            # IOC extraction, KEV cache, stack rematch
│   ├── runzero_sync.py          # RunZero asset sync and correlation engine
│   ├── dedup.py                 # CVE deduplication logic
│   ├── auth.py                  # Entra ID SSO + local API-key auth, app JWT sign/verify
│   ├── ioc_export.py            # STIX 2.1 and CSV export
│   ├── stack_presets.py         # Pre-built tech stack templates
│   ├── detection_pipeline/      # detections.ai orchestrator, MITRE alignment-check,
│   │                            # Sentinel hunts/analytics-rules sync + tuning,
│   │                            # audit log, local_import.py (Local Detections Import)
│   └── tests/                   # pytest test suite, incl. fixtures/local_import/
├── frontend/
│   ├── pages/
│   │   ├── index.js              # Main app shell + tab routing
│   │   └── login.js              # Entra ID or local API-key login, auto-detected
│   ├── lib/
│   │   ├── authMode.js           # GET /api/auth/mode, cached per page load
│   │   ├── authFetch.js          # Bearer auth + 401-retry wrapper
│   │   └── authSession.js        # token storage, JWT decode/expiry helpers
│   └── components/
│       ├── layout/                # TopBar, Sidebar, TabBar, TopFilterBar, TimeRangeToggle
│       ├── feed/                  # FeedList, FeedCard
│       ├── integrations/          # IntegrationsPanel, ExposurePanel, RunZeroPanel,
│       │                          # RunZeroMatchesPanel, RunZeroMetricsPanel
│       ├── detections/            # DetectionsPanel (tab shell) + one component per
│       │                          # sub-tab: DetectionsCatalogPanel, AlignmentReviewPanel,
│       │                          # DispositionAlertsPanel, HuntsPanel, SentinelHuntsPanel,
│       │                          # SentinelAnalyticsRulesPanel, LocalDetectionsPanel,
│       │                          # AuditPanel, plus shared TuningSuggestionBadge
│       ├── settings/              # SettingsPanel, CadencePicker, SeverityCards
│       └── mitre/                 # MitreMatrix
├── infra/                       # Azure Bicep templates + provision.ps1
├── scripts/                     # Tiered setup scripts (see Deployment tiers)
└── docker-compose.yml

订阅源

涵盖三个层级的 63 个订阅源:

  • 第 1 层级 — CISA、Cisco Talos、Fortinet Threat Signal、ESET WeLiveSecurity、Microsoft Security Blog、SentinelOne Labs、Google Project Zero、Zero Day Initiative、Check Point Research、Talos Intelligence Blog、The DFIR Report、Oracle
  • 第 2 层级 — Recorded Future、Malpedia、SANS ISC、Securelist、Unit42、Proofpoint TI、Malwarebytes TI、Wiz Blog、Datadog Security Labs、ReversingLabs、Sekoia、Cyble、ANY.RUN Blog 等
  • 第 3 层级 — BleepingComputer、Krebs on Security、Schneier on Security、The Hacker News、Dark Reading、CrowdStrike Blog、Snyk、Semgrep 等

安全

  • 所有 API 端点均要求 Authorization: Bearer <token>
  • 本地认证密钥使用时间安全比较(secrets.compare_digest)
  • 全程使用参数化 SQL —— 查询中无字符串插值
  • CORS 限制为显式来源允许列表
  • 调用 AI 提供商前对 LLM 输入进行净化;存储前对输出进行验证
  • 容器以非 root 身份运行,并丢弃所有 Linux 能力
  • 镜像中不内置任何密钥 —— 运行时从 .env / Azure Key Vault 加载

许可证

MIT —— 参见 LICENSE。

下载工具
变量描述
LOCAL_API_KEY本地模式:授予管理员访问权限的共享密钥。保持 AZURE_AD_TENANT_ID 未设置以激活此模式
AZURE_AD_TENANT_IDEntra 模式:用于 SSO 的租户 ID。设置此项将激活 Entra 模式
AZURE_AD_CLIENT_IDEntra 模式:应用注册客户端 ID
AZURE_AD_CLIENT_SECRETEntra 模式:应用注册密钥(仅前端)
NEXTAUTH_SECRETEntra 模式:NextAuth 会话加密密钥(仅前端)
变量描述
AI_PROVIDERanthropic(默认)或 azure
ANTHROPIC_API_KEY直接使用 Anthropic API 密钥
AZURE_FOUNDRY_ENDPOINTAzure AI Foundry 端点,例如 https://<resource>.services.ai.azure.com/anthropic
AZURE_FOUNDRY_API_KEYAzure AI Foundry API 密钥
AZURE_FOUNDRY_DEPLOYMENTFoundry 部署名称(默认 claude-haiku-4-5)
AZURE_FOUNDRY_API_VERSIONFoundry API 版本(默认 2025-05-01)
变量描述
RUNZERO_API_TOKEN启用 RunZero 资产同步与关联
ALLOWED_ORIGINS逗号分隔的 CORS 允许列表(默认 http://localhost:3000)
ENABLE_SCHEDULER设置为 false 以禁用后台源轮询器(默认 true)
ARCHIVE_AFTER_DAYS自动归档阈值(天)(默认 90)
PG_POOL_MIN / PG_POOL_MAX / PG_POOL_TIMEOUTPostgres 连接池调优(默认 1 / 10 / 30)
LOCAL_IMPORT_DIR启用本地检测导入 — 后端文件系统上的绝对路径,所有导入均限制在此路径内。未设置则完全禁用该功能(其选项卡显示“未配置”消息)
BACKEND_URLNext.js 服务器自身所见的后端 URL。用于 NextAuth 的登录交换,以及当 NEXT_PUBLIC_API_URL 未设置时,用于在服务器端转发每个 /api/* 浏览器请求的同源代理
变量描述
DETECTIONS_AI_API_KEY运行编排器所必需
SENTINEL_WORKSPACE_IDLog Analytics 工作区客户 ID(GUID),用于回测。可选
PIPELINE_BATCH_SIZE每次运行的条目数(默认 5)
PIPELINE_DRY_RUNtrue 表示仅声明并记录而不调用 API
PIPELINE_LANGUAGE检测查询语言(默认 kql)
变量描述
SENTINEL_HUNTING_SYNC_ENABLEDtrue 以允许任何 hunt 同步尝试。未设置/false 则为纯空操作 — 零 ARM 调用
AZURE_SUBSCRIPTION_ID包含 Sentinel 工作区的订阅
AZURE_RESOURCE_GROUP包含 Sentinel 工作区的资源组
SENTINEL_WORKSPACE_NAME工作区的名称,而非其客户 ID — 与上面的 SENTINEL_WORKSPACE_ID 不同,后者由回测数据平面客户端使用