Back to Frameworks

OpenSSF Best Practices Badge Criteria

International (open source ecosystem)
vCriteria as published at bestpractices.dev, repository commit 880f1cb (25 June 2026), fetched 2026-09-30
17 domains
145 controls

The OpenSSF Best Practices Badge criteria for open source projects at passing, silver and gold: 145 criteria, each MUST, SHOULD or SUGGESTED, covering project basics, change control, reporting, quality, security and analysis. Self-attested at bestpractices.dev; criterion text quoted from the official criteria.

Verified

OpenSSF Best Practices Badge Criteria is a compliance framework from International (open source ecosystem) with 17 domains and 145 controls that map to 1 other frameworks. The largest domains are Silver level: Quality – OpenSSF Best Practices Badge Criteria (19 controls), Silver level: Basics – OpenSSF Best Practices Badge Criteria (17 controls), Passing level: Security – OpenSSF Best Practices Badge Criteria (16 controls). Every control below carries what it requires and what an assessor expects to see.

Maintained by Gerard Blokdyk

Framework summaries on this platform are AI-assisted interpretations for educational and compliance planning purposes. They do not reproduce or replace the official standards. Refer to the authoritative source for the definitive text. Framework names and trademarks belong to their respective organisations.

Framework Domains (17)

Gold level: Analysis – OpenSSF Best Practices Badge Criteria

2 controls
Controls in the Gold level: Analysis – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 2 controls
CodeTitle
openssf-best-practices-badge-criteria::gold.dynamic_analysisdynamic_analysis (Gold, MUST)
openssf-best-practices-badge-criteria::gold.dynamic_analysis_enable_assertionsdynamic_analysis_enable_assertions (Gold, SHOULD)

Gold level: Basics – OpenSSF Best Practices Badge Criteria

5 controls
Controls in the Gold level: Basics – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 5 controls
CodeTitle
openssf-best-practices-badge-criteria::gold.achieve_silverachieve_silver (Gold, MUST)
openssf-best-practices-badge-criteria::gold.bus_factorbus_factor (Gold, MUST)
openssf-best-practices-badge-criteria::gold.contributors_unassociatedcontributors_unassociated (Gold, MUST)
openssf-best-practices-badge-criteria::gold.copyright_per_filecopyright_per_file (Gold, MUST)
openssf-best-practices-badge-criteria::gold.license_per_filelicense_per_file (Gold, MUST)

Gold level: Change Control – OpenSSF Best Practices Badge Criteria

4 controls
Controls in the Gold level: Change Control – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 4 controls
CodeTitle
openssf-best-practices-badge-criteria::gold.repo_distributedrepo_distributed (Gold, MUST)
openssf-best-practices-badge-criteria::gold.require_2FArequire_2FA (Gold, MUST)
openssf-best-practices-badge-criteria::gold.secure_2FAsecure_2FA (Gold, SHOULD)
openssf-best-practices-badge-criteria::gold.small_taskssmall_tasks (Gold, MUST)

Gold level: Quality – OpenSSF Best Practices Badge Criteria

7 controls
Controls in the Gold level: Quality – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 7 controls
CodeTitle
openssf-best-practices-badge-criteria::gold.build_reproduciblebuild_reproducible (Gold, MUST)
openssf-best-practices-badge-criteria::gold.code_review_standardscode_review_standards (Gold, MUST)
openssf-best-practices-badge-criteria::gold.test_branch_coverage80test_branch_coverage80 (Gold, MUST)
openssf-best-practices-badge-criteria::gold.test_continuous_integrationtest_continuous_integration (Gold, MUST)
openssf-best-practices-badge-criteria::gold.test_invocationtest_invocation (Gold, MUST)
openssf-best-practices-badge-criteria::gold.test_statement_coverage90test_statement_coverage90 (Gold, MUST)
openssf-best-practices-badge-criteria::gold.two_person_reviewtwo_person_review (Gold, MUST)

Gold level: Security – OpenSSF Best Practices Badge Criteria

