As part of the EQL integration within Elasticsearch (https://github.com/elastic/elasticsearch/issues/49581), it's important that we have maximum interoperability so that queries can run on the endpoint or on Elasticsearch, and this requires the schemas to be shared between them. There is still a significant delta, so we've been using the endgame.* namespace in the interim for anything unmapped to ECS. Hopefully, this can serve as a meta issue and I'll try to track endpoint-specific mappings from here:
Within our EQL analytics library, we have several fields that are mapped. I bolded the ones that are used in analytics within the repo, and checked off when mapped to ECS.
process.command_line and process.argsdestination.addressdestination.portfile.namefile.pathhost.hostnameprocess.parent.name (as of ECS 1.3.0)process.parent.executable (as of ECS 1.3.0)process.pidprocess.ppidprocess.nameprocess.executablenetwork.transportsource.addresssource.portnetwork.bytesNT AUTHORITY\SYSTEM)user.domainuser.nameuser.idWe also have a concept of enums for subtypes, which is really just a list of accepted values for a given field. This will add a layer of standardization when we standardize values for ECS, which is going to be very necessary if users expect to share across data sources.
Some of the values we've enumerated, which often map to Endgame's event_subtype_full or opcode fields. These all require solving categorization and enumerated values for event.category, event.type and event.action:
Thanks for opening this, Ross!
With yesterday's 1.3 release, parent process details can be captured on the event, at process.parent.*. I'm editing the issue body to that effect.
ECS issues to open
Questions
Here's a few points or questions wrt to the rest of what I see:
user mapped? What kind of value is typically in this field?total_in_bytes and total_out_bytes should probably be mapped to source.bytes and destination.bytes.@webmat , @rw-access here's the unique pid discussion issue: https://github.com/elastic/ecs/issues/672
And Ross opened the registry discussion at https://github.com/elastic/ecs/issues/671
I'm looking at the body of the issue and I'm wondering why DNS is there. Could you open an issue stating specifically what's missing from your POV, from the current DNS field set?
Oh sorry, I think DNS is good. I was just being verbose and linked to existing issues.