You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

NOTICE

THIS IS STILL WIP and has not been approved by TSC yet. If you would like to report a security issue please refer to current procedure .

Glossary

Term  

Definition  

Embargo

A time period where vendors have access to details concerning the security vulnerability, with an understanding not to publish these details or the   fixes they have prepared. The embargo ends with a coordinated release date   ("CRD"). (from source)

Subject matter expert

A developer or other specialist   who can provide contextual   information that helps to determine the validity and impact of a potential  security vulnerability.

Security SME

A security SME is a specialist who is familiar with the ONAP security vulnerability procedures and security in general

Peer reviewed

In the context of a patch, the term peer reviewed refers to the patch having been reviewed by the ONAP vulnerability sub-committee and any other   relevant key stakeholders. There is not yet a strict definition of the number   of people who need to have reviewed the patch, or how they provide sign off.

 

Credits

This document is strongly based on Vulnerability Management Process defined by Open Stack Community.

The whole document is licensed under Creative Commons Attribution 3.0 License.

Additionally, in an attempt to avoid re-inventing the wheel, the ONAP vulnerability management process borrows from the following procedures:

Vulnerability Management Process

The ONAP vulnerability management subcommittee (VMS) is responsible for coordinating vulnerabilities during its whole life cycle (from reporting till coordinated disclosure).

Members of the team are independent and security-minded folks who ensure that vulnerabilities are dealt with in a timely manner and that downstream stakeholders are notified in a coordinated and fair manner. Where a member of the team is employed by a downstream stakeholder, the member does not give their employer prior notice of any vulnerabilities. In order to reduce the disclosure of vulnerability in the early stages, membership of this team is intentionally limited to a small number of people.

This activity, is approved and supported by the ONAP TSC and operates under the ONAP vulnerability sub-committee. The sub-committee functions are as described below. The committee has a chair, appointed by the membership from among the membership, who is responsible for seeing that work proceeds and serving as a point of contact for the TSC and community to the vulnerability sub-committee. The chair and membership, as well as pointers to this charter and the relevant email lists are document at link-to-page.

Supported projects and versions

All ONAP projects are currently in scope for vulnerability support. The participants of the ONAP projects are expected to support the ONAP vulnerability procedures when required.

/Should be checked with tsc/

As ONAP is very young project with a lot of code coming in every release. That's why for now we support ONLY LATEST RELEASE and MASTER BRANCH (next version under development) .

Third party components

Third party components (i.e. dependencies) are only in scope for security support if they are statically compiled or otherwise bundled by an ONAP project. Dynamically linked dependencies should patch security issues independent of ONAP.

Dependencies on managed functions (eg. VNFs)

Vulnerabilities of managed functions (e.g. VNFs) are out of the scope of ONAP, however if a ONAP vulnerability has a dependence with a managed function, the managed functions vulnerability procedures will be used to coordinate the issue.

The Process

Overview

Reception

A report can be received either as a ticket in Vulnerability Reporting Jira Project /Insert link when created/, or as a private encrypted email to one of the VMS members /Insert a link to a suitable page/ .

Steps that has to be completed depend on reception method:

Reception via email

  1. Create new Jira ticket and post embargo notice and the content of original message re-encrypted with public keys of other VMS members.
  2. Assign the task to one of VMS members (capable of decrypting the bug content)
  3. Add "Uncategorised" label to the ticket
  4. Send a signed reception confirmation email (pay attention to not include the original message in plain text).

Reception via Jira Ticket

  1. Edit the ticket description by adding embargo notice in the beginning

  2. Add "Uncategorised" label to the ticket
  3. Confirm bug reception by assigning the task to one of VMS members and adding a reception confirmation comment.


VMS should do its best to provide a prompt confirmation to the reporter. Bug reception should be confirmed no later than within 3 business days.

It's worth to notice that every new bug in Vulnerability Reporting Jira Project by default is visible only to reporter and VMS members.

Triage

