macOS 系统权限:脚本自动检测敏感目录访问

酷浩吖_3238

酷浩吖_3238

2026-07-01

631人浏览

原创

macos无一键开关,但可用log stream监听tccd/sandboxd/kernel事件实时捕获敏感目录访问;fs_usage抓取进程级读写;fswatch感知结构变更;openbsm支持持久化审计。

macos 没有“一键开启敏感目录访问检测”的开关,但可通过终端组合命令,在不安装第三方工具的前提下,实时捕获谁、何时、以何种方式尝试访问指定敏感路径——重点抓取高价值线索,而非全量日志。

用 Unified Logging 实时监听权限决策点

这是最轻量、无需重启、系统原生支持的方式,聚焦 tccd(隐私授权)、sandboxd(沙盒拦截)和 kernel(内核拒绝)三类关键事件:

  • 运行命令实时观察:
    log stream --predicate 'subsystem == "com.apple.tccd" OR subsystem == "com.apple.sandboxd" OR process == "kernel"' --info --debug
  • tccd 日志显示:哪个 App(如 com.microsoft.OneDrive)在什么时间请求访问 /Users/xxx/Finance,用户点了“允许”还是“拒绝”
  • sandboxd 日志显示:进程 backupd 尝试读取 ~/Library/Keychains/login.keychain-db 被明确 deny file-read-data
  • kernel 日志配合 --debug 可看到 openat 失败的具体路径与错误码(如 ENOENT 或 EACCES)
  • 加 > ~/sensitive-access.log 保存记录;用 --last 30m 查最近半小时历史;搜索关键词如 “Finance”、“Backups”、“Keychains” 快速定位

对特定目录启用进程级读写捕获

当需要确认“实际发生了哪些读写”,而非仅看拦截或授权结果,可用 fs_usage 直接抓取内核 I/O 调用:

macOS Notes
macOS Notes

通过 AppleScript 创建、读取、搜索及管理 macOS 备忘录。适用于用户要求记笔记、记录事项、保存想法、创建会议记录等场景。

下载
  • 监控整个目录(含子项)的写入行为:
    sudo fs_usage -w | grep -E "(write|open.*W).*\/SensitiveData"
  • 排除干扰日志,只盯目标路径:
    sudo fs_usage -e fs_usage -w | grep "/SensitiveData"
  • 锁定某个可疑进程(如 Dropbox 或自家脚本):
    sudo fs_usage -p $(pgrep -f "my-monitor.sh")
  • 输出含进程名、操作类型(write/truncate)、文件路径、数据量(bytes)和精确到毫秒的时间戳

用 fswatch 感知目录结构变更

适合快速发现“文件增删改”这类高层动作,响应快、不依赖 root 权限,且天然支持子目录递归监听:

  • 先安装:brew install fswatch
  • 监听并打印每次变更的完整路径:
    fswatch -o ~/SensitiveData | xargs -n1 echo "Detected:"
  • 防重复触发(如编辑器自动保存多次):
    fswatch -l 0.5 ~/SensitiveData(0.5 秒内合并同类事件)
  • 可接管道做进一步判断,例如:
    fswatch -o ~/SensitiveData | while read path; do [ -f "$path" ] && stat -f "%Sm" -t "%Y-%m-%d %H:%M:%S" "$path"; done

补充持久化审计(合规场景适用)

若需满足审计留痕要求,可启用系统内置 OpenBSM,将每次 fr(读)和 fw(写)调用写入二进制日志:

  • 启用审计规则:
    sudo sed -i '' 's/^flags:.*/flags:lo,aa,fr,fw,fa,fc,fd/' /etc/security/audit
  • 重启服务:
    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.auditd.plist<br>sudo launchctl load /System/Library/LaunchDaemons/com.apple.auditd.plist
  • 日志默认存于 /var/audit/,用 praudit 解析:
    sudo praudit /var/audit/20260613083000.000
  • 筛选敏感路径:
    sudo praudit /var/audit/... | awk '/path.*SensitiveData/ {print}'

相关文章

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

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

下载

相关标签:

macos

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

相关专题

更多
macOS怎么切换用户账户
macOS怎么切换用户账户

在 macOS 系统中,可通过多种方式切换用户账户。如点击苹果图标选择 “系统偏好设置”,打开 “用户与群组” 进行切换;或启用快速用户切换功能,通过菜单栏或控制中心的账户名称切换;还能使用快捷键 “Control+Command+Q” 锁定屏幕后切换。

2025.05.09

4584

14

Java 网络安全
Java 网络安全

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

2025.10.13

4745

12

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

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

2025.11.04

415

21

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

20

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

0

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

0

15

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

2026.10.16

0

15

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

2026.10.16

20

15

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

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

共0课时 | 0人学习