-
Notifications
You must be signed in to change notification settings - Fork 420
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
further .text and keyword discussion #570
Comments
Thanks @neu5ron! Yes, the subtext here is that when only Another subtext is that users are free to add their own So I think this is worth addressing in ECS, and making sure that a baseline of fields where full text search is useful are defined from the get go. Other suggestions and thoughts about this are welcome :-) |
I would add |
So I reviewed all of our current rule sets and there are a few more ECS fields that are used by hunting searches. This list is not ranked but the process fields are clearly the most heavily used and process.args / process.command_line may be the most frequently used. These are the fields not listed above: process.command_line There are also 13 non-ECS fields that are used by hunting searches or by ML job datafeed queries in addition to 12 ECS fields for a total of 25. The complete breakdown is in here: |
@randomuserid But what's "pe" = portable executable, the modern Microsoft executable file format. original file name is a recent addition in sysmon intended to catch malware that renames itself during process init. The signer name is the name associated with the code signing certificate, most Windows binaries are signed in order to identify where they came from. |
Another question that came up (this is for everyone reading this) is whether we need to set a specific Elasticsearch analyzer and/or search_analyzer for some of these fields, or is the default analyzer good enough here? I'm thinking the potentially big fields that have an arbitrary structure (request payloads, user agent) should likely use the default one. But fields that are structured (path, url, domain, email) may have analyzers that are better suited for specific needs? |
After doing some counting today, the lack of wildcard support prevents us from using the best rules we have and practically 100% of the Endgame rules. Sigma rules are also nearly 100% blocked. We may have less than 40 signal rules in 7.6 if we have to hold back all of the wildcard or regex search rules. With wildcards, we would have between 200-300 or more. |
@randomuserid thanks for the analysis! I just want to make sure - this isn't a discussion to get rid of keyword fields that support better wildcard/regex - this is solely to add the .text fields that were taken away that are very useful for many of the aspects of elasticsearch.. ie:
|
IDT Mat's idea involved removing the keyword fields - rather to add text fields as a possible way to enable the hunting searches that use wildcards today, if we rewrote them to do substring matches instead of wildcards |
I think it could be good to add in documentation on possibilities of using custom analyzers for these - and I definitely agree different analyzers are useful which is what I had always done in the past. However, I am thinking this could get into a long drawn out discussion/debate of what to use or not use.. And so I think we just need to move forward - it would never hurt to change analyzer later versus continuing to not have one as is the case now :) Again I want to add - analyzed field additions matters at scale.. If we don't have it then I can be pretty certain using leading and appending wild cards is going to cause some major issues... |
I thought about how to make |
Closing this issue as we have since added |
for security use cases, large error messages, etc..
.text
is an important aspect in searching.pro(s):
con(s):
temporary proposal to meet in the middle (for now) instead of adding
.text
into the dynamic template for all strings fields VS having no.text
fields at allECS and thus corresponding beats index templates have
.text
field for high value/impacting fields. List of fields off the top of my head would be:process.executable.text
process.args.text
url.original
user.email
user_agent.original
error.stack_trace
file.path
host.name
.user.name
fields.domain
fields.as.organization.name
fieldshttp.request.body.content
http.response.body.content
os.name.full
existing ECS reference:
#340
#104
The text was updated successfully, but these errors were encountered: