All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mimi Zohar <zohar@linux.ibm.com>
To: Nayna Jain <nayna@linux.vnet.ibm.com>, linux-integrity@vger.kernel.org
Cc: linux-security-module@vger.kernel.org, linux-efi@vger.kernel.org,
	linux-kernel@vger.kernel.org, dhowells@redhat.com,
	jforbes@redhat.com, Eric Richter <erichte@linux.vnet.ibm.com>
Subject: Re: [PATCH v4 6/6] x86/ima: define arch_get_ima_policy() for x86
Date: Thu, 27 Sep 2018 09:31:42 -0400	[thread overview]
Message-ID: <1538055102.3459.112.camel@linux.ibm.com> (raw)
In-Reply-To: <20180926122210.14642-7-nayna@linux.vnet.ibm.com>

Hi Eric, Nayna,

On Wed, 2018-09-26 at 17:52 +0530, Nayna Jain wrote:
> From: Eric Richter <erichte@linux.vnet.ibm.com>

> This patch implements an example arch-specific IMA policy for x86 to
> enable measurement and appraisal of any kernel image loaded for kexec,
> when CONFIG_KEXEC_VERIFY_SIG is not enabled.
> 
> For systems with CONFIG_KEXEC_VERIFY_SIG enabled, only the measurement
> rule is enabled, not the IMA-appraisal rule.

The patch itself looks good, but this patch description explains
"what" the patch is doing, not "why".  Missing is the motivation for
the patch.

Mimi

> 
> Signed-off-by: Eric Richter <erichte@linux.vnet.ibm.com>
> - Removed the policy KEXEC_ORIG_KERNEL_CHECK which was defined to
>   disable the kexec_load syscall.
> - arch_get_ima_policy() uses arch_ima_get_secureboot() to get secureboot
>   state
> Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
> ---
>  arch/x86/kernel/ima_arch.c     | 18 ++++++++++++++++++
>  include/linux/ima.h            |  4 ++++
>  security/integrity/ima/Kconfig |  8 ++++++++
>  3 files changed, 30 insertions(+)
> 
> diff --git a/arch/x86/kernel/ima_arch.c b/arch/x86/kernel/ima_arch.c
> index bb5a88d2b271..245976e49a55 100644
> --- a/arch/x86/kernel/ima_arch.c
> +++ b/arch/x86/kernel/ima_arch.c
> @@ -15,3 +15,21 @@ bool arch_ima_get_secureboot(void)
>  	else
>  		return false;
>  }
> +
> +/* arch rules for audit and user mode */
> +static const char * const sb_arch_rules[] = {
> +#ifndef CONFIG_KEXEC_VERIFY_SIG
> +	"appraise func=KEXEC_KERNEL_CHECK appraise_type=imasig",
> +#endif /* CONFIG_KEXEC_VERIFY_SIG */
> +	"measure func=KEXEC_KERNEL_CHECK",
> +	NULL
> +};
> +
> +#ifdef CONFIG_IMA_ARCH_POLICY
> +const char * const *arch_get_ima_policy(void)
> +{
> +	if (arch_ima_get_secureboot())
> +		return sb_arch_rules;
> +	return NULL;
> +}
> +#endif
> diff --git a/include/linux/ima.h b/include/linux/ima.h
> index 350fa957f8a6..dabd3abdf671 100644
> --- a/include/linux/ima.h
> +++ b/include/linux/ima.h
> @@ -39,10 +39,14 @@ static inline bool arch_ima_get_secureboot(void)
>  }
>  #endif
>  
> +#if defined(CONFIG_X86) && defined(CONFIG_IMA_ARCH_POLICY)
> +extern const char * const *arch_get_ima_policy(void);
> +#else
>  static inline const char * const *arch_get_ima_policy(void)
>  {
>  	return NULL;
>  }
> +#endif
>  
>  #else
>  static inline int ima_bprm_check(struct linux_binprm *bprm)
> diff --git a/security/integrity/ima/Kconfig b/security/integrity/ima/Kconfig
> index 13b446328dda..97609a76aa14 100644
> --- a/security/integrity/ima/Kconfig
> +++ b/security/integrity/ima/Kconfig
> @@ -157,6 +157,14 @@ config IMA_APPRAISE
>  	  <http://linux-ima.sourceforge.net>
>  	  If unsure, say N.
>  
> +config IMA_ARCH_POLICY
> +        bool "Enable loading an IMA architecture specific policy"
> +        depends on KEXEC_VERIFY_SIG || IMA_APPRAISE && INTEGRITY_ASYMMETRIC_KEYS
> +        default n
> +        help
> +          This option enables loading an IMA architecture specific policy
> +          based on run time secure boot flags.
> +
>  config IMA_APPRAISE_BUILD_POLICY
>  	bool "IMA build time configured policy rules"
>  	depends on IMA_APPRAISE && INTEGRITY_ASYMMETRIC_KEYS

WARNING: multiple messages have this Message-ID (diff)
From: Mimi Zohar <zohar@linux.ibm.com>
To: Nayna Jain <nayna@linux.vnet.ibm.com>, linux-integrity@vger.kernel.org
Cc: linux-security-module@vger.kernel.org, linux-efi@vger.kernel.org,
	linux-kernel@vger.kernel.org, dhowells@redhat.com,
	jforbes@redhat.com, Eric Richter <erichte@linux.vnet.ibm.com>
Subject: Re: [PATCH v4 6/6] x86/ima: define arch_get_ima_policy() for x86
Date: Thu, 27 Sep 2018 09:31:42 -0400	[thread overview]
Message-ID: <1538055102.3459.112.camel@linux.ibm.com> (raw)
In-Reply-To: <20180926122210.14642-7-nayna@linux.vnet.ibm.com>

Hi Eric, Nayna,

On Wed, 2018-09-26 at 17:52 +0530, Nayna Jain wrote:
> From: Eric Richter <erichte@linux.vnet.ibm.com>

> This patch implements an example arch-specific IMA policy for x86 to
> enable measurement and appraisal of any kernel image loaded for kexec,
> when CONFIG_KEXEC_VERIFY_SIG is not enabled.
> 
> For systems with CONFIG_KEXEC_VERIFY_SIG enabled, only the measurement
> rule is enabled, not the IMA-appraisal rule.

The patch itself looks good, but this patch description explains
"what" the patch is doing, not "why".  Missing is the motivation for
the patch.

Mimi

> 
> Signed-off-by: Eric Richter <erichte@linux.vnet.ibm.com>
> - Removed the policy KEXEC_ORIG_KERNEL_CHECK which was defined to
>   disable the kexec_load syscall.
> - arch_get_ima_policy() uses arch_ima_get_secureboot() to get secureboot
>   state
> Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
> ---
>  arch/x86/kernel/ima_arch.c     | 18 ++++++++++++++++++
>  include/linux/ima.h            |  4 ++++
>  security/integrity/ima/Kconfig |  8 ++++++++
>  3 files changed, 30 insertions(+)
> 
> diff --git a/arch/x86/kernel/ima_arch.c b/arch/x86/kernel/ima_arch.c
> index bb5a88d2b271..245976e49a55 100644
> --- a/arch/x86/kernel/ima_arch.c
> +++ b/arch/x86/kernel/ima_arch.c
> @@ -15,3 +15,21 @@ bool arch_ima_get_secureboot(void)
>  	else
>  		return false;
>  }
> +
> +/* arch rules for audit and user mode */
> +static const char * const sb_arch_rules[] = {
> +#ifndef CONFIG_KEXEC_VERIFY_SIG
> +	"appraise func=KEXEC_KERNEL_CHECK appraise_type=imasig",
> +#endif /* CONFIG_KEXEC_VERIFY_SIG */
> +	"measure func=KEXEC_KERNEL_CHECK",
> +	NULL
> +};
> +
> +#ifdef CONFIG_IMA_ARCH_POLICY
> +const char * const *arch_get_ima_policy(void)
> +{
> +	if (arch_ima_get_secureboot())
> +		return sb_arch_rules;
> +	return NULL;
> +}
> +#endif
> diff --git a/include/linux/ima.h b/include/linux/ima.h
> index 350fa957f8a6..dabd3abdf671 100644
> --- a/include/linux/ima.h
> +++ b/include/linux/ima.h
> @@ -39,10 +39,14 @@ static inline bool arch_ima_get_secureboot(void)
>  }
>  #endif
>  
> +#if defined(CONFIG_X86) && defined(CONFIG_IMA_ARCH_POLICY)
> +extern const char * const *arch_get_ima_policy(void);
> +#else
>  static inline const char * const *arch_get_ima_policy(void)
>  {
>  	return NULL;
>  }
> +#endif
>  
>  #else
>  static inline int ima_bprm_check(struct linux_binprm *bprm)
> diff --git a/security/integrity/ima/Kconfig b/security/integrity/ima/Kconfig
> index 13b446328dda..97609a76aa14 100644
> --- a/security/integrity/ima/Kconfig
> +++ b/security/integrity/ima/Kconfig
> @@ -157,6 +157,14 @@ config IMA_APPRAISE
>  	  <http://linux-ima.sourceforge.net>
>  	  If unsure, say N.
>  
> +config IMA_ARCH_POLICY
> +        bool "Enable loading an IMA architecture specific policy"
> +        depends on KEXEC_VERIFY_SIG || IMA_APPRAISE && INTEGRITY_ASYMMETRIC_KEYS
> +        default n
> +        help
> +          This option enables loading an IMA architecture specific policy
> +          based on run time secure boot flags.
> +
>  config IMA_APPRAISE_BUILD_POLICY
>  	bool "IMA build time configured policy rules"
>  	depends on IMA_APPRAISE && INTEGRITY_ASYMMETRIC_KEYS

