> ## Documentation Index
> Fetch the complete documentation index at: https://hilt.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 独立部署（直接下载）

> 在单台 Mac 或小型团队上使用经过公证的 .pkg 安装 Hilt macOS 采集器，无需 MDM：双击安装、一次性审批 + Full Disk Access，以及验证。

独立部署方式通过经过公证、以 Developer ID 签名的 `.pkg`，在单台 Mac 上安装 macOS 采集器，无需任何 MDM。它适用于单台机器、试点，或尚未拥有受管设备主机群的小型团队。安装包会将 **Hilt EDR**（`EDRApp.app`）放入 `/Applications`，并注册一个小型转发器 `LaunchDaemon`；随后用户执行一次约 30 秒的系统扩展审批，并为其授予 Full Disk Access。

这在**正常、加固的 Mac** 上即可运行——System Integrity Protection (SIP) 保持**启用**，无需 `csrutil disable`、无需开发者模式，授权过程也无需使用终端。之所以能做到这一点，是因为该应用及其内嵌扩展使用 Developer ID Application 证书签名，携带内嵌的预置描述文件以授权受限的 Endpoint Security 权限（entitlement），使用 Hardened Runtime，并由 Apple 公证和装订（staple）。完整的权限与签名说明请参阅[架构](https://hilt.ai/docs/zh/macos-collector/networking-security.md)。

> [!NOTE]
>
> macOS 采集器目前处于**早期访问**阶段。本文所述的经过公证、SIP 保持开启的 `.pkg` 安装方式是目标发布模型。若需通过 Jamf、Kandji 或 Intune 进行零点击的主机群部署，请参阅[使用 MDM 部署](https://hilt.ai/docs/zh/macos-collector/deploy-mdm.md)。

## 要求

| 要求 | 详情 |
| :- | :- |
| **macOS 版本** | 15.0 (Sequoia) 或更高版本。安装脚本在低于 15.0 时会拒绝运行 —— 参见[系统要求](https://hilt.ai/docs/zh/macos-collector/system-requirements.md)。 |
| **架构** | 通用：Apple Silicon (arm64) 与 Intel (x86\_64) 打包于单个 `.pkg`。 |
| **管理员权限** | 一个管理员账户。安装程序和系统扩展审批各需一次身份验证。 |
| **SIP** | 启用（默认值）。无需 `csrutil disable`，无需开发者模式。 |
| **出站网络** | 到已配置的 Hilt `edr-collector` 接入端点的 HTTPS (443)。无入站套接字。 |

## 主机资源

安装包会在主机上安装一小组定义明确的项目：

| 路径 | 用途 |
| :- | :- |
| `/Applications/EDRApp.app` | Hilt EDR 应用包。承载两个内嵌系统扩展（ESensor、NetFilter）。 |
| `/Library/SystemExtensions/` | macOS 暂存和激活已审批扩展的位置（由操作系统管理，而非安装程序）。 |
| `/Library/Application Support/Hilt/EDR/` | 运行时状态、磁盘上的 JSON 行事件缓冲，以及转发器配置。 |
| `/Library/LaunchDaemons/`（转发器 plist） | 通过出站 HTTPS 将事件发送到采集器的转发器 `LaunchDaemon`。 |

应用包内交付的两个扩展为：

| 扩展 | 类型 | Bundle id | 角色 |
| :- | :- | :- | :- |
| **ESensor** | Endpoint Security (ES) 系统扩展 | `Hilt.EDRApp.ESensor` | 遥测传感器：进程、文件、持久化、设备和信号事件。持有受限的 `com.apple.developer.endpoint-security.client` 权限。 |
| **NetFilter** | NetworkExtension 内容过滤系统扩展 | `Hilt.EDRApp.NetFilter` | 逐流网络归因（出站 TCP 流，包含目标、端口、字节数、所属 bundle id）。 |

**没有内核扩展 (kext)**。两个组件均为构建在 Apple 现代框架之上的纯用户态系统扩展。

## 安装

独立安装即一次双击，随后进行两项一次性授权。逐步操作的详细图文教程（含确切的“系统设置”面板和截图）请参阅[安装流程](https://hilt.ai/docs/zh/macos-collector/install-flow.md)；下方摘要与该流程一致。

**1. 运行安装程序**

双击 `Hilt-EDR-<version>.pkg` 并按提示操作。在要求时使用管理员密码进行身份验证。安装程序会将 `EDRApp.app` 复制到 `/Applications` 并注册转发器 `LaunchDaemon`。

**2. 首次打开应用**

从 `/Applications`（或 Spotlight）启动 **Hilt EDR**。首次启动时它会请求激活其系统扩展。在提示时点击 **Open System Settings**（或 **Allow**）。

**3. 审批系统扩展**

前往 **System Settings → General → Login Items & Extensions → Endpoint Security Extensions**，启用 **ESensor** 并进行身份验证。这就是系统扩展审批；整个过程中 SIP 始终保持启用。

**4. 授予 Full Disk Access**

前往 **System Settings → Privacy & Security → Full Disk Access**，启用在第 3 步后自动出现的 **ESensor** 条目。它列为 **ESensor / “Hilt EDR Sensor”**，**而非** “EDRApp”。

这就是全部的用户体验：**审批一次扩展，切换一次 Full Disk Access。** 无需更改 SIP，无需开发者模式，无需终端。

> [!NOTE]
>
> **Full Disk Access 是必需的。** 任何第三方 Endpoint Security 客户端都需要它，CrowdStrike、SentinelOne 及同类产品也是如此。这两项授权（系统扩展审批和 Full Disk Access）是 Apple 的安全要求，在没有 MDM 的情况下**无法**被抑制——用户必须至少亲自完成一次身份验证。如果你需要完全静默、零点击的安装，请改用[使用 MDM 部署](https://hilt.ai/docs/zh/macos-collector/deploy-mdm.md)。

## 配置

转发器从 `/Library/Application Support/Hilt/EDR/` 读取其配置。采集器将事件发送到单个已配置的接入端点，并以人类可读的 Mac 名称（`device_name`）标识主机。相关设置：

| 设置 | 用途 |
| :- | :- |
| 接入端点 | 你的 Hilt `edr-collector` 的 HTTPS URL —— 由你的客户团队提供的负载均衡器 DNS 地址（转发器会自动追加 `/ingest`）。它与 Linux 采集器的 `-ingest.hilt.ai` PrivateLink 主机是不同的端点。 |
| 设备名称 | 默认为 Mac 的主机名；在每个事件上以 `device_name` 呈现。 |

ESensor 以 JSON 行的形式发出事件，转发器 `LaunchDaemon` 通过出站 HTTPS 将其发送到 `edr-collector`。采集器将事件路由到 MSK Kafka 主题（`dag.endpoint.exec`、`dag.endpoint.file`、`dag.endpoint.net`），扩充服务以 `ENRICH_PLATFORM=macos` 处理它们，最终它们落入 ClickHouse 的 `endpoint_events` 表。完整管道请参阅[数据流](https://hilt.ai/docs/zh/macos-collector/data-flow.md)。

## 验证

审批扩展后，确认 ESensor 已激活并启用：

```bash theme={null}
systemextensionsctl list
```

预期输出应包含处于 `[activated enabled]` 状态的 ESensor 扩展：

```text theme={null}
1 extension(s)
--- com.apple.system_extension.endpoint_security
enabled	active	teamID	bundleID (version)	name	[state]
*	*	MVMB6LCP2A	Hilt.EDRApp.ESensor (<version>)	ESensor	[activated enabled]
```

确认转发器 `LaunchDaemon` 已加载并正在运行：

```bash theme={null}
sudo launchctl list | grep -i hilt
```

最后，验证主机是否出现在仪表盘中。激活后一两分钟内，该 Mac 会带着 **macOS** 主机类型徽章出现在 [Collectors](https://hilt.ai/docs/zh/dashboard/collectors.md) 主机群中，其事件在 Investigate、Networks、Files 和 Users 视图中变得可查询。

> [!NOTE]
>
> 如果 `systemextensionsctl list` 将 ESensor 显示为 `[activated waiting for user]`，则该扩展尚未被审批——请返回 **System Settings → General → Login Items & Extensions → Endpoint Security Extensions** 并启用 ESensor。如果传感器已激活但没有事件到达仪表盘，请确认已向 ESensor 授予 Full Disk Access，并且允许到你的接入端点的出站 HTTPS (443)。

## 此安装不会做的事

* **不更改 SIP。** 它绝不运行 `csrutil disable`，也绝不启用开发者模式；SIP 保持启用。
* **无内核扩展。** 两个组件均为用户态系统扩展；不会有任何东西加载到内核中。
* **无入站监听器，也不回连（phone-home）。** 唯一的网络出口是到你已配置的接入端点的出站 HTTPS。
* **不采集文件内容。** ESensor 捕获事件元数据（路径、签名身份、归因），而非文件内容。
* **无任意阻断或隔离响应。** 遥测绝大多数为 NOTIFY；一小组 AUTH 自保护会在内核中拒绝对代理的未授权篡改（参阅[事件覆盖](https://hilt.ai/docs/zh/macos-collector/event-coverage.md)）。由控制台驱动的设备端隔离响应在 macOS 上尚不可用（早期访问）。
* **无自动更新。** 升级通过重新运行更新版的 `.pkg` 来完成；macOS 上尚不支持原地自动更新。

## 升级

由于应用和扩展使用相同的 Team ID（`MVMB6LCP2A`）签名，升级**无需**重新审批——现有的系统扩展审批和 Full Disk Access 授权会延续，`launchd` 会自动重新启动新的扩展构建。

**1. 退出应用**

如果 **Hilt EDR** 正在运行，请退出它。

**2. 运行新的安装包**

双击更新版的 `Hilt-EDR-<version>.pkg` 并进行身份验证。它会原地替换 `/Applications` 中的 `EDRApp.app`。

**3. 确认新构建**

运行 `systemextensionsctl list` 并确认 ESensor 以 `[activated enabled]` 状态显示新版本。

> [!NOTE]
>
> **macOS 大版本升级。** Full Disk Access 授权偶尔会在 macOS 大版本升级时被重置（一种已知的 TCC 行为）。在独立 Mac 上，此类升级后你可能需要为 ESensor 重新切换一次 Full Disk Access。受 MDM 管理的主机会通过 PPPC 自动重新应用此项——参阅[使用 MDM 部署](https://hilt.ai/docs/zh/macos-collector/deploy-mdm.md)。

## 卸载

停用系统扩展并移除已安装的组件：

```bash theme={null}
# Deactivate the ES system extension (requires the app to request deactivation)
systemextensionsctl list

# Remove the forwarder LaunchDaemon and the app
sudo launchctl bootout system /Library/LaunchDaemons/<forwarder>.plist
sudo rm -rf /Applications/EDRApp.app
sudo rm -rf "/Library/Application Support/Hilt/EDR"
```

停用后，从 **System Settings → Privacy & Security → Full Disk Access** 和 **Login Items & Extensions → Endpoint Security Extensions** 中移除过时的 **ESensor** 条目。无需重启。

> [!NOTE]
>
> 系统扩展是通过系统扩展生命周期停用的，而非仅靠删除文件。请使用应用的卸载操作（或其停用请求），以便 macOS 从 `/Library/SystemExtensions/` 中移除该扩展；仅移除应用包可能会遗留一个已停用但仍暂存的扩展。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.