Kudo

CAP-1 - Ciberseguridad en el Ciclo de Desarrollo del Software

Control de seguridad integrada y automatizada en el SDLC

Definición de Control

Es necesario integrar la seguridad en todas las fases del ciclo de desarrollo del software bajo un enfoque Shift Left, realizando modelado de amenazas y definiendo requisitos de seguridad desde la planificación, y estableciendo principios de diseño seguro y estándares de codificación que guíen el desarrollo. Es necesario controlar el acceso al código fuente y a las herramientas de desarrollo, capacitar a los equipos en codificación segura, y automatizar en el pipeline de CI/CD la detección de secretos y el análisis de seguridad del código, las dependencias, los contenedores y la infraestructura como código. Es necesario bloquear el paso a producción de artefactos con vulnerabilidades críticas definiendo security gates y SLAs de remediación, gestionar de forma segura los secretos utilizados por las aplicaciones, y mantener separados y protegidos los entornos de desarrollo, prueba y producción.

Requisitos

Requisito 1

Integramos prácticas de seguridad en todas las fases del SDLC bajo un enfoque Shift Left.

Requisito 2

Realizamos modelado de amenazas de negocio en la fase de planificación de cada iniciativa de desarrollo.

Requisito 3

Realizamos modelado de amenazas entre componentes arquitectónicos en la fase de planificación de cada iniciativa de desarrollo.

Requisito 4

Definimos requisitos de seguridad funcionales y no funcionales antes de iniciar el diseño.

Requisito 5

Revisamos la arquitectura de seguridad aplicando principios de Defense in Depth en la fase de diseño.

Requisito 6

Definimos y mantenemos estándares de codificación segura basados en OWASP Top 10 y SANS CWE/25.

Requisito 7

Capacitamos a los desarrolladores en codificación segura con frecuencia programada.

Requisito 8

Definimos SLAs de remediación para los defectos de seguridad encontrados en las pruebas.

Requisito 9

Gestionamos adecuadamente quién puede leer el código fuente, las herramientas de desarrollo y las bibliotecas de software.

Requisito 10

Gestionamos adecuadamente quién puede modificar el código fuente, las herramientas de desarrollo y las bibliotecas de software.

Requisito 11

Especificamos con claridad los requisitos de seguridad de la información al momento de desarrollar o adquirir nuevas aplicaciones.

Requisito 12

Aprobamos formalmente los requisitos de seguridad de la información antes de desarrollar o adquirir nuevas aplicaciones.

Requisito 13

Documentamos los principios de diseño seguro de sistemas para que estén disponibles en todas las actividades de desarrollo.

Requisito 14

Implementamos pre-commit hooks para verificar automáticamente el cumplimiento de los estándares de seguridad antes de aceptar código en el repositorio.

Requisito 15

Implementamos workflows de CI/CD con protección de ramas y asignación de codeowners en todas las ramas principales del repositorio.

Requisito 16

Ejecutamos, tanto en el pipeline CI como en los pull requests, detección automática de secretos en el código fuente.

Requisito 17

Integramos análisis de seguridad estático (SAST) sobre el código fuente, ejecutándolo de forma automatizada en cada build del pipeline CI.

Requisito 18

Integramos análisis dinámico (DAST) sobre la aplicación en ejecución en ambiente de staging como parte del pipeline CD.

Requisito 19

Integramos análisis de composición de software (SCA) para identificar vulnerabilidades en dependencias de terceros, ejecutándolo de forma automatizada en el pipeline CI.

Requisito 20

Escaneamos las imágenes de contenedor en busca de vulnerabilidades como parte del pipeline CI.

Requisito 21

Ejecutamos análisis estático de seguridad en toda la infraestructura definida como código (IaC).

Requisito 22

Validamos las configuraciones desplegadas como parte del pipeline CD.

Requisito 23

Definimos security gates automatizados con umbrales máximos de vulnerabilidades por severidad que bloquean el despliegue en producción de artefactos con vulnerabilidades críticas o altas.

Requisito 24

Registramos los resultados de los security gates en el sistema de tickets de seguridad.

Requisito 25

Gestionamos todos los secretos mediante servicios de vault e inyectamos en tiempo de ejecución.

Requisito 26

Integramos y verificamos automáticamente el firmado de commits en el SDLC, tanto en el pipeline CI como en los pull requests.

Requisito 27

Mantenemos separados los entornos de desarrollo, prueba y producción para evitar interferencias entre ellos.

Requisito 28

Protegemos los entornos de desarrollo, prueba y producción frente a accesos no autorizados o modificaciones indebidas.

Requisito 29

Monitoreamos continuamente las vulnerabilidades en dependencias y aplicamos parches de seguridad.

Requisito 30

Mantenemos actualizados los principios de diseño seguro de sistemas a lo largo del tiempo.

On this page