refactor(filter)!: Decommission ps.child.* filter fields
#551
+412
−608
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is the purpose of this PR / why it is needed?
ps.child.*fields have been a constant source of pain and confusion for both detection engineers and Fibratus maintainers. The whole point of having these fields was to designate the child process that was spawned as part of theCreateProcessevent. So, the process state of theCreateProcessevent would always reflect the parent, instead of the child being created.This PR transitions from parent to child process state attribution in the
CreateProcessevent. The equivalent ofps.child.nameis now theps.namefield, and the actual parent is yielded by respectiveps.parent.fields. The consequence of this change is a small breaking change in detection rules, which are addressed as part of this same PR.In general, not only do rules become more readable and intuitive, but also the code base is considerably reduced as it is no longer necessary to introduce the
ps.child.*field for any new parameter or attribute that we expose through the rule language.What type of change does this PR introduce?
/kind refactor (non-breaking change that restructures the code, while not changing the original functionality)
/kind breaking (fix or feature that would cause existing functionality to not work as expected
/kind cleanup
/kind improvement
Any specific area of the project related to this PR?
/area rule-engine
/area filters
/area rules
Special notes for the reviewer
Does this PR introduce a user-facing change?