LSM: Module stacking for SARA and Landlock

The combined series of LSM refactoring and addition of blob-sharing for
 SARA and Landlock.
 -----BEGIN PGP SIGNATURE-----
 Comment: Kees Cook <kees@outflux.net>
 
 iQJKBAABCgA0FiEEpcP2jyKd1g9yPm4TiXL039xtwCYFAlw1FxwWHGtlZXNjb29r
 QGNocm9taXVtLm9yZwAKCRCJcvTf3G3AJkojD/9DGggNLcmzsb/6foOMAB2PSK3x
 t93eBgQRwzf7w8EnnJiKwj4ruKxYEcoePL/w1iGgY27jbnB43gcuhq7x2K3vC4v6
 Toqr5f2Yw7CTiDd9vntCAXEyWThfCwKScuVkkjUtmKTTUjboOiTBZugzS//zIHuV
 Eyjeu44HSAnVLFW5YSALawxYoZAFmFvkF1iLgjwNpNyzXy9blO8To3ybfFWpRcpA
 Xr2H/kJlkCmzibblgQ4U9Dxg8q2qgc/CZ0dnKdtqVYtNGNZn8+owjw9hp63xxmvP
 ROdz3s2AACkp1JYqBjxl0g6M1BrfcDAleUSO+2iSfkh+BiwcyuLRrBgL8KDgE/rY
 Vxtf3I+LWApw+ZDs+hgy6Yj+N8U58B7VjbsPKw9HkDN0RTmwjXT4NJf+FJnbQbfS
 9SwiBOWthTPHnZb0sXd/SQ8iWmEE42jbF5nybUlb+eICuM5jWm4dJks/GzK2eL4R
 SyTiMqccwdW30VNCn+PVxh0Bw04dov8X/8pr/NDmcalnsDn2avtIoNA5YIZy7pC/
 uZtPeBWUt2Aa/W1cUFEnqXRUlJ1CuyKpRJJnpwRhMZT6HQ4jDdVEbuxcoWhiN7aL
 jsjPIoyZcR25simJzX/pruB0cCIhW44SaFFZv2IzMmYcpkMBpJGZuLQHRjdcR32I
 HP5lYtbnknx5CT9N7g==
 =q5MM
 -----END PGP SIGNATURE-----

Merge tag 'blob-stacking-security-next' of https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into next-general

LSM: Module stacking for SARA and Landlock

The combined series of LSM refactoring and addition of blob-sharing for
SARA and Landlock.

From Casey:

v5: Include Kees Cook's rework of the lsm command
    line interface.
v4: Finer granularity in the patches and other
    cleanups suggested by Kees Cook.
    Removed dead code created by the removal of SELinux
    credential blob poisoning.
v3: Add ipc blob for SARA and task blob for Landlock.
    Removing the SELinux cred blob pointer poisoning
    results selinux_is_enabled() being unused, so it and
    all it's overhead has been removed.
    Broke up the cred infrastructure patch.
v2: Reduce the patchset to what is required to support
    the proposed SARA and LandLock security modules

The SARA security module is intended to be used
in conjunction with other security modules. It requires
state to be maintained for the credential, which
in turn requires a mechanism for sharing the credential
security blob. It also uses the ipc security blob. The
module also requires mechanism for user space manipulation
of the credential information, hence an additional
subdirectory in /proc/.../attr.

The LandLock security module provides user configurable
policy in the secmark mechanism. It requires data in
the credential, file, inode and task security blobs. For
this to be used along side the existing "major" security
modules mechanism for sharing these blobs are provided.

A side effect of providing sharing of the crendential
security blob is that the TOMOYO module can be used at
the same time as the other "major" modules.

The mechanism for configuring which security modules are
enabled has to change when stacking in enabled. Any
module that uses just the security blobs that are shared
can be selected. Additionally, one other "major" module
can be selected.

The security module stacking issues around networking and
IPC are not addressed here as they are beyond what is
required for TOMOYO, SARA and LandLock.
This commit is contained in:
James Morris 2019-01-10 11:42:58 -08:00
commit 2233975cd7
39 changed files with 1133 additions and 793 deletions