The bug must then be confirmed to be a security problem and assigned initial severity level. This may require the inclusion of a subject matter expert to determine if the problem needs to be treated as a security flaw. If the bug is determined not be a security issue then a statement should be added indicating why; the bug should then be opened and fixed by following the normal development process.

Steps to be completed

  1. Identify affected projects and versions
  2.  Update bug description with data mentioned above
  3. Perform initial severity assessment.
  4. Label task with a suitable severity level and add impact description
  5. Add PTL or security responsible person of affected project to the bug

Extra steps for critical vulnerabilities

  1. Extreme caution would be necessary while handling this bug.
  2. If the bug has been reported via encrypted email, no plain text communication should be used
  3. Secure communication channel with PTL or project security contact point should be established (GPG, zoom with e2e encryption enabled etc)

All Vulnerabilities

  1. PTL or project security contact point should be delivered with bug details to confirm initial severity
  2. Severity level should be fixed:
    1. If PTL or project security contact point agrees with initially assigned severity a "Severity-confirmed" label should be added to the task.
    2. If PTL or project security contact point disagrees with initially assigned a clear justification should be provided, severity level updated and "Severity-confirmed" added to the task.
  3. If a bug has been received via email the triage confirmation email should be sent to the reporter.

Hardening opportunities

  1. If received ticket is not a security bug which can be fix with a patch of reasonable size but a good hardening idea, the ticket visibility should be set to public and "Hardening" label should be added
  2. It's up to public discussion if resources should be assigned for this task.

Non-Security bugs

  1. If bug has been classified as a non-security the ticket should be made publicly visible
  2. PTL of impacted project is responsible for further handling of this bug

Patch development

PTL or project security contact point is responsible for fixing the bug or delegating the work to the matter experts. Even through patch development can be delegated by PTL or project security contact, only the VMS has a right to add new people to the ticket. That's why PTL should explicitly request access for additional developers by adding a comment with their Jira id.

A fix should be prepared against current master branch and other affected branches and attached to the ticket. Do not sent it to the public code review system (gerrit) unless the ticket is already public.

Security fixes, especially critical should be treated as highest-priority tasks. If project-side delays are encountered at this or any subsequent stage of the process, the VMS and other interested parties may escalate the issue to the TSC but without providing any details on bug itself apart from reporter, severity, impacted project and versions.

Steps to be completed

  1. Develop the fix
  2. Do not sent it to the public code review system (gerrit) unless the ticket is already public.

Patch review

Once the patch has been attached to the ticket, patch should be reviewed and pre-approved by PTL or delegated committers. Privately-developed patches need to be pre-approved so that they can be fast-tracked through public code review later at disclosure time.

For public reports, usual public code review process apply.

Steps to be completed

  1. Review the fix
  2. Get the fix pre-approved by PTL and committers

Draft Vulnerability description

In the mean time, the VMS coordinator prepares a vulnerability description that will be communicated to downstream stakeholders, and will serve as the basis for the Security Advisory that will be finally published.

The description should properly credit the reporter, specify affected versions (including unsupported ones) and accurately describe impact and mitigation mechanisms. The VMS coordinator should use the template below.

Review impact description

The description is validated by the reporter and the PTL.

Send CVE request

If reporter did not request for a CVE number on his or her own, VMS coordinator should attempt to obtain one to ensure full traceability. This is generally done as the patch gets nearer to final approval. The approved impact description is submitted through MITRE’s CVE Request form. The request type is Request a CVE ID, the e-mail address should be that of the requester, and for critical reports the coordinator’s OpenPGP key should be pasted into the field provided.

In the required section set the checkboxes indicating the product is not CNA-covered and that no prior CVE ID has been assigned, select an appropriate vulnerability type (using Other or Unknown to enter a freeform type if there is nothing relevant on the drop-down), set the vendor to ONAP, and the product and version fields to match the affected project name and version from the impact description. In the optional section set the radio button for confirmed/acknowledged to Yes, choose an appropriate attack type in the drop-down (often this is Context-dependent for our cases), check the relevant impact checkboxes, attempt to fill in the affected components and attack vector fields if possible, paste in the suggested description from the prose of the impact description (usually omitting the first sentence as it’s redundant with other fields), put the $CREDIT details in the discoverer/credits field, and the bug URL (along with Gerrit URLs for patches if already public) in the references field. If the report is still private, note that in the additional information field like This report is currently under embargo and no disclosure date has been scheduled at this time.

