Google Santa项目文件访问授权功能详解

Google Santa项目文件访问授权功能详解

santa A binary authorization and monitoring system for macOS santa 项目地址: https://gitcode.com/gh_mirrors/sa/santa

概述

Google Santa是一个macOS安全监控工具,其文件访问授权(File Access Authorization)功能允许管理员监控文件系统路径,并对潜在的不必要访问进行记录或阻止。本文将详细介绍该功能的配置和使用方法。

功能简介

文件访问授权功能主要提供以下能力:

  • 监控指定文件路径的访问行为
  • 可选择仅记录(Audit)或直接阻止(Deny)违规操作
  • 支持为特定进程设置例外规则
  • 提供详细的访问日志记录

重要提示:此功能仅支持macOS 13及以上版本。

功能启用

要启用文件访问授权功能,需要在Santa主配置文件中设置以下两个关键参数:

  1. FileAccessPolicyPlist - 指定文件访问策略配置文件的路径
  2. FileAccessPolicyUpdateIntervalSec - 设置策略重新应用的间隔时间(秒)

配置文件详解

文件访问授权功能的配置文件采用Plist格式,主要包含以下结构:

根级配置项

| 配置项 | 类型 | 必填 | 说明 | |-------|------|------|------| | Version | 字符串 | 是 | 配置版本号,会记录在事件日志中 | | EventDetailURL | 字符串 | 否 | 事件详情页面URL模板 | | EventDetailText | 字符串 | 否 | 事件详情按钮显示文本(最长48字符) | | WatchItems | 字典 | 否 | 监控规则集合 |

监控规则配置

每个监控规则包含以下配置项:

| 配置项 | 类型 | 必填 | 说明 | |-------|------|------|------| | Paths | 数组 | 是 | 要监控的路径模式列表 | | Options | 字典 | 否 | 规则行为选项 | | Processes | 数组 | 否 | 例外进程列表 |

路径配置

路径配置支持两种格式:

  1. 简单字符串格式:使用默认属性值
  2. 字典格式:可自定义属性

路径配置支持以下属性:

| 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | Path | 字符串 | - | 要监控的路径模式 | | IsPrefix | 布尔 | false | 是否作为前缀路径匹配 |

规则选项

规则选项控制监控行为:

| 选项 | 类型 | 默认值 | 说明 | |------|------|--------|------| | AllowReadAccess | 布尔 | false | 是否允许只读访问 | | AuditOnly | 布尔 | true | 是否仅记录不阻止 | | InvertProcessExceptions | 布尔 | false | 是否反转进程例外逻辑 | | EnableSilentMode | 布尔 | false | 是否禁用GUI弹窗 | | EnableSilentTTYMode | 布尔 | false | 是否禁用TTY消息 |

进程例外

进程例外配置支持以下匹配条件:

| 条件 | 类型 | 说明 | |------|------|------| | BinaryPath | 字符串 | 进程执行路径 | | TeamID | 字符串 | 进程Team ID | | CertificateSha256 | 字符串 | 进程证书SHA256 | | CDHash | 字符串 | 进程CDHash | | SigningID | 字符串 | 进程签名ID | | PlatformBinary | 布尔 | 是否为平台二进制 |

配置示例

以下是一个完整的配置文件示例:

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Version</key>
    <string>v0.1</string>
    <key>WatchItems</key>
    <dict>
        <key>ProtectUserData</key>
        <dict>
            <key>Paths</key>
            <array>
                <string>/Users/*/Documents</string>
                <dict>
                    <key>Path</key>
                    <string>/Users/*/Desktop</string>
                    <key>IsPrefix</key>
                    <true/>
                </dict>
            </array>
            <key>Options</key>
            <dict>
                <key>AllowReadAccess</key>
                <true/>
                <key>AuditOnly</key>
                <false/>
            </dict>
            <key>Processes</key>
            <array>
                <dict>
                    <key>BinaryPath</key>
                    <string>/Applications/Preview.app/Contents/MacOS/Preview</string>
                </dict>
            </array>
        </dict>
    </dict>
</dict>
</plist>

工作原理

规则匹配机制

当多个规则匹配同一路径时,Santa会应用"最具体"的规则(即路径匹配最长的规则)。例如:

  • 规则1: /tmp/foo (前缀匹配)
  • 规则2: /tmp/foo.txt (精确匹配)
  • 规则3: /tmp (前缀匹配)

对于不同路径的访问将应用不同规则:

| 访问路径 | 应用规则 | 原因 | |---------|---------|------| | /tmp/foo | 规则1 | 前缀匹配且比规则3更具体 | | /tmp/foo.txt | 规则2 | 精确匹配最具体 | | /tmp/bar | 规则3 | 仅匹配规则3 |

路径模式匹配

路径模式匹配是静态的,仅在配置加载时评估。这意味着:

  1. 新增的文件/目录不会自动监控,除非重新加载配置
  2. 配置中的FileAccessPolicyUpdateIntervalSec控制配置重新加载间隔

特殊路径处理

  1. 符号链接:必须使用解析后的路径,不能直接监控符号链接
  2. 硬链接:不允许为监控路径创建硬链接,已有硬链接可能绕过监控
  3. 大小写敏感:所有路径匹配都是大小写敏感的

日志记录

当发生文件访问事件时,Santa会记录详细日志。日志格式支持两种:

  1. 文本格式示例:
action=FILE_ACCESS|policy_version=v0.1|policy_name=ProtectUserData|path=/Users/test/Documents/secret.txt|access_type=OPEN|decision=DENY|pid=123|process=malware|processpath=/tmp/malware
  1. Protobuf格式:使用santa.proto中定义的FileAccess消息格式

最佳实践

  1. 对于重要目录,建议同时配置精确匹配和前缀匹配规则
  2. 生产环境应将AuditOnly设为false以启用实际防护
  3. 为常用合法程序配置进程例外,减少误报
  4. 定期检查日志,优化规则配置
  5. 注意macOS系统路径的特殊性(如/var是符号链接)

注意事项

  1. 某些系统二进制文件(默认静默集)的访问不会被记录
  2. 避免配置重复路径,可能导致不可预测的行为
  3. 路径模式匹配不支持正则表达式,仅支持简单通配符
  4. 监控大量路径可能影响系统性能

通过合理配置Google Santa的文件访问授权功能,可以有效保护macOS系统中的敏感文件,防止未经授权的访问和修改。

santa A binary authorization and monitoring system for macOS santa 项目地址: https://gitcode.com/gh_mirrors/sa/santa

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石喜宏Melinda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值