如何通过 macOS 终端审计敏感文件访问记录

冬磊姑娘_6625

冬磊姑娘_6625

2026-06-08

618人浏览

原创

macos无一键开启敏感文件访问审计的原生开关,但可通过unified logging监听tccd/sandboxd/kernel日志、openbsm持久化捕获fr/fw系统调用、fswatch实时监控目录变更,三者组合实现轻量、可追溯、隐私友好的审计能力。

如何通过 macos 终端审计敏感文件访问记录

macOS 没有“一键开启敏感文件访问审计”的原生开关,但可通过终端组合命令,聚焦关键路径、进程和事件类型,构建实用、可追溯的审计能力。核心思路是:不追求全盘录像,而抓取高价值线索——谁、何时、试图访问了哪些敏感位置、是否被允许或拦截。

启用 Unified Logging 捕获权限与沙盒事件

这是最轻量、无需重启、系统自带的首选方式。它能记录 App 请求全盘/敏感目录权限、被沙盒拦截的读写尝试、内核层拒绝操作等关键决策点。

执行以下命令实时监听:

log stream \
  --predicate 'subsystem == "com.apple.tccd" OR subsystem == "com.apple.sandboxd" OR process == "kernel"' \
  --info --debug --signpost
  • tccd 日志显示:哪个 App(如 com.google.Chrome)在何时请求 /Users/xxx/Documents 的访问权限,用户点了“允许”还是“拒绝”
  • sandboxd 日志显示:某个进程(如 backupd)尝试读取 /Library/Keychains/login.keychain-db 被明确拒绝(deny file-read-data)
  • kernel 日志中配合 --debug 可看到 VFS 层 openat 失败的具体路径和错误码

✅ 提示:加 > ~/sensitive_access.log 可保存;用 --last 1h 替换 stream 可查历史;搜索关键词如 "Documents"、"Keychains"、"Downloads" 快速定位敏感路径线索。

对指定敏感目录启用持久化读写捕获(OpenBSM)

若需记录实际发生的读写行为(而非仅拦截/授权),可启用系统内置的 OpenBSM 审计子系统,它会将每次 fr(文件读)、fw(文件写)等调用写入二进制日志。

macos-suite-readonly
macos-suite-readonly

macOS 只读查询:Mail 未读、Calendar 日程、Notes 搜索、Stocks 行情(输出 JSON)。

下载

三步完成配置:

# 1. 扩展审计标志(加入 fr,fw)
sudo sed -i '' 's/^flags:.*/flags:lo,aa,fr,fw,fa,fc,fd/' /etc/security/audit_control

# 2. 重载配置并重启守护进程
sudo audit -n && sudo killall -HUP auditd 2>/dev/null || sudo launchctl kickstart -k system/com.apple.auditd

# 3. 验证是否生效(查看最近写入记录)
sudo praudit /var/audit/* 2>/dev/null | awk '/path:/ {p=$0; next} /fr|fw/ && p {print p; p=""}' | grep -E "(Documents|Keychains|Desktop|Library/Keychains)" | head -5
  • 日志默认存于 /var/audit/,按时间戳命名(如 20260606120000.not_terminated)
  • 输出中能看到完整路径(如 /Users/me/Documents/report.xlsx)、事件类型(fw)、进程名(Microsoft\ Word)、UID 和时间戳
  • 注意:此方式记录的是系统调用级行为,不记录文件内容,隐私友好

实时盯住敏感目录的变更行为(fswatch)

对 /Users/xxx/Documents、~/Desktop、/Library/Preferences 等重点目录,用 fswatch 做轻量级、用户态监听,响应快、无权限要求,适合日常防护。

安装并运行:

brew install fswatch
fswatch -o ~/Documents | while read path; do
  echo "$(date '+%H:%M:%S') — Modified: $path" >> ~/docs_audit.log
done
  • -o 输出事件数量,配合 while read 可做定制化动作(如发通知、记录时间戳)
  • 加 -l 0.5 可合并 0.5 秒内的重复事件(避免编辑器自动保存触发多条)
  • 不依赖 root 权限,适合普通用户长期运行

补充:快速排查近期可疑访问

不需要长期开启审计,也能快速回溯。例如怀疑某文件被异常读取:

# 查看过去24小时内所有涉及该文件的日志(含 tccd/sandboxd/kernel)
log show --predicate 'eventMessage contains "/Users/me/Documents/secret.pdf"' --last 24h --style syslog

# 或查所有对 Documents 目录的授权请求
log show --predicate 'subsystem == "com.apple.tccd" AND eventMessage contains "Documents"' --last 7d

不复杂但容易忽略

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

macos

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4165

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

375

21

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3690

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3213

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2273

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5450

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5102

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3053

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2565

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Miniconda官方安装文档
Miniconda官方安装文档

共0课时 | 0人学习

HBuilderX macOS 安装手册
HBuilderX macOS 安装手册

共0课时 | 0人学习