-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
I'm reaching out because I am very grateful for your work in qiankun. As open-source security is a growing concern, I'd like to suggest some improvements based on the OpenSSF Scorecard best practices:
Current Score: 2.8
Repository Link: github.com/umijs/qiankun
Latest Commit: eeebd3f76aa3a9d026b4f3a4e86682088e6295c1
Scorecard Report Generation Time: 2025-03-31
Scorecard Version: v5.1.1-30-g29760499
OpenSSF Scorecard Report: View Report
📝 Current Scorecard Overview
The current OpenSSF Scorecard for umijs/qiankun shows multiple critical areas that need immediate improvement to enhance the project's security and maintainability.
| Check Item | Score | Risk Level | Reason |
|---|---|---|---|
| Dangerous-Workflow | 0 | Critical | Detected a dangerous workflow pattern in .github/workflows/issue-checker.yml. |
| Maintained | 0 | High | No commits and issue activities were found in the last 90 days. |
| Token-Permissions | 0 | High | Token permissions are too high in GitHub workflows. |
| Binary-Artifacts | 0 | High | No binary files were found in the repository. |
| Code-Review | 0 | High | 0/30 changes were reviewed. |
| Vulnerabilities | 0 | High | Detected unfixed known vulnerabilities. |
| SAST | 4 | Medium | Static application security testing is partially integrated. |
| Security-Policy | 0 | Medium | No security policy file was detected. |
| Signed-Releases | 0 | High | Released artifacts are not encrypted and signed. |
| Packaging | 0 | Medium | The project is not published on any package manager. |
| Pinned-Dependencies | 0 | Medium | Dependencies are not pinned by hash, increasing the risk of supply chain attacks. |
🚩 Areas for Improvement
-
Ensure workflow configuration security
- Dangerous-Workflow: Clear all insecure patterns from workflow files.
- Token-Permissions: Restrict GitHub token permissions to the minimum required for workflows.
-
Enhance project maintenance
- Maintained: Increase commit frequency and issue resolution activities to show the project's active status.
-
Manage binary artifacts
- Binary-Artifacts: Remove unnecessary binary files from the repository or ensure they are securely managed and documented.
-
Strengthen code review process
- Code-Review: Implement a stricter code review protocol to achieve a higher review pass rate.
-
Handle vulnerabilities
- Vulnerabilities: Implement a vulnerability management process to identify and fix security issues in a timely manner.
-
Integrate SAST tools
- SAST: Fully integrate static application security testing tools (such as CodeQL, SonarQube) into the CI/CD pipeline for automated security checks.
-
Develop and publish a security policy
- Security-Policy: Create and publish a
SECURITY.mdfile detailing how to report vulnerabilities and the project's security practices.
- Security-Policy: Create and publish a
-
Implement signed releases
- Signed-Releases: Enable encrypted signing of all released artifacts to verify their integrity and authenticity.
-
Publish to package managers
- Packaging: Configure the project to be published on relevant package managers (such as npm) to improve distribution and dependency management efficiency.
-
Pin dependencies by hash
- Pinned-Dependencies: Use tools like Dependabot to pin dependencies by hash, reducing supply chain risk.
🛠️ Recommended Actions
-
Review and revise workflow files
- Review all
.github/workflows/*.ymlfiles following security best practices. - Remove any steps or actions that introduce security vulnerabilities.
- Restrict token permissions to the minimum required for workflows.
- Review all
-
Increase contribution activity
- Encourage more commits and issue resolutions to demonstrate the project's maintenance activity.
- Assign maintainers to oversee project health and community engagement.
-
Integrate and configure SAST tools
- Choose suitable SAST tools and integrate them into the CI pipeline.
- Regularly review and address issues found in SAST reports.
-
Develop and publish a security policy
- Draft a comprehensive
SECURITY.mdfile explaining the vulnerability reporting process and security practices. - Ensure the policy file is easily accessible in the repository.
- Draft a comprehensive
-
Enable release signing
- Set up GPG keys and automate signing of release artifacts.
- Document the signing process for contributors.
-
Publish to package managers
- Configure the project to be published on npm or other relevant package managers.
- Maintain version control and documentation for published packages.
-
Securely pin dependencies
- Implement Dependabot or similar tools to automatically update and pin dependencies by hash.
- Regularly audit dependencies for known vulnerabilities.
-
Properly manage binary artifacts
- Remove unnecessary binary files from the repository.
- If binary files are necessary, document their source and ensure secure storage.
-
Enhance code review practices
- Establish code review guidelines to ensure thorough review of contributions.
- Set and monitor targets for review pass rates.
-
Vulnerability management
- Create a process for identifying, reporting, and fixing vulnerabilities.
- Use automated tools to regularly scan for vulnerabilities.
📈 Expected Outcomes
- Improved security posture: Enhanced security measures will protect the project from potential threats and vulnerabilities.
- Active maintenance: Increased activity will demonstrate the project's vitality, attracting more contributors and users.
- Trust and reliability: Signed releases and pinned dependencies will establish community trust in the project's integrity.
- Better dependency management: Publishing packages and securely managing dependencies will simplify distribution and maintenance.