Skip to content

Add release instructions for static analysis and 3rd party deps (CXX-3009, CXX-3023) #1143

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

Merged
merged 14 commits into from
Jun 13, 2024

Conversation

eramongodb
Copy link
Contributor

@eramongodb eramongodb commented Jun 3, 2024

Resolves CXX-3009 and CXX-3023.

This PR satisfies the "Static Analysis Report" and "3rd Party Dependency Vulnerabilities" report requirements for SSDLC.

3rd Party Dependencies (3PDs) are documented by etc/purls.txt and the corresponding etc/cyclonedx.sbom.json document, including their version and license. Any vulnerabilities which affect the "standard release product" for the MongoDB C++ Driver are reported in etc/third_party_vulnerabilities.md, which will be bundled with the signed release tarball alongside the final SSDLC Compliance Report per release. See etc/third_party_vulnerabilities.md for the definition of the "standard release product".

Static analysis issues are tracked and documented by a Google Spreadsheet which will be cloned and linked-to in the final SSDLC Compliance Report per release. This is expected to be a temporary solution until better automation, tooling, and integrations are implemented. Details to follow in the subsequent PR which will introduce etc/ssdlc_compliance_report.md.

To better track the status of 3PD vulnerabilities (currently, none), a new Evergreen task tests for significant changes to the augmented SBOM document. The etc/cyclonedx.sbom.json document serves as both the "SBOM Lite" and "augmented SBOM" document, as no observable difference between the two types of files could be found thus far. Should there be significant differences, an etc/augmented.sbom.json file is expected to be committed alongside etc/cyclonedx.sbom.json in the future. (Update: confirmed, the Augmented SBOM should not be used as the SBOM Lite.)

@eramongodb eramongodb self-assigned this Jun 3, 2024
Copy link
Collaborator

@kevinAlbs kevinAlbs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with minor comments addressed.

I liked the proposed silk-check-augmented-sbom and committing the Augmented SBOM. I expect the task will give advanced notice to address a 3PD vulnerability before a release. I had incorrectly assumed the Augmented SBOM was not intended to be committed.

@eramongodb
Copy link
Contributor Author

Re-requesting reviews due to some notable changes. Latest changes verified by this patch.

  • etc/augmented.json.sbom committed into repository as the Augmented SBOM.
  • Better care is taken to distinguish the SBOM Lite document from the Augmented SBOM document, as they are not equivalent: the latter contains up-to-date vulnerabilities, the former does not; including them in the former will make the vulnerabilities "sticky" when generating the Augmented SBOM).
  • Added commands to ensure a latest version of SilkBomb is used in update/download commands.
  • Improved the Augmented SBOM diff to utilize SilkBomb flags, omitting need to filter .metadata.

@eramongodb eramongodb requested a review from kevinAlbs June 6, 2024 18:38
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get confirmation that this file should be committed rather than generated on-the-fly for releases? The augmented SBOM in Silk will be updated asynchronously and automatically as vulns are discovered by scanning tools, so a committed version would easily become out-of-date repeatedly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It only needs to be available as an artifact for a given release, and it doesn't need to be regularly committed either. Therefore, the proposed release instructions state that this file only needs to be updated if there are significant changes in the latest Augmented SBOM relative to what is currently committed (as will be tracked by the EVG task). In effect, its presence in the repo isn't just for reporting purposes, but also to enable the tracking of updates to the Augmented SBOM via the EVG task.

@eramongodb eramongodb requested a review from vector-of-bool June 7, 2024 16:08
Copy link
Contributor

@vector-of-bool vector-of-bool left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@eramongodb eramongodb merged commit 6119157 into mongodb:master Jun 13, 2024
67 of 78 checks passed
@eramongodb eramongodb deleted the cxx-ssdlc branch June 13, 2024 14:14
eramongodb added a commit that referenced this pull request Jun 24, 2024
…3009, CXX-3023) (#1143)

* Add EVG task to check augmented SBOM for updates

* Split Artifactory and Garasign credential files

* CXX-3023 Add instructions to update and report Silk vulnerabilities

* CXX-3009 Add instructions to update SSDLC Report sheet with Coverity issues

* CXX-3023 Add etc/third_party_vulnerabilities.md

* Restrict third party dependencies to bundled sources only

* Properly distinguish between SBOM Lite and Augmented SBOM documents

* Always print contents of Augmented SBOM in diff

* Update Augmented SBOM and include instructions for manual download
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants