Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
sinter — 一个用Swift编写的macOS用户模式应用程序授权系统 | Kitploit
工具/GitHubGitHub/trailofbits/sinter
防御工具配置审计事件响应Archived
GitHubtrailofbits/sinter

sinter

一个用Swift编写的macOS用户模式应用程序授权系统

查看仓库网站
2991555年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Sinter

构建状态

Sinter 是一个 100% 用户态端点安全代理,适用于 macOS 10.15 及以上版本,使用 Swift 编写。

Sinter 利用用户态 EndpointSecurity API 订阅并从 macOS 内核接收授权回调,针对一组安全相关的事件类型。当前版本支持允许/拒绝进程执行;在未来的版本中,我们计划支持其他类型的事件,如文件、套接字和内核事件。

Sinter 是一个正在进行中的工作。 欢迎反馈。如果您有兴趣贡献或赞助我们以帮助实现其潜力,请与我们联系。

功能

  • 通过代码目录哈希(即“CD hash”)允许或拒绝进程执行
    • 选项:拒绝所有未知程序(未明确允许的任何程序)
    • 选项:拒绝所有未签名的程序
    • 选项:拒绝所有签名无效的程序
  • “监控”模式,用于跟踪并记录(但允许)所有进程执行事件
  • 接受来自 Santa 同步服务器的允许/拒绝规则
  • 以 JSON 格式配置拒绝规则,可通过本地或同步服务器提供
  • 以结构化 JSON 格式记录到本地文件系统

即将推出的功能:

  • 通过可执行文件路径拒绝进程执行
  • 通过证书团队 ID拒绝进程执行

反功能

  • 不使用内核扩展(将在 macOS 11 Big Sur 中正式弃用)
  • 不支持旧版 macOS(10.14 或更早)
  • 不使用任何内存不安全代码
  • 限制第三方库依赖
  • 不是反恶意软件或反病毒软件。无签名数据库。仅根据规则拒绝你指定的程序。

背景

第一个开源 macOS 解决方案用于允许/拒绝进程的是 Google Santa。我们是 Santa 的粉丝,并且过去曾为其代码库做出贡献。然而,长期以来,macOS 社区中的许多人都要求一个开源解决方案来跟踪和管理 超出 进程事件的更多内容。

我们认为 macOS 10.15 中的 EndpointSecurity API 是构建这种能力的理想平台。从头开始围绕严格的用户态 API 设计,意味着我们可以尝试更简单的设计,并使用一种具有更安全内存处理和更好性能的现代编程语言。因此,我们着手开发 Sinter,它是“Sinter Klausen”的简称,即圣诞老人的另一个名字。

入门指南

从 Releases 页面下载并安装最新版本的 Sinter,使用 pkg 安装程序链接。

安装 Sinter 后,您必须为 Sinter.app 启用“完全磁盘访问”权限。打开“系统偏好设置”、“安全性与隐私”、“隐私”选项卡、“完全磁盘访问”。勾选 Sinter.app 的项目。如果使用 MDM,您可以在终端上自动启用此权限,无需用户交互。

配置

Sinter 需要一个位于 /etc/sinter/config.json 的配置文件。源树中的 ./config/config.json 提供了一个示例:

root@kitploit:~
{
  "Sinter": {
    "decision_manager": "local",
    "logger": "filesystem",

    "allow_unsigned_programs": "true",
    "allow_invalid_programs": "true",
    "allow_unknown_programs": "true",
    "allow_expired_auth_requests": "true",
    "allow_misplaced_applications": "true",

    "config_update_interval": 600,

    "allowed_application_directories": [
      "/bin",
      "/usr/bin",
      "/usr/local/bin",
      "/Applications",
      "/System",
      "/usr/sbin",
      "/usr/libexec",
    ],
  },
  
  "FilesystemLogger": {
    "log_file_path": "/var/log/sinter.log",
  },

  "RemoteDecisionManager": {
    "server_url": "https://server_address:port",
    "machine_identifier": "identifier",
  },

  "LocalDecisionManager": {
    "rule_database_path": "/etc/sinter/rules.json",
  }
}

可以通过更改 decision_manager 值来选择决策管理器插件。local 插件将启用 LocalDecisionManager 配置部分,使 Sinter 使用位于给定路径的本地规则数据库。也可以使用与 Santa 兼容的同步服务器,通过使用 sync-server 插件。这会启用 RemoteDecisionManager 配置部分,可以设置服务器 URL 和机器标识符。

目前实现了两个日志记录器插件:

  1. filesystem:消息写入到文件,路径由 FilesystemLogger.log_file_path 指定
  2. unifiedlogging:日志使用统一日志记录系统发出,子系统为 com.trailofbits.sinter

允许的应用程序目录

可以配置 Sinter 记录并可选地拒绝从允许文件夹之外启动的应用程序。

  • allow_misplaced_applications:如果设置为 true,错位的应用程序只会生成警告。如果设置为 false,任何从有效路径之外启动的执行都会被拒绝。
  • allowed_application_directories:如果非空,则用于确定应用程序是否放在错误的文件夹中。

启用 UI 通知

  1. 安装通知服务器(PKG 安装程序会自动完成):sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server
  2. 启动代理:/Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

在 MONITOR 模式下配置 Sinter

Sinter 中未实现模式,因为一切都是基于规则的。可以通过调整以下设置来实现监控功能:

  • allow_unsigned_programs:允许未签名的应用程序
  • allow_invalid_programs:允许签名检查失败的应用程序
  • allow_unknown_programs:自动允许活动规则数据库未覆盖的应用程序
  • allow_expired_auth_requests:EndpointSecurity API 要求 Sinter 在未指定的时间范围内(通常少于 1 分钟)响应授权请求。大型应用程序(如 Xcode)需要相当长的时间来验证。默认情况下,这些执行会被拒绝,用户需要在应用程序验证完成后重试。将此配置设置为 true 会改变此行为,使这些请求始终被允许。

规则格式

规则数据库以 JSON 格式编写。以下是一个示例数据库,允许来自 cmake.org 的 CMake 应用程序包:

root@kitploit:~
{
  "rules": [
    {
      "rule_type": "BINARY",
      "policy": "ALLOWLIST",
      "sha256": "BDD0AF132D89EA4810566B3E1E0D1E48BAC6CF18D0C787054BB62A4938683039",
      "custom_msg": "CMake"
    }
  ]
}

Sinter 目前仅支持 BINARY 规则,使用 ALLOWLIST 或 DENYLIST 策略。代码目录哈希值可以从 codesign 工具输出中获取(例如:codesign -dvvv /Applications/CMake.app)。请注意,尽管 CLI 工具可以获取完整的 SHA256 哈希,但内核/EndpointSecurity API 仅限于前 20 个字节。

从源码构建

构建 Sinter 需要 Apple 必须授予您组织的某些代码签名证书和授权。但是,Sinter 仍然可以从源码构建并在禁用了 SIP 的测试系统上本地运行。有关说明,请参阅 Sinter wiki。

许可证

Sinter 根据 AGPLv3 许可证许可和分发。如果您需要例外条款,请联系我们。

下载工具