]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - security/Kconfig
UBUNTU: SAUCE: LSM stacking: LSM: General stacking
[mirror_ubuntu-bionic-kernel.git] / security / Kconfig
index b0cb9a5f94480d2c5aaf290b31fd15e6c5930ec2..2efb977763b200ab5f737c8522abc88fd9b28a8c 100644 (file)
@@ -18,6 +18,15 @@ config SECURITY_DMESG_RESTRICT
 
          If you are unsure how to answer this question, answer N.
 
+config SECURITY_PERF_EVENTS_RESTRICT
+       bool "Restrict unprivileged use of performance events"
+       depends on PERF_EVENTS
+       help
+         If you say Y here, the kernel.perf_event_paranoid sysctl
+         will be set to 3 by default, and no unprivileged use of the
+         perf_event_open syscall will be permitted unless it is
+         changed.
+
 config SECURITY
        bool "Enable different security models"
        depends on SYSFS
@@ -36,6 +45,39 @@ config SECURITY_WRITABLE_HOOKS
        bool
        default n
 
+config SECURITY_STACKING
+       bool "Security module stacking"
+       depends on SECURITY
+       help
+         Allows multiple major security modules to be stacked.
+         Modules are invoked in the order registered with a
+         "bail on fail" policy, in which the infrastructure
+         will stop processing once a denial is detected. Not
+         all modules can be stacked. SELinux and Smack are
+         known to be incompatible. User space components may
+         have trouble identifying the security module providing
+         data in some cases.
+
+         If you select this option you will have to select which
+         of the stackable modules you wish to be active. The
+         "Default security module" will be ignored. The boot line
+         "security=" option can be used to specify that one of
+         the modules identifed for stacking should be used instead
+         of the entire stack.
+
+         If you are unsure how to answer this question, answer N.
+
+config SECURITY_LSM_DEBUG
+       bool "Enable debugging of the LSM infrastructure"
+       depends on SECURITY
+       help
+         This allows you to choose debug messages related to
+         security modules configured into your kernel. These
+         messages may be helpful in determining how a security
+         module is using security blobs.
+
+         If you are unsure how to answer this question, answer N.
+
 config SECURITYFS
        bool "Enable the securityfs filesystem"
        help
@@ -154,6 +196,7 @@ config HARDENED_USERCOPY
        bool "Harden memory copies between kernel and userspace"
        depends on HAVE_HARDENED_USERCOPY_ALLOCATOR
        select BUG
+       imply STRICT_DEVMEM
        help
          This option checks for obviously wrong memory regions when
          copying memory to/from the kernel (via copy_to_user() and
@@ -216,6 +259,36 @@ config STATIC_USERMODEHELPER_PATH
          If you wish for all usermode helper programs to be disabled,
          specify an empty string here (i.e. "").
 
+config LOCK_DOWN_KERNEL
+       bool "Allow the kernel to be 'locked down'"
+       help
+         Allow the kernel to be locked down under certain circumstances, for
+         instance if UEFI secure boot is enabled.  Locking down the kernel
+         turns off various features that might otherwise allow access to the
+         kernel image (eg. setting MSR registers).
+
+config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
+       bool "Allow the kernel lockdown to be lifted by SysRq"
+       depends on LOCK_DOWN_KERNEL && MAGIC_SYSRQ
+       help
+         Allow the lockdown on a kernel to be lifted, by pressing a SysRq key
+         combination on a wired keyboard.
+
+config LOCK_DOWN_IN_EFI_SECURE_BOOT
+       bool "Lock down the kernel in EFI Secure Boot mode"
+       default n
+       select LOCK_DOWN_KERNEL
+       depends on EFI
+       help
+         UEFI Secure Boot provides a mechanism for ensuring that the firmware
+         will only load signed bootloaders and kernels.  Secure boot mode may
+         be determined from EFI variables provided by the system firmware if
+         not indicated by the boot parameters.
+
+         Enabling this option turns on results in kernel lockdown being
+         triggered if EFI Secure Boot is set.
+
+
 source security/selinux/Kconfig
 source security/smack/Kconfig
 source security/tomoyo/Kconfig
@@ -225,6 +298,9 @@ source security/yama/Kconfig
 
 source security/integrity/Kconfig
 
+menu "Security Module Selection"
+       visible if !SECURITY_STACKING
+
 choice
        prompt "Default security module"
        default DEFAULT_SECURITY_SELINUX if SECURITY_SELINUX
@@ -264,3 +340,64 @@ config DEFAULT_SECURITY
 
 endmenu
 
+menu "Security Module Stack"
+       visible if SECURITY_STACKING
+
+choice
+       prompt "Stacked 'extreme' security module"
+       default SECURITY_SELINUX_STACKED if SECURITY_SELINUX
+       default SECURITY_SMACK_STACKED if SECURITY_SMACK
+       default SECURITY_APPARMOR_STACKED if SECURITY_APPARMOR
+
+       help
+         Enable an extreme security module. These modules cannot
+         be used at the same time.
+
+       config SECURITY_SELINUX_STACKED
+               bool "SELinux" if SECURITY_SELINUX=y
+       help
+         This option instructs the system to use the SELinux checks.
+         At this time the Smack security module is incompatible with this
+         module.
+         At this time the AppArmor security module is incompatible with this
+         module.
+
+       config SECURITY_SMACK_STACKED
+               bool "Simplified Mandatory Access Control" if SECURITY_SMACK=y
+       help
+         This option instructs the system to use the Smack checks.
+         At this time the SELinux security module is incompatible with this
+         module.
+         At this time the AppArmor security module is incompatible with this
+         module.
+
+       config SECURITY_APPARMOR_STACKED
+               bool "AppArmor" if SECURITY_APPARMOR=y
+       help
+         This option instructs the system to use the AppArmor checks.
+         At this time the SELinux security module is incompatible with this
+         module.
+         At this time the Smack security module is incompatible with this
+         module.
+
+       config SECURITY_NOTHING_STACKED
+               bool "Use no 'extreme' security module"
+       help
+         Use none of the SELinux, Smack or AppArmor security module.
+
+endchoice
+
+config SECURITY_TOMOYO_STACKED
+       bool "TOMOYO support is enabled by default"
+       depends on SECURITY_TOMOYO && SECURITY_STACKING
+       default n
+       help
+         This option instructs the system to use the TOMOYO checks.
+         If not selected the module will not be invoked.
+         Stacked security modules may interact in unexpected ways.
+
+         If you are unsure how to answer this question, answer N.
+
+endmenu
+
+endmenu