如何计算流程的最小功能集?

时间:2015-07-15 21:18:55

标签: linux security linux-capabilities

为任何流程计算最小集合 Linux功能的最佳方法是什么?

假设您正在强化操作系统,并且某些工具可能需要CAP_NET_ADMIN和相关的网络权限,而其他工具可能需要CAP_SYS_NICE。应该有一种方法可以告诉每个可执行文件真正需要哪些功能。

1 个答案:

答案 0 :(得分:1)

在运行时确定所需功能的两种可能方法

  • 随后在没有root权限的strace下运行您的程序。使用EPERM确定哪些系统调用失败,并为程序添加相应的功能。重复此操作,直到收集到所有功能。
  • 使用SystemTapDTraceKprobes来记录或 为您的程序制作的内核中的拦截能力检查。 (例如,使用来自BCC工具套件的capable,如here
  • 所述

我猜,具有良好覆盖范围的单元测试将有很大帮助。另请注意,capabilities(7)手册页列出了可能需要每个功能的系统调用(尽管它不是完整列表)。

<强>更新

@RodrigoBelem引用的article提及capable_probe模块,该模块基于KProbes

这个模块的原创文章是“POSIX文件功能:分配root权限并且它现在不可用(它被托管here)。但您可以在互联网上找到source codesome docs