第 12 章 使用 fapolicyd 阻止和允许应用程序


根据规则集设置和强制实施允许或拒绝应用程序执行的策略,可有效防止执行未知的和具有潜在恶意的软件。

12.1. fapolicyd 简介

fapolicyd 软件框架根据用户定义的策略来控制应用程序的执行。这是防止在系统上运行不受信任的和可能具有恶意的应用程序的最有效的方法之一。

fapolicyd 框架提供以下组件。

  • fapolicyd 服务
  • fapolicyd 命令行工具
  • fapolicyd RPM 插件
  • fapolicyd 规则语言
  • fagenrules 脚本

管理员可以为任何应用程序定义 allowdeny 执行规则,并根据路径、哈希、MIME 类型或信任进行审计。

fapolicyd 框架引入了信任的概念。在被系统软件包管理器正确安装后,应用程序是可信的,因此它会在系统 RPM 数据库中注册。fapolicyd 守护进程使用 RPM 数据库作为受信任的二进制文件和脚本的列表。fapolicyd RPM 插件注册任何由 DNF 软件包管理器或 RPM 软件包管理器处理的系统更新。插件会通知 fapolicyd 守护进程有关此数据库中的更改。添加应用程序的其他方法需要创建自定义规则,并重新启动 fapolicyd 服务。

fapolicyd 服务配置位于 /etc/fapolicyd/ 目录中,结构如下。

  • /etc/fapolicyd/fapolicyd.trust 文件包含一个可信文件的列表。您还可以在 /etc/fapolicyd/trust.d/ 目录中使用多个信任文件。
  • 包含 allowdeny 执行规则的文件的 /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)。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.