第 12 章 使用 fapolicyd 阻止和允许应用程序
根据规则集设置和强制实施允许或拒绝应用程序执行的策略,可有效防止执行未知的和具有潜在恶意的软件。
12.1. fapolicyd 简介
fapolicyd
软件框架根据用户定义的策略来控制应用程序的执行。这是防止在系统上运行不受信任的和可能具有恶意的应用程序的最有效的方法之一。
fapolicyd
框架提供以下组件。
-
fapolicyd
服务 -
fapolicyd
命令行工具 -
fapolicyd
RPM 插件 -
fapolicyd
规则语言 -
fagenrules
脚本
管理员可以为任何应用程序定义 allow
和 deny
执行规则,并根据路径、哈希、MIME 类型或信任进行审计。
fapolicyd
框架引入了信任的概念。在被系统软件包管理器正确安装后,应用程序是可信的,因此它会在系统 RPM 数据库中注册。fapolicyd
守护进程使用 RPM 数据库作为受信任的二进制文件和脚本的列表。fapolicyd
RPM 插件注册任何由 DNF 软件包管理器或 RPM 软件包管理器处理的系统更新。插件会通知 fapolicyd
守护进程有关此数据库中的更改。添加应用程序的其他方法需要创建自定义规则,并重新启动 fapolicyd
服务。
fapolicyd
服务配置位于 /etc/fapolicyd/
目录中,结构如下。
-
/etc/fapolicyd/fapolicyd.trust
文件包含一个可信文件的列表。您还可以在/etc/fapolicyd/trust.d/
目录中使用多个信任文件。 -
包含
allow
和deny
执行规则的文件的/etc/fapolicyd/rules.d/
目录。fagenrules
脚本将这些组件规则文件合并到/etc/fapolicyd/compiled.rules
文件中。 -
fapolicyd.conf
文件包含守护进程的配置选项。此文件主要用于性能调优目的。
/etc/fapolicyd/rules.d/
中的规则被组织在几个文件中,每个文件自代表不同的策略目标。对应文件名开头的数字决定了 /etc/fapolicyd/compiled.rules
中的顺序:
- 10
- 语言规则.
- 20
- 与 dracut 相关的规则。
- 21
- 更新者的规则。
- 30
- 模式。
- 40
- ELF 规则。
- 41
- 共享对象规则。
- 42
- 可信的 ELF 规则。
- 70
- 可信语言规则。
- 72
- Shell 规则.
- 90
- 拒绝执行规则。
- 95
- 允许打开的规则。
您可以使用以下方法之一进行 fapolicyd
完整性检查:
- 文件大小检查
- SHA-256 哈希的比较
- 完整性映射架构(IMA)子系统
默认情况下,fapolicyd
不进行完整性检查。根据文件大小进行完整性检查很快,但攻击者可以替换文件的内容并保留其字节大小。计算和检查 SHA-256 校验和更安全,但这会影响系统性能。fapolicyd.conf
中的 integrity = ima
选项需要在包含可执行文件的所有文件系统上都支持扩展属性(也称为 xattr
)。
其他资源
-
fapolicyd(8)
、fapolicyd.rules(5)
、fapolicyd.conf(5)
、fapolicyd.trust(13)
、fagenrules(8)
和fapolicyd-cli(1)
手册页。 - 在 管理、监控和更新内核 文档中,使用内核完整性子系统加强安全性 一章。
-
文档与
fapolicyd
软件包一起安装在/usr/share/doc/fapolicyd/
目录和/usr/share/fapolicyd/sample-rules/README-rules
文件中。