On Wednesday 19 August 2009 03:12:05 am Miloslav Trmac wrote:
I suggest that a change should be done in the kernel. The events
are filtered in it so that there is no need parsing the messages
sent to the auditd and this solution wouldn't cause any increase
in the load of the system caused by auditing.
I suppose you could hook into the exclude filter and check events there.
First of all, the syntax of the rules should be changed a bit to
include reactive rules. It could look like this:
rule1
rule2 {
rule2_1
rule2_2
}
rule3
When an event that rule2 watches for occurs, rule2_1 and rule2_2
will be added/removed to/from the rule set.
You could also do matching based on a new field rather than change the syntax
of the rules. It could work like key field except its a number. The high bit
could determine if its add/delete.
The change in the syntax means a change in auditctl.c. Also,
struct audit_rule_data needs to be altered to include some flag
that makes it possible to recognize between the types of rules
when passed to the kernel.
The less changed in the kABI the better. It needs to stay backward/forward
compatible in different combinations of kernel and user space.
-Steve