-
Notifications
You must be signed in to change notification settings - Fork 425
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 Rule Fields for Observers and Agents #598
Comments
Thanks Mike! Got a few questions / challenges ;-)
Is this meant to capture the ensuing alert events or events about the rules? The way the above is phrased sounds like you'd want the event to be about the rules themselves (creating the rule, enabling/disabling the rule). I don't see the advantage of making the rules nested in two places, in this case. Can you expand on why you're proposing nesting them? I agree the rules are set either on an agent or on an observer. However nesting the rules under both means that you can't analyze both agent-based rules and observer-based rules together, because they have different field names ( If we keep this at the top level, we can associate the rule with which agent/observer triggered it using another method. And having it at the top level will mean we can analyze all of the rules together. |
thanks @webmat
Nope. This field set is meant to capture details about the rule that was used by the observer or agent to generate the alert. It is not about rule creation/enabling/disabling.
I was thinking about future ECS Apps that might have their own rules that operate on alerts generated from observer or agent rules. These apps might generate their own detection events that contain both the original rule and their own rule, and thus they would have two rules associated with one event. So I was thinking that these apps could also re-use the newly defined Even with that said, I think you raise a great point about not nesting Question: Would it make sense putting these fields under |
Rule fields are very needed. I vote for top level. One suggestion: rule.comment should also be considered. |
@enotspe Thanks for chiming in! I'm curious about @MikePaquette Thanks for reconsidering the nesting :-) Although I agree with @enotspe and I think this field set would work best at the top level. If it's at I understand that the rules are what will end up causing alerts to be triggered. But the ensuing events are the alert themselves. Why wouldn't we be calling the field set Overall I love the proposed fields inside the field set. I think I would also add .category. I haven't taken the time to go around various source alerts, but I looked at this Suricata example alert, and category is one that I think we don't have a direct mapping for. |
At least FortiOS does. |
One more suggestion:
|
If there's such a thing as a UUID for alert rules, I agree with including it. Although I think it's another case of the convention/habits being so strongly in favour of the contraction, that I'd want this to be |
Saw relevant fields that would map to |
@enotspe would rule.uuid be in addition to rule.id? I'm not opposed to adding it if it makes sense, but I can't recall any alerts I've ever seen that included anything more than a locally significant rule id. Looking at beats info now @webmat - will pop an updated pre-PR list in comments shortly for review, and will try to get the PR in by EOD |
1 more thought (probably esoteric or aesthetic) but would rule.ruleset be better served as rule.group or rule.policy to represent a higher level grouping of individual rules that are applied as a whole based on some criteria? along those lines should we have something to represent the locally significant groupings as defined in the observer / agent (thinking along the lines of Web Filter / DLP that has local groups defined to apply policies (those groups likely being made up of enterprise IAM users/groups) |
@enotspe @webmat I am not opposed to adding @webmat I am strongly opposed to creating an @dainperkins @enotspe I too am not familiar with a globally unique ID (UUID) being associated with a rule, and even if one exists, it's probably not common, so I suggest we go ahead with just a the @webmat Regarding field re-use, I am :+1 to allowing rule at the top level of the naming hierarchy. @dainperkins I prefer not to change Thanks all for the great thought put into this! |
I went thru the Beats GCP Fw fields, a number of these seem very specific to cloud use cases, but I'm thinking we should be considering them - just not sure if it should be in rule, or cloud... Bold seems to fit, or be a good idea for addition, italics I'm questioning if we don't just add cloud entries to the event type... I guess my question is should we be e.g. inventorying rules or using this just to identify which rules we're triggered and why, or should we be thinking about both since its not that much more work - define the full scope and use event.type: inventory or similar and set a smaller set of rule info for event.type: alert ?
|
Good question @dainperkins I'd suggest we keep the scope as a place to capture information about rules used to create detection events and alerts, not as a full specification of fields for all kinds of rules. In other words, let's not add fields for destination, direction, ports, source, dest, target, etc. at this time. Also, we've already defined Care to create a PR based on this scope? |
major firewalls vendors support uuid for at least for firewall policies (other objects are supported as well). When you have 100s of rules to manage per fw, and as few as 10s of firewalls, then uuid becomes really handy. Fortinet Policy UUID I suggest we keep |
@enotspe thanks for the example. The Palo Alto example is clear. I am 👍 for including
|
Opened PR 665 - #665 |
ECS needs a place to capture information about rules used to create detections, for example, web proxy rules, firewall rules, IDS/IPS signatures, EDR rules, WAF rules, SIEM rules, etc.
Proposed Fields
rule.id
- A rule ID that is unique within the scope of the entity using the rule for detection of this eventrule.type
- a categorization value keyword used by the entity using the rule for detection of this eventrule.name
- A keyword name for the rule used to create this eventrule.description
- a text description of the rule used to create this eventrule.reference
- Text URL pointing to additional information about the rule used to create this eventrule.version
- Rule version of the rule used to created this event. Used by systems that allow multiple rule versions to exist.rule.ruleset
- name of the ruleset, policy, or group in which the rule used to create this event is a member.Usage Example
observer.type:"proxy"
observer.name:"1_proxysg"
observer.vendor:"symantec"
observer.product:"s200"
observer.os.name:"sgos"
observer.os.version:"7.1"
observer.geo.name:"3rd_floor_mdf"
observer.rule.id:"00012345"
observer.rule.type:"url"
observer.rule.name: "no gambling at work"
observer.rule.description:"blocks access to known gambling web sites
observer.rule.reference:"http://sitereview.bluecoat.com/#/lookup-result/betthefarm.xyz"
observer.rule.version:"1"
observer.rule.ruleset:"Standard Employee Browsing Policy"
Related Fields
In security use cases, there may be other identifiers used for classifying rules, such as the MITRE ATT&CK framework. If this is the case, such information should be populated in the ECS
threat.*
fields.Field Reuse
Other field sets must not be nested under the
rule.*
field setThe
rule.*
fields must not be used at the top level.The text was updated successfully, but these errors were encountered: