Problem here is that the TargetFileName field is nested in the event{} object of FileOpenInfo of the FDREvent types. So that deep_get("TargetFileName") will never ever find event.TargetFileName Like this:
It looks like the mapping does exist, but it's not being reflected in the end state correctly as show above. This seems to be true for all the file_event rules I've converted so far.
I wonder if it's worth modifying the processing convert the use of event.deep_get() to the get_crowdstrike_field() function from panther_base_helpers?
def get_crowdstrike_field(event, field_name, default=None):
return (
deep_get(event, field_name)
or deep_get(event, "event", field_name)
or deep_get(event, "unknown_payload", field_name)
or default
)
If y'all have any advice for troubleshooting further, I'm all ears. I haven't figured out where the bug is in the backend here. Thanks!
Tested with sigma-cli v1.0.1 and v1.0.4
Converting file_event sigma rules seems a bit buggy. Using this rule as an example. Core of the rule:
Converting that to a python rule sigma convert -s -t panther -f python -p crowdstrike_panther [...] will result in:
Problem here is that the
TargetFileName
field is nested in theevent{}
object of FileOpenInfo of the FDREvent types. So thatdeep_get("TargetFileName")
will never ever findevent.TargetFileName
Like this:It looks like the mapping does exist, but it's not being reflected in the end state correctly as show above. This seems to be true for all the file_event rules I've converted so far.
I wonder if it's worth modifying the processing convert the use of
event.deep_get()
to theget_crowdstrike_field()
function from panther_base_helpers?If y'all have any advice for troubleshooting further, I'm all ears. I haven't figured out where the bug is in the backend here. Thanks!