Introduction
Problem Statement
The Oracle Cloud Native Core software currently provides six planned releases per year (program increments), and each release will contain a mix of features and fixes. In each release we typically move 3rd party software to the latest release in order to stay abreast of the latest security patches for our embedded 3rd party software. This can lead to an two to three month lag for the release of critical security vulnerabilities, which isn't acceptable for critical fixes. And as we typically only address vulnerabilities on the tip of the release under-development, a customer who has not yet moved to the latest release would need to upgrade to pick up a critical security fix.
Currently we only scan products that are under development; once released (posted to OSDC or MOS) we do not go back and rescan. Because 3rd party vulnerabilities may be found after we have released our software, a customer might be the first to discover that the Oracle provided software has a known vulnerability.
Finally, some customers are requiring that we agree to contract terms with very aggressive security patch turn-around times.
In response, the CGBU has developed guidelines for all cloud native/on-prem products and in recent contract we have started to commit to providing patches with these very short turn around times.
Overview
This document describes the new vulnerability handling guidelines, the new process changes being introduced to support faster turn-around times, and discusses the new SW owner responsibilities. In summary, this document discussed these process changes:
- We will introduce new tooling and processes to allow us to track and continuously scan all released products for new vulnerabilities
- The new tooling with come with improved knowledge bases which should help reduce vulnerability analysis costs
- Each NF must support a SW patch process allowing for the urgent release of critical security fixes on the latest published release
Vulnerability Handling Guidelines
Summary
This section summarizes the Oracle Communications Security Maintenance Obligations.
Process Assessment
What this means to us:
- We must introduce continuous scanning of released products (to ensure that we identify triggering events in a timely fashion)
- We must be efficient in our vulnerability assessment (as we are going to do them more often)
- We must be ready to patch (a vulnerability in release 1.X will be fixed on the tip of 1.X - not on the release under development)
Release Cadence
With this new cadence, we will:
- Report the last 3 releases in any given CPU notice
- For example: the Jul CPU will include notification of security vulnerabilities fixed in PI-B, urPI-B, and PI-C
- Have at most 1 patch release for any given release
- For example: the PI-C release will only be patched in the urPI-C release
- Any critical security bugs identified within 30 days of a planned PI release should be included in that PI release
- If no critical vulnerabilities need fixing, there will be no patch release
Vulnerability Handling Process Flows
The following diagram shows the process flow for vulnerability handling in Oracle Native Code. This shows a periodic scan, but the flow is similar for an on-demand scan driven from the CI/CD pipeline. Flows for non-containerized software (e.g., linux RPMs) are similar although different scanning tools might be employed.
Threat Detection
The first step of threat detection is to perform a structured design analysis in the form of an Architectural Risk Assessment. The ARA will identify the threat landscape and highlight the interfaces than might need special scanning. We typically try to detect potential threats in our native code through the use of static scanning (fortify) and dynamic scanning (fuzzers, port scanners). We also scan to ensure that the 3rd party packages used in our solution are vulnerability free. We check for 3rd party vulnerabilities both at build-time and at deployment time using a OWASP, OpenSCAP, and Anchore-Engine scanners.
At the end of all of this, we end up with a list of possible vulnerabilities (some identifies by ARA and some identified via scanners).
Vulnerability Analysis
Once we have a list of possible vulnerabilities, we score the vulnerability using the CVSS 3.1 scoring system. This gives the threat a numerical score. Sometimes our vulnerabilities are pre-scored (3rd party vulnerabilities). For these we look at the threat in the system context and we might adjust the CVSS scoring higher or lower. For example, if a vulnerability is only exploitable in the windows environment and we only deploy on Linux, we would rescore this to zero. Similarly if the vulnerability is on exploitable at a certain kernel revision level, and we know the software is running on a patched kernel, we would rescore to zero. Alternately, if a minor vulnerability can have an overly large system impact, we would adjust the score higher. Regardless of the resulting score we will track the vulnerability and await a fix.
Vulnerability Tracking
For any vulnerability that has been re-scored to a zero, we would open simple bug story to track that we are waiting on a third party update to resolve the vulnerability. If the vulnerability was identifies in fortify scanning, we would adjust the fortify analysis to report "not and issue". For any non-zero vulnerability we will open a BUGDB bug (regardless of severity). The BUGDB bug should have the vulnerability flag set.
Software Patch Release
For serious vulnerabilities (CVSS score > 6.9) a patch release must be created for all release streams affected by the bug. For example, if the 3rd party package Kubernetes is found to have a serious 7.5 CVSS vulnerability, we would need to patch OC-CNE to pick up the latest Kubernetes on the supported release stream.
3rd Party Out of Support Window
If there is no 3rd party release available on the older release stream that will address a known vulnerability (and you believe the vulnerability is present) contact your Security Spoc or Security Lead for guidance. We might need to move existing customer to newer releases (via upgrade) where the fix appears, or move to newer 3rd party release streams in the released product (risky).
Oracle Critical Patch Update (CPU) Process
The CGBU security processing is for the most part more aggressive than the Oracle CPU requirements; we should be able to fully comply with the Oracle CPU guidelines. The one area where we might have a gap is in the handling of 4th (5th, etc) party vulnerabilities. The CGBU process focuses on providing fixes to 3rd party SW in a timely fashion. If a vulnerability is found in 4th party software used by our up to date 3rd party software, we are under no time commitment to fix this independently of the 3rd party SW provided. This could lead to a bit of friction if the 3rd party provider is slow to pick up fixes to their dependent software packages, and could lead us to become non-compliant to the Oracle CPU guidelines. This doesn't happen very often, and we will accept this risk (and will work with 3rd party provider and with OSSA to resolve).
Comments
Post a Comment