
Audita el cumplimiento de la seguridad de la cadena de suministro de software según el benchmark CIS, escaneando configuraciones de SCM, protecciones de ramas, dependencias y pipelines CI/CD en busca de riesgos.
Chain-bench es una herramienta de código abierto para auditar su pila de cadena de suministro de software en busca de cumplimiento de seguridad basada en un nuevo punto de referencia CIS para la cadena de suministro de software. La auditoría se centra en todo el proceso del SDLC, donde puede revelar riesgos desde el momento del código hasta el momento del despliegue. Para ganar la carrera contra los hackers y proteger sus datos sensibles y la confianza del cliente, necesita asegurarse de que su código cumple con las políticas de su organización.
Lea más en la Documentación de Chain-bench
Chain-bench es una herramienta de código abierto para auditar su pila de cadena de suministro de software en busca de cumplimiento de seguridad basada en un nuevo punto de referencia CIS para la cadena de suministro de software. La auditoría se centra en todo el proceso del SDLC, donde puede revelar riesgos desde el momento del código hasta el momento del despliegue.
La forma principal de ejecutar chain-bench es como una CLI independiente. Requiere un token de acceso para su cuenta y la URL del repositorio para acceder a su SCM.
Obtenga Chain-bench a través de su método de instalación favorito. Consulte la sección de instalación en la documentación para más detalles. Por ejemplo:
brew install chain-benchnix-env --install -A nixpkgs.chain-benchdocker run aquasec/chain-benchchain-bench scan --repository-url <REPOSITORY_URL> --access-token <TOKEN> -o <OUTPUT_PATH>
chain-bench scan --repository-url <REPOSITORY_URL> --scm-platform <SCM_PLATFORM> --access-token <TOKEN> -o <OUTPUT_PATH>
Las opciones compatibles para scm-platform son "github" y "gitlab" (beta)
docker run aquasec/chain-bench scan --repository-url <REPOSITORY_URL> --access-token <TOKEN>
Ver el repositorio en https://github.com/aquasecurity/chain-bench-action
2022-06-13 15:22:18 INF 🚩 Fetch Starting
2022-06-13 15:22:19 INF 🏢 Fetching Organization Settings Finished
2022-06-13 15:22:29 INF 🛢️ Fetching Repository Settings Finished
2022-06-13 15:22:29 INF 🌱 Fetching Branch Protection Settings Finished
2022-06-13 15:22:29 INF 👫 Fetching Members Finished
2022-06-13 15:22:31 INF 🔧 Fetching Pipelines Finished
2022-06-13 15:22:31 INF 🏁 Fetch succeeded
ID Name Result Reason
-------- ----------------------------------------------------------------------------------------------- -------- ---------------------------------------
1.1.3 Ensure any change to code receives approval of two strongly authenticated users Passed
1.1.4 Ensure previous approvals are dismissed when updates are introduced to a code change proposal Failed
1.1.5 Ensure that there are restrictions on who can dismiss code change reviews Failed
1.1.6 Ensure code owners are set for extra sensitive code or configuration Failed
1.1.8 Ensure inactive branches are reviewed and removed periodically Failed 20 inactive branches
1.1.9 Ensure all checks have passed before the merge of new code Passed
1.1.10 Ensure open git branches are up to date before they can be merged into codebase Passed
1.1.11 Ensure all open comments are resolved before allowing to merge code changes Passed
1.1.12 Ensure verifying signed commits of new changes before merging Failed
1.1.13 Ensure linear history is required Passed
1.1.14 Ensure branch protection rules are enforced on administrators Failed
1.1.15 Ensure pushing of new code is restricted to specific individuals or teams Passed
1.1.16 Ensure force pushes code to branches is denied Failed
1.1.17 Ensure branch deletions are denied Failed
1.2.1 Ensure all public repositories contain a SECURITY.md file Failed
1.2.2 Ensure repository creation is limited to specific members Failed
1.2.3 Ensure repository deletion is limited to specific members Passed
1.2.4 Ensure issue deletion is limited to specific members Passed
1.3.1 Ensure inactive users are reviewed and removed periodically Failed 22 inactive users
1.3.3 Ensure minimum admins are set for the organization Passed
1.3.5 Ensure the organization is requiring members to use MFA Passed
1.3.7 Ensure 2 admins are set for each repository Failed
1.3.8 Ensure strict base permissions are set for repositories Passed
1.3.9 Ensure an organization's identity is confirmed with a Verified badge Failed
2.3.1 Ensure all build steps are defined as code Failed No build job was found in pipelines
2.3.5 Ensure access to the build process's triggering is minimized Passed
2.3.7 Ensure pipelines are automatically scanned for vulnerabilities Passed
2.3.8 Ensure scanners are in place to identify and prevent sensitive data in pipeline files Failed Repository is not scanned for secrets
2.4.2 Ensure all external dependencies used in the build process are locked Failed 16 task(s) are not pinned
2.4.6 Ensure pipeline steps produce an SBOM Passed
3.1.7 Ensure dependencies are pinned to a specific, verified version Failed 16 dependencies are not pinned
3.2.2 Ensure packages are automatically scanned for known vulnerabilities Passed
3.2.3 Ensure packages are automatically scanned for license implications Passed
4.2.3 Ensure user's access to the package registry utilizes MFA Passed
4.2.5 Ensure anonymous access to artifacts is revoked Passed
4.3.4 Ensure webhooks of the package registry are secured Passed
-------- ----------------------------------------------------------------------------------------------- -------- ---------------------------------------
Total Passed Rules: 19 out of 36
2022-06-13 15:22:31 INF Scan completed: 13.108s
Puede integrar los resultados de chain-bench en el Informe de Vulnerabilidades de Gitlab añadiendo un nuevo paso dentro de su definición de CI:
chain-bench-scanning:
stage: test
image:
name: docker.io/aquasec/chain-bench
entrypoint: [""]
script:
- chain-bench scan --repository-url $CI_PROJECT_URL --access-token $CHAIN_BENCH_TOKEN --scm-platform gitlab -o results.json --template @/templates/gitlab_security_scanner.tpl
artifacts:
reports:
container_scanning: results.json
Maintainer que tenga permisos read_api y read_repository y usarlo como variables de entorno (p. ej. $CHAIN_BENCH_TOKEN)Es necesario proporcionar un token de acceso con permiso para estos ámbitos: repo(todos), read:repo_hook, admin:org_hook, read:org
Actualmente soportamos SCMs de Github y Gitlab, con autenticación PAT.
Chain-bench implementa el CIS Software Supply Chain Benchmark lo más fielmente posible. Puede encontrar las verificaciones implementadas actualmente en AVD - Software Supply Chain CIS - 1.0 que se actualizan cada noche según los archivos metadata.json de chain-bench. Por favor, reporte problemas aquí si chain-bench no está implementando correctamente la prueba como se describe en el Benchmark. Para informar problemas en el propio Benchmark (por ejemplo, pruebas que considere inapropiadas), únase a la comunidad de CIS.
Lea atentamente Contributing antes de contribuir. Damos la bienvenida a PRs e informes de problemas.
De cara al futuro, planeamos lanzar actualizaciones de chain-bench para aumentar la cobertura del benchmark con más verificaciones y soportar más plataformas. chain-bench es un proyecto de código abierto de Aqua Security, parte de la familia Trivy.