(sorry about the html posting)
John Dennis <jdennis@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@br.ibm.com>
Software Engineer
IBM STG, Linux Technology Center
Phone:(+55-19) 2132-1909 [T/L 839-1909]