B-star51/Hive

GitHub: B-star51/Hive

Hive 是一款面向 Microsoft 365 Copilot 的多 Agent 安全监控器,通过关联混合身份环境中的异常信号来提前检测权限提升攻击链。

Stars: 0 | Forks: 0

Hive — Privilege Escalation Watchdog

Microsoft Agents League · 企业级 Agent (Microsoft 365 Copilot)
在被攻陷前捕获权限提升 · 映射 MITRE ATT&CK · 仅提供建议

# Hive — 权限提升监控器 一个专注的多 Agent 监控器,用于检测混合身份环境(目前支持本地 AD,未来支持 Azure AD / Sentinel)中的**权限提升先兆**。 Microsoft 365 只会告诉你账户何时*被攻陷*;而 Hive 会在完全被攻陷**之前**标记出更隐蔽的步骤——异常的角色授予、重用的 Kerberos 票据、低权限账户突然接触域控制器——并将它们**关联**为单一事件。 ## 为什么它具备企业级可用性(架构推介) Hive 的构建围绕一条核心原则:**Agent 依赖于统一的数据契约,而不是特定的数据源。** 这使其能够直接作为 Microsoft 365 安全的补充工具,而不是一次性的演示。 ``` flowchart LR U([User in Microsoft 365 Copilot]) -- "show me today's incidents" --> DA[Hive declarative agent
appPackage/] DA -- "GET /hive/report" --> API[Azure Function
api/] subgraph SRC[Data sources] L[Synthetic JSON / Windows EVTX] AZ[Azure AD / Graph *stub*] SE[Sentinel / KQL *stub*] end subgraph PROV[Providers - swappable] LP[LocalJsonProvider] AP[AzureGraphProvider] SP[SentinelProvider] end L --> LP AZ --> AP SE --> SP LP & AP & SP -- "NormalizedEvent[]" --> ENG subgraph ENG[Hive engine - source-agnostic] RC[RoleChange Agent] TM[TokenMisuse Agent] LM[LateralMovement Agent] RC & TM & LM -- signals --> CO[Correlation Agent] CO -- incidents --> RE[Response Agent] end API --> ENG RE -- "JSON report" --> API classDef stub stroke-dasharray:5 5,opacity:0.7; class AZ,SE,AP,SP stub; ``` - **抽象化接口** — provider 是唯一了解数据源格式的代码。它们输出 `NormalizedEvent` 对象([src/Core/EventModel.ps1](src/Core/EventModel.ps1))。 - **Endpoint 桩** — [AzureGraphProvider.ps1](src/Providers/AzureGraphProvider.ps1) 和 [SentinelProvider.ps1](src/Providers/SentinelProvider.ps1) 已经准备好实现;它们不需要改变 Agent 的逻辑。 - **Agent 独立性** — 每个 Agent 读取 `NormalizedEvent` 并输出 `HiveSignal`。它无法分辨数据是来自文件还是 Microsoft Graph。 - **配置层** — [config/settings.json](config/settings.json) 可切换 `use_local_logs` / `use_azure_graph` / `use_sentinel`。 ## Agent | Agent | 监控内容 | 规则 | |-------|-----------|-------| | **RoleChangeAgent** | 添加到特权组(如 Domain Admins 等),如果在非工作时间或由服务账户操作则风险更高 | RC-001 | | **TokenMisuseAgent** | Kerberos 票据在不同于其签发位置的主机上被使用(Pass-the-ticket) | TM-001 | | **LateralMovementAgent** | 敏感主机被非基线账户访问;失败登录的口令爆破 | LM-001, LM-002 | | **CorrelationAgent** | 按实体对信号进行分组、评分,**当 ≥2 个 Agent 达成一致时给予加分** | — | | **ResponseAgent** | 将升级的事件映射到遏制步骤(在演示中仅提供建议) | — | 单一规则极少能自行引发升级——**跨 Agent 的关联**能将三个微弱的信号转化为一个严重(Critical)事件。这是核心理念。 每个信号都映射到特定的 **MITRE ATT&CK** 技术,并且每个升级的事件都会被重构为按时间排序的**攻击链**,以便分析师了解权限升级是*如何*展开的: ``` jdoe (Critical, score 205) Privilege Escalation -> Lateral Movement 02:14 T1098 Added to Domain Admins (off-hours, by service account) 02:18 T1550.003 Kerberos ticket reused from a different host (pass-the-ticket) 02:20 T1021 Logged on to DC01 (sensitive host, non-baseline account) ``` ``` flowchart LR A["02:14 · T1098
Added to Domain Admins
RoleChange Agent"] --> B["02:18 · T1550.003
Kerberos ticket reuse
TokenMisuse Agent"] --> C["02:20 · T1021
Logon to DC01
LateralMovement Agent"] --> D(["🚨 Incident: jdoe
Critical · score 205
3 agents corroborate"]) ``` ## 如何映射到评审标准 | 标准 | Hive 的应对方式 | |---|---| | **准确性与相关性** | 检测真实的权限提升 TTP(4728/4768/4769/4624 事件);良性的变更(Marketing 组、日间登录)正确地**不会**引发升级——误报率低。 | | **推理与多步骤** | 基于用户的关联 + 按时间排序的 ATT&CK 攻击链,将孤立的警报转化为一个已解释的事件。 | | **创造力与原创性** | 一个捕获权限提升*先兆*并存在于 M365 Copilot 内部的监控器——是对内置检测的补充,而非重复。 | | **用户体验** | 对话式的 Copilot Agent + 一个独立的 HTML 仪表盘,包含严重性徽章和杀伤链时间轴。 | | **可靠性与安全性** | 仅提供建议(绝不自动禁用);14 项 Pester 测试证明了其确定性行为;指示 Agent 绝不声称自己已执行遏制措施。 | ## 运行方式 ``` cd C:\Users\taylo\Hive .\Invoke-Hive.ps1 ``` 预期结果:约 5 个信号,一个针对 `jdoe` 的**严重(Critical)**升级事件(由 3 个 Agent 触发),一个针对 `guest` 的低级别“监控(watch)”事件,以及一个建议响应区块。 攻击场景记录在 [data/playbooks/scenarios.md](data/playbooks/scenarios.md) 中。 如果 PowerShell 阻止了脚本运行: ``` powershell -ExecutionPolicy Bypass -File .\Invoke-Hive.ps1 ``` 生成独立的 **HTML 仪表盘**(非常适合用于演示视频): ``` .\Invoke-Hive.ps1 -Html # writes report.html and opens it ``` 运行**测试套件**(证明引擎具有确定性): ``` .\tests\Invoke-Tests.ps1 # installs Pester if needed, then runs 14 tests ``` ## Microsoft 365 Copilot 集成(企业级 Agent 类别) Hive 作为 **Microsoft 365 Copilot 的声明式 Agent** 发布。用户在 Copilot 中与 Hive 聊天;该 Agent 调用一个 API 动作,运行引擎并将事件以 JSON 格式返回。PowerShell 引擎保持不变——它是后端。 - **Agent 包** — [appPackage/](appPackage/):`declarativeAgent.json`(角色设定、对话启动器、安全说明),`ai-plugin.json` + `hive-openapi.yaml`(`getHiveReport` 动作),`manifest.json`(M365 应用)。 - **API 后端** — [api/](api/):一个 Azure Functions HTTP endpoint(`GET /api/hive/report`),通过 [Get-HiveReport](src/Core/HiveReport.ps1) 运行引擎。 ### 部署 / 旁加载 1. **托管 API。** 在 `api/` 目录下使用 `func start` 在本地运行(需要 Azure Functions Core Tools),或部署到 Azure Function App。记下基础 URL。 2. **将动作指向它。** 将 `appPackage/hive-openapi.yaml` 和 `appPackage/manifest.json` 中的 `YOUR-FUNCTION-APP.azurewebsites.net` 替换为你的 URL。 3. **打包并旁加载。** 压缩 `appPackage/` 目录的内容,并通过 Microsoft 365 Agents Toolkit(VS Code)或 Teams/M365 管理后台的“上传自定义应用”进行上传。打开 Microsoft 365 Copilot,选择 **Hive**,并尝试使用对话启动器。 ## 项目布局 ``` Hive/ Invoke-Hive.ps1 CLI entry point + console report config/settings.json data-source toggles + correlation thresholds data/ sample-ad-logs.json synthetic Windows/AD events (the attack chain) playbooks/scenarios.md what each scenario demonstrates src/ Core/EventModel.ps1 NormalizedEvent + HiveSignal contracts Core/HiveCore.ps1 provider dispatch + orchestration Core/HiveReport.ps1 JSON report shaped for the Copilot action Core/HiveHtmlReport.ps1 standalone HTML dashboard renderer Providers/ LocalJson (real) + AzureGraph/Sentinel (stubs) Agents/ the five agents tests/ Pester suite (14 tests) + runner appPackage/ Microsoft 365 Copilot declarative agent declarativeAgent.json persona, starters, safety instructions ai-plugin.json API plugin (getHiveReport action) hive-openapi.yaml OpenAPI spec for the action manifest.json M365 app manifest color.png / outline.png app icons api/ Azure Functions backend (serves the engine as JSON) HiveReport/ GET /api/hive/report ``` ## 向 Azure 扩展(无需重写 Agent) 1. 实现 `Invoke-AzureGraphProvider` 以调用 `/auditLogs/directoryAudits` 和 `/signIns`,将每个条目映射为 `NormalizedEvent`。 2. 在 settings.json 中设置 `use_azure_graph = true`(以及 `use_local_logs = false`)。 3. 运行完全相同的 Agent。大功告成。 同样的模式也适用于通过 KQL 集成 Sentinel。 ## 致谢 Hive 的概念、架构和检测设计是在 **Microsoft Copilot** 的全面协助下开发的,它帮助塑造了多 Agent 监控方法、面向未来 Azure 集成的 provider 抽象策略,以及本演示中使用的攻击场景剧本。
标签:AI合规, AMSI绕过, Libemu, Microsoft 365, PE 加载器, 协议分析, 多智能体, 威胁检测, 安全, 权限提升, 模拟器, 超时处理