[Security Solution] Inform users about missing base versions during prebuilt rule upgrade #186880
Labels
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.
Epics: https://github.com/elastic/security-team/issues/1974, #179907
Context: #184889 (comment)
Summary
When user upgrades a prebuilt rule that can be upgraded to a new version, and the base version for this rule is missing, we should consider warning the user about that and explaining to the user how it will affect the upgrade workflow.
Background
For every rule that can be upgraded we rely on 3 versions of it:
security-rule
saved object of the target version.security-rule
saved object that has the samerule.version
as the currently installed rule. In this object we can find the original, non-customized rule attributes.In order to have
security-rule
saved objects in a cluster, the package with prebuilt rule assets needs to be installed. In certain situations these assets can be missing, and we need to handle this in our logic.There can be a few ways to loose rule assets partially which can lead to having a target version, but missing the base one:
From the UX perspective, we have a trade-off that we could handle in a few ways:
-AA
asABB
and-AB
asABC
. The trade-off is safety at the cost of usability. In practice, all-AA
and-AB
fields would be shown in the rule upgrade flyout, with-AB
fields shown as conflicting. This might look confusing, dangerous and overwhelming, especially if the user has never customized their installed rules and just lost some of the prebuilt rule assets.-AA
asAAA
and-AB
asAAB
. The trade-off is usability at the cost of safety. In practice, all-AA
fields would not be shown in the rule upgrade flyout, and-AB
fields would be shown in the flyout as auto-accepted, thus significantly saving the time to upgrade the rules. This might be dangerous for those rules that had been customized by the user, then Elastic published a new package with updates to those rules, and the user lost some of the prebuilt rule assets (-AB
situation).-AA
asAAA
andNO_CONFLICT
for increased usability.-AB
asABC
andSOLVABLE_CONFLICT
for safety. In this case, we would successfully auto-merge the change and return amerged_version: 'C'
, but mark it asSOLVABLE_CONFLICT
according to the idea of solvable and non-solvable conflicts described in the RFC and this ticket. In this case, users would need to manually accept the auto-merged value in the upgrade flyout.We decided to go with the 3rd option.
Having the 3rd option implemented, it might be useful to add a notification or a warning for the user in the upgrade UI that the base version is missing.
The text was updated successfully, but these errors were encountered: