mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-23 12:17:16 +07:00
80eae209d6
It is often useful to be able to read back the IMA policy. It is even more important after introducing CONFIG_IMA_WRITE_POLICY. This option allows the root user to see the current policy rules. Signed-off-by: Zbigniew Jasinski <z.jasinski@samsung.com> Signed-off-by: Petko Manolov <petkan@mip-labs.com> Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
200 lines
6.1 KiB
Plaintext
200 lines
6.1 KiB
Plaintext
# IBM Integrity Measurement Architecture
|
|
#
|
|
config IMA
|
|
bool "Integrity Measurement Architecture(IMA)"
|
|
select SECURITYFS
|
|
select CRYPTO
|
|
select CRYPTO_HMAC
|
|
select CRYPTO_MD5
|
|
select CRYPTO_SHA1
|
|
select CRYPTO_HASH_INFO
|
|
select TCG_TPM if HAS_IOMEM && !UML
|
|
select TCG_TIS if TCG_TPM && X86
|
|
select TCG_IBMVTPM if TCG_TPM && PPC_PSERIES
|
|
help
|
|
The Trusted Computing Group(TCG) runtime Integrity
|
|
Measurement Architecture(IMA) maintains a list of hash
|
|
values of executables and other sensitive system files,
|
|
as they are read or executed. If an attacker manages
|
|
to change the contents of an important system file
|
|
being measured, we can tell.
|
|
|
|
If your system has a TPM chip, then IMA also maintains
|
|
an aggregate integrity value over this list inside the
|
|
TPM hardware, so that the TPM can prove to a third party
|
|
whether or not critical system files have been modified.
|
|
Read <http://www.usenix.org/events/sec04/tech/sailer.html>
|
|
to learn more about IMA.
|
|
If unsure, say N.
|
|
|
|
config IMA_MEASURE_PCR_IDX
|
|
int
|
|
depends on IMA
|
|
range 8 14
|
|
default 10
|
|
help
|
|
IMA_MEASURE_PCR_IDX determines the TPM PCR register index
|
|
that IMA uses to maintain the integrity aggregate of the
|
|
measurement list. If unsure, use the default 10.
|
|
|
|
config IMA_LSM_RULES
|
|
bool
|
|
depends on IMA && AUDIT && (SECURITY_SELINUX || SECURITY_SMACK)
|
|
default y
|
|
help
|
|
Disabling this option will disregard LSM based policy rules.
|
|
|
|
choice
|
|
prompt "Default template"
|
|
default IMA_NG_TEMPLATE
|
|
depends on IMA
|
|
help
|
|
Select the default IMA measurement template.
|
|
|
|
The original 'ima' measurement list template contains a
|
|
hash, defined as 20 bytes, and a null terminated pathname,
|
|
limited to 255 characters. The 'ima-ng' measurement list
|
|
template permits both larger hash digests and longer
|
|
pathnames.
|
|
|
|
config IMA_TEMPLATE
|
|
bool "ima"
|
|
config IMA_NG_TEMPLATE
|
|
bool "ima-ng (default)"
|
|
config IMA_SIG_TEMPLATE
|
|
bool "ima-sig"
|
|
endchoice
|
|
|
|
config IMA_DEFAULT_TEMPLATE
|
|
string
|
|
depends on IMA
|
|
default "ima" if IMA_TEMPLATE
|
|
default "ima-ng" if IMA_NG_TEMPLATE
|
|
default "ima-sig" if IMA_SIG_TEMPLATE
|
|
|
|
choice
|
|
prompt "Default integrity hash algorithm"
|
|
default IMA_DEFAULT_HASH_SHA1
|
|
depends on IMA
|
|
help
|
|
Select the default hash algorithm used for the measurement
|
|
list, integrity appraisal and audit log. The compiled default
|
|
hash algorithm can be overwritten using the kernel command
|
|
line 'ima_hash=' option.
|
|
|
|
config IMA_DEFAULT_HASH_SHA1
|
|
bool "SHA1 (default)"
|
|
depends on CRYPTO_SHA1
|
|
|
|
config IMA_DEFAULT_HASH_SHA256
|
|
bool "SHA256"
|
|
depends on CRYPTO_SHA256 && !IMA_TEMPLATE
|
|
|
|
config IMA_DEFAULT_HASH_SHA512
|
|
bool "SHA512"
|
|
depends on CRYPTO_SHA512 && !IMA_TEMPLATE
|
|
|
|
config IMA_DEFAULT_HASH_WP512
|
|
bool "WP512"
|
|
depends on CRYPTO_WP512 && !IMA_TEMPLATE
|
|
endchoice
|
|
|
|
config IMA_DEFAULT_HASH
|
|
string
|
|
depends on IMA
|
|
default "sha1" if IMA_DEFAULT_HASH_SHA1
|
|
default "sha256" if IMA_DEFAULT_HASH_SHA256
|
|
default "sha512" if IMA_DEFAULT_HASH_SHA512
|
|
default "wp512" if IMA_DEFAULT_HASH_WP512
|
|
|
|
config IMA_WRITE_POLICY
|
|
bool "Enable multiple writes to the IMA policy"
|
|
depends on IMA
|
|
default n
|
|
help
|
|
IMA policy can now be updated multiple times. The new rules get
|
|
appended to the original policy. Have in mind that the rules are
|
|
scanned in FIFO order so be careful when you design and add new ones.
|
|
|
|
If unsure, say N.
|
|
|
|
config IMA_READ_POLICY
|
|
bool "Enable reading back the current IMA policy"
|
|
depends on IMA
|
|
default y if IMA_WRITE_POLICY
|
|
default n if !IMA_WRITE_POLICY
|
|
help
|
|
It is often useful to be able to read back the IMA policy. It is
|
|
even more important after introducing CONFIG_IMA_WRITE_POLICY.
|
|
This option allows the root user to see the current policy rules.
|
|
|
|
config IMA_APPRAISE
|
|
bool "Appraise integrity measurements"
|
|
depends on IMA
|
|
default n
|
|
help
|
|
This option enables local measurement integrity appraisal.
|
|
It requires the system to be labeled with a security extended
|
|
attribute containing the file hash measurement. To protect
|
|
the security extended attributes from offline attack, enable
|
|
and configure EVM.
|
|
|
|
For more information on integrity appraisal refer to:
|
|
<http://linux-ima.sourceforge.net>
|
|
If unsure, say N.
|
|
|
|
config IMA_TRUSTED_KEYRING
|
|
bool "Require all keys on the .ima keyring be signed (deprecated)"
|
|
depends on IMA_APPRAISE && SYSTEM_TRUSTED_KEYRING
|
|
depends on INTEGRITY_ASYMMETRIC_KEYS
|
|
select INTEGRITY_TRUSTED_KEYRING
|
|
default y
|
|
help
|
|
This option requires that all keys added to the .ima
|
|
keyring be signed by a key on the system trusted keyring.
|
|
|
|
This option is deprecated in favor of INTEGRITY_TRUSTED_KEYRING
|
|
|
|
config IMA_MOK_KEYRING
|
|
bool "Create IMA machine owner keys (MOK) and blacklist keyrings"
|
|
depends on SYSTEM_TRUSTED_KEYRING
|
|
depends on IMA_TRUSTED_KEYRING
|
|
default n
|
|
help
|
|
This option creates IMA MOK and blacklist keyrings. IMA MOK is an
|
|
intermediate keyring that sits between .system and .ima keyrings,
|
|
effectively forming a simple CA hierarchy. To successfully import a
|
|
key into .ima_mok it must be signed by a key which CA is in .system
|
|
keyring. On turn any key that needs to go in .ima keyring must be
|
|
signed by CA in either .system or .ima_mok keyrings. IMA MOK is empty
|
|
at kernel boot.
|
|
|
|
IMA blacklist keyring contains all revoked IMA keys. It is consulted
|
|
before any other keyring. If the search is successful the requested
|
|
operation is rejected and error is returned to the caller.
|
|
|
|
config IMA_LOAD_X509
|
|
bool "Load X509 certificate onto the '.ima' trusted keyring"
|
|
depends on IMA_TRUSTED_KEYRING
|
|
default n
|
|
help
|
|
File signature verification is based on the public keys
|
|
loaded on the .ima trusted keyring. These public keys are
|
|
X509 certificates signed by a trusted key on the
|
|
.system keyring. This option enables X509 certificate
|
|
loading from the kernel onto the '.ima' trusted keyring.
|
|
|
|
config IMA_X509_PATH
|
|
string "IMA X509 certificate path"
|
|
depends on IMA_LOAD_X509
|
|
default "/etc/keys/x509_ima.der"
|
|
help
|
|
This option defines IMA X509 certificate path.
|
|
|
|
config IMA_APPRAISE_SIGNED_INIT
|
|
bool "Require signed user-space initialization"
|
|
depends on IMA_LOAD_X509
|
|
default n
|
|
help
|
|
This option requires user-space init to be signed.
|