Sinter

Sinter是一款针对macOS v10.15及其以上版本的100%用户模式终端安全代理,该工具基于Swift语言开发,使用了用户模式EndpointSecurity API来订阅和接收来自macOS内核的授权回调,这里主要针对的是安全相关的事件类型。Sinter的当前版本支持允许/拒绝进程执行,在将来的版本中,我们打算支持其他类型的事件,比如说文件操作、套接字和内核事件等等。

功能介绍

  • 通过代码目录哈希来允许或拒绝进程执行;

  • “监控器模式”支持跟踪和记录所有的进程执行事件(拒绝所有未知程序、拒绝所有未签名程序、拒绝所有无效签名程序);

  • 接受来自Santa同步服务器的允许/拒绝规则;

  • 支持来自本地或同步服务器的JSON格式配置拒绝规则;

  • 在本地文件系统以结构化JSON格式记录日志;

其他特性

  • 未使用内核扩展;

  • 不支持遗留macOS系统(14及之前版本);

  • 未使用任何内存不安全的代码;

  • 有限的第三方库依赖;

  • 并非反恶意软件或反病毒产品,不包含特征数据库;

  • 仅使用规则来拒绝你不想要执行的进程或程序;

工具下载&安装

广大研究人员可以使用该项目Releases页面中提供的pkg安装工具来下载和安装最新版本的Sinter。

安装好Sinter之后,你还需要为Sinter.app提供完整的磁盘访问权限。这里可以打开系统设置->安全->隐私->完整磁盘访问,勾选Sinter.app即可。如果使用了DMD,你还可以在终端自动启用该权限,整个过程也不需要涉及用户交互。

工具配置

Sinter需要在/etc/sinter/config.json中生成一个配置文件,下面给出的的配置文件源码样例:

{  "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",  }}

启用UI通知

1、安装通知服务器,PKG安装器将会自动完成这部分组件的安装:

sudo /Applications/Sinter.app/Contents/MacOS/Sinter --install-notification-server

2、使用下列命令开启代理:

/Applications/Sinter.app/Contents/MacOS/Sinter --start-notification-server

规则格式

规则数据库以JSON格式编写,下面给出的样例数据库允许来自cmake.okg的CMake应用程序Bundle运行:

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

Sinter目前仅支持BINARY规则,这里可以使用ALLOWLIST或DENYLIST策略。代码目录哈希值可以从codesign工具的输出获取,比如说codesign -dvvv /Applications/CMake.app。需要注意的是,即使命令行工具能够获取完整的SHA256哈希,Kernel/EndpointSecurity API仍然只能获取前20字节的哈希。

许可证协议

Sinter项目的开发与发布遵循AGPLv3开源许可证协议。

项目地址

Sinter:https://github.com/trailofbits/sinter

精彩推荐

macos server 恢复安装_Sinter:一款针对macOS的用户模式应用程序授权系统相关推荐

  1. macos server 恢复安装_Go语言:Docker安装及运行consul节点

    微服务管理--Docker安装及运行consul节点 搭建集群 在真实的生产环境中,需要真实的部署consul集群.在一台机器上想要模拟多台集群部署的效果,有两种方案:一种是借助虚拟机,另一种是借助容 ...

  2. macos server 恢复安装_如何通过 macOS 恢复功能重新安装 macOS

    看点:iPhone X原装屏与国产屏有哪些区别? 看点:换7P.8P屏幕:C11和DTP和DKH的区别 狮淘:不锈钢拆机片5个只需9.9元!包邮!每天10名 了解如何使用 macOS 恢复功能在内置驱 ...

  3. 推荐一款基于 .NET Core开源的小程序商城系统

    由于疫情的缘故,很多商家都把线下的战场转移到线上了.而小程序就成为商家越来越看中的新战场,因为它能够帮助克服疫情对于经济的影响,开辟新的零售模式.今天就给大家推荐一款开源的小程序商城系统. 项目简介 ...

  4. Windows Server 2016 安装 Docker

    必备条件 若要在 Windows Server 上运行容器,需要一台运行 Windows Server(半年频道).Windows Server 2019 或 Windows Server 2016 ...

  5. MacOS Server安装与应用

    MacOS Server是苹果电脑公司新一代服务器软件.专为OS和iOS设备.MacOS 提供服务,现在支持Mavericks,能够轻松共享文件,安排会议日程,同步联系人,软件开发,网站发布,WiKi ...

  6. macOS Server 5.12

    请访问原文链接:https://sysin.cn/blog/macOS-Server/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页:www.sysin.cn 摇 ...

  7. 执行ios命令_MEDUZA:一款针对iOS应用程序的通用SSL解绑工具

    MEDUZA MEDUZA是一款针对iOS应用程序的通用SSL解绑工具,该工具基于Frida开发,可以当作SSLKillSwitch工具的替代品.本来我是想自己开发自己用的,而且原本并不打算开源出来. ...

  8. linux 恶意软件检测,两款针对Linux系统Rootkit和恶意软件的有用检测工具

    尽管Linux系统可以免受大多数恶意软件的传播感染,但也不是绝对安全的.如果你的数据中心架设有Linux服务器,尤其是网站服务器,则更应该对Rootkit木马和恶意软件严密防范,因为一些数据破坏类Ro ...

  9. MacOS 上 oh-my-zsh 安装与卸载

    前言 1.概述 zsh(Z Shell)是 *nix 系中的 shell 的一种,一般的发行版中都已集成了 zsh,比如 MacOS 中你可以使用 which zsh 查看到 /bin/zsh 的存在 ...

  10. kangle web server源代码安装简明教程

    kangle web server源代码安装简明教程 - kangle使用交流 - kangle软件 是一款高性能web服务器,反向代理服务器,提供虚拟主机管理系统及代理服务器,web服务器架设 - ...

最新文章

  1. 父亲节用计算机给惊喜,2015父亲节的惊喜作文:给爸爸特殊的礼物
  2. 记一次httpclient调用失败
  3. 默认方法:Java 8的无名英雄
  4. 【渝粤题库】国家开放大学2021春2238个案工作题目
  5. 个人材料(上报公司)
  6. java spring mvc_java spring mvc 全注解
  7. MySQL性能医生:Orzdba工具安装和使用
  8. 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)
  9. 周报_2011第40周(2011/09/25-2011/10/01)
  10. linux g++ gcc
  11. Windows毫秒精度定时器SetTimer
  12. html video ajax,利用AJAX开源项目 在网页里播放视频实现方法
  13. gitter 卸载_最佳Gitter频道:数学
  14. Topsis与熵权法
  15. 香港服务器怎么加速?
  16. 最大素因子c语言,附上2021欧洲杯赛程时间表 -官网
  17. Day 15-其它 Composition API_ 响应式数据的判断
  18. Docker拉取splash镜像失败
  19. 动态磁盘转化为基本磁盘
  20. linux 修改mysql默认端口3306

热门文章

  1. hdu 1394 Minimum Inversion Number(逆序数对) : 树状数组 O(nlogn)
  2. typescript 爬坑速记
  3. 解决idea使用maven打自定义jar缺失
  4. SpringBoot项目文件上传
  5. Strut2 annotation配置时action到另一个action跳转参数传递
  6. 一篇文章玩转世界最强音乐Spotify API操作
  7. day14:磁盘管理df/du/fdisk/parted命令
  8. softmax sigmoid
  9. 【FLEX教程】#007 如何让JS调用SWF里的方法
  10. Juniper SRX210恢复密码过程