]> 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 7d0038156c66cfeeb4486a432f52c53d0a54b7d1..f05be4d91f69e41a4b1ab7416309c08292982dfc 100644 (file)
@@ -45,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
@@ -63,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
@@ -238,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
@@ -277,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