どのLinuxセキュリティLSM(apparmor、selinux、grsecurity)がカーネルによって使用されているかを確認する方法はありますか?
具体的には、私がマシンの正当なrootユーザーであると仮定しましょう。
情報が入手できる場合は、さらに知っておくとよいでしょう。質問に関して、マシンが(a)ローカルコンピューター、(b)専用サーバー、および(c)仮想サーバー「vServer」であると考えることとの違いはありますか。
たとえば、ユーザースペースのものをインストールできることを知っています(たとえば、debianにapt-get install apparmor
)そして、特定のLSMに関連する結果が得られるかどうかを確認します。だから私はapparmorのためにできるSudo apparmor_status
これにより、たとえば次のようになります。apparmor module is not loaded.
これは私がそのオプションを除外するのに役立ちます。それでも私はほとんど/すべてのLSMをカバーするより一般的なアプローチを探していました。
パスを発見しました/sys/kernel/security
。多分これは答えを見つけるのに役立ちますか?
はい、/sys/kernel/security
で利用できるものを確認できます。
ブート設定については、dmesgまたは/proc/cmdline
も参照してください。
config.gz
が利用可能な場合は、
zgrep CONFIG_SECURITY /proc/config.gz
else
grep CONFIG_SECURITY /boot/config-`uname -r`
もう1つできることは、/sys/module
で組み込みモジュールを検索することです。
たとえば、apparmorが有効になっているUbuntu 16.04には、次のディレクトリが存在します。
/sys/module/apparmor/
参照: https://superuser.com/questions/287371/obtain-kernel-config-from-currently-running-linux-system
残念ながら、ls /sys/kernel/security
もls /sys/module/
もselinux
on Android AOSP in QEM で、selinuxがあるようです。 、なぜだろうか。
カーネルがSELinuxでビルドされている場合、ブートdmesg
には以下が含まれます。
SELinux: Initializing.