-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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] Smart limits for the package with prebuilt rules #187645
Comments
Pinging @elastic/security-detections-response (Team:Detections and Resp) |
Pinging @elastic/security-solution (Team: SecuritySolution) |
Pinging @elastic/security-detection-rule-management (Team:Detection Rule Management) |
Research update notes in the doc. |
As an alternative to being limited to what is included in a single package, can we revisit additional rules being fetched from older EPR packages as needed within the specific workflows? I imagine this mostly applies when diving into a single rule?
|
Research results here, to be discussed at the product meeting. |
I'm closing this one as the @approksiu @xcrzx I think we'll revisit the limit question in a few months from now, and we'll open a separate ticket for that. |
Epics: https://github.com/elastic/security-team/issues/1974 (internal), #174168
Summary
Recently we had an incident in Serverless where Kibana instances would crash with an OOM because of an installation of the
security_detection_engine
Fleet package that Security Solution uses to distribute prebuilt detection rules. Fleet loads whole packages into memory before installing their assets, and this package had become too big for that. The incident has been mitigated by temporarily decreasing the number of assets in the package by ~50%. However, this is a short-term measure that we cannot keep for a long time, because we won't be able to release Milestone 3 of the prebuilt rule customization feature with the current limit of 2 versions per rule in the package.Before we can release Milestone 3, we will need to increase back the number of versions per rule we ship in the package. In general, the more versions we ship, the better is the UX for upgrading prebuilt rules; the fewer versions we ship, the lighter is the package which also positively affects the UX and increases reliability.
Our goal is to find a balance between reliability and good UX and achieve both. For that, we need to come up with smart and efficient limits for the package with prebuilt rules.
Ideas
Total limits for the package as a whole:
Per rule limits:
<= X
number of versions no matter what. Exclude older versions and keep newer ones.now - X days
.<= X
versions created within last 3 months,<= Y
within last 6 months,<= Z
within last 12 months, etc;X < Y < Z < ...
, e.g.4 < 6 < 7
. Time ranges grow exponentially while limits grow slower than that: logarithmically or linearly.X
of them within aY
time window. E.g. it could be more than2
per each3 months
. This could help prevent some "noisy" rules (in terms of the frequency of updates to them) from "eating" too much space of the package, as well as evicting older versions of a noisy rule by newer versions of the same rule.Todo
The text was updated successfully, but these errors were encountered: