Remediation Best Practices

Remediation Best Practices

Introduction

The following best practices are guidelines to consider when starting your remediation efforts.
Empower your developers with these principles to improve outcomes:

  1. Prioritize remediation of the least effort violations
  2. Provide documented instructions/workflows for common scenarios
  3. Avoid creating noisy violations which will be deprioritized and ignored
  4. Give teams time to fix issues with reasonable expectations
  5. Invest in the open-source projects you depend on
  6. Instill good component hygiene practices

Baselining

Before breaking builds and sending out a wall of notifications, baseline your applications by getting an initial scan of applications in your SDLC. This can be done using the SCM onboarding tool or working through the CI scanners. Writing a shared library of scanning tools for your CI builds will allow you to make changes as your efforts mature.

Start with a pilot team

Check your scanner configuration

Review your policies and application categories

Group your applications by those in active development versus legacy development

Make sure your application scans are actionable and targeted to the risk developers can manage

Prioritization

When prioritizing violations, it is useful to follow the 80/20 rule. 80% of the violations take 20% of the time with the last 20% taking 80% of the time.

Use Recommended Remediation from the Component Details Page

Use the Dashboard to target problem applications or violations with the widest impact

Avoid sending notifications for non-critical issues

Schedule time during the quarter to review and remediate OSS violations

Waive violations that will not be addressed in the near term

Remediation

Prioritize upgrading direct dependencies to non-vulnerable versions

For transitive violations, update their direct dependency

Consider temporarily patching components where upgrading is not immediately available

Look for similar open-source components that do not have violations

Mitigation

Remove any open-source dependencies that are not used

Avoid including development dependencies with product applications

Restrict OSS risk by restricting their exposure in your code

Consider using internal code instead of open-source dependencies

Contribute to open-source projects you depend on

Use temporary waivers for violations that will not be prioritized

Reviewing Risk

Waivers help your development teams manage risk by prioritizing what is important and deferring the issues that may be addressed later.

Using vulnerable components will continue to present risk even when your risk exposure is very narrow

Always use time-based waivers

Empower your developers to own their open-source risk

Document a common format for waivers so they are understood and accountable