Linux
功能與 setuid 的安全性(LD_PRELOAD 等)
我知道,如果一個程序執行setuid,它可以防止各種可能破壞程序的東西,比如LD_PRELOAD和ptrace(調試)。但是我還沒有找到任何與功能相同的東西。我假設使用功能完成了同樣的事情,否則它會有巨大的安全漏洞,但我無法找到它的文件/驗證。
正如在這個核心郵件列表消息中提到的,程序是否需要額外的安全性是在
cap_bprm_secureexec()
核心文件中籤入的security/commoncap.c
,它會檢查功能。然後通過輔助向量將其導出到程序。這可以通過訪問/測試getauxval(AT_SECURE)
。我插入getauxval(AT_SECURE)
了一個測試程序,當它使用任何設置和可用的功能執行時確實返回 1,與執行 setuid 時相同,因此功能具有與 setuid 相同的安全保護。