利用ssh绕过macOS Majave的用户保护机制
字数 1214 2025-08-27 12:33:23

macOS Mojave 用户保护机制绕过分析与防护指南

1. Mojave 用户保护机制概述

macOS Mojave (10.14) 引入了一项重要的安全特性 - 用户数据保护机制。该机制要求应用在访问特定敏感资源时必须获得用户明确授权,旨在防止未经授权的用户数据访问。

1.1 受保护的资源

以下用户文件夹默认受到保护,需要授权才能访问:

  • Mail(邮件数据)
  • Messages(消息数据)
  • Cookies(浏览器Cookie)
  • Suggestions(建议数据)
  • Safari(Safari浏览器数据)

1.2 授权机制

用户可以通过以下路径授权应用访问受保护资源:
系统偏好设置 > 安全性与隐私 > 隐私 > 完全磁盘访问权限

2. 保护机制的绕过方法

研究发现Mojave的用户保护机制存在重大设计缺陷,可通过SSH方式绕过。

2.1 绕过原理

  • 访问控制基于请求位置而非请求者:系统仅检查请求是否来自特定文件夹,而不验证请求者的身份或权限
  • SSH例外:通过SSH登录的用户可以不受限制地访问受保护文件夹,即使Terminal未被加入完全磁盘访问权限列表

2.2 复现步骤

  1. 获取目标系统的管理员凭证
  2. 通过SSH远程登录目标账户
    ssh username@target_ip
    
  3. 直接访问受保护文件夹(如Safari)
    cd ~/Library/Safari
    ls
    
  4. 读取敏感文件(如LastSession.plist获取浏览器最后会话信息)

3. 保护机制的其他缺陷

3.1 对话框疲劳(Dialog Fatigue)

  • 频繁弹出的授权请求导致用户习惯性点击"允许"
  • 恶意软件可借此获取授权

3.2 通用白名单(Universal Whitelisting)

  • 应用一旦获得完全磁盘访问权限,即可访问所有受保护资源
  • 系统应用(如Script Editor、Automator、Terminal)被授权后可能被恶意利用

4. 安全检测与防护措施

4.1 检测已授权应用

查看完全磁盘访问权限列表:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db 'SELECT * from access' | grep kTCCServiceSystemPolicyAllFiles

注意:执行此命令需要Terminal已被授权,否则可通过SSH绕过执行。

4.2 防护SSH绕过

  1. 通过SSH登录并尝试访问受保护文件夹
  2. 打开系统偏好设置 > 安全性与隐私 > 隐私 > 完全磁盘访问权限
  3. 检查列表中是否包含sshd-keygen-wrappersshd
  4. 移除相关SSH项目并锁定设置
  5. 验证防护效果:
    cd ~/Library/Safari
    # 应返回"Operation not permitted"错误
    

4.3 其他安全建议

  1. 最小权限原则:仅授权确实需要的应用
  2. 定期审计:检查完全磁盘访问权限列表中的异常条目
  3. 用户教育:提高对授权请求对话框的警惕性
  4. SSH加固
    • 限制SSH访问权限
    • 使用密钥认证而非密码
    • 禁用root远程登录

5. 结论

macOS Mojave的用户数据保护机制虽然提升了安全性,但存在严重设计缺陷:

  • 可通过SSH完全绕过
  • 授权机制存在对话框疲劳和通用白名单问题

系统管理员和用户应采取积极措施加固系统,特别是对SSH服务的配置和监控,以弥补系统自带保护机制的不足。

macOS Mojave 用户保护机制绕过分析与防护指南 1. Mojave 用户保护机制概述 macOS Mojave (10.14) 引入了一项重要的安全特性 - 用户数据保护机制。该机制要求应用在访问特定敏感资源时必须获得用户明确授权,旨在防止未经授权的用户数据访问。 1.1 受保护的资源 以下用户文件夹默认受到保护,需要授权才能访问: Mail(邮件数据) Messages(消息数据) Cookies(浏览器Cookie) Suggestions(建议数据) Safari(Safari浏览器数据) 1.2 授权机制 用户可以通过以下路径授权应用访问受保护资源: 系统偏好设置 > 安全性与隐私 > 隐私 > 完全磁盘访问权限 2. 保护机制的绕过方法 研究发现Mojave的用户保护机制存在重大设计缺陷,可通过SSH方式绕过。 2.1 绕过原理 访问控制基于请求位置而非请求者 :系统仅检查请求是否来自特定文件夹,而不验证请求者的身份或权限 SSH例外 :通过SSH登录的用户可以不受限制地访问受保护文件夹,即使Terminal未被加入完全磁盘访问权限列表 2.2 复现步骤 获取目标系统的管理员凭证 通过SSH远程登录目标账户 直接访问受保护文件夹(如Safari) 读取敏感文件(如LastSession.plist获取浏览器最后会话信息) 3. 保护机制的其他缺陷 3.1 对话框疲劳(Dialog Fatigue) 频繁弹出的授权请求导致用户习惯性点击"允许" 恶意软件可借此获取授权 3.2 通用白名单(Universal Whitelisting) 应用一旦获得完全磁盘访问权限,即可访问所有受保护资源 系统应用(如Script Editor、Automator、Terminal)被授权后可能被恶意利用 4. 安全检测与防护措施 4.1 检测已授权应用 查看完全磁盘访问权限列表: 注意:执行此命令需要Terminal已被授权,否则可通过SSH绕过执行。 4.2 防护SSH绕过 通过SSH登录并尝试访问受保护文件夹 打开 系统偏好设置 > 安全性与隐私 > 隐私 > 完全磁盘访问权限 检查列表中是否包含 sshd-keygen-wrapper 或 sshd 移除相关SSH项目并锁定设置 验证防护效果: 4.3 其他安全建议 最小权限原则 :仅授权确实需要的应用 定期审计 :检查完全磁盘访问权限列表中的异常条目 用户教育 :提高对授权请求对话框的警惕性 SSH加固 : 限制SSH访问权限 使用密钥认证而非密码 禁用root远程登录 5. 结论 macOS Mojave的用户数据保护机制虽然提升了安全性,但存在严重设计缺陷: 可通过SSH完全绕过 授权机制存在对话框疲劳和通用白名单问题 系统管理员和用户应采取积极措施加固系统,特别是对SSH服务的配置和监控,以弥补系统自带保护机制的不足。