FreeBSD 上正在开发类似于 plegde 的隔离机制

据透露, 已提出实施方案FreeBSD 的应用程序隔离机制,这让人想起 OpenBSD 项目开发的折叠和揭开系统调用。

plegde 中的隔离是通过禁止访问应用程序未使用的系统调用并通过选择性地仅打开对应用程序可以使用的某些文件路径的访问来完成的。 对于应用程序,形成一种系统调用和文件路径的白名单,禁止所有其他调用和路径。

折叠和揭开的区别, 为 FreeBSD 开发, 它归结为提供一个额外的层 这允许您隔离应用程序,而无需对其代码进行任何更改或更改最少。 请记住,在 OpenBSD 中,plegde 和 unlock 旨在与基本环境紧密集成,并通过在每个应用程序的代码中添加特殊注释来实现。

为了简化保护的组织,过滤器允许您避免单个系统调用级别的细节并操作系统调用的类(输入/输出、文件读取、文件写入、套接字、ioctl、sysctl、进程启动等) . 当执行某些操作时,可以在应用程序代码中调用访问限制函数,例如,在打开必要的文件并建立网络连接后,可以关闭对套接字和文件的访问。

FreeBSD 的折叠和显示端口的作者 旨在提供隔离任意应用程序的能力, 建议使用窗帘实用程序,它允许将单独文件中定义的规则应用于应用程序。 建议的配置包括一个具有基本设置的文件,该文件定义了系统调用的类和特定于某些应用程序(使用声音、网络、日志记录等)的典型文件路径,以及一个具有特定应用程序的访问规则的文件。

窗帘实用程序可用于隔离大多数实用程序、服务器进程、图形应用程序,甚至是未修改的整个桌面会话。 支持与 Jail 和 Capsicum 子系统提供的隔离机制共享窗帘。

可以组织嵌套隔离, 当启动的应用程序继承父应用程序设置的规则时, 用单独的约束补充它们。 一些内核操作(调试工具、POSIX/SysV IPC、PTY)还受到屏障机制的保护,该屏障机制防止访问由当前或父进程以外的进程创建的内核对象。

进程可以通过调用窗帘ctl来配置自己的隔离 或者使用 libcurtain 库提供的 plegde() 和 unlock() 函数,类似于 OpenBSD 的。 'security.curtain.log_level' sysctl 用于在应用程序运行时跟踪锁。

X11和Wayland协议的访问通过在启动幕布时指定“-X”/“-Y”和“-W”选项分别启用,但对图形应用程序的支持还不够稳定,存在一系列未解决的问题(问题主要出现在使用 X11 时,Wayland 支持要好得多)。 用户可以通过创建本地规则文件 (~/.curtain.conf) 添加额外的限制。 例如,

该实现包括用于强制访问控制 (MAC) 的 mac_curtain 内核模块,一组用于 FreeBSD 内核的补丁,其中包含必要的驱动程序和过滤器的实现,用于在应用程序中使用 plegde 和显示功能的 libcurtain 库,实用程序窗帘,显示配置文件、一套测试和一些用户空间程序的补丁(例如,使用 $TMPDIR 来统一处理临时文件)。 只要有可能,作者就会尽量减少需要修补内核和应用程序的更改数量。

最后 如果您有兴趣了解更多信息,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。