Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Implementación de una canalización que detecte simultáneamente los problemas de seguridad en varios entregables de código
Benjamin Morris, Tim Hahn, Sapeksh Madan, Dina Odum y Isaiah Schisler, Amazon Web Services
Resumen
La canalización simple de análisis de código (SCSP)
Antes del SCSP, el análisis de código con este conjunto particular de herramientas requería que los desarrolladores localizaran, instalaran y configuraran manualmente las herramientas de análisis de software. Incluso si se instalan localmente, all-in-one las herramientas, como Automated Security Helper (ASH), requieren configurar un contenedor Docker para poder ejecutarse. Sin embargo, con SCSP, un conjunto de herramientas de análisis de código estándar del sector se ejecuta automáticamente en la Nube de AWS. Con esta solución, utilizas Git para impulsar las entregas de código y, a continuación, recibes un resultado visual con at-a-glance información sobre los errores en las comprobaciones de seguridad.
Requisitos previos y limitaciones
Un activo Cuenta de AWS
Uno o más entregables de código que desee analizar para detectar problemas de seguridad
AWS Command Line Interface (AWS CLI), instalado y configurado
La versión 3.0 o posterior de Python o la versión 9.0.3 o posterior de pip instaladas
Git, instalado
Instálelo git-remote-codecommiten su estación de trabajo local
Arquitectura
Pila de tecnología de destino
AWS CodeCommit repositorio
AWS CodeBuild proyecto
AWS CodePipeline oleoducto
Bucket de Amazon Simple Storage Service (Amazon S3)
AWS CloudFormation plantilla
Arquitectura de destino
El SCSP para el análisis de código estático es un DevOps proyecto diseñado para proporcionar información de seguridad sobre el código entregable.

