-
Notifications
You must be signed in to change notification settings - Fork 2
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
Work item: come up with a set of security criteria for packages #1
Comments
Some suggested text: When evaluating software packages for web development projects, OpenSSF Scorecard can provide a useful framework to evaluate the security health of the open source project behind the package. There are also additional factors not covered by Scorecard that should be taken into consideration. The following elements of the OpenSSF Scorecard are particularly important for web developers to focus on when evaluating software packages: 1. MaintainedThis score indicates whether the project is actively maintained. The theory is that an actively maintained project is more likely to address security vulnerabilities in a timely manner. Web developers should prefer packages with high maintenance scores to ensure prompt responses to security patches, bug fixes, and other updates.
2. Dependency ManagementThis measures how well the project manages its dependencies. Vulnerabilities in dependencies are a common attack vector, and good dependency management practices can reduce risk. Web developers should prefer packages that regularly update their own dependencies and avoid outdated or insecure libraries.
3. Security PolicyA clear and published security policy provides guidelines for how security vulnerabilities are handled. Projects with a defined security policy demonstrate a commitment to addressing security concerns and have clear processes for reporting and mitigating issues.
4. Vulnerability DisclosureThis assesses whether there is a documented process for reporting vulnerabilities. It indicates the package’s transparency and ability to address security issues responsibly.
5. Branch ProtectionBranch protection rules help prevent malicious code from being merged into critical branches (such as
6. Signed ReleasesThis indicates whether the package maintains cryptographic signatures for releases. Signed releases ensure that the package hasn’t been tampered with during distribution and can be trusted as authentic.
Additional Security Criteria to Consider When Selecting Packages:Beyond the elements provided by OpenSSF Scorecard, there are additional security criteria web developers should pay attention to: 1. Package Popularity and Community Support
2. Open Issues and Security Advisories
3. Minimal Package Footprint
4. License Compatibility
5. Usage of Security Best Practices (e.g., Avoiding
|
For point 4. this can also be to "document it", e.g., in SECURITY.md file |
some remarks and thoughts on #1 (comment)
I disagree. see the following use case. As an author of a widely used library, I aim for compatibility and low friction, meaning i might support very old/deprecated versions of direct dependencies, like Also consider: new does not mean more secure.
Disagree. real world example: i remember bootstrap v4 or v3 being "deprecated" for some time, but then they removed the deprecation-flag after a year or so ...
what about github repo's security policy? like this one: https://github.com/CycloneDX/cyclonedx-javascript-library/security/policy
usually, such rules are not publicly disclosed, or are they?
such artifacts and signatures are not immutable, or are they?
A high number of issues might mean that this is a popular package, or that the project team behind the thing has a clear vision and is planning ahead, or many other things.
Mostly, transitive packages are under the control of the directly depended packages, not under control of the package itself.
Only relevant for software that is distributed in a bundled/packaged/assembled manner.
FYI:
|
As discussed on today's call - what are some key measurable security indicators we would like developers to see when they are selecting packages (e.g. NPM packages) to possibly bring into their web applications...
The text was updated successfully, but these errors were encountered: