Skip to contentSkip to conversation

audit: CONFIG_CHANGE don't log internal bookkeeping as an event

PATCH In review Steve Grubb 2 participants 2 messages Jan 8, 2020 – Jan 9, 2020 Audit

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 audit: CONFIG_CHANGE don't log internal bookkeeping as an event

Common Criteria calls out for any action that modifies the audit trail to be recorded. That usually is interpreted to mean insertion or removal of rules. It is not required to log modification of the inode information since the watch is still in effect. Additionally, if the rule is a never rule and the underlying file is one they do not want events for, they get an event for this bookkeeping update against their wishes.

Since no device/inode info is logged at insertion and no device/inode information is logged on update, there is nothing meaningful being communicated to the admin by the CONFIG_CHANGE updated_rules event. One can assume that the rule was not "modified" because it is still watching the intended target. If the device or inode cannot be resolved, then audit_panic is called which is sufficient.

The correct resolution is to drop logging config_update events since the watch is still in effect but just on another unknown inode.

---
 kernel/audit_watch.c | 2 --
 1 file changed, 2 deletions(-)
kernel/audit_watch.c +0 -0
index 4508d5e0cf69..8a8fd732ff6d 100644
@@ -302,8 +302,6 @@ static void audit_update_watch(struct audit_parent 

*parent,
if (oentry->rule.exe)
audit_remove_mark(oentry->rule.exe);

- audit_watch_log_rule_change(r, owatch, "updated_rules");
-
call_rcu(&oentry->rcu, audit_free_rule_rcu);
}

Signature · 1 line
2.24.1
maintainer
#1 lore raw
Quoted 28 lines · Steve Grubb

Common Criteria calls out for any action that modifies the audit trail to be recorded. That usually is interpreted to mean insertion or removal of rules. It is not required to log modification of the inode information since the watch is still in effect. Additionally, if the rule is a never rule and the underlying file is one they do not want events for, they get an event for this bookkeeping update against their wishes.

Since no device/inode info is logged at insertion and no device/inode information is logged on update, there is nothing meaningful being communicated to the admin by the CONFIG_CHANGE updated_rules event. One can assume that the rule was not "modified" because it is still watching the intended target. If the device or inode cannot be resolved, then audit_panic is called which is sufficient.

The correct resolution is to drop logging config_update events since the watch is still in effect but just on another unknown inode.

---
 kernel/audit_watch.c | 2 --
 1 file changed, 2 deletions(-)
kernel/audit_watch.c +0 -0
index 4508d5e0cf69..8a8fd732ff6d 100644

kernel/audit_watch.c static void audit_update_watch(struct audit_parent · line 302

Quoted 1 line
kernel/audit_watch.c +0 -0
@@ -302,8 +302,6 @@ static void audit_update_watch(struct audit_parent
 *parent,

It looks like your mail client is mangling your patch such that it can't be applied directly from the mail you sent (look at the line above). Granted this patch is trivial and easily applied by hand but I think it would be good for you Steve to get the experience in sending kernel patches properly, please try it again.

If you are unfamiliar with how to do it, I would suggest looking at Documentation/process/submitting-patches.rst and Documentation/process/email-clients.rst in the kernel source tree.

Quoted 10 lines
kernel/audit_watch.c +0 -3
                        if (oentry->rule.exe)
                                audit_remove_mark(oentry->rule.exe);
 
-                       audit_watch_log_rule_change(r, owatch, "updated_rules");
-
                        call_rcu(&oentry->rcu, audit_free_rule_rcu);
                }
 
--

2.24.1

Signature · 2 lines
paul moore
www.paul-moore.com