Virtual-Machine

如何確定是否以及哪個 linux 安全模組 (LSM) 可用?

  • February 1, 2019

有沒有辦法找出核心是否使用了哪個 linux 安全 LSM(apparmor、selinux、grsecurity)?

更具體地說,假設我是機器的合法 root 使用者?

如果資訊也可用,最好進一步了解:關於這個問題,考慮機器是(a)本地電腦,(b)專用伺服器和(c)虛擬伺服器“vServer”是否有區別

更新

我知道我可以安裝使用者空間的東西(例如在 debian 上apt-get install apparmor)並檢查它是否產生與特定 LSM 相關的結果。所以我可以為 apparmor 做 sudo apparmor_status這件事,例如 yield: apparmor module is not loaded.這可以幫助我排除這個選項。然而,我一直在尋找一種涵蓋大多數/所有 LSM 的更通用的方法。

更新2

我發現了路徑/sys/kernel/security。也許這有助於找到答案?

是的,您可以檢查/sys/kernel/security可用的內容。

另請參閱 dmesg 或/proc/cmdline引導設置。

如果你config.gz有空的話

zgrep CONFIG_SECURITY /proc/config.gz

別的

grep CONFIG_SECURITY /boot/config-`uname -r`

您可以做的另一件事是在/sys/module.

例如,在啟用了 apparmor 的 Ubuntu 16.04 上,存在以下目錄:

/sys/module/apparmor/

另請參閱:https ://superuser.com/questions/287371/obtain-kernel-config-from-currently-running-linux-system

不幸的是,在 QEMU 中的 Android AOSP 上ls /sys/kernel/security既沒有也沒有ls /sys/module/顯示任何東西,它似乎有 selinux,我想知道為什麼。selinux

如果核心是使用 SELinux 建構的,則引導dmesg包含:

SELinux:  Initializing.

引用自:https://unix.stackexchange.com/questions/117782