mil*_*ton 5 linux security linux-capabilities
计算任何进程的最小 Linux 功能集的最佳方法是什么?
假设您正在强化操作系统,并且其中一些工具可能需要CAP_NET_ADMIN
和相关的网络权限,而其他工具可能需要CAP_SYS_NICE
。应该有一种方法来告诉每个可执行文件真正需要哪些功能。
确定运行时所需功能的两种可能方法:
strace
。确定哪些系统调用失败,并向EPERM
您的程序添加相应的功能。重复此操作,直到收集到所有功能。SystemTap
,DTrace
或Kprobes
来记录或拦截为您的程序进行的内核功能检查。(例如,使用capable
BCC 工具套件,如此处所述)我想,具有良好覆盖率的单元测试会有很大帮助。另请注意,capability(7)手册页列出了可能需要每种功能的系统调用(尽管它不是完整列表)。
更新:
@RodrigoBelem 引用的文章提到了module ,capable_probe
它是基于KProbes
.
该模块的原始文章是“POSIX 文件功能:打包 root 的力量”,现在不可用(它托管在此处)。但您可以在互联网上找到源代码和一些文档。