-
Notifications
You must be signed in to change notification settings - Fork 36
Documenting decay rules on indicator changes #280
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
base: main
Are you sure you want to change the base?
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,12 +5,17 @@ | |
|
||
OpenCTI enforces strict rules to determine the period during which an indicator is effective for usage. This period is defined by the `valid_from` and `valid_until` dates. All along its lifecycle, the indicator `score` will decrease according to [configured decay rules](../administration/decay-rules.md). After the indicator expires, the object is marked as `revoked` and the `detection` field is automatically set to `false`. Here, we outline how these dates are calculated within the OpenCTI platform and how the score is updated with decay rules. | ||
|
||
### Decay rule is selected on indicator creation | ||
|
||
When a indicator is created on the platform, the decay engine search for the rule that applies at the time the indicator is created. This decay rule is stored along with the indicator: it means that only new indicator created are impacted when decay rules are changed or created. | ||
|
||
## Setting validity dates | ||
|
||
### Data source provided the dates | ||
|
||
If a data source provides `valid_from` and `valid_until` dates when creating an indicator on the platform, these dates are used without modification. But, if the creation is performed from the UI and the indicator is elligible to be manages by a decay rule, the platform will change this valid_until with the one calculated by the Decay rule. | ||
If a data source provides `valid_from` and `valid_until` dates and he indicator is elligible to be managed by a decay rule, the platform will change this valid_until with the one calculated by the Decay rule. | ||
|
||
When an indicator is created as already revoked, the decay rule is not computed. | ||
|
||
### Fallback rules for unspecified dates | ||
|
||
|
@@ -34,6 +39,35 @@ Right next to the indicator score, there is a button `Lifecycle` which enables t | |
|
||
 | ||
|
||
## How the decay behave on indicator updates | ||
|
||
The decay rule is a mathematical computation based on: | ||
- valid from | ||
- indicator score | ||
- being revoked or not | ||
|
||
An update can occurs either on an actual update, or if an indicator is already existing in the platform in that case it's called an upsert. | ||
|
||
### Upating score | ||
|
||
Updating score restart a decay lifecycle computation with the decay rule that is already stored in the indicator. It means that the valid until date is updated along with a score update. | ||
aHenryJard marked this conversation as resolved.
Show resolved
Hide resolved
aHenryJard marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### Updating the revoke state | ||
|
||
- Updating an indicator and **moving revoked to true**: means that the decay manager will ignore the indicator. The score is automatically updated to be au maximum the revoke score of the decay rule that applies, or zero if no decay rules applies. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Updating an indicator and moving revoked to true: means that the decay manager will ignore the indicator. The score is automatically updated to be at least at the revoke score of the decay rule that applies, or zero if no decay rules applies. |
||
|
||
- Updating an indicator and **moving revoked to false**: means that the indicator must be valid given the decay lifecycle. If there is no score update along with the revoke update, the score is automatically updated to be the score at indicator creation, or if there is no decay rule 50. The valid until is then computed with this new score value. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Examples:
|
||
|
||
### Managing concurency updates from distinct sources | ||
|
||
In some case, several sources have different values for one given indicator and keep erasing each other score. As all decay data is computed everytime a score is change, there is a circuit breaker: | ||
- if a source has already done an update with same score in the indicator life, the update is ignored. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Example: |
||
|
||
## Conclusion | ||
|
||
Understanding how OpenCTI calculates validity periods and scores is essential for effective threat intelligence analysis. These rules ensure that your indicators are accurate and up-to-date, providing a reliable foundation for threat intelligence data. | ||
|
||
## Related reading: | ||
|
||
- [Indicator decay manager](../deployment/managers.md) | ||
- [Decay rules configuration](../administration/decay-rules.md) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's two ways to update an indicator: either through an update, or ingesting an indicator that already exists in the platform (upsert, more information on this page.