in aucoalesce/coalesce.go [246:302]
func newEvent(msg, syscall *auparse.AuditMessage) *Event {
if msg == nil {
msg = syscall
}
event := &Event{
Timestamp: msg.Timestamp,
Sequence: msg.Sequence,
Category: GetAuditEventType(msg.RecordType),
Type: msg.RecordType,
Data: make(map[string]string, 10),
}
if syscall != nil {
msg = syscall
}
data, err := msg.Data()
if err != nil {
event.Warnings = append(event.Warnings, err)
return event
}
if result, found := data["result"]; found {
event.Result = result
delete(data, "result")
} else {
event.Result = "unknown"
}
if ses, found := data["ses"]; found {
event.Session = ses
delete(data, "ses")
}
if auid, found := data["auid"]; found {
event.Summary.Actor.Primary = auid
}
if uid, found := data["uid"]; found {
event.Summary.Actor.Secondary = uid
}
// Ignore error because msg.Data() would have produced the same error.
event.Tags, _ = msg.Tags()
for k, v := range data {
if strings.HasSuffix(k, "uid") || strings.HasSuffix(k, "gid") {
addSubjectAttribute(k, v, event)
} else if strings.HasPrefix(k, "subj_") {
addSubjectSELinuxLabel(k[5:], v, event)
} else {
event.Data[k] = v
}
}
return event
}