theupdateframework / python-tuf

Python reference implementation of The Update Framework (TUF)
https://theupdateframework.com/
Apache License 2.0
1.62k stars 269 forks source link

Improvement of OpenSSF Scorecard Score #2688

Open harshitasao opened 1 month ago

harshitasao commented 1 month ago

Description of issue or feature request: 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.

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: 7.9

Scorecard report: https://scorecard.dev/viewer/?uri=github.com/theupdateframework/python-tuf

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

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

jku commented 1 month ago

pip command and many github actions are not pinned by hash

python pinning

I believe no python installs are unpinned, I'd be happy to get an issue/PR for anything that is unpinned.

github-actions pinning

Everything security relevant is pinned to hash. Non-critical actions are not pinned in order to lower the maintenance burden (as an example actions/dependency-review-action is not pinned since it is used in a workflow where it can do no harm): if you find anything that seems like a potential security issue, please file a bug.

Fuzzing

If you have good ideas how to effectively fuzz python code we will definitely take them.

Signing release

Considering the subject matter of this project we'd be really interested in signing and provenance -- but since python is predominantly distributed through pypi it is hard to argue that signing and provenance for only some other distribution methods (that almost no-one uses) is worth it... This is something we might be willing to discuss (there is already a related and ancient #2000 about it)

token permissions

setting a default token permission seems like a decent idea (even if it doesn't really change the default). I closed the PR since it contained the unwanted pinning in it: feel free to open a new one for just the token change

jku commented 2 weeks ago

Hey @harshitasao, this is only slightly related ... but can you explain why we would get zero points for Code-Review: We do require review for every single PR.

EDIT: oh it's not a zero, it's a "?" probably because a lot of dependabot commits

jku commented 2 weeks ago

setting a default token permission seems like a decent idea (even if it doesn't really change the default).

This is in #2684 now.