Skip to main content

OpenJS-SCGv1.0-solo-incubating

OpenJS-SCGv1.0-solo-incubating Checklist

  • Author: OpenJS Foundation
  • Title: Security Compliance Guide v1.0 - Solo Maintainers incubating
  • Description: This checklist is for projects that are in the incubating phase and have a solo maintainer.
PriorityCheckdetailsInfo
P0owaspTop10TrainingTraining on OWASP Top 10 or equivalentDoc
P0softwareDesignTrainingTraining on secure software designDoc
P1npmOrgMFAEnforce MFA in npm organization(s)Doc
P1orgToolingMFAEnforce MFA in all the toolsDoc
P1MFAImpersonationDefenseUse MFA against impersonationDoc
P1githubOrgMFAEnforce MFA in GitHub organization(s)Doc
P2noSensitiveInfoInRepositoriesCheck sensitive informationDoc
P2injectedSecretsAtRuntimeEnsure that the secrets are injected at runtimeDoc
P2scanCommitsForSensitiveInfoEnsure that all the commits are scannedDoc
P2preventLandingSensitiveCommitsBlock new commits with secrets or credentialsDoc
P3SSHKeysRequiredUse SSH keys with passphrases for repository accessDoc
P3npmPublicationMFAPublish to npm using MFA-Enabled accountsDoc
P3githubWebhookSecretsSecure GitHub Webhooks with secretsDoc
P4restrictedOrgPermissionsRestrict default GitHub Org member permissionsDoc
P4adminRepoCreationOnlyAllow only admins to create public repositoriesDoc
P4defineFunctionalRolesDefine roles aligned to functional responsibilitiesDoc
P4githubWriteAccessRolesDefine teams/individuals with write access to repositoriesDoc
P5patchCriticalVulns30DaysPatch actively exploited critical vulnerabilities within 30 DaysDoc
P5patchNonCriticalVulns90DaysPatch non-critical vulnerabilities within 90 daysDoc
P6automateVulnDetectionAutomate dependency vulnerability identificationDoc
P6staticCodeAnalysisUse automated static code analysis toolsDoc
P6resolveLinterWarningsAddress compiler and linter warnings before mergingDoc
P6staticAppSecTestingUse static application security testing for all commitsDoc
P6commitStatusChecksRequire commit status checks to pass before mergingDoc
P7securityMdMeetsOpenJSCVDEnsure Security.md meets OpenJS CVD guidelinesDoc
P7useCVDToolForVulnsUse CVD tools to manage vulnerability reportsDoc
P7vulnResponse14DaysRespond to external vulnerability reports in under 14 daysDoc
P7incidentResponsePlanDefine clear communication and incident response plansDoc
P7assignCVEForKnownVulnsAssign CVEs to all known security vulnerabilitiesDoc
P7includeCVEInReleaseNotesInclude CVE IDs in release notes for security fixesDoc
P8regressionTestsForVulnsCreate regression tests for bugs and security vulnerabilitiesDoc
P9defaultTokenPermissionsReadOnlySet default GitHub workflow token permissions to read-onlyDoc
P9blockWorkflowPRApprovalPrevent workflows from creating or approving PRsDoc
P9noForcePushDefaultBranchDisable force push on default branchDoc
P9preventDeletionDefaultBranchPrevent deletion of default branchDoc
P9upToDateDefaultBranchBeforeMergeRequire default branch updates before mergingDoc
P10restrictOrgSecretsRestrict GitHub organization secrets to specific repositoriesDoc
P10verifiedActionsOnlyLimit GitHub Actions to verified or trusted actionsDoc
P10noSelfHostedRunnersDisable self-hosted runners in GitHub organizationDoc
P11noArbitraryCodeInPipelineRestrict build pipeline code execution to build scriptsDoc
P11limitWorkflowWritePermissionsLimit workflow write permissions to job levelDoc
P11preventScriptInjectionAvoid script injection from untrusted variablesDoc
P12consistentBuildProcessDocsDocument consistent and automated build processesDoc
P12upgradePathDocsSupport older versions or provide upgrade pathsDoc
P12ciAndCdPipelineAsCodeAutomate CI/CD steps in code-based pipelinesDoc
P13pinActionsToSHAPin actions with secrets to full-length commit SHAsDoc
P14automateDependencyManagementAutomate monitoring of outdated dependenciesDoc
P14machineReadableDependenciesProvide machine-readable dependency listsDoc
P14identifyModifiedDependenciesUniquely identify modified dependenciesDoc
P14annualDependencyRefreshRefresh dependencies with annual releasesDoc
R1useHwKeyGithubAccessUse AAL2/3 passkeys for GitHub accessDoc
R1useHwKeyGithubNonInteractiveUse AAL2/3 passkeys for non-interactive GitHub accessDoc
R1useHwKeyOtherContextsUse AAL2/3 passkeys in all other contextsDoc
R2forkWorkflowApprovalRequire approval for forked workflow changesDoc
R2workflowSecurityScannerUse workflow security scannersDoc
R2runnerSecurityScannerUse GitHub runner security scannersDoc
R3activeAdminsSixMonthsRequire active admins in GitHub organization (activity in 6 months)Doc
R3activeWritersSixMonthsRequire active members with write access (activity in 6 months)Doc
R4PRsBeforeMergeRequire pull requests before mergingDoc
R4commitSignoffForWebEnforce commit sign-off for web based commitsDoc
R4requireSignedCommitsRequire signed commitsDoc
R5includePackageLockInclude package-lock.json in releasesDoc
R6requireCodeOwnersReviewForLargeTeamsRequire code owners reviewDoc
R7limitOrgOwnersLimit GitHub org owners to fewer than threeDoc
R7limitRepoAdminsLimit GitHub repo admins to fewer than threeDoc
R8patchExploitableHighVulns14DaysPatch critical/high vulnerabilities in 14 DaysDoc
R8patchExploitableNoncCriticalVulns60DaysPatch non-critical vulnerabilities in 60 DaysDoc