File tree Expand file tree Collapse file tree 4 files changed +47
-6
lines changed
pkg/security/probe/selftests Expand file tree Collapse file tree 4 files changed +47
-6
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ import (
1515
1616 "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval"
1717 "github.com/DataDog/datadog-agent/pkg/security/secl/rules"
18+ "github.com/DataDog/datadog-agent/pkg/security/seclog"
1819)
1920
2021// ChmodSelfTest defines a chmod self test
@@ -51,7 +52,20 @@ func (o *ChmodSelfTest) GenerateEvent(ctx context.Context) error {
5152
5253// HandleEvent handles self test events
5354func (o * ChmodSelfTest ) HandleEvent (event selfTestEvent ) {
54- o .isSuccess = event .RuleID == o .ruleID
55+ if event .Event == nil ||
56+ event .Event .BaseEventSerializer == nil ||
57+ event .Event .BaseEventSerializer .FileEventSerializer == nil {
58+ seclog .Errorf ("Chmod SelfTest event received with nil Event or File fields" )
59+ o .isSuccess = false
60+ return
61+ }
62+
63+ // debug logs
64+ if event .RuleID == o .ruleID && o .filename != event .Event .BaseEventSerializer .FileEventSerializer .Path {
65+ seclog .Errorf ("Chmod SelfTest event received with different filepaths: %s VS %s" , o .filename , event .Event .BaseEventSerializer .FileEventSerializer .Path )
66+ }
67+
68+ o .isSuccess = event .RuleID == o .ruleID && o .filename == event .Event .BaseEventSerializer .FileEventSerializer .Path
5569}
5670
5771// IsSuccess return the state of the test
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ import (
1616
1717 "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval"
1818 "github.com/DataDog/datadog-agent/pkg/security/secl/rules"
19+ "github.com/DataDog/datadog-agent/pkg/security/seclog"
1920)
2021
2122// ChownSelfTest defines a chown self test
@@ -57,7 +58,20 @@ func (o *ChownSelfTest) GenerateEvent(ctx context.Context) error {
5758
5859// HandleEvent handles self test events
5960func (o * ChownSelfTest ) HandleEvent (event selfTestEvent ) {
60- o .isSuccess = event .RuleID == o .ruleID
61+ if event .Event == nil ||
62+ event .Event .BaseEventSerializer == nil ||
63+ event .Event .BaseEventSerializer .FileEventSerializer == nil {
64+ seclog .Errorf ("Chown SelfTest event received with nil Event or File fields" )
65+ o .isSuccess = false
66+ return
67+ }
68+
69+ // debug logs
70+ if event .RuleID == o .ruleID && o .filename != event .Event .BaseEventSerializer .FileEventSerializer .Path {
71+ seclog .Errorf ("Chown SelfTest event received with different filepaths: %s VS %s" , o .filename , event .Event .BaseEventSerializer .FileEventSerializer .Path )
72+ }
73+
74+ o .isSuccess = event .RuleID == o .ruleID && o .filename == event .Event .BaseEventSerializer .FileEventSerializer .Path
6175}
6276
6377// IsSuccess return the state of the test
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ import (
1515
1616 "github.com/DataDog/datadog-agent/pkg/security/secl/compiler/eval"
1717 "github.com/DataDog/datadog-agent/pkg/security/secl/rules"
18+ "github.com/DataDog/datadog-agent/pkg/security/seclog"
1819)
1920
2021// OpenSelfTest defines an open self test
@@ -51,7 +52,20 @@ func (o *OpenSelfTest) GenerateEvent(ctx context.Context) error {
5152
5253// HandleEvent handles self test events
5354func (o * OpenSelfTest ) HandleEvent (event selfTestEvent ) {
54- o .isSuccess = event .RuleID == o .ruleID
55+ if event .Event == nil ||
56+ event .Event .BaseEventSerializer == nil ||
57+ event .Event .BaseEventSerializer .FileEventSerializer == nil {
58+ seclog .Errorf ("Open SelfTest event received with nil Event or File fields" )
59+ o .isSuccess = false
60+ return
61+ }
62+
63+ // debug logs
64+ if event .RuleID == o .ruleID && o .filename != event .Event .BaseEventSerializer .FileEventSerializer .Path {
65+ seclog .Errorf ("Open SelfTest event received with different filepaths: %s VS %s" , o .filename , event .Event .BaseEventSerializer .FileEventSerializer .Path )
66+ }
67+
68+ o .isSuccess = event .RuleID == o .ruleID && o .filename == event .Event .BaseEventSerializer .FileEventSerializer .Path
5569}
5670
5771// IsSuccess return the state of the test
Original file line number Diff line number Diff line change @@ -234,9 +234,8 @@ func (t *SelfTester) endSelfTests() {
234234}
235235
236236type selfTestEvent struct {
237- RuleID eval.RuleID
238- Filepath string
239- Event * serializers.EventSerializer
237+ RuleID eval.RuleID
238+ Event * serializers.EventSerializer
240239}
241240
242241// IsExpectedEvent sends an event to the tester
You can’t perform that action at this time.
0 commit comments