Skip to content

Commit

Permalink
x-pack/auditbeat/module/system/process Include Linux capabilities
Browse files Browse the repository at this point in the history
  • Loading branch information
haesbaert committed Dec 5, 2023
1 parent 62c5e91 commit 5aba12e
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions x-pack/auditbeat/module/system/process/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ type Process struct {
UserInfo *types.UserInfo
User *user.User
Group *user.Group
CapabilityInfo *types.CapabilityInfo
Hashes map[hasher.HashType]hasher.Digest
Error error
}
Expand Down Expand Up @@ -353,6 +354,17 @@ func (ms *MetricSet) processEvent(process *Process, eventType string, action eve
},
}

if process.CapabilityInfo != nil {
if len(process.CapabilityInfo.Effective) > 0 {
event.RootFields.Put("process.thread.capabilities.effective",
process.CapabilityInfo.Effective)
}
if len(process.CapabilityInfo.Permitted) > 0 {
event.RootFields.Put("process.thread.capabilities.permitted",
process.CapabilityInfo.Permitted)
}
}

if process.UserInfo != nil {
putIfNotEmpty(&event.RootFields, "user.id", process.UserInfo.UID)
putIfNotEmpty(&event.RootFields, "user.group.id", process.UserInfo.GID)
Expand Down Expand Up @@ -488,6 +500,13 @@ func (ms *MetricSet) getProcesses() ([]*Process, error) {
process.UserInfo = &userInfo
}

if capIface, ok := sysinfoProc.(types.Capabilities); ok {
process.CapabilityInfo, err = capIface.Capabilities();
if err != nil && process.Error == nil {
process.Error = fmt.Errorf("failed to load capabilities for PID %d: %w",
sysinfoProc.PID(), err)
}
}
// Exclude Linux kernel processes, they are not very interesting.
if runtime.GOOS == "linux" && userInfo.UID == "0" && process.Info.Exe == "" {
continue
Expand Down

0 comments on commit 5aba12e

Please sign in to comment.