概述
Hilt macOS 采集器以一款经过公证的 macOS 应用 Hilt EDR(Hilt.app,bundle id Hilt.EDRApp,团队 Cybe Corporation / MVMB6LCP2A)的形式发布,其中内嵌了两个 Apple 系统扩展:
这里没有内核扩展——两者都是基于 Apple 现代框架的纯用户空间系统扩展,采集器在启用了 System Integrity Protection (SIP) 的普通加固 Mac 上运行。完整的签名与授权(entitlement)说明参见网络与信任模型。
在未受管理的 Mac 上,Endpoint Security 类产品需要两项无法回避的用户授权——批准系统扩展以及授予 Full Disk Access——因为这些是 Apple 的安全要求,没有 MDM 就无法抑制其弹窗。直接下载路径会引导用户完成这两项授权。在 MDM 下,你可以消除这两个弹窗:只需随应用一起推送两个配置描述文件,注册即成为一次静默、零接触的安装。
本页介绍 MDM 部署的三个部分:
- 应用分发 —— 将已签名的
.pkg部署到主机群。 - 系统扩展 payload —— 自动批准内嵌扩展,使批准弹窗不再出现。
- PPPC(隐私)payload —— 预授予 Full Disk Access,使 FDA 弹窗不再出现。
macOS 采集器目前处于**早期访问(early access)**阶段。这里描述的经公证
.pkg 加 SIP 启用的安装方式即为目标发布模型。设备端隔离响应在 macOS 上尚不可用;采集器安装后会通过其签名的、按部署划分的更新通道保持最新。注册前置条件
这两个描述文件都必须经由 Mac 所注册的 MDM 下发。用户双击安装的描述文件会应用其余 payload,但 macOS 会静默忽略手动安装的 TCC 授权。- UAMDM 指任何经用户批准的 MDM 注册——注册 URL、MDM 的注册应用——或 ADE 注册(批准自动完成)。
- Apple 文档中与 PPPC payload 相关联的**监管(Supervision)**状态,在 macOS 11 及更高版本上对每台通过 Device Enrollment 注册的 Mac 都是自动获得的,包括普通的用户自助注册。本采集器支持的所有 macOS 版本都远高于这条线,因此在任何已注册 MDM 的主机群上,Full Disk Access 授权都会在签入时静默生效。Automated Device Enrollment(ABM/ADE)不是前置条件——ADE 省去的是注册这一步的点击,而不是 FDA 切换。
- 唯一不承载 PPPC payload 的注册模式是账户驱动的 User Enrollment(BYOD 模式)。以该方式注册的 Mac 每台需要手动切换一次 FDA。
部分 1 —— 部署已签名的 .pkg
采集器以经过公证、使用 Developer ID 签名的.pkg 分发。安装它会将 Hilt.app 放入 /Applications,并注册更新器 LaunchDaemon(com.hilt.edr.updater);遥测由 ESensor 扩展自身通过出站 HTTPS 发送。获取安装包及其校验和的位置参见发布工件。
1
Upload the package to your MDM
将已签名的
.pkg 添加到你的 MDM 的软件包库中:- Jamf Pro: 上传到分发点(Jamf Admin 或 Web 控制台),然后在策略中限定一个 Install Package 操作。
- Kandji: 添加一个类型为 Installer Package (.pkg) 的 Custom App,并将其分配到某个 Blueprint。
- Intune: 将其作为 macOS app → Line-of-business app(
.pkg)添加,或通过 Intune macOS PKG 安装程序封装并部署。
2
Order delivery before first launch
在应用首次启动之前先交付系统扩展 payload(见部分 2)。如果应用在其批准描述文件到达之前就启动,macOS 会弹出一次性的批准提示,而该描述文件本可以抑制它。在 Jamf 中,将配置描述文件限定到与安装策略相同的智能群组,并设为相同或更高的优先级;在 Kandji 和 Intune 中,Blueprint / 分配中的描述文件和应用会在设备签入时收敛,因此针对同一群组即可。
3
Verify the install landed
从受管主机上(或通过你的 MDM 的远程命令 / 脚本运行器):批准生效后,
systemextensionsctl list 应显示 Hilt.EDRApp.ESensor 和 Hilt.EDRApp.NetFilter 处于 [activated enabled] 状态。.pkg 经过公证并使用 Developer ID 签名,因此 Gatekeeper 无需任何本地覆盖即可放行。受管主机上不涉及 csrutil disable、systemextensionsctl developer on,也不涉及开发者模式——这些都是仅供开发使用的步骤,而经过公证的安装包完全省去了它们。
部分 2 —— 系统扩展 payload(自动批准扩展)
要抑制系统扩展的批准弹窗,请推送一个系统扩展配置描述文件。payload 类型为com.apple.system-extension-policy,关键在于将 Hilt 的 Apple Developer Team ID 列入白名单,从而使由该团队签名的任何扩展都被自动批准。
所需值
将 Team ID(
MVMB6LCP2A)列入白名单是最简单、也是推荐的方式:它会自动批准 ESensor 和 NetFilter,并在同一团队内的扩展重命名或新增时依然有效。如果你的策略偏好显式的允许列表,可在 AllowedSystemExtensions 下以团队为键固定这两个 bundle id。
按 MDM 划分:
- Jamf Pro: Configuration Profile → System Extensions payload → 将 System Extension Types 设为 Allowed Team IDs,添加
MVMB6LCP2A。(可选:添加 Allowed System Extensions 并填入两个 bundle id。) - Kandji: System Extensions 库项目 → 添加允许的团队标识符
MVMB6LCP2A。 - Intune: Devices → Configuration → macOS → Templates → Extensions → System Extensions → 允许团队标识符
MVMB6LCP2A。
部分 3 —— PPPC payload(预授予 Full Disk Access)
Full Disk Access 对任何 Endpoint Security 客户端都是必需的——这并非可选项,且 macOS 上的 FDA 条目显示为 ESensor /“Hilt EDR Sensor”,而非 “EDRApp”。要静默授予它,请推送一个 Privacy Preferences Policy Control (PPPC) 描述文件。 payload 类型为com.apple.TCC.configuration-profile-policy。将 SystemPolicyAllFiles 服务设为 Allow,并以 ESensor 的代码要求(code requirement)为键,使该授权绑定到正确的、已签名的二进制文件。
所需值
该代码要求就是扩展的 designated requirement——与
codesign -d -r- 对已安装 ESensor 输出的字符串一致,也与上传已签名应用后 Jamf 自动计算的结果一致。请原样使用。
按 MDM 划分:
- Jamf Pro: Configuration Profile → Privacy Preferences Policy Control payload → 添加一个应用,Identifier 为
Hilt.EDRApp.ESensor(类型 Bundle ID),粘贴代码要求,将 App or service 设为 SystemPolicyAllFiles、Access 设为 Allow。如果你上传了已签名的应用,Jamf 可自动计算代码要求。 - Kandji: PPPC 库项目 → 添加带代码要求的 ESensor 标识符 → 授予 Full Disk Access (SystemPolicyAllFiles)。
- Intune: macOS PPPC 描述文件 → 服务
SystemPolicyAllFiles→ Allow,并填入上述标识符和代码要求。
PPPC 可以预授予 Full Disk Access(以及 Accessibility),但绝不能预授予 Camera、Microphone 或 Screen Recording——对这三项,Apple 始终要求用户手动授予。Hilt ES 传感器只需要 Full Disk Access,因此 MDM 安装是完全静默的。你不需要、也不应请求任何摄像头 / 麦克风 / 屏幕相关服务。
结果与验证
在已注册 MDM 的 Mac 上部署好全部三个部分后:- MDM 安装
.pkg→Hilt.app落入/Applications,更新器 LaunchDaemon 完成注册。 - 系统扩展描述文件自动批准 ESensor 和 NetFilter——无批准弹窗。
- PPPC 描述文件向 ESensor 预授予 Full Disk Access——无 FDA 弹窗。
systemextensionsctl list 应将 Hilt.EDRApp.ESensor 和 Hilt.EDRApp.NetFilter 报告为 [activated enabled]。一分钟内,该主机会带着 macOS 主机类型徽章出现在仪表盘的 Collectors 主机群中,其事件也会流入 Investigate、Networks、Files 和 Users 视图。端到端管道(ESensor → edr-collector → Kafka → 富化 → ClickHouse endpoint_events)参见数据流。
更新与 macOS 升级
- 应用 / 扩展更新(相同 Team ID、已签名):无需重新批准。既有的系统扩展批准和 FDA 授权会延续,
launchd会自动重新启动新的扩展构建。通过同一 MDM 机制推送新的.pkg即可,或让采集器内置的更新器从你部署的发布通道自动交付——两种方式下既有批准均会延续。 - macOS 大版本升级: Full Disk Access 授权在大版本 OS 升级时偶尔会被重置(这是一种已知的 TCC 行为)。MDM PPPC 描述文件会在下次签入时自动重新应用该授权,因此受管理的主机群可自我修复。直接下载(非 MDM)的用户可能需要重新切换一次 FDA。
此部署不做什么
- 无入站暴露。 采集器不打开任何监听套接字,也绝不回连(phone home)。唯一的网络路径是从采集器出站的 HTTPS,连往所配置的接入端点。参见网络与信任模型。
- 无内核扩展。 没有任何东西加载进内核;不存在 kext 批准,也不改动 SIP。Mac 始终保持 SIP 启用的加固状态。
- 无摄像头 / 麦克风 / 屏幕捕获。 传感器只请求 Full Disk Access。它无法、也不会请求 Camera、Microphone 或 Screen Recording——况且 PPPC 本就无法预授予它们。
- 暂无设备端响应。 隔离式响应在 macOS 上尚不可用。(更新已有覆盖:采集器会从其签名的发布通道自我更新,也可以通过 MDM 推送更新的
.pkg。) - 隐私授权没有手动安装路径。 只有当 PPPC payload 来自 Mac 所注册的 MDM 时才会被遵从。用户双击安装的描述文件会应用其余 payload,但不会授予任何 Full Disk Access。