En el Consola de administración de AWS, inicia sesión en el objetivo. Cuenta de AWS Confirme que se encuentra en el Región de AWS lugar donde desea implementar la canalización.
Utilice la CloudFormation plantilla del repositorio de código para implementar la pila SCSP. Esto crea un CodeCommit repositorio y un CodeBuild proyecto nuevos.
nota
Como opción de implementación alternativa, puedes usar un CodeCommit repositorio existente proporcionando el nombre de recurso de Amazon (ARN) del repositorio como parámetro durante el despliegue de la pila.
Clone el repositorio en su estación de trabajo local y, a continuación, añada los archivos a sus respectivas carpetas del repositorio clonado.
Usa Git para añadir, confirmar y enviar los archivos al CodeCommit repositorio.
Al empujarlos al CodeCommit repositorio, se inicia un CodeBuild trabajo. El CodeBuild proyecto utiliza las herramientas de seguridad para escanear los entregables de código.
Revise el resultado de la canalización. Las herramientas de seguridad que detecten problemas de nivel de error provocarán acciones fallidas en la canalización. Corrija estos errores o elimínelos como falsos positivos. Revisa los detalles del resultado de la herramienta en los detalles de la acción en el bucket S3 de la canalización CodePipeline o en él.
Tools (Herramientas)
Servicios de AWS
AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y administrarlos a lo largo de su ciclo de vida en todas Cuentas de AWS las regiones.
AWS CodeBuild es un servicio de compilación completamente administrado que le permite compilar código fuente, poner en marcha pruebas unitarias y producir artefactos listos para implementar.
AWS CodeCommit es un servicio de control de versiones que permite almacenar y administrar repositorios de Git de forma privada, sin necesidad de administrar su propio sistema de control de origen.
Otras herramientas
Para obtener una lista completa de las herramientas que SCSP utiliza para escanear los entregables de código, consulte el léame del SCSP
Repositorio de código
El código de este patrón está disponible en el repositorio Simple Code Scanning Pipeline (SCSP
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Crea la CloudFormation pila. |
Esto crea un CodeCommit repositorio, una CodePipeline canalización, varias definiciones de CodeBuild trabajos y un bucket de S3. Las ejecuciones de compilación y los resultados del análisis se copian en este bucket. Una vez que la CloudFormation pila se haya desplegado por completo, SCSP estará listo para su uso. | AWS DevOps, administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Examine los resultados del análisis. |
| Desarrollador de aplicaciones, AWS DevOps |
Resolución de problemas
| Problema | Solución |
|---|---|
HashiCorp No se están escaneando Terraform ni sus AWS CloudFormation archivos. | Asegúrese de que los archivos Terraform (.tf) y CloudFormation (.yml, .yaml o .json) estén ubicados en las carpetas correspondientes del repositorio clonado. CodeCommit |
El comando | Asegúrese de haber instalado |
Un error de simultaneidad, como | Vuelva a ejecutar la canalización pulsando el botón Release Change de la CodePipeline consola |
Recursos relacionados
Proporcione comentarios
Información adicional
Preguntas frecuentes
¿El proyecto de SCSP es igual al de Automated Security Helper (ASH)?
No. Use ASH cuando desee una herramienta de CLI que ejecute herramientas de análisis de código mediante contenedores. Automated Security Helper (ASH)
Utilice SCSP cuando desee una canalización de configuración más sencilla que la de ASH. SCSP no requiere instalaciones locales. SCSP está diseñado para ejecutar comprobaciones de forma individual en una canalización y mostrar los resultados por herramienta. SCSP también evita gran parte de la sobrecarga que supone la configuración de Docker y es independiente del sistema operativo (SO).
¿SCSP es solo para equipos de seguridad?
No, cualquiera puede implementar la canalización para determinar qué partes de su código no superan los controles de seguridad. Por ejemplo, los usuarios que no son usuarios de seguridad pueden usar SCSP para comprobar su código antes de revisarlo con sus equipos de seguridad.
¿Puedo usar SCSP si estoy trabajando con otro tipo de repositorio, como GitLab GitHub, o Bitbucket?
Puede configurar un repositorio git local para que apunte a dos repositorios remotos diferentes. Por ejemplo, puedes clonar un GitLab repositorio existente, crear una instancia de SCSP (especificando CloudFormation las carpetas Terraform y AWS Config Rules Development Kit (AWS RDK), si fuera necesario) y, a continuación, utilizarla git remote add upstream <SCSPGitLink> para apuntar también el repositorio local al repositorio de SCSP. CodeCommit Esto permite que los cambios de código se envíen primero a SCSP, se validen y, después, después de realizar cualquier actualización adicional para corregir los hallazgos, se envíen al repositorio o a Bitbucket GitLab. GitHub Para obtener más información sobre varios controles remotos, consulta Enviar confirmaciones a un repositorio de Git adicional (entrada AWS del blog).
nota
Tenga cuidado con las desviaciones, por ejemplo, evite hacer cambios a través de las interfaces web.
Contribución y adición de sus propias acciones
La configuración de SCSP se mantiene como un GitHub proyecto, que contiene el código fuente de la aplicación AWS Cloud Development Kit (AWS CDK) SCSP. Para añadir comprobaciones adicionales a la canalización, es necesario actualizar la AWS CDK aplicación y, a continuación, sintetizarla o desplegarla en el destino en el que Cuenta de AWS se ejecutará la canalización. Para ello, comience por clonar el GitHub proyectolib carpeta.
Si quieres añadir una marca adicional, la StandardizedCodeBuildProject clase del AWS CDK código facilita la adición de acciones. Proporciona el nombre, la descripción install o los build comandos. AWS CDK crea el CodeBuild proyecto utilizando valores predeterminados razonables. Además de crear el proyecto de construcción, es necesario añadirlo a las CodePipeline acciones de la fase de construcción. Al diseñar una nueva comprobación, la acción debería FAIL si la herramienta de análisis detecta problemas o no se ejecuta. La acción debería PASS si la herramienta de análisis no detecta ningún problema. Para ver un ejemplo de configuración de una herramienta, revise el código de la acción Bandit.
Para obtener más información acerca de las entradas y salidas esperadas, consulte la documentación del repositorio
Si agrega acciones personalizadas, debe implementar SCSP mediante cdk deploy o cdk synth + CloudFormation deploy. Esto se debe a que los propietarios del repositorio mantienen la CloudFormation plantilla de pila Quick Create.