如何检查策略模块中的规则?

如何检查策略模块中的规则?

我知道我可以使用semodule -l查看我有哪些模块。但是我想查看特定模块中包含的规则。

我读了几乎所有能找到的关于 semodule、seinfo、sesearch 的文档。但我找不到任何方法可以做到这一点。

如果可能的话,有人可以告诉我如何做到这一点吗?

如果不可能,谁能解释一下为什么这么难?检查其他人的模块允许什么样的规则不是一种常见的做法吗?

特别是如果我们允许 rpm 携带策略模块,你怎么知道它不是有害的东西?

当我在其中发现一些字符串规则时,我想知道该怪谁。

更新

我进行了更多研究,并受到以下启发我在新操作系统中发现/var/lib/selinux/<store>/active/modules/<priority>/<module_name>/{cil,hll,lang_ext}

根据文档

HLL 数据、缓存的 CIL 数据和 HLL 扩展存储在 /var/lib/selinux//active/modules//<module_name>/{cil,hll,lang_ext} 中。lang_ext 文件包含 HLL 的扩展名(没有换行符),用于确定要执行的编译器目录中的文件以将 HLL 数据编译为 CIL。

看起来 hll 实际上是 .pp 文件的副本。但事实并非如此。如果我尝试对 hll 文件使用 semoudle_unpackage 或 sedismod,它会抛出错误。

libsepol.module_package_read_offsets: wrong magic number for module package:  expected 0xf97cff8f, got 0x35685a42
semodule_unpackage:  Error while reading policy module from /var/lib/selinux/targeted/active/modules/.../hll

所以到现在我还是没有找到任何解决方案。

相关内容