macOS是相对封闭的操作系统,进行事件采集与行为审计有用户态可内核态两种方案,其中用户态方案可选FSEvents,kdebug、kqueue等框架,相关编码可参考fsmon,但方案可能不满足实时性要求高的场景,且不支持事件发生前的阻断能力。
如实时性要求高或需支持事件阻断能力,需选择内核拓展或系统拓展方案。低版本操作系统(10.15及以下系统)可选内核拓展方案,基于Kauth框架编写文件与进程事件的监控与审计后端,基于网络内核拓展中的SocketFilter等过滤器编写网络事件监控与审计后端。Apple发布Big Sur系统后,第三方的内核拓展默认不再支持加载,官方推出了EndpointSecurity框架作为内核拓展相关功能的替代方案。基于Endpoint Security可编写运行于用户态的系统拓展进行文件、进程等事件的监控与审计。此外,开发者可基于网络拓展中的ContentFilter等过滤器进行网络事件的监控与审计。
NuwaStone是支持macOS10.12及以上系统的终端行为审计系统。基于内核拓展/系统拓展进行事件采集并提供阻断接口,提供用户交互界面以显示各类事件。
界面如上图,可分类显示文件、进程、网络事件,并提供关键字过滤和事件频率曲线绘制功能。所支持的事件类型包括:
- 文件:创建、删除、写关闭、重命名
- 进程:创建、推出(仅11.x+系统支持)
- 网络:连接、DNS查询
如果有未经签名的进程执行,NuwaStone将进行拦截,并对用户发出警告,警告如下图所示。用户可选阻断/放通本次或记住该选择。
此外,用户可配置偏好设置以过滤不感兴趣事件。配置界面如下,可配置过滤项包括文件事件过滤路径、网络事件过滤路径、放通执行名单、阻断执行名单。用户配置可落地,无需每次启动后再次配置。