gpt4 book ai didi

linux - AppArmor 如何处理 "Environment Scrubbing"?

转载 作者:IT王子 更新时间:2023-10-29 00:21:56 25 4
gpt4 key购买 nike

AppArmor 文档提到让应用程序能够在有或没有环境清理的情况下执行其他程序。显然,清理后的环境更安全,但文档似乎没有具体说明环境清理是如何发生的。

什么是环境清理,AppArmor 是如何清理环境的?

最佳答案

“环境清理”是删除各种可能用于影响二进制行为的“危险”环境变量 - 例如,LD_PRELOAD 可用于使动态链接器引入可以对程序的运行进行本质上任意更改的代码;可以设置一些变量以将跟踪输出到具有众所周知名称的文件;等等

这种清理通常作为一种安全措施针对 setuid/setgid 二进制文件执行,但内核提供了一个 Hook 以允许安全模块也为任意其他二进制文件启用它。

内核的 ELF 加载程序代码 uses this hook在传递给二进制信息的“辅助向量”中设置 AT_SECURE 条目。 (有关 AppArmor 代码中此 Hook 的实现,请参阅 herehere。)

当执行在用户空间开始时,dynamic linker picks up this value并使用它来设置 __libc_enable_secure 标志;您会看到同一例程还包含为 setuid/setgid 二进制文件设置此标志的代码。 (静态链接的二进制文件有 equivalent code elsewhere。)

__libc_enable_secure 影响 main body of the dynamic linker code 中的许多地方,并导致 list of specific environment variables将被删除。

关于linux - AppArmor 如何处理 "Environment Scrubbing"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5835664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com