(sorry about the html posting)
John Dennis <jdennis(a)redhat.com> wrote on 11/14/2007 09:30:16 AM:
> original record:
> type=LOGIN msg=audit(1193547601.367:36782): login pid=11698 uid=0 old
> auid=4294967295 new auid=0
>
> ---walk_test()----
> event 1 has 1 records
> record 1 of type 1006(LOGIN) has 5 fields
> line=1 file=None
> event time: 1193547601.367:36782, host=None
> type=LOGIN (LOGIN)
> pid=11698 (11698)
> uid=0 (root)
> auid=4294967295 (unset)
> auid=0 (root)
> ---
I'm not sure follow what you're asking but let me through a
few thoughts
out.
auparse only purpose is to parse and extract audit data, it doesn't
interpret the data (other than simple things like mapping numeric values
to strings). The job of interpreting the audit event is up to the
caller
of auparse. During interpretation only you can know what data you
need
to look at. There may or may not be a relationship between individual
events, you're going to have to perform some analysis across events to
determine if that is the case.
When you say "only need the field values" are you saying you're throwing
away the field names and if so what about multiple fields with the
same
name?
That got out bad. I wanted to know if by having only the event type,
event timestamp+serial, and all the fieldname=value pairs would be
sufficient to describe an audit record completely. Look at the above
example (taken out of auparse testsuite). Can I describe the record
as a whole if I just have the data that 'walk_test()' gives me? I'd
expect so, but there are still some audit data not placed in any
field.
Also, be aware records in an event cannot be merged because the same
fields may appear in more than one record, if you do that you'll have
collisions and lose all but the most recent field value you read out of
the event.
I'm not merging records. In the plug-in, I use the same concept applied
in the Linux Audit subsystem, that is having a unique identifier shared
among all the records of a same event.
In the above example, if the op field was really a multiword string
but
its value only appeared as the first word in the string, then that looks
like a bug. I'm not personally familiar with that field in that
record.
It seems like a field value cannot contain any spaces, so the 'operation'
specified by usermod should be something like
'op=adding-supplemental-group-to-user new_group=sys acct=klausk'.
But then again we have another issue: it's up to the application to choose
the operation name, the field name and what it means - or if there is any
field at all! This many degrees of freedom may mean hell to people who
actually are trying to extract information from these records.
Standard formats, standard fields names with well-known meanings would
certainly help.
Thanks,
Klaus
--
Klaus Heinrich Kiwi/Brazil/IBM <klausk(a)br.ibm.com>
Software Engineer
IBM STG, Linux Technology Center
Phone:(+55-19) 2132-1909 [T/L 839-1909]