Skip to content
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

[Security Solution] Support filtering by "Modified rules" and "Unmodified rules" #180169

Closed
Tracked by #174168
jpdjere opened this issue Apr 5, 2024 · 12 comments
Closed
Tracked by #174168
Assignees
Labels
8.17 candidate enhancement New value added to drive a business result Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules area Team:Detection Rule Management Security Detection Rule Management Team Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc.

Comments

@jpdjere
Copy link
Contributor

jpdjere commented Apr 5, 2024

Epics: https://github.com/elastic/security-team/issues/1974 (internal), #174168
Design Discussion context: #178211

Summary

Update table

  • Support filtering by "Modified rules" and "Unmodified rules" in the update rules table using a new dropdown filer.
  • Image

Rules table

  • Keep existing filtering with existing options of Elastic rules and Custom rules.
  • Show if the Elastic rule is modified but having a badge on the rule details page.
  • Change Integrations badge to just icon and number count as in the design below.
    Image

Designs

Update table

Rule table

@jpdjere jpdjere added triage_needed Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Detection Rule Management Security Detection Rule Management Team Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules area labels Apr 5, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detections-response (Team:Detections and Resp)

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-solution (Team: SecuritySolution)

@elasticmachine
Copy link
Contributor

Pinging @elastic/security-detection-rule-management (Team:Detection Rule Management)

@banderror banderror changed the title [Security Solution] Support filtering by "custom", "prebuilt customized", and "prebuilt non-customized" [Security Solution] Support filtering by "custom", "prebuilt customized", and "prebuilt non-customized" (DRAFT) Apr 17, 2024
@nikitaindik nikitaindik self-assigned this Jun 24, 2024
@banderror banderror added 8.15 candidate enhancement New value added to drive a business result and removed triage_needed labels Jun 25, 2024
@banderror banderror changed the title [Security Solution] Support filtering by "custom", "prebuilt customized", and "prebuilt non-customized" (DRAFT) [Security Solution] Support filtering by "custom", "prebuilt customized", and "prebuilt non-customized" Jun 25, 2024
@nikitaindik
Copy link
Contributor

Transitioning this back in "Todo" as I need to switch to another ticket.

Here's some info for future reference. I came up with this KQL query to filter by "prebuilt non-customized":

(alert.attributes.params.immutable: true AND NOT alert.attributes.params.ruleSource.isCustomized: *) OR alert.attributes.params.ruleSource.isCustomized: false

@banderror banderror removed the v8.16.0 label Aug 9, 2024
@dplumlee dplumlee self-assigned this Sep 19, 2024
@ARWNightingale ARWNightingale changed the title [Security Solution] Support filtering by "custom", "prebuilt customized", and "prebuilt non-customized" [Security Solution] Support filtering by by "Modified rules" and "Unmodified rules" Oct 11, 2024
@ARWNightingale
Copy link

@approksiu please edit or add any information that I may have missed.

@ARWNightingale ARWNightingale changed the title [Security Solution] Support filtering by by "Modified rules" and "Unmodified rules" [Security Solution] Support filtering by "Modified rules" and "Unmodified rules" Oct 11, 2024
@ARWNightingale
Copy link

Hey @dplumlee, we made some changes to the design to decrease scope and insure we are aligned with what data we have to show. any questions please reach out.

@jpdjere
Copy link
Contributor Author

jpdjere commented Oct 15, 2024

Hi @approksiu and @ARWNightingale, we discussed this yesterday with @dplumlee and some questions came up:

Add a new column to show if a rule has been modified. (Modified will only be shown when a rule gets custom on the same field that would previously trigger it to a "elastic customised rule".)

This is technically possible but we were having doubts about adding a whole new column to show if the rule is customized. It makes sense for Prebuilt Rules, since they are either modified or not, but what about Custom rules? The column doesn't make sense at all for Custom rules (would it ever show a value?) and seems a waste of space in the table. We were thinking instead that we could have a Badge either before or after the rule's name that shows it as Customised/Modified. WDYT?

show what fields have been modified with an icon.