At the bottom of the page, fill in the security code and click the submit request button. If some fields contain invalid data they will be highlighted red; correct these, update the security code and submit request again until you get a confirmation page.

Get assigned CVE

MITRE returns the assigned CVE. It is added to the jira ticket, and the bug is retitled to “$TITLE ($CVE)”.

Embargoed disclosure

Once the patches are approved and the CVE is assigned, a signed email with the vulnerability description is sent to the downstream stakeholders. The disclosure date is set to 3-5 business days, excluding Monday/Friday and holiday periods, at 1500 UTC. No stakeholder is supposed to deploy public patches before disclosure date.

For non-embargoed, public vulnerabilities no separate downstream advance notification is sent.

Coordinated disclosure

In preparation for this, make sure you have a commiter and a PTL available to help pushing the fix at disclosure time.

On the disclosure hour, open ticket to public, push patches to Gerrit for review on master.

PTL and committers who pre-approved the patch should, as soon as possible add +2 on pushed patch and merge it.

Update the ticket title to “[OSA-$NUM] $TITLE”.

Embargo reminder can be removed at that point.

MITRE’s CVE Request form should be used again at this point, but instead select a request type of Notify CVE about a publication and fill in the coordinator’s e-mail address, provide a link to the advisory (the URL to official OSA), the CVE IDs covered, and the date published. Once more, fill in the security code at the bottom of the page and submit request.


The security team should provide a judgement call for the severity of the issue for the most common use case of the project. Suggested impact rating categories:

  • Critical: This rating is given to flaws that could be easily exploited by a remote unauthenticated attacker and lead to system compromise (arbitrary code execution) without requiring user interaction. These are the types of vulnerabilities that can be exploited by worms. Flaws that require an authenticated remote user, a local user, or an unlikely configuration are not classed as Critical impact.
  • Important: This rating is given to flaws that can easily compromise the confidentiality, integrity, or availability of resources. These are the types of vulnerabilities that allow local users to gain privileges, allow unauthenticated remote users to view resources that should otherwise be protected by authentication, allow authenticated remote users to execute arbitrary code, or allow local or remote users to cause a denial of service.
  • Moderate: This rating is given to flaws that may be more difficult to exploit but could still lead to some compromise of the confidentiality, integrity, or availability of resources, under certain circumstances. These are the types of vulnerabilities that could have had a Critical impact or Important impact but are less easily exploited based on a technical evaluation of the flaw, or affect unlikely configurations.
  • Low: This rating is given to all other issues that have a security impact. These are the types of vulnerabilities that are believed to require unlikely circumstances to be able to be exploited, or where a successful exploit would give minimal consequences.

Note: Formal methods such as CVSS may follow.


Workflow for private security issues

Triage

The bug must then be confirmed to be a security problem. This may require the inclusion of a subject matter expert to determine if the problem needs to be treated as a security flaw. If the bug is determined not be a security issue then a statement should be added indicating why; the bug should then be opened and fixed by following the normal development process.

Should all parties agree that the issue is a security flaw then all parties need to work on determining the affected code, assessing the risk to users, and proposing a fix to the flaw. All of this work must be done under embargo. Proposed fixes must not be committed to Source Code Management (SCM), and the problem should not be discussed outside of those that have been added to the bug.

Extent of disclosure:

  • Original Reporter
  • ONAP vulnerability sub-committee
  • Subject matter expert (optional)

Next Steps (status: confirmed):

  1. Post the confirmed security issue notification in the bug
  2. Determine which versions of the project are affected by the flaw
  3. Draft an impact description
  4. Confirm whether the original reporter wants to be credited for finding the flaw
  5. Propose a fix / patch for the flaw
  6. Get the patch peer reviewed