WARNING: multiple messages have this Message-ID (diff)
From: zohar@linux.ibm.com (Mimi Zohar)
To: linux-security-module@vger.kernel.org
Subject: [PATCH v4 6/6] x86/ima: define arch_get_ima_policy() for x86
Date: Thu, 27 Sep 2018 09:31:42 -0400	[thread overview]
Message-ID: <1538055102.3459.112.camel@linux.ibm.com> (raw)
In-Reply-To: <20180926122210.14642-7-nayna@linux.vnet.ibm.com>

Hi Eric, Nayna,

On Wed, 2018-09-26 at 17:52 +0530, Nayna Jain wrote:
> From: Eric Richter <erichte@linux.vnet.ibm.com>

> This patch implements an example arch-specific IMA policy for x86 to
> enable measurement and appraisal of any kernel image loaded for kexec,
> when CONFIG_KEXEC_VERIFY_SIG is not enabled.
> 
> For systems with CONFIG_KEXEC_VERIFY_SIG enabled, only the measurement
> rule is enabled, not the IMA-appraisal rule.

The patch itself looks good, but this patch description explains
"what" the patch is doing, not "why". ?Missing is the motivation for
the patch.

Mimi

> 
> Signed-off-by: Eric Richter <erichte@linux.vnet.ibm.com>
> - Removed the policy KEXEC_ORIG_KERNEL_CHECK which was defined to
>   disable the kexec_load syscall.
> - arch_get_ima_policy() uses arch_ima_get_secureboot() to get secureboot
>   state
> Signed-off-by: Nayna Jain <nayna@linux.vnet.ibm.com>
> ---
>  arch/x86/kernel/ima_arch.c     | 18 ++++++++++++++++++
>  include/linux/ima.h            |  4 ++++
>  security/integrity/ima/Kconfig |  8 ++++++++
>  3 files changed, 30 insertions(+)
> 
> diff --git a/arch/x86/kernel/ima_arch.c b/arch/x86/kernel/ima_arch.c
> index bb5a88d2b271..245976e49a55 100644
> --- a/arch/x86/kernel/ima_arch.c
> +++ b/arch/x86/kernel/ima_arch.c
> @@ -15,3 +15,21 @@ bool arch_ima_get_secureboot(void)
>  	else
>  		return false;
>  }
> +
> +/* arch rules for audit and user mode */
> +static const char * const sb_arch_rules[] = {
> +#ifndef CONFIG_KEXEC_VERIFY_SIG
> +	"appraise func=KEXEC_KERNEL_CHECK appraise_type=imasig",
> +#endif /* CONFIG_KEXEC_VERIFY_SIG */
> +	"measure func=KEXEC_KERNEL_CHECK",
> +	NULL
> +};
> +
> +#ifdef CONFIG_IMA_ARCH_POLICY
> +const char * const *arch_get_ima_policy(void)
> +{
> +	if (arch_ima_get_secureboot())
> +		return sb_arch_rules;
> +	return NULL;
> +}
> +#endif
> diff --git a/include/linux/ima.h b/include/linux/ima.h
> index 350fa957f8a6..dabd3abdf671 100644
> --- a/include/linux/ima.h
> +++ b/include/linux/ima.h
> @@ -39,10 +39,14 @@ static inline bool arch_ima_get_secureboot(void)
>  }
>  #endif
>  
> +#if defined(CONFIG_X86) && defined(CONFIG_IMA_ARCH_POLICY)
> +extern const char * const *arch_get_ima_policy(void);
> +#else
>  static inline const char * const *arch_get_ima_policy(void)
>  {
>  	return NULL;
>  }
> +#endif
>  
>  #else
>  static inline int ima_bprm_check(struct linux_binprm *bprm)
> diff --git a/security/integrity/ima/Kconfig b/security/integrity/ima/Kconfig
> index 13b446328dda..97609a76aa14 100644
> --- a/security/integrity/ima/Kconfig
> +++ b/security/integrity/ima/Kconfig
> @@ -157,6 +157,14 @@ config IMA_APPRAISE
>  	  <http://linux-ima.sourceforge.net>
>  	  If unsure, say N.
>  
> +config IMA_ARCH_POLICY
> +        bool "Enable loading an IMA architecture specific policy"
> +        depends on KEXEC_VERIFY_SIG || IMA_APPRAISE && INTEGRITY_ASYMMETRIC_KEYS
> +        default n
> +        help
> +          This option enables loading an IMA architecture specific policy
> +          based on run time secure boot flags.
> +
>  config IMA_APPRAISE_BUILD_POLICY
>  	bool "IMA build time configured policy rules"
>  	depends on IMA_APPRAISE && INTEGRITY_ASYMMETRIC_KEYS

  reply	other threads:[~2018-09-27 13:31 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-26 12:22 [PATCH v4 0/6] Add support for architecture specific IMA policies Nayna Jain
2018-09-26 12:22 ` Nayna Jain
2018-09-26 12:22 ` [PATCH v4 1/6] x86/ima: define arch_ima_get_secureboot Nayna Jain
2018-09-26 12:22   ` Nayna Jain
2018-09-27 11:33   ` Mimi Zohar
2018-09-27 11:33     ` Mimi Zohar
2018-09-27 11:33     ` Mimi Zohar
2018-09-26 12:22 ` [PATCH v4 2/6] ima: prevent kexec_load syscall based on runtime secureboot flag Nayna Jain
2018-09-26 12:22   ` Nayna Jain
2018-09-27 11:33   ` Mimi Zohar
2018-09-27 11:33     ` Mimi Zohar
2018-09-27 11:33     ` Mimi Zohar
2018-09-26 12:22 ` [PATCH v4 3/6] ima: refactor ima_init_policy() Nayna Jain
2018-09-26 12:22   ` Nayna Jain
2018-09-27 12:16   ` Mimi Zohar
2018-09-27 12:16     ` Mimi Zohar
2018-09-27 12:16     ` Mimi Zohar
2018-09-28  0:51   ` Mimi Zohar
2018-09-28  0:51     ` Mimi Zohar
2018-09-28  0:51     ` Mimi Zohar
2018-09-26 12:22 ` [PATCH v4 4/6] ima: add support for arch specific policies Nayna Jain
2018-09-26 12:22   ` Nayna Jain
2018-09-27 13:27   ` Mimi Zohar
2018-09-27 13:27     ` Mimi Zohar
2018-09-27 13:27     ` Mimi Zohar
2018-09-26 12:22 ` [PATCH v4 5/6] ima: add support for external setting of ima_appraise Nayna Jain
2018-09-26 12:22   ` Nayna Jain
2018-09-27 13:20   ` Mimi Zohar
2018-09-27 13:20     ` Mimi Zohar
2018-09-27 13:20     ` Mimi Zohar
2018-10-05 17:44     ` Nayna Jain
2018-10-05 17:44       ` Nayna Jain
2018-09-26 12:22 ` [PATCH v4 6/6] x86/ima: define arch_get_ima_policy() for x86 Nayna Jain
2018-09-26 12:22   ` Nayna Jain
2018-09-27 13:31   ` Mimi Zohar [this message]
2018-09-27 13:31     ` Mimi Zohar
2018-09-27 13:31     ` Mimi Zohar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1538055102.3459.112.camel@linux.ibm.com \
    --to=zohar@linux.ibm.com \
    --cc=dhowells@redhat.com \
    --cc=erichte@linux.vnet.ibm.com \
    --cc=jforbes@redhat.com \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=nayna@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.