This is currently not possible without some planning: the rule currently does not save the information of which fields were modified, only if the whole rule was modified or not (with a change to at least 1 field). It is possible to calculate this on the fly every time that we need it, but it requires some planning since it would affect the Rules Details page performance. We should answer some questions before like:

  • do we want to show which fields are customized as soon as the page loads? or maybe in a flyout that the user has to click additionally? The second option makes more sense from a point of view of performance, not affecting load times of the Rules Detail page.
  • how do we handle cases were the base rule is missing? We might know that the rule is customized (because that's saved in the rule itself) but if the base rule is missing (very possible) we cannot calculate which fields are customized. That would be very weird UX for the user.
    I suggest we create an Enhancement ticket for this and add it to the Milestone 4+ ticket to plan it for the future.

@approksiu
Copy link

approksiu commented Oct 15, 2024

@jpdjere thanks for the questions!

We were thinking instead that we could have a Badge either before or after the rule's name that shows it as Customised/Modified.

I was thinking we could sort the column to see the modified rules on top, with badge it will not be possible.

I suggest we create an Enhancement ticket for this and add it to the Milestone 4+ ticket to plan it for the future.

Yes, it is included in Milestone 4, but needs a ticket.

@dplumlee
Copy link
Contributor

dplumlee commented Oct 15, 2024

@approksiu what about @jpdjere's comment about the modified column and custom rules? Is the thought there to just show nothing the same as non-customized prebuilt rules?

I think our initial confusion was around having a binary value in the table that's already pretty full and doesn't apply to one of the 3 existing rule types (custom/prebuilt/customized prebuilt). And even if we don't do the badge approach - for sorting that column, what's the benefit of sorting instead of filtering like we do for prebuilt vs custom right now?

@approksiu
Copy link

@dplumlee @jpdjere having a badge is a sensible approach at this time since a suggestion we had is a compromise. We will improve it in the future when we add proper filters. Thanks! Alex is updating the designs.

@ARWNightingale
Copy link

Hey,@jpdjere @dplumlee designs have been amended.

dplumlee added a commit that referenced this issue Nov 6, 2024
…omization (#197340)

## Summary

Addresses #180169

> [!NOTE]  
> Feature is behind the `prebuiltRulesCustomizationEnabled` feature
flag.

Adds a filter for prebuilt rules in the Update rules table for
"Modified" and "Unmodified" rules. Also adds a badge column in the Rules
table to display whether a prebuilt rule has been customized or not.

Also switches the "Customized Elastic rule" badge on the rule details
page to align with the updated language of "_Modified_ Elastic rule"

### Screenshots

#### Modified badge in Rules table
![Screenshot 2024-11-05 at 3 05
56 PM](https://github.com/user-attachments/assets/1f3313bb-7171-42b5-99b0-b9fb296fefd3)

#### Modification filter dropdown on Rule update page
<img width="1479" alt="Screenshot 2024-10-24 at 11 46 26 AM"
src="https://github.com/user-attachments/assets/82715abe-6ff6-4ba6-97b3-6fab9f42069e">

#### New "customized rule" badge language on Rule details page
![Screenshot 2024-11-05 at 3 14
58 PM](https://github.com/user-attachments/assets/4e22ba3a-e13f-4cf1-88c0-6b5b0b2c258a)


### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))



### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#_add_your_labels)
- [ ] This will appear in the **Release Notes** and follow the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Nov 6, 2024
…omization (elastic#197340)

## Summary

Addresses elastic#180169

> [!NOTE]
> Feature is behind the `prebuiltRulesCustomizationEnabled` feature
flag.

Adds a filter for prebuilt rules in the Update rules table for
"Modified" and "Unmodified" rules. Also adds a badge column in the Rules
table to display whether a prebuilt rule has been customized or not.

Also switches the "Customized Elastic rule" badge on the rule details
page to align with the updated language of "_Modified_ Elastic rule"

### Screenshots

#### Modified badge in Rules table
![Screenshot 2024-11-05 at 3 05
56 PM](https://github.com/user-attachments/assets/1f3313bb-7171-42b5-99b0-b9fb296fefd3)

#### Modification filter dropdown on Rule update page
<img width="1479" alt="Screenshot 2024-10-24 at 11 46 26 AM"
src="https://github.com/user-attachments/assets/82715abe-6ff6-4ba6-97b3-6fab9f42069e">

#### New "customized rule" badge language on Rule details page
![Screenshot 2024-11-05 at 3 14
58 PM](https://github.com/user-attachments/assets/4e22ba3a-e13f-4cf1-88c0-6b5b0b2c258a)

### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#_add_your_labels)
- [ ] This will appear in the **Release Notes** and follow the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
(cherry picked from commit f740d95)
@dplumlee
Copy link
Contributor

dplumlee commented Nov 6, 2024

Completed by #197340

@dplumlee dplumlee closed this as completed Nov 6, 2024
mgadewoll pushed a commit to mgadewoll/kibana that referenced this issue Nov 7, 2024
…omization (elastic#197340)

## Summary

Addresses elastic#180169

> [!NOTE]  
> Feature is behind the `prebuiltRulesCustomizationEnabled` feature
flag.

Adds a filter for prebuilt rules in the Update rules table for
"Modified" and "Unmodified" rules. Also adds a badge column in the Rules
table to display whether a prebuilt rule has been customized or not.

Also switches the "Customized Elastic rule" badge on the rule details
page to align with the updated language of "_Modified_ Elastic rule"

### Screenshots

#### Modified badge in Rules table
![Screenshot 2024-11-05 at 3 05
56 PM](https://github.com/user-attachments/assets/1f3313bb-7171-42b5-99b0-b9fb296fefd3)

#### Modification filter dropdown on Rule update page
<img width="1479" alt="Screenshot 2024-10-24 at 11 46 26 AM"
src="https://github.com/user-attachments/assets/82715abe-6ff6-4ba6-97b3-6fab9f42069e">

#### New "customized rule" badge language on Rule details page
![Screenshot 2024-11-05 at 3 14
58 PM](https://github.com/user-attachments/assets/4e22ba3a-e13f-4cf1-88c0-6b5b0b2c258a)


### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))



### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#_add_your_labels)
- [ ] This will appear in the **Release Notes** and follow the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.17 candidate enhancement New value added to drive a business result Feature:Prebuilt Detection Rules Security Solution Prebuilt Detection Rules area Team:Detection Rule Management Security Detection Rule Management Team Team:Detections and Resp Security Detection Response Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc.
Projects
None yet
Development

No branches or pull requests

7 participants