integrity: move integrity_audit_msg()
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Mon, 18 Mar 2013 18:48:02 +0000 (14:48 -0400)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Thu, 20 Jun 2013 11:47:49 +0000 (07:47 -0400)
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>
Documentation/kernel-parameters.txt
security/integrity/Kconfig
security/integrity/Makefile
security/integrity/ima/Kconfig
security/integrity/ima/Makefile
security/integrity/ima/ima.h
security/integrity/ima/ima_audit.c [deleted file]
security/integrity/integrity.h
security/integrity/integrity_audit.c [new file with mode: 0644]

index c3bfacb92910dc8d044bec88122c4a85328ed8d5..cb5daa1cd605506c7c964f5328cc200957073fa1 100644 (file)
@@ -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"
@@ -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.
index 4bb3a775a996041c02fe6db7373e340e73a5f7ac..245c6d92065b36ae748c6936d696d4a2222d9b9d 100644 (file)
@@ -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
index ebb6409b3fcb97caeb15d211e1427a1148050f60..0f9cffb1f9ade08400a916d7a5e3694679266e49 100644 (file)
@@ -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
 
index d232c73647ae46ee0f8295a4965419f5b044ca99..39196abaff0d69d7d600ecd53847ba62b8cebed1 100644 (file)
@@ -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)
index 3f2ca6bdc384ecbb5b3de4dc53d32c9a802d5958..56dfee7cbf61c6605adf103dbf91393b33fe9256 100644 (file)
@@ -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
index a41c9c18e5e0706498d44a26e3ece7d49f307e4c..b3dd616560f72054e13ddeaedaa39017585c2e5c 100644 (file)
@@ -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);
diff --git a/security/integrity/ima/ima_audit.c b/security/integrity/ima/ima_audit.c
deleted file mode 100644 (file)
index c586faa..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 IBM Corporation
- * Author: Mimi Zohar <zohar@us.ibm.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, version 2 of the License.
- *
- * File: integrity_audit.c
- *     Audit calls for the integrity subsystem
- */
-
-#include <linux/fs.h>
-#include <linux/gfp.h>
-#include <linux/audit.h>
-#include "ima.h"
-
-static int ima_audit;
-
-/* ima_audit_setup - enable informational auditing messages */
-static int __init ima_audit_setup(char *str)
-{
-       unsigned long audit;
-
-       if (!strict_strtoul(str, 0, &audit))
-               ima_audit = audit ? 1 : 0;
-       return 1;
-}
-__setup("ima_audit=", ima_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 */
-               return;
-
-       ab = audit_log_start(current->audit_context, GFP_KERNEL, audit_msgno);
-       audit_log_format(ab, "pid=%d uid=%u auid=%u ses=%u",
-                        current->pid,
-                        from_kuid(&init_user_ns, current_cred()->uid),
-                        from_kuid(&init_user_ns, audit_get_loginuid(current)),
-                        audit_get_sessionid(current));
-       audit_log_task_context(ab);
-       audit_log_format(ab, " op=");
-       audit_log_string(ab, op);
-       audit_log_format(ab, " cause=");
-       audit_log_string(ab, cause);
-       audit_log_format(ab, " comm=");
-       audit_log_untrustedstring(ab, current->comm);
-       if (fname) {
-               audit_log_format(ab, " name=");
-               audit_log_untrustedstring(ab, fname);
-       }
-       if (inode) {
-               audit_log_format(ab, " dev=");
-               audit_log_untrustedstring(ab, inode->i_sb->s_id);
-               audit_log_format(ab, " ino=%lu", inode->i_ino);
-       }
-       audit_log_format(ab, " res=%d", !result);
-       audit_log_end(ab);
-}
index 84c37c4db914ac46cd07adae4ee4040fe9446390..c42fb7a70dee78dfdf1ebbc5f1d3a43fb6c6c233 100644 (file)
@@ -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;
diff --git a/security/integrity/integrity_audit.c b/security/integrity/integrity_audit.c
new file mode 100644 (file)
index 0000000..d7efb30
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2008 IBM Corporation
+ * Author: Mimi Zohar <zohar@us.ibm.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 2 of the License.
+ *
+ * File: integrity_audit.c
+ *     Audit calls for the integrity subsystem
+ */
+
+#include <linux/fs.h>
+#include <linux/gfp.h>
+#include <linux/audit.h>
+#include "integrity.h"
+
+static int integrity_audit_info;
+
+/* ima_audit_setup - enable informational auditing messages */
+static int __init integrity_audit_setup(char *str)
+{
+       unsigned long audit;
+
+       if (!strict_strtoul(str, 0, &audit))
+               integrity_audit_info = audit ? 1 : 0;
+       return 1;
+}
+__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 (!integrity_audit_info && audit_info == 1)   /* Skip info messages */
+               return;
+
+       ab = audit_log_start(current->audit_context, GFP_KERNEL, audit_msgno);
+       audit_log_format(ab, "pid=%d uid=%u auid=%u ses=%u",
+                        current->pid,
+                        from_kuid(&init_user_ns, current_cred()->uid),
+                        from_kuid(&init_user_ns, audit_get_loginuid(current)),
+                        audit_get_sessionid(current));
+       audit_log_task_context(ab);
+       audit_log_format(ab, " op=");
+       audit_log_string(ab, op);
+       audit_log_format(ab, " cause=");
+       audit_log_string(ab, cause);
+       audit_log_format(ab, " comm=");
+       audit_log_untrustedstring(ab, current->comm);
+       if (fname) {
+               audit_log_format(ab, " name=");
+               audit_log_untrustedstring(ab, fname);
+       }
+       if (inode) {
+               audit_log_format(ab, " dev=");
+               audit_log_untrustedstring(ab, inode->i_sb->s_id);
+               audit_log_format(ab, " ino=%lu", inode->i_ino);
+       }
+       audit_log_format(ab, " res=%d", !result);
+       audit_log_end(ab);
+}
This page took 0.033782 seconds and 5 git commands to generate.