Skip to content

Commit

Permalink
integrity: move integrity_audit_msg()
Browse files Browse the repository at this point in the history
This patch moves the integrity_audit_msg() function and defintion to
security/integrity/, the parent directory, renames the 'ima_audit'
boot command line option to 'integrity_audit', and fixes the Kconfig
help text to reflect the actual code.

Changelog:
- Fixed ifdef inclusion of integrity_audit_msg() (Fengguang Wu)

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
  • Loading branch information
Mimi Zohar committed Jun 20, 2013
1 parent 37ec43c commit d726d8d
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 38 deletions.
10 changes: 5 additions & 5 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1129,11 +1129,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
The builtin appraise policy appraises all files
owned by uid=0.

ima_audit= [IMA]
Format: { "0" | "1" }
0 -- integrity auditing messages. (Default)
1 -- enable informational integrity auditing messages.

ima_hash= [IMA]
Format: { "sha1" | "md5" }
default: "sha1"
Expand All @@ -1158,6 +1153,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
inport.irq= [HW] Inport (ATI XL and Microsoft) busmouse driver
Format: <irq>

integrity_audit=[IMA]
Format: { "0" | "1" }
0 -- basic integrity auditing messages. (Default)
1 -- additional integrity auditing messages.

intel_iommu= [DMAR] Intel IOMMU driver (DMAR) option
on
Enable intel iommu driver.
Expand Down
15 changes: 15 additions & 0 deletions security/integrity/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,21 @@ config INTEGRITY_SIGNATURE
This is useful for evm and module keyrings, when keys are
usually only added from initramfs.

config INTEGRITY_AUDIT
bool "Enables integrity auditing support "
depends on INTEGRITY && AUDIT
default y
help
In addition to enabling integrity auditing support, this
option adds a kernel parameter 'integrity_audit', which
controls the level of integrity auditing messages.
0 - basic integrity auditing messages (default)
1 - additional integrity auditing messages

Additional informational integrity auditing messages would
be enabled by specifying 'integrity_audit=1' on the kernel
command line.

config INTEGRITY_ASYMMETRIC_KEYS
boolean "Enable asymmetric keys support"
depends on INTEGRITY_SIGNATURE
Expand Down
1 change: 1 addition & 0 deletions security/integrity/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#

obj-$(CONFIG_INTEGRITY) += integrity.o
obj-$(CONFIG_INTEGRITY_AUDIT) += integrity_audit.o
obj-$(CONFIG_INTEGRITY_SIGNATURE) += digsig.o
obj-$(CONFIG_INTEGRITY_ASYMMETRIC_KEYS) += digsig_asymmetric.o

Expand Down
12 changes: 0 additions & 12 deletions security/integrity/ima/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,6 @@ config IMA_MEASURE_PCR_IDX
that IMA uses to maintain the integrity aggregate of the
measurement list. If unsure, use the default 10.

config IMA_AUDIT
bool "Enables auditing support"
depends on IMA
depends on AUDIT
default y
help
This option adds a kernel parameter 'ima_audit', which
allows informational auditing messages to be enabled
at boot. If this option is selected, informational integrity
auditing messages can be enabled with 'ima_audit=1' on
the kernel command line.

config IMA_LSM_RULES
bool
depends on IMA && AUDIT && (SECURITY_SELINUX || SECURITY_SMACK)
Expand Down
1 change: 0 additions & 1 deletion security/integrity/ima/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@ obj-$(CONFIG_IMA) += ima.o

ima-y := ima_fs.o ima_queue.o ima_init.o ima_main.o ima_crypto.o ima_api.o \
ima_policy.o
ima-$(CONFIG_IMA_AUDIT) += ima_audit.o
ima-$(CONFIG_IMA_APPRAISE) += ima_appraise.o
14 changes: 0 additions & 14 deletions security/integrity/ima/ima.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,6 @@ struct ima_queue_entry {
};
extern struct list_head ima_measurements; /* list of all measurements */

#ifdef CONFIG_IMA_AUDIT
/* declarations */
void integrity_audit_msg(int audit_msgno, struct inode *inode,
const unsigned char *fname, const char *op,
const char *cause, int result, int info);
#else
static inline void integrity_audit_msg(int audit_msgno, struct inode *inode,
const unsigned char *fname,
const char *op, const char *cause,
int result, int info)
{
}
#endif

/* Internal IMA function definitions */
int ima_init(void);
void ima_cleanup(void);
Expand Down
14 changes: 14 additions & 0 deletions security/integrity/integrity.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,5 +113,19 @@ static inline int asymmetric_verify(struct key *keyring, const char *sig,
}
#endif

#ifdef CONFIG_INTEGRITY_AUDIT
/* declarations */
void integrity_audit_msg(int audit_msgno, struct inode *inode,
const unsigned char *fname, const char *op,
const char *cause, int result, int info);
#else
static inline void integrity_audit_msg(int audit_msgno, struct inode *inode,
const unsigned char *fname,
const char *op, const char *cause,
int result, int info)
{
}
#endif

/* set during initialization */
extern int iint_initialized;
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,28 @@
#include <linux/fs.h>
#include <linux/gfp.h>
#include <linux/audit.h>
#include "ima.h"
#include "integrity.h"

static int ima_audit;
static int integrity_audit_info;

/* ima_audit_setup - enable informational auditing messages */
static int __init ima_audit_setup(char *str)
static int __init integrity_audit_setup(char *str)
{
unsigned long audit;

if (!strict_strtoul(str, 0, &audit))
ima_audit = audit ? 1 : 0;
integrity_audit_info = audit ? 1 : 0;
return 1;
}
__setup("ima_audit=", ima_audit_setup);
__setup("integrity_audit=", integrity_audit_setup);

void integrity_audit_msg(int audit_msgno, struct inode *inode,
const unsigned char *fname, const char *op,
const char *cause, int result, int audit_info)
{
struct audit_buffer *ab;

if (!ima_audit && audit_info == 1) /* Skip informational messages */
if (!integrity_audit_info && audit_info == 1) /* Skip info messages */
return;

ab = audit_log_start(current->audit_context, GFP_KERNEL, audit_msgno);
Expand Down

0 comments on commit d726d8d

Please sign in to comment.