Next Steps (status: non-security):

  1. Post a statement for non-security issues in the bug
  2. Change the bugs security status from private to public
  3. Follow the normal development process to get the issue fixed if necessary

Pre-disclosure

When a patch has been developed and peer reviewed, by a subject matter expert, it is then possible to start planning on how and when to announce the issue. This involves agreeing on a disclosure date. Extent of Disclosure:

  • Original Reporter
  • ONAP vulnerability sub-committee
  • Subject Matter Expert (optional)

Next Steps:

  1. Send CVE request email to NIST/NVD  (TBD)
  2. Agree on disclosure date with original reporter. This will most likely need to fall on a Tuesday,  Wednesday, or a Thursday. Ensure a developer is available at that time to push up the fix.
  3. Re-test the patch. Ensure that it still applies to the various branches and that all unit tests pass.

Disclosure date

When the coordinated disclosure date has been reached the assigned member from the ONAP vulnerability sub-committee must perform the following tasks.

Extent of Disclosure:

  • Everybody. The issue will now be public.

Next steps:

  1. Re-test the patch and make sure all unit tests pass.
  2. Open the bug to the public
  3. Coordinate the submission of the patch. The fix should be fast tracked as it has already been peer reviewed.
  4. Create an advisory
  5. When the commit has been merged into the code an announcement must be sent individually to the following mailing lists:, ,      TBD

.

Post-disclosure

Post disclosure the standard development process applies. Some optional additional tasks that the ONAP vulnerability sub-committee could undertake, or coordinate with the projects, would be:

  • Convert the advisory publication to CVRF format and publish on a separate CVE stream
  • Calculate the CVSS2 score for the flaw
  • Determine the appropriate CVE for this flaw
  • Write an automated reproducer of the flaw and add it to the regression tests
  • Write a static analysis / lint rule to detect the pattern that lead to the flaw

Handling public security issues

What is considered public?

  • Any comment on a public forum, whether it be a mailing list, irc, twitter, or news group, that discloses the details of the flaw.
  • Any commit or review comment that indicates that the change may be security related.

Public security issue workflow

There will be occasions where the vulnerability management workflow process is either not followed, or at some stage a party leaks the details of the flaw. In these cases a different workflow is applicable, as there is no longer any need to maintain an embargo. The private security issue workflow can be followed from the "Disclosure date" step onwards.

Communication

Embargo notice

This issue is being treated as a potential security risk under embargo.
Please do not make any public mention of embargoed (private) security vulnerabilities before their coordinated publication by the ONAP Vulnerability Subcommittee in the form of an official ONAP Security Advisory.
This includes discussion of the bug or associated fixes in public forums such as mailing lists, code review systems, jira and wiki.
Please also avoid private disclosure to other individuals not already approved for access to this information, and provide this same reminder to those who are made aware of the issue prior to publication.
All discussion should remain confined to this private bug report, and any proposed fixes should be added to the bug as attachments.

Reception confirmation email

Upon reception of a security report the ONAP vulnerability sub-committee needs to clearly indicate the expectation of how the issue will be handled.

Sample letter:
Thank you for reporting a security issue to the ONAP vulnerability sub-committee. We have created a private security issue in JIRA to track this issue. 
Please provide us with your JIRA username so we can add you to the issue.
All communications and decisions about how this issue will be handled will be recorded on this issue to provide proper tracking.
  {jira_issue_url}
  Thanks
 { onap_vulnerability_ sub-committee _member}, on behalf of the ONAP vulnerability sub-committee

Confirmed private security issues

Clear instructions need to be provided to all parties involved with the fix as to how the issue needs to be fixed. When the flaw is confirmed, the following statement should be added to the bug by a member of the ONAP vulnerability sub-committee.

 #security-status: confirmed
This issue has been confirmed as a security vulnerability in { project } and is to be fixed under the ONAP embargoed security vulnerability process. 
Please do not discuss or disclose details about this flaw prior to the agreed disclosure date (TBA).
All decisions, discussions, and proposed patches and reviews are to be done via this tracking issue only.

