迭代添加更多 AppArmor 规则是否不好?

迭代添加更多 AppArmor 规则是否不好?

据我所知,AppArmor 无法向没有权限的程序授予权限(IE只能进一步限制)。鉴于此,是否可以首先对所有程序“允许所有”,然后迭代地添加更多规则并微调现有规则?

人们似乎不同意网络上的这一点,好像规则集从一开始就必须是正确的,但我不明白为什么会这样?某种程度的保护不是比没有更好吗?

澄清:

  • 是否支持迭代方法技术上由 AppArmor 提供。 (也许没有“允许全部”或默认白名单和专门黑名单之类的东西?)
  • 这种方法是否存在安全风险?

答案1

当然,这在技术上是可行的......但这不是最有效的工作方式。

如果您首先允许一切,您将需要不断猜测哪些事情最好禁止。你将有效地盲目工作。

如果您首先禁止所有操作,您将收到程序错误消息,为您提供有关程序尝试执行的操作和失败的信息(可能是因为过于严格的 AppArmor 规则)。您还会在系统审核日志中收到消息,准确地告诉您 AppArmor 阻止了程序执行哪些操作,这对于允许正是程序需要的东西,仅此而已。

请注意,AppArmor 配置文件也可以在抱怨模式:在该模式下,AppArmor 实际上不会阻止程序执行任何操作,但会生成审核日志消息就好像它会那样。因此,如果您需要最大程度地减少对正在为其开发 AppArmor 配置文件的特定应用程序的干扰,您可以从投诉模式下的“allow-nothing”配置文件开始,查看生成的审核日志,添加规则以允许以下内容看起来合法并且当前正在生成审核消息,并继续以这种方式迭代,直到有关该应用程序的任何审核消息都是关于您最初不希望应用程序执行的操作。

此时,您可以相当确信 AppArmor 配置文件完全正确或非常接近它,并且可以将其切换到实际应用 AppArmor 限制的强制模式。此时,明智的做法是进行一些测试,以防万一您错过了某些内容......但是经过此过程后,您可以非常有信心生成的配置文件不会意外地允许您没有想到的危险内容。

相关内容