From 8be4ed7d2e7e89ed34566f324fb6d65e1055c27b Mon Sep 17 00:00:00 2001 From: Smriti <152067238+smriti0321@users.noreply.github.com> Date: Tue, 17 Sep 2024 15:55:29 +0200 Subject: [PATCH] [RFC] Stage 0: Introducing new fields in ECS vulnerability field set (#2331) * RFC to add new fields in ECS vulnerability field set RFC to add new fields in ECS vulnerability field set * Moving to separate file * set title and add stage 0 PR # * clean up fields table markdown * Moving to (rfcs/text) and renaming file to next number in series. * Resolving the comments from @trisch-me * Update rfcs/text/0045-additional-vulnerability-fields.md Co-authored-by: Alexandra Konrad * Update rfcs/text/0045-additional-vulnerability-fields.md Co-authored-by: Alexandra Konrad * Making changed to the date format as per comments from @trisch-me * Resolving @trisch-me comments * Resolving latest comments * Update rfcs/text/0045-additional-vulnerability-fields.md Co-authored-by: Alexandra Konrad --------- Co-authored-by: Eric Beahan Co-authored-by: Alexandra Konrad --- .../0045-additional-vulnerability-fields.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 rfcs/text/0045-additional-vulnerability-fields.md diff --git a/rfcs/text/0045-additional-vulnerability-fields.md b/rfcs/text/0045-additional-vulnerability-fields.md new file mode 100644 index 000000000..63b82105e --- /dev/null +++ b/rfcs/text/0045-additional-vulnerability-fields.md @@ -0,0 +1,138 @@ +# 0000: Additional Vulnerability Fields + + +- Stage: **0 (strawperson)** +- Date: **TBD** + + + + +This RFC proposes to expand the vulnerability fieldset to include more fields, the proposal takes into consideration various customer feedbacks provided to Security integration team, inputs from Infosec team managing vulnerabilities across Elastic and other companies. This will benefit our customers and internal product teams to provide more effective vulnerability management experience to end user. to come up with the list of fields, extensive research was done across various Vulnerability management products and schemas like OSV. It is a continuation of one of the previous RFC on similar topic- https://github.com/elastic/ecs/issues/1685 + + + + + +## Fields +The `vulnerabilities` fields being proposed are as follows: + +| Field | Type | Description / Use Case | +| ----- | ---- | ---------------------- | +| `vulnerability.vendor.id` | keyword | A vulnerability doesn't have necessary a CVE associated with it. It makes sense to seperate vulnerability ID (like CVEs) to the vendor/detection IDs. | +| `vulnerability.title` | keyword | Title/Name/Short Description for vulnerability, to be used in flyout and dashboards. | +| `vulnerability.mitigation` | text | Explains user how to fix or mitigate the problem, could be usefd to store resolution from the scanner vendor or document mitigation in place | +| `vulnerability.published` | date | The “published” field indicates the date when information about a specific vulnerability was publicly disclosed or made available.It represents the moment when details about the vulnerability were shared with the security community, vendors, and the public.This field helps security professionals track the timeline of vulnerability awareness, in ISO 8601 format - YYYY-MM-DD | +| `vulnerability.patch.*` | object | - | +| `vulnerability.patch.exists` | boolean | The “patch” field refers to whether a security fix or update (commonly known as a patch) is available to address the identified vulnerability. It indicates whether the software vendor or developer has released a solution to mitigate the vulnerability. | +| `vulnerability.patch.name` | text | Name of the patch | +| `vulnerability.patch.code` | keyword | Associated patch code for example ESA-2020-13 | +| `vulnerability.evidence` | text | A demonstration of the validity of a vulnerability claim, e.g. app.any.run replaying the exploitation of the vulnerability. | +| `vulnerability.status` | keyword | The status field helps security teams track vulnerabilities, prioritize actions, and communicate their progress effectively. Examples- open/ignored/patched/mitigated/false_positive/risk_accepted/reopened..| +| `vulnerability.tags` | keyword | This is different from cloud provider assigned resource tags, this is specifically for vulnerability. Vulnerability tags serve as a way to add custom metadata to vulnerabilities, enhancing their context and aiding in search and automation. | +| `vulnerability.first_found` | date | First time a vulnerability was found on the asset, in ISO 8601 format: 2016-05-23T08:05:34.853Z | +| `vulnerability.last_found` | date | Last time a vulnerability was found on the asset, in ISO 8601 format: 2016-05-23T08:05:34.853Z | +| `vulnerability.last_scanned` | date | Last time a scan was performed on the asset. It's important as some companies are scanning on a quarterly basis. If last_found and last_scanned are close, it means it's still an active vulnerability, in ISO 8601 format: 2016-05-23T08:05:34.853Z| +| `vulnerability.age` | long | Numbers of days since the vulnerability is active. It should be dynamically calculated (runtime fields, ingest, ...). It could either be then difference between the last_found date and the published date (preferred). It could also be the difference between the first_found and last_found dates. | +| `vulnerability.uid` | keyword | It's extremely important to be able to deduplicate different scans. It's often that we have different scanners showing the same vulnerability on the same asset. | +| `vulnerability.type` | keyword | To conclude if the vulnerability is confirmed or potential. | +| `vulnerability.exploitability.*` | object | - | +| `vulnerability.exploitability.exploited` | boolean | To indicate if the vulnerability has been exploited or not. | +| `vulnerability.exploitability.reference` | keyword | Exploitability databse for example CSA-KEV. | +| `vulnerability.exploitability.confidence` | keyword | Confidence measure the credibility of existence and exploitability. | +| `vulnerability.exploitability.first_seen` | date | First time of exploitability, in ISO 8601 format: 2016-05-23T08:05:34.853Z | +| `vulnerability.exploitability.last_seen` | date | Last time of exploitability, in ISO 8601 format: 2016-05-23T08:05:34.853Z | +| `vulnerability.affected.*` | object | The affected field is a JSON array containing objects that describes the affected package versions, meaning those that contain the vulnerability. | +| `vulnerability.affected.package` | array | Package field is a JSON object identifying the affected code library or command provided by the package. | +| `vulnerability.affected.severity` | array | This field applies to a specific package, in cases where affected packages have differing severities for the same vulnerability. | +| `vulnerability.affected.versions` | array | Affected version in whatever version syntax is used by the given package ecosystem. | + + + + + + +## Usage + + + +## Source data + + + + + + + +## Scope of impact + + + +## Concerns + + + + + + + +## People + +The following are the people that consulted on the contents of this RFC. + +* @smriti0321 | author +* @tinnytintin10 | Product Manager Cloud Security +* @oren-zohar | Engineering Manager Cloud Security +* @orouz | Engineer +* @clement-fouque | Information Security Analyst + + + +## References + + +previous RFC - https://github.com/elastic/ecs/issues/1685 +https://ossf.github.io/osv-schema/#affected-fields + +### RFC Pull Requests + + + +* Stage 0: https://github.com/elastic/ecs/pull/2331 + +