bruja-lab/macos-system-hardening-
GitHub: bruja-lab/macos-system-hardening-
该项目提供了一套基于命令行的 macOS 主机加固与威胁狩猎操作手册,涵盖持久化检测、网络审计及 LuLu 反向防火墙零信任部署。
Stars: 0 | Forks: 0
### 船长日志:Bashful 系统加固
**日期:** 2026-05-23
**目标:** 威胁狩猎、边界加固以及移除未经授权的/后台监控。
|**命令**|**目标**|**结果**|
|---|---|---|
|`launchctl list \| grep -v com.apple`|识别第三方启动代理。|干净(未发现恶意持久化代理)。|
|`lsof -iTCP -sTCP:ESTABLISHED`|列出活动的网络连接。|验证仅有合法的系统流量。|
|`sudo lsof -iTCP -sTCP:LISTEN`|审计开放监听的“后门”端口。|未发现未经授权的远程监听程序。|
|`top -u`|监控实时 CPU/进程心跳。|识别出高负载的系统进程。|
|`sudo networksetup -setairportpower en0 off`|强制硬件禁用 Wi-Fi 天线。|**成功:** 天线已关闭。|
|`networksetup -listallhardwareports`|映射所有物理/逻辑网络接口。|识别出所有内部/虚拟端口。|
|`ifconfig \| grep -E "status\|flags"`|验证活动网络接口的状态。|**成功:** 确认 `en4` 为唯一网关。|
|`networksetup -getairportpower en0`|验证 Wi-Fi 的电源状态。|**已确认:** "Off"。|
### 命令含义与取证定义
- **`launchctl`**:macOS 的主服务管理器。它控制所有的后台 daemon 和进程。
- **`lsof` (List Open Files)**:在 Unix 中,“一切皆文件”。此命令允许你查看每一个打开了网络“文件”(端口)的程序。
- **`grep`**:一个过滤工具。我们用它来在其他命令产生的大量输出中搜索特定的字符串(如 `LISTEN` 或 `status`)。
- **`sudo`**:“SuperUser DO”。它授予你与硬件和系统文件交互的管理员权限。**请始终谨慎使用。**
- **`networksetup`**:系统偏好设置中网络设置的命令行等效工具。它是控制你的 Mac 如何与外界通信的最强大工具。
- **`ifconfig`**:一个经典的网络工具,用于配置和查看网络接口(我们映射的“门”)的状态。
- **`mtu`**:Maximum Transmission Unit。这是一个端口可以处理的最大数据包大小。1500 是以太网的标准值。
- **`en0`、`en4` 等**:这些是你的网络接口的设备标签。`en` 代表“以太网”(即使是 Wi-Fi 也一样),数字是内核分配的特定索引。
- **`utun`**:User Tunnel。这些是由 Proton VPN 等软件创建的虚拟接口,用于管理加密的流量。
### 下一步战术行动:LuLu
你已经有了一个干净、经过审计和加固的基线。你的系统没有活动的 Wi-Fi,没有监听的后门,而且你确切地知道哪个端口(`en4`)是你连接互联网的唯一路径。
--
船长日志:LuLu 反向防火墙部署
**日期:** 2026-05-23 **目标:** 建立零信任主机入侵防御系统(HIPS),以监控、拦截并授权所有传出网络流量。
|阶段|操作 / 命令|取证结果与含义|
|---|---|---|
|**1. 获取**|通过官方 Objective-See 源下载 `LuLu`。|获取了经过加密签名的开源防火墙二进制文件。|
|**2. 内核授权**|绕过 **隐私与安全性** 中的 macOS 限制。|授予 LuLu `System Extension` 权限,以在操作系统网络层拦截数据包。|
|**3. 基线配置**|勾选:“Allow Apple Programs”。|自动将原生 macOS daemon 加入白名单,以防止系统崩溃和严重的警报疲劳。|
|**4. 零信任配置**|**取消勾选:** “Allow Already Installed Applications”。|撤销了对所有当前已安装软件的隐式信任。强制要求对每一个现有应用进行手动授权。|
|**5. DNS 配置**|勾选:“Allow DNS Traffic (Port 53)”。|允许原始 IP 查询。_注:防止防火墙阻塞,同时仍阻止向这些 IP 进行的未授权数据外泄。_|
|**6. 范围定义**|通过 **“Process”** 范围(而非 Remote Endpoint)授权 Proton VPN。|允许经过验证的 VPN 应用程序在全球安全服务器之间动态轮换,而不会中断隧道。|
|**7. 压力测试**|执行全面的系统重启。|清除所有现有的网络套接字;强制所有后台代理重建连接进入 LuLu 的活动网。**结果:** 干净启动,未检测到未经授权的追踪 daemon。|
标签:取证审计, 应用安全, 系统加固, 系统运维, 零信任网络