| .. SPDX-License-Identifier: GPL-2.0 | |
| .. Copyright (C) 2022 Casey Schaufler <casey@schaufler-ca.com> | |
| .. Copyright (C) 2022 Intel Corporation | |
| ===================================== | |
| Linux Security Modules | |
| ===================================== | |
| :Author: Casey Schaufler | |
| :Date: July 2023 | |
| Linux security modules (LSM) provide a mechanism to implement | |
| additional access controls to the Linux security policies. | |
| The various security modules may support any of these attributes: | |
| ``LSM_ATTR_CURRENT`` is the current, active security context of the | |
| process. | |
| The proc filesystem provides this value in ``/proc/self/attr/current``. | |
| This is supported by the SELinux, Smack and AppArmor security modules. | |
| Smack also provides this value in ``/proc/self/attr/smack/current``. | |
| AppArmor also provides this value in ``/proc/self/attr/apparmor/current``. | |
| ``LSM_ATTR_EXEC`` is the security context of the process at the time the | |
| current image was executed. | |
| The proc filesystem provides this value in ``/proc/self/attr/exec``. | |
| This is supported by the SELinux and AppArmor security modules. | |
| AppArmor also provides this value in ``/proc/self/attr/apparmor/exec``. | |
| ``LSM_ATTR_FSCREATE`` is the security context of the process used when | |
| creating file system objects. | |
| The proc filesystem provides this value in ``/proc/self/attr/fscreate``. | |
| This is supported by the SELinux security module. | |
| ``LSM_ATTR_KEYCREATE`` is the security context of the process used when | |
| creating key objects. | |
| The proc filesystem provides this value in ``/proc/self/attr/keycreate``. | |
| This is supported by the SELinux security module. | |
| ``LSM_ATTR_PREV`` is the security context of the process at the time the | |
| current security context was set. | |
| The proc filesystem provides this value in ``/proc/self/attr/prev``. | |
| This is supported by the SELinux and AppArmor security modules. | |
| AppArmor also provides this value in ``/proc/self/attr/apparmor/prev``. | |
| ``LSM_ATTR_SOCKCREATE`` is the security context of the process used when | |
| creating socket objects. | |
| The proc filesystem provides this value in ``/proc/self/attr/sockcreate``. | |
| This is supported by the SELinux security module. | |
| Kernel interface | |
| ================ | |
| Set a security attribute of the current process | |
| ----------------------------------------------- | |
| .. kernel-doc:: security/lsm_syscalls.c | |
| :identifiers: sys_lsm_set_self_attr | |
| Get the specified security attributes of the current process | |
| ------------------------------------------------------------ | |
| .. kernel-doc:: security/lsm_syscalls.c | |
| :identifiers: sys_lsm_get_self_attr | |
| .. kernel-doc:: security/lsm_syscalls.c | |
| :identifiers: sys_lsm_list_modules | |
| Additional documentation | |
| ======================== | |
| * Documentation/security/lsm.rst | |
| * Documentation/security/lsm-development.rst |