-
Notifications
You must be signed in to change notification settings - Fork 422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add PE field set under file and process #731
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this field set is applicable to process
, it should be nested at process.parent
as well. Although the way to cleanly do that is in progress over in #698.
The way this is currently defined makes it inherently limited to Windows. I think you're right that the analogous executable metadata headers don't specify anything like the fields you're adding here (Mac's Mach-O or Linux' ELF). But if they ever do, it would be weird to have to use them via .pe.original_file_name
... I wonder if we could directly add this to file
and process
instead? E.g. file.original_name
, file.company
, etc. Or perhaps file.meta.original_name
.
Their definition could still mention Windows PE, and that's likely the only time they would be filled for now. But that definition could later be loosened, if say Mach-O (or another header standard) comes along and starts tracking the same concepts for the Mac or Linux.
I think it's time to open a can of worms, here. Let's discuss the question, and see if we think this is worth looking into or not, at this time. Actually it's two separate cans :-)
If we decide to tackle these two cans of worms together, then we get a simplification. Add PE headers in @rw-access WDYT? |
1- I think we should hold off on 2 - I don't think it makes sense to put all of these as top-level Removing the (meta) Honestly, I'm fairly resistant to making the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I think you convinced me on no 2, let's not introduce ambiguities, and let's keep it nested under pe.
.
With regards to no 1, I'm not proposing to make a breaking change now. I'm proposing to declare the deprecation earlier, in preparation for 2.0 :-) But are you saying that you don't think attributes like file.owner
or file.attributes
are necessary when looking at process? If that's the case, perhaps you're right and we should hold off.
However if we anticipate we may want to do that at some point, then instead of having to deprecate only process.executable
, now we'd be deprecating and migrating process.pe
and process.code_signature
as well... That's why I bring it up now :-)
Alright, let's close can of worms no 1 as well, on {
"process": { "name": "ruby", "executable": "/usr/bin/ruby" },
"file": { "path": "/usr/bin/ruby", "owner": "root", "mode": 0755 ... }
} The clarifications on current field names convinced me as well. Let's proceed with the field names as they are. Descriptions look good as well :-) The only thing we need to do here, is merge master, re-generate the files, and we'll be good to merge. Let's merge this PR first, and adjust #679 after. |
Sorry, on top of the above, please don't forget to remove all of the unneeded |
Thanks for the comments, and good idea for If DLL merges, first then I'll add the nesting for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, LGTM :-)
- code_signature (elastic#733) - second entry for elastic#739 in the schema section, mentioning the addition of `process.parent.hash` Also adjusted the wording of elastic#731 and elastic#747.
Closes #676
Adds a PE field set under file and process.