5 controls
Controls in the Gold level: Security – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 5 controls
CodeTitle
openssf-best-practices-badge-criteria::gold.crypto_tls12crypto_tls12 (Gold, MUST)
openssf-best-practices-badge-criteria::gold.crypto_used_networkcrypto_used_network (Gold, MUST)
openssf-best-practices-badge-criteria::gold.hardened_sitehardened_site (Gold, MUST)
openssf-best-practices-badge-criteria::gold.hardeninghardening (Gold, MUST)
openssf-best-practices-badge-criteria::gold.security_reviewsecurity_review (Gold, MUST)

Passing level: Analysis – OpenSSF Best Practices Badge Criteria

8 controls
Controls in the Passing level: Analysis – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 8 controls
CodeTitle
openssf-best-practices-badge-criteria::passing.dynamic_analysisdynamic_analysis (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.dynamic_analysis_enable_assertionsdynamic_analysis_enable_assertions (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.dynamic_analysis_fixeddynamic_analysis_fixed (Passing, MUST)
openssf-best-practices-badge-criteria::passing.dynamic_analysis_unsafedynamic_analysis_unsafe (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.static_analysisstatic_analysis (Passing, MUST)
openssf-best-practices-badge-criteria::passing.static_analysis_common_vulnerabilitiesstatic_analysis_common_vulnerabilities (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.static_analysis_fixedstatic_analysis_fixed (Passing, MUST)
openssf-best-practices-badge-criteria::passing.static_analysis_oftenstatic_analysis_often (Passing, SUGGESTED)

Passing level: Basics – OpenSSF Best Practices Badge Criteria

13 controls
Controls in the Passing level: Basics – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 13 controls
CodeTitle
openssf-best-practices-badge-criteria::passing.contributioncontribution (Passing, MUST)
openssf-best-practices-badge-criteria::passing.contribution_requirementscontribution_requirements (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.description_gooddescription_good (Passing, MUST)
openssf-best-practices-badge-criteria::passing.discussiondiscussion (Passing, MUST)
openssf-best-practices-badge-criteria::passing.documentation_basicsdocumentation_basics (Passing, MUST)
openssf-best-practices-badge-criteria::passing.documentation_interfacedocumentation_interface (Passing, MUST)
openssf-best-practices-badge-criteria::passing.englishenglish (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.floss_licensefloss_license (Passing, MUST)
openssf-best-practices-badge-criteria::passing.floss_license_osifloss_license_osi (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.interactinteract (Passing, MUST)
openssf-best-practices-badge-criteria::passing.license_locationlicense_location (Passing, MUST)
openssf-best-practices-badge-criteria::passing.maintainedmaintained (Passing, MUST)
openssf-best-practices-badge-criteria::passing.sites_httpssites_https (Passing, MUST)

Passing level: Change Control – OpenSSF Best Practices Badge Criteria

9 controls
Controls in the Passing level: Change Control – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 9 controls
CodeTitle
openssf-best-practices-badge-criteria::passing.release_notesrelease_notes (Passing, MUST)
openssf-best-practices-badge-criteria::passing.release_notes_vulnsrelease_notes_vulns (Passing, MUST)
openssf-best-practices-badge-criteria::passing.repo_distributedrepo_distributed (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.repo_interimrepo_interim (Passing, MUST)
openssf-best-practices-badge-criteria::passing.repo_publicrepo_public (Passing, MUST)
openssf-best-practices-badge-criteria::passing.repo_trackrepo_track (Passing, MUST)
openssf-best-practices-badge-criteria::passing.version_semverversion_semver (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.version_tagsversion_tags (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.version_uniqueversion_unique (Passing, MUST)

Passing level: Quality – OpenSSF Best Practices Badge Criteria

13 controls
Controls in the Passing level: Quality – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 13 controls
CodeTitle
openssf-best-practices-badge-criteria::passing.buildbuild (Passing, MUST)
openssf-best-practices-badge-criteria::passing.build_common_toolsbuild_common_tools (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.build_floss_toolsbuild_floss_tools (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.testtest (Passing, MUST)
openssf-best-practices-badge-criteria::passing.test_continuous_integrationtest_continuous_integration (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.test_invocationtest_invocation (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.test_mosttest_most (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.test_policytest_policy (Passing, MUST)
openssf-best-practices-badge-criteria::passing.tests_are_addedtests_are_added (Passing, MUST)
openssf-best-practices-badge-criteria::passing.tests_documented_addedtests_documented_added (Passing, SUGGESTED)
openssf-best-practices-badge-criteria::passing.warningswarnings (Passing, MUST)
openssf-best-practices-badge-criteria::passing.warnings_fixedwarnings_fixed (Passing, MUST)
openssf-best-practices-badge-criteria::passing.warnings_strictwarnings_strict (Passing, SUGGESTED)

Passing level: Reporting – OpenSSF Best Practices Badge Criteria

8 controls
Controls in the Passing level: Reporting – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 8 controls
CodeTitle
openssf-best-practices-badge-criteria::passing.enhancement_responsesenhancement_responses (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.report_archivereport_archive (Passing, MUST)
openssf-best-practices-badge-criteria::passing.report_processreport_process (Passing, MUST)
openssf-best-practices-badge-criteria::passing.report_responsesreport_responses (Passing, MUST)
openssf-best-practices-badge-criteria::passing.report_trackerreport_tracker (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.vulnerability_report_privatevulnerability_report_private (Passing, MUST)
openssf-best-practices-badge-criteria::passing.vulnerability_report_processvulnerability_report_process (Passing, MUST)
openssf-best-practices-badge-criteria::passing.vulnerability_report_responsevulnerability_report_response (Passing, MUST)

Passing level: Security – OpenSSF Best Practices Badge Criteria

16 controls
Controls in the Passing level: Security – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 16 controls
CodeTitle
openssf-best-practices-badge-criteria::passing.crypto_callcrypto_call (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.crypto_flosscrypto_floss (Passing, MUST)
openssf-best-practices-badge-criteria::passing.crypto_keylengthcrypto_keylength (Passing, MUST)
openssf-best-practices-badge-criteria::passing.crypto_password_storagecrypto_password_storage (Passing, MUST)
openssf-best-practices-badge-criteria::passing.crypto_pfscrypto_pfs (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.crypto_publishedcrypto_published (Passing, MUST)
openssf-best-practices-badge-criteria::passing.crypto_randomcrypto_random (Passing, MUST)
openssf-best-practices-badge-criteria::passing.crypto_weaknessescrypto_weaknesses (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.crypto_workingcrypto_working (Passing, MUST)
openssf-best-practices-badge-criteria::passing.delivery_mitmdelivery_mitm (Passing, MUST)
openssf-best-practices-badge-criteria::passing.delivery_unsigneddelivery_unsigned (Passing, MUST)
openssf-best-practices-badge-criteria::passing.know_common_errorsknow_common_errors (Passing, MUST)
openssf-best-practices-badge-criteria::passing.know_secure_designknow_secure_design (Passing, MUST)
openssf-best-practices-badge-criteria::passing.no_leaked_credentialsno_leaked_credentials (Passing, MUST)
openssf-best-practices-badge-criteria::passing.vulnerabilities_critical_fixedvulnerabilities_critical_fixed (Passing, SHOULD)
openssf-best-practices-badge-criteria::passing.vulnerabilities_fixed_60_daysvulnerabilities_fixed_60_days (Passing, MUST)

Silver level: Analysis – OpenSSF Best Practices Badge Criteria

2 controls
Controls in the Silver level: Analysis – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 2 controls
CodeTitle
openssf-best-practices-badge-criteria::silver.dynamic_analysis_unsafedynamic_analysis_unsafe (Silver, MUST)
openssf-best-practices-badge-criteria::silver.static_analysis_common_vulnerabilitiesstatic_analysis_common_vulnerabilities (Silver, MUST)

Silver level: Basics – OpenSSF Best Practices Badge Criteria

17 controls
Controls in the Silver level: Basics – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 17 controls
CodeTitle
openssf-best-practices-badge-criteria::silver.access_continuityaccess_continuity (Silver, MUST)
openssf-best-practices-badge-criteria::silver.accessibility_best_practicesaccessibility_best_practices (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.achieve_passingachieve_passing (Silver, MUST)
openssf-best-practices-badge-criteria::silver.bus_factorbus_factor (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.code_of_conductcode_of_conduct (Silver, MUST)
openssf-best-practices-badge-criteria::silver.contribution_requirementscontribution_requirements (Silver, MUST)
openssf-best-practices-badge-criteria::silver.dcodco (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.documentation_achievementsdocumentation_achievements (Silver, MUST)
openssf-best-practices-badge-criteria::silver.documentation_architecturedocumentation_architecture (Silver, MUST)
openssf-best-practices-badge-criteria::silver.documentation_currentdocumentation_current (Silver, MUST)
openssf-best-practices-badge-criteria::silver.documentation_quick_startdocumentation_quick_start (Silver, MUST)
openssf-best-practices-badge-criteria::silver.documentation_roadmapdocumentation_roadmap (Silver, MUST)
openssf-best-practices-badge-criteria::silver.documentation_securitydocumentation_security (Silver, MUST)
openssf-best-practices-badge-criteria::silver.governancegovernance (Silver, MUST)
openssf-best-practices-badge-criteria::silver.internationalizationinternationalization (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.roles_responsibilitiesroles_responsibilities (Silver, MUST)
openssf-best-practices-badge-criteria::silver.sites_password_securitysites_password_security (Silver, MUST)

Silver level: Change Control – OpenSSF Best Practices Badge Criteria

1 controls
Controls in the Silver level: Change Control – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 1 controls
CodeTitle
openssf-best-practices-badge-criteria::silver.maintenance_or_updatemaintenance_or_update (Silver, MUST)

Silver level: Quality – OpenSSF Best Practices Badge Criteria

19 controls
Controls in the Silver level: Quality – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 19 controls
CodeTitle
openssf-best-practices-badge-criteria::silver.automated_integration_testingautomated_integration_testing (Silver, MUST)
openssf-best-practices-badge-criteria::silver.build_non_recursivebuild_non_recursive (Silver, MUST)
openssf-best-practices-badge-criteria::silver.build_preserve_debugbuild_preserve_debug (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.build_repeatablebuild_repeatable (Silver, MUST)
openssf-best-practices-badge-criteria::silver.build_standard_variablesbuild_standard_variables (Silver, MUST)
openssf-best-practices-badge-criteria::silver.coding_standardscoding_standards (Silver, MUST)
openssf-best-practices-badge-criteria::silver.coding_standards_enforcedcoding_standards_enforced (Silver, MUST)
openssf-best-practices-badge-criteria::silver.dependency_monitoringdependency_monitoring (Silver, MUST)
openssf-best-practices-badge-criteria::silver.external_dependenciesexternal_dependencies (Silver, MUST)
openssf-best-practices-badge-criteria::silver.installation_commoninstallation_common (Silver, MUST)
openssf-best-practices-badge-criteria::silver.installation_development_quickinstallation_development_quick (Silver, MUST)
openssf-best-practices-badge-criteria::silver.installation_standard_variablesinstallation_standard_variables (Silver, MUST)
openssf-best-practices-badge-criteria::silver.interfaces_currentinterfaces_current (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.regression_tests_added50regression_tests_added50 (Silver, MUST)
openssf-best-practices-badge-criteria::silver.test_policy_mandatedtest_policy_mandated (Silver, MUST)
openssf-best-practices-badge-criteria::silver.test_statement_coverage80test_statement_coverage80 (Silver, MUST)
openssf-best-practices-badge-criteria::silver.tests_documented_addedtests_documented_added (Silver, MUST)
openssf-best-practices-badge-criteria::silver.updateable_reused_componentsupdateable_reused_components (Silver, MUST)
openssf-best-practices-badge-criteria::silver.warnings_strictwarnings_strict (Silver, MUST)

Silver level: Reporting – OpenSSF Best Practices Badge Criteria

3 controls
Controls in the Silver level: Reporting – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 3 controls
CodeTitle
openssf-best-practices-badge-criteria::silver.report_trackerreport_tracker (Silver, MUST)
openssf-best-practices-badge-criteria::silver.vulnerability_report_creditvulnerability_report_credit (Silver, MUST)
openssf-best-practices-badge-criteria::silver.vulnerability_response_processvulnerability_response_process (Silver, MUST)

Silver level: Security – OpenSSF Best Practices Badge Criteria

13 controls
Controls in the Silver level: Security – OpenSSF Best Practices Badge Criteria domain of OpenSSF Best Practices Badge Criteria — 13 controls
CodeTitle
openssf-best-practices-badge-criteria::silver.assurance_caseassurance_case (Silver, MUST)
openssf-best-practices-badge-criteria::silver.crypto_algorithm_agilitycrypto_algorithm_agility (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.crypto_certificate_verificationcrypto_certificate_verification (Silver, MUST)
openssf-best-practices-badge-criteria::silver.crypto_credential_agilitycrypto_credential_agility (Silver, MUST)
openssf-best-practices-badge-criteria::silver.crypto_tls12crypto_tls12 (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.crypto_used_networkcrypto_used_network (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.crypto_verification_privatecrypto_verification_private (Silver, MUST)
openssf-best-practices-badge-criteria::silver.crypto_weaknessescrypto_weaknesses (Silver, MUST)
openssf-best-practices-badge-criteria::silver.hardeninghardening (Silver, SHOULD)
openssf-best-practices-badge-criteria::silver.implement_secure_designimplement_secure_design (Silver, MUST)
openssf-best-practices-badge-criteria::silver.input_validationinput_validation (Silver, MUST)
openssf-best-practices-badge-criteria::silver.signed_releasessigned_releases (Silver, MUST)
openssf-best-practices-badge-criteria::silver.version_tags_signedversion_tags_signed (Silver, SUGGESTED)

Maps to 1 other framework

145 total controls
NIST SP 800-218
50 source controls mapped|23 target controls covered
34%

Coverage is not the same as your position

This page shows what OpenSSF Best Practices Badge Criteria overlaps with in general. Where your organisation actually stands, against the standard you are going for and the certifications you already hold, is a different question. Same graph and the same recorded refutations, scoped to you rather than to a pair.

The Compliance Position Diagnostic, $5,000 fixed, ten business days

What is OpenSSF Best Practices Badge Criteria and who does it apply to?

OpenSSF Best Practices Badge Criteria is a compliance framework from International (open source ecosystem) with 17 domains and 145 controls. The OpenSSF Best Practices Badge criteria for open source projects at passing, silver and gold: 145 criteria, each MUST, SHOULD or SUGGESTED, covering project basics, change control, reporting, quality, security and analysis. Self-attested at bestpractices.dev; criterion text quoted from the official criteria. It is used by organisations to establish and maintain compliance with industry standards and regulatory requirements.

What does OpenSSF Best Practices Badge Criteria actually require?

OpenSSF Best Practices Badge Criteria has 145 controls organised across 17 domains. The largest domains are Silver level: Quality – OpenSSF Best Practices Badge Criteria (19 controls), Silver level: Basics – OpenSSF Best Practices Badge Criteria (17 controls), Passing level: Security – OpenSSF Best Practices Badge Criteria (16 controls). Each control defines specific requirements that organisations must implement to achieve compliance.

If I already comply with another framework, how much of OpenSSF Best Practices Badge Criteria do I already cover?

OpenSSF Best Practices Badge Criteria maps to 1 other compliance frameworks. The top mapping partners are NIST SP 800-218 (34% coverage). Use our comparison tool to explore control-level mappings between frameworks.

How do I implement OpenSSF Best Practices Badge Criteria?

Start your OpenSSF Best Practices Badge Criteria compliance journey by running a self-assessment on our platform to identify your current compliance posture. Our AI advisory can answer specific questions about OpenSSF Best Practices Badge Criteria requirements, and cross-framework mapping helps you leverage existing controls from other frameworks you may already comply with. Create a free account to access all 145 controls and track your progress.

Start Your Compliance Journey

Create a free account to run self-assessments, get AI advisory, and track your compliance progress across 868 frameworks.

Get Started Free →

Free forever — no credit card required