自托管威胁情报平台——支持情报源聚合、AI 分诊、MITRE ATT&CK 覆盖,以及与 Sentinel 集成的检测工程。可独立运行,也可与 Azure 完全集成。
一个自托管的威胁情报平台,聚合来自 60 多家安全厂商的 RSS 源,运行 AI 分类,将发现与您的 RunZero 资产清单进行关联,并通过深色模式 Web 仪表板呈现可操作的警报。
设计为可独立运行、零云依赖,或完全集成到 Azure/Entra/Sentinel 环境中——选择与您现有条件相匹配的层级。
| 层级 | 脚本 | AI 分类 | 认证 | 存储 | 您将获得 |
|---|---|---|---|---|---|
| 基础版 | scripts/setup-basic.sh | 关闭 | 本地 API 密钥 | 本地 Postgres (Docker) | 源聚合、IOC 提取、MITRE 矩阵、仪表板——无 AI、无云、无需注册任何服务 |
| 基础版 + API | scripts/setup-basic-api.sh | Anthropic(直连) | 本地 API 密钥 | 本地 Postgres (Docker) | 上述所有功能,外加 AI 严重性/TTP/摘要分类 |
| Azure + API | scripts/setup-azure.ps1 | Azure AI Foundry | Microsoft Entra ID SSO | 您自己的 Postgres(Azure Database for PostgreSQL 等) | 完整部署到 Azure Container Apps,支持按用户角色的 SSO。(detections.ai 管道集成将在未来版本中推出——见下文。) |
这三个层级运行完全相同的应用程序代码——唯一变化的是设置了哪些环境变量。完整参考请参见环境变量。```bash
./scripts/setup-basic.sh
./scripts/setup-basic-api.sh
./scripts/setup-azure.ps1
两个 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/检测行

---
## 截图
以下所有截图均使用为文档生成的合成数据(虚假组织名称、RFC 5737 示例 IP、`.example` 域名)—— 不包含真实威胁情报或客户数据。
**Feed** —— 浏览和过滤已分诊的威胁情报条目,包含严重性、标签、IOC 和 TTP

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

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

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

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

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

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

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

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

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

---
## 架构```
┌─────────────────────────────────────────┐
│ 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)的工作方式完全相同。
运行 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
### 手动设置```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
# 扫描单个目标
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
# 使用自定义超时和线程数
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
选项:
-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 漏洞,这是一个影响 [组件名称] 的 [漏洞类型] 漏洞。该漏洞允许攻击者 [漏洞影响描述]。
该漏洞存在于 [组件名称] 的 [具体功能] 中。当 [触发条件] 时,攻击者可以 [攻击效果]。
该工具使用以下技术:
该工具支持多种输出格式:
[+] 目标: https://target.example.com
[+] 状态: 易受攻击
[+] 版本: [组件名称] 1.2.3
[+] 详情: [漏洞详情]
{
"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
### 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_DSN | Postgres 连接字符串 |
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 设置中的开/关/手动/自动模式):
真实、当前的 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
cd infra cp migration.psd1.example migration.psd1 # fill in your resource group, apps, etc. ./provision.ps1
`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 个订阅源:
Authorization: Bearer <token>secrets.compare_digest).env / Azure Key Vault 加载MIT —— 参见 LICENSE。
| 变量 | 描述 |
|---|
LOCAL_API_KEY | 本地模式:授予管理员访问权限的共享密钥。保持 AZURE_AD_TENANT_ID 未设置以激活此模式 |
AZURE_AD_TENANT_ID | Entra 模式:用于 SSO 的租户 ID。设置此项将激活 Entra 模式 |
AZURE_AD_CLIENT_ID | Entra 模式:应用注册客户端 ID |
AZURE_AD_CLIENT_SECRET | Entra 模式:应用注册密钥(仅前端) |
NEXTAUTH_SECRET | Entra 模式:NextAuth 会话加密密钥(仅前端) |
| 变量 | 描述 |
|---|
AI_PROVIDER | anthropic(默认)或 azure |
ANTHROPIC_API_KEY | 直接使用 Anthropic API 密钥 |
AZURE_FOUNDRY_ENDPOINT | Azure AI Foundry 端点,例如 https://<resource>.services.ai.azure.com/anthropic |
AZURE_FOUNDRY_API_KEY | Azure AI Foundry API 密钥 |
AZURE_FOUNDRY_DEPLOYMENT | Foundry 部署名称(默认 claude-haiku-4-5) |
AZURE_FOUNDRY_API_VERSION | Foundry 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_TIMEOUT | Postgres 连接池调优(默认 1 / 10 / 30) |
LOCAL_IMPORT_DIR | 启用本地检测导入 — 后端文件系统上的绝对路径,所有导入均限制在此路径内。未设置则完全禁用该功能(其选项卡显示“未配置”消息) |
BACKEND_URL | Next.js 服务器自身所见的后端 URL。用于 NextAuth 的登录交换,以及当 NEXT_PUBLIC_API_URL 未设置时,用于在服务器端转发每个 /api/* 浏览器请求的同源代理 |
| 变量 | 描述 |
|---|
DETECTIONS_AI_API_KEY | 运行编排器所必需 |
SENTINEL_WORKSPACE_ID | Log Analytics 工作区客户 ID(GUID),用于回测。可选 |
PIPELINE_BATCH_SIZE | 每次运行的条目数(默认 5) |
PIPELINE_DRY_RUN | true 表示仅声明并记录而不调用 API |
PIPELINE_LANGUAGE | 检测查询语言(默认 kql) |
| 变量 | 描述 |
|---|
SENTINEL_HUNTING_SYNC_ENABLED | true 以允许任何 hunt 同步尝试。未设置/false 则为纯空操作 — 零 ARM 调用 |
AZURE_SUBSCRIPTION_ID | 包含 Sentinel 工作区的订阅 |
AZURE_RESOURCE_GROUP | 包含 Sentinel 工作区的资源组 |
SENTINEL_WORKSPACE_NAME | 工作区的名称,而非其客户 ID — 与上面的 SENTINEL_WORKSPACE_ID 不同,后者由回测数据平面客户端使用 |