opa icon indicating copy to clipboard operation
opa copied to clipboard

Improvement of OpenSSF Scorecard Score

Open harshitasao opened this issue 1 year ago • 3 comments

What is the underlying problem you're trying to solve?

Hi, I'm Harshita. I’m working with CNCF and the Google Open Source Security Team for the GSoC 2024 term. We are collaborating to enhance security practices across various CNCF projects. The goal is to improve security for all CNCF projects by both using OpenSSF Scorecards and implementing its security improvements.

Describe the ideal solution

As this project already has scorecard action, I'm here to increase the final score by going over each check. I've listed all of the checks where work needs to be done, in order of its criticality. I plan to submit each PR for each fix. Please let me know what you think and for which ones a PR is welcome that I will submit it ASAP.

Current Score: 6.9

Scorecard report: https://scorecard.dev/viewer/?uri=github.com/open-policy-agent/opa

Here's a few checks we can work on to improve the project's security posture:

  • [ ] Signed-Releases: Score = 0

    • The releases need to be signed; we can use cosign using github actions for that, and it will increase the score to 8. Additionally, SLSA provenance also needs to be added, which can be done using this, increasing the overall score to 10.
  • [X] Token-Permissions: Score = 0

    • The issue here is that some workflows doesn’t have a top-level read-only permissions block like present in the other workflows.Scorecard is quite severe in this check: a single workflow without top-level permissions gets a 0/10 for the check.
    • PR: https://github.com/open-policy-agent/opa/pull/6941
  • [ ] Binary-Artifacts: Score = 4

  • [ ] Vulnerabilities: Score = 5

    • After running the osv scanner locally, a significant amount of vulnerabilities in Go dependencies were found that need to be fixed.
    • May need to add an osv-scanner.toml to mark some of these as not impacting/ignored.
    • Open vulnerabilities are easily exploited by attackers and should be fixed as soon as possible.
  • [ ] Pinned-Dependencies: Score = 8

    • Container images in dockerfile and go commands are not pinned by hash, which is resulting in a low score. But pinning these would introduce the risk of running outdated versions/images.
    • Pinning dependencies to a specific hash rather than allowing mutable versions or ranges of versions improves supply chain security.

/cc @joycebrum @diogoteles08 @pnacht @nate-double-u

harshitasao avatar Aug 16 '24 17:08 harshitasao

Hi @harshitasao 👋 and welcome back :) I'd say these would be welcome PR's right away:

  • Vulnerabilities
  • Pinned-Dependencies

The rest would likely need to be done in collaboration with @johanfylling , @ashutosh-narkar , and others, as there might be things to consider before making those changes.

anderseknert avatar Aug 16 '24 17:08 anderseknert

Token-Permissions seems ok as well. This probably involves adding 👇 on the workflows unless I'm missing something here.

permissions:
  contents: read

ashutosh-narkar avatar Aug 16 '24 19:08 ashutosh-narkar

This issue has been automatically marked as inactive because it has not had any activity in the last 30 days. Although currently inactive, the issue could still be considered and actively worked on in the future. More details about the use-case this issue attempts to address, the value provided by completing it or possible solutions to resolve it would help to prioritize the issue.

stale[bot] avatar Sep 29 '24 23:09 stale[bot]