]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - security/Kconfig
x86/bugs: Expose x86_spec_ctrl_base directly
[mirror_ubuntu-artful-kernel.git] / security / Kconfig
index e8e449444e658be4a9190c6ea2de14cca8fc4890..f05be4d91f69e41a4b1ab7416309c08292982dfc 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
@@ -54,6 +96,17 @@ config SECURITY_NETWORK
          implement socket and networking access controls.
          If you are unsure how to answer this question, answer N.
 
+config PAGE_TABLE_ISOLATION
+       bool "Remove the kernel mapping in user mode"
+       default y
+       depends on X86_64 && !UML
+       help
+         This feature reduces the number of hardware side channels by
+         ensuring that the majority of kernel addresses are not mapped
+         into userspace.
+
+         See Documentation/x86/pti.txt for more details.
+
 config SECURITY_INFINIBAND
        bool "Infiniband Security Hooks"
        depends on SECURITY && INFINIBAND
@@ -205,6 +258,21 @@ 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
+       bool
+       help
+         Allow the lockdown on a kernel to be lifted, thereby restoring the
+         ability of userspace to access the kernel image (eg. by SysRq+x under
+         x86).
+
 source security/selinux/Kconfig
 source security/smack/Kconfig
 source security/tomoyo/Kconfig
@@ -214,6 +282,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
@@ -253,3 +324,108 @@ config DEFAULT_SECURITY
 
 endmenu
 
+menu "Security Module Stack"
+       visible if SECURITY_STACKING
+
+choice
+       prompt "mutually exclusive LSMs"
+       default SECURITY_NO_EXCLUSIVE_LSM
+
+       config SECURITY_NO_EXCLUSIVE_LSM
+               bool "none"
+               help
+                 Do no add an LSM to is mutually exclusive to the stack."
+       config SECURITY_SELINUX_STACKED
+               bool "SELinux" if SECURITY_SELINUX=y
+               help
+                 Add the SELinux security module to the stack.
+                 Please be sure your user space code is accomodating of
+                 this security module.
+                 Ensure that your network configuration is compatible
+                 with your combination of security modules.
+
+                 Incompatible with Smack being stacked.
+
+                 If you are unsure how to answer this question, answer N.
+
+       config SECURITY_SMACK_STACKED
+               bool "Simplified Mandatory Access Control" if SECURITY_SMACK=y
+               help
+                 Add the Smack security module to the stack.
+                 Please be sure your user space code is accomodating of
+                 this security module.
+                 Ensure that your network configuration is compatible
+                 with your combination of security modules.
+
+                 Incompatible with SeLinux being stacked.
+
+                 If you are unsure how to answer this question, answer N.
+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.
+         Please be sure your user space code is accomodating of
+         multiple security modules.
+
+         If you are unsure how to answer this question, answer N.
+
+config SECURITY_APPARMOR_STACKED
+       bool "AppArmor support is enabled by default"
+       depends on SECURITY_APPARMOR && SECURITY_STACKING
+       default n
+       help
+         This option instructs the system to use the AppArmor checks.
+         If not selected the module will not be invoked.
+         Stacked security modules may interact in unexpected ways.
+         Please be sure your user space code is accomodating of
+         multiple security modules.
+
+         If you are unsure how to answer this question, answer N.
+
+choice
+       prompt "Default LSM for legacy interfaces"
+       default SECURITY_DEFAULT_DISPLAY_SELINUX if SECURITY_SELINUX_STACKED
+       default SECURITY_DEFAULT_DISPLAY_SMACK if SECURITY_SMACK_STACKED
+       default SECURITY_DEFAULT_DISPLAY_TOMOYO if SECURITY_TOMOYO_STACKED
+       default SECURITY_DEFAULT_DISPALY_APPARMOR if SECURITY_APPARMOR_STACKED
+       default SECURITY_DEFAULT_DISPLAY_FIRST
+
+       help
+         Select the security module context that will be displayed by
+          default on legacy interfaces if the kernel parameter
+          security.display= is not specified.
+
+       config SECURITY_DEFAULT_DISPLAY_SELINUX
+               bool "SELinux" if SECURITY_SELINUX=y
+
+       config SECURITY_DEFAULT_DISPLAY_SMACK
+               bool "Simplified Mandatory Access Control" if SECURITY_SMACK=y
+
+       config SECURITY_DEFAULT_DISPLAY_TOMOYO
+               bool "TOMOYO" if SECURITY_TOMOYO=y
+
+       config SECURITY_DEFAULT_DISPLAY_APPARMOR
+               bool "AppArmor" if SECURITY_APPARMOR=y
+
+       config SECURITY_DEFAULT_DISPLAY_FIRST
+               bool "First security module to register"
+
+endchoice
+
+config SECURITY_DEFAULT_DISPLAY_NAME
+       string
+       default "selinux" if SECURITY_DEFAULT_DISPLAY_SELINUX
+       default "smack" if SECURITY_DEFAULT_DISPLAY_SMACK
+       default "tomoyo" if SECURITY_DEFAULT_DISPLAY_TOMOYO
+       default "apparmor" if SECURITY_DEFAULT_DISPLAY_APPARMOR
+       default "" if SECURITY_DEFAULT_DISPLAY_FIRST
+
+endmenu
+
+endmenu