Confirmed public security issues

When an issue is leaked

 #security-status: confirmed-leaked
This issue has been confirmed as a security vulnerability in { project }. Unfortunately the details of this flaw have been made public { reference_to_leak }. 
Therefore it cannot be fixed under the ONAP embargoed security vulnerability process.
As this issue is now public it is important that the flaw is addressed in a timely manner. The ONAP vulnerability sub-committee will ensure that a CVE is assigned for this issue.

When an issue was not reported privately

 #security-status: confirmed-public
 This issue has been confirmed as a security vulnerability in { project }. 
As this issue was originally a public report it cannot be fixed under the ONAP embargoed security vulnerability process.
As this issue is public it is important that the flaw is addressed in a timely manner. The ONAP vulnerability sub-committee will ensure that a CVE is assigned for this issue.

Risk Assessment

The ONAP vulnerability sub-committee should provide a judgment call for the severity of the issue for the most common use case of the project. Suggested impact rating categories:

  • Critical: This rating is given to flaws that could be easily exploited by a remote unauthenticated attacker and lead to system compromise (arbitrary code execution) without requiring user interaction. These are the types of vulnerabilities that can be exploited by worms. Flaws that require an authenticated remote user, a local user, or an unlikely configuration are not classed as Critical impact.
  • High: This rating is given to flaws that can easily compromise the confidentiality, integrity, or availability of resources. These are the types of vulnerabilities that allow local users to gain privileges, allow unauthenticated remote users to view resources that should otherwise be protected by authentication, allow authenticated remote users to execute arbitrary code, or allow local or remote users to cause a denial of service.
  • Moderate: This rating is given to flaws that may be more difficult to exploit but could still lead to some compromise of the confidentiality, integrity, or availability of resources, under certain circumstances. These are the types of vulnerabilities that could have had a Critical impact or high impact but are less easily exploited based on a technical evaluation of the flaw, or affect unlikely configurations.
  • Low: This rating is given      to all other issues that have a security impact. These are the types of      vulnerabilities that are believed to require unlikely circumstances to be      able to be exploited, or where a successful exploit would give minimal      consequences.

Note: Formal methods such as CVSS may follow.

Description: The description must endeavor to accurately depict the nature of the flaw. Information that should be included must indicate the attack vector that is exposed by the flaw and the initial access level required by the attacker. Where applicable advice on how an operator may audit for abuse of the flaw within their environment.

CVE Request

To ensure proper traceability a CVE identifier needs to be requested from a CNA. An email requesting a CVE should be sent to either cve-assign@mitre.org or secalert@redhat.com.

A vulnerability was discovered in { project }, part of the ONAP project (see below). In order to ensure full traceability, we need a CVE number assigned that we can attach to private and public notifications. Please treat the following information as confidential until further public disclosure.
 { impact_description }
 Thanks
 {onap_vulnerability_sub-commitee_member}, on half of the ONAP vulnerability sub-committee

Roadmap

Action Items

Topic

Assignee

Description

Status

organizational

Stephen

Send out a call for participation and form the ONAP vulnerability   sub-committee


infrastructure

Phil

Create a private mailing list for vulnerability management sub-committee


organizational

Vulnerability committee

Elect a chair


infrastructure

Phil

Enable private security issues in JIRA


infrastructure

security sub-committee

Create a public page indicating contact information for the ONAP   vulnerability sub-committee.


documentation

Stephen

Create a public page detailing the vulnerability management process and   how to report security problems to ONAP


documentation

security sub-committee

Create a single page listing the security issues fixed in ONAP projects   (advisories)


communication

security sub-committee

Ensure the new security process is announced on all major mailing lists.


References

  1. Common Vulnerabilities and Exposure (https://cve.mitre.org/about/faqs.html )
  2. CVE  numbering authorities (https://cve.mitre.org/cve/cna.html)
  3. CVE FAQ (https://cve.mitre.org/about/faqs.html#what_is_cve_identifier )

 Securi


  • No labels