Fases del ciclo de vida de desarrollo de software SDLC seguro
Publicado: 2021-02-26El enfoque inteligente para crear software seguro es Secure SDLC o Software Development Lifecycle. En lugar de crear software y luego probarlo en busca de vulnerabilidades, es mejor crearlo con énfasis en la seguridad.
¿Qué es SDLC seguro?
En un sentido más amplio, un SDLC seguro es un proceso de integración de pruebas de seguridad y otras medidas en el ciclo de vida de desarrollo de software existente. Esto puede incluir:
- Redacción de requisitos de seguridad junto con requisitos funcionales.
- Realización de análisis de arquitectura.
- Uso de componentes de código abierto sin vulnerabilidades de seguridad conocidas.
- Probar el software en cada etapa y evitar que se transmitan vulnerabilidades/amenazas.
¿Por qué es importante el SDLC seguro?
La implementación de prácticas seguras del ciclo de vida del desarrollo de software es importante porque los desarrolladores no pueden darse el lujo de lanzar un producto con vulnerabilidades de seguridad. Para proteger el software y los datos de amenazas y ataques, debe desarrollarse de manera que garantice la seguridad.
Otra razón es que no es un enfoque eficiente para desarrollar software sin centrarse en la seguridad y luego probarla y corregirla.
Fases de SDLC seguro
Todo el concepto de SDLC seguro gira en torno a cortar el mal de raíz. El proceso evita que los defectos se trasladen a la siguiente fase del ciclo de vida del desarrollo de software. A continuación se muestra un esquema de las fases involucradas en Secure SDLC y las medidas de seguridad implementadas en cada una de ellas.
Requisitos Fase de SDLC seguro
Junto con los requisitos funcionales del software, los requisitos de seguridad también se describen al comienzo del SDLC seguro. Estos requisitos detallan lo que se requiere de los desarrolladores para que el software sea inherentemente seguro.
Se compila una lista detallada de todos los casos de uso y escenarios relacionados con la seguridad antes de que comience el desarrollo. Esto luego se usa para crear las características de seguridad y diseñar escenarios de prueba de seguridad.
Estos requisitos pueden verse así:
- Todas las puertas de enlace y los puntos de entrada deben contar con medidas de autenticación.
- El sistema debe implementar la autenticación a través de una pantalla de inicio de sesión segura.
- Todos los datos personales deben estar encriptados en todo momento.
- Se debe utilizar más de un canal de autenticación para la transferencia de datos confidenciales.
Fase de planificación para SDLC seguro
La fase de planificación es el paso fundamental en Secure SDLC. La planificación puede diferir de un caso a otro, pero estas son algunas de las cosas más fundamentales que deben tenerse en cuenta:
- Se debe formar un equipo de seguridad experimentado y dedicado para supervisar y dirigir todas las medidas relacionadas con la seguridad del software de manera imparcial. Este equipo, preferiblemente estacionado fuera de la oficina de gestión del proyecto, debe estar compuesto por un oficial de seguridad, arquitectos de seguridad y probadores de seguridad. Todos los miembros del equipo deben tener funciones y responsabilidades claramente definidas.
- Cualquier ambigüedad o escalada relacionada con los problemas de seguridad del proyecto debe ser manejada por el responsable de seguridad del producto. Él debe ser asesorado por el equipo de seguridad para asegurarse de que se toman las decisiones correctas.
- Se debe establecer un punto de contacto de seguridad para asegurarse de que cualquier cambio realizado en la seguridad del producto no pase desapercibido para el equipo de seguridad.
Fase de arquitectura y diseño de SDLC
Se debe realizar una evaluación de riesgos de seguridad del producto detallada durante la fase de diseño. Esto incluye revisar el programa desde el punto de vista de la seguridad mientras no haya entrado en la etapa de codificación. Cualquier riesgo de seguridad debe eliminarse antes de pasar a la siguiente fase. Para garantizar la seguridad, todas las evaluaciones deben realizarse de acuerdo con los estándares de la industria.

Las cosas que deben ser atendidas durante esta fase incluyen pero no se limitan a:
- Revisar todas las características, requisitos, historias de usuarios y documentos de diseño de acuerdo con los detalles compartidos por el equipo del proyecto. En caso de ausencia de alguno de los documentos requeridos, todo debe ser discutido claramente por los miembros del equipo del proyecto.
- Cualquier brecha en los requisitos de seguridad del programa debe identificarse y evaluarse frente a los estándares de la industria que se utilizan. Si es necesario, se pueden crear modelos de amenazas de acuerdo con las brechas identificadas.
- Se deben enumerar las brechas con suficientes riesgos de seguridad y se sugiere una mitigación viable para ellas.
Fase de desarrollo de SDLC
Este es el "desarrollo" real del software. Una vez que se ha preparado un diseño seguro de la aplicación, los desarrolladores deben escribir el código de una manera que esté en línea con las pautas de seguridad. Esto incluye:
- Uso de componentes de código abierto sin vulnerabilidades conocidas.
- Utilizar las medidas de seguridad acordadas durante todo el desarrollo del software.
- Prueba en frío del código para exponer y mitigar cualquier vulnerabilidad en el código.
Algunas pruebas también se realizan en la fase. Esto puede incluir cosas como garantizar que los datos confidenciales no se transmitan como texto sin formato.
Fase de implementación de SDLC
Una vez que se ha desarrollado el software, el siguiente paso es el análisis de código dinámico. Esta es una forma de prueba de seguridad de aplicaciones, también conocida como prueba de Open Web Application Project (OWASP).
Antes de que la solución se implemente en la vida real, se realizan el análisis de vulnerabilidad y la prueba de penetración. Las versiones del software en las que se realiza esta comprobación se denominan versiones de prueba. Las principales cosas a tener en cuenta sobre esto incluyen:
- Se utilizan herramientas como HP WebInspect, ZAP, Burp Suite y SOAP para verificar las vulnerabilidades del software en varias bases de datos de vulnerabilidades.
- Toda esta fase es una mezcla de automatización y pruebas manuales.
- Este proceso se realiza en un entorno independiente no vinculado al entorno de desarrollo para garantizar escenarios de prueba cercanos a la realidad.
- Cualquier vulnerabilidad encontrada en esta fase se mitiga antes de lanzar el software.
- Las amenazas comunes y típicas se identifican durante esta fase y se toman medidas para prevenirlas.
Conclusión
A medida que aumenta nuestra dependencia del software, es importante hacerlos seguros para los usuarios. Para asegurarse de que el software y las aplicaciones estén a la altura de la seguridad, se adoptan prácticas SDLC seguras. El objetivo final siempre es crear soluciones de software que sean invulnerables.
EL proceso SDLC seguro consta de cinco fases, desde la recopilación de los requisitos hasta las pruebas previas a la implementación. El enfoque es mitigar las amenazas y vulnerabilidades en cada paso para que no se trasladen al siguiente paso.
