measures ssdlc
Obtenga información sobre varias medidas de seguridad para implementar para un SDLC o SSDLC seguro:
A medida que la tecnología crece rápidamente, las amenazas relacionadas con la seguridad de piratería y robo de datos seguros también han aumentado en consecuencia. Por lo tanto, no hay duda de que el crecimiento de la tecnología está planteando desafíos a los fabricantes de software para garantizar que su software sea fuerte y robusto frente a las amenazas y vulnerabilidades de seguridad.
No se puede lanzar un producto de software, incluso si funciona perfectamente para la funcionalidad prevista, a menos que demuestre ser altamente seguro y cumpla con los estándares de seguridad y privacidad especificados y regulados, especialmente en sectores como Defensa, Finanzas y Salud que involucran datos personales y financieros. .
Uno no puede darse el lujo de tener un defecto de seguridad en el producto cuando se implementa, ya sea de gravedad alta o media. Por lo tanto, es muy esencial proteger el software y los datos de cualquier tipo de ataque, amenazas maliciosas, vulnerabilidades y garantizar la confiabilidad del software para el usuario final.
A diferencia de nuestro desarrollo de software tradicional, las pruebas en la última fase después de que se desarrolló todo el software no son más efectivas. Con la implementación de los conceptos Agile, DevOps y ShiftLeft, es esencial realizar pruebas en las primeras etapas del ciclo de vida de la aplicación y en todas las fases.
Dicho esto, la seguridad del software no se puede construir o incluso probar en la última etapa y, por lo tanto, debe construirse en cada fase para garantizar la seguridad total del software.
Lo que vas a aprender:
Medidas de seguridad para SSDLC
A continuación se enumeran los diversos medios de medidas relacionadas con la seguridad que se pueden implementar a lo largo del ciclo de vida del desarrollo de software para garantizar SDLC o SSDLC seguros y, en la medida de lo posible, no se permite que los defectos pasen a la siguiente fase.
Los diversos análisis y evaluaciones de seguridad en los que se debe construir la seguridad en las fases de SDLC son.
- Fase de requisitos
- Fase de planeamiento
- Fase de Arquitectura y Diseño: Evaluación de riesgos de seguridad basada en el diseño.
- Fase de desarrollo: Secure Code Analysis, un análisis estático del código para la seguridad.
- Fase de implementación: Análisis de código dinámico, una prueba de seguridad de aplicaciones.
- Pruebas: fase previa a la implementación: Pruebas de penetración y análisis de vulnerabilidades.
# 1) Fase de requisitos
- Principalmente, para garantizar que las medidas de seguridad necesarias estén integradas en el software, Requisitos específicos relacionados con la seguridad deben capturarse claramente durante la fase de requisitos con suficientes detalles y resultados esperados.
- Al identificar los casos de uso típicos y los escenarios comerciales, un conjunto claro de Casos de uso y escenarios relacionados con la seguridad para fines de verificación, es necesario identificar para capturar las características de seguridad y diseñar escenarios de prueba de seguridad.
A continuación se presentan algunos ejemplos de muestra que ilustran los requisitos explícitos relacionados con la seguridad que se pueden capturar.
Sec-Req-01: Se requiere que el sistema cuente con medidas de autenticación en todas las puertas de enlace y puntos de entrada.
Sec-Req-02: Se requiere que el sistema implemente la autenticación a través de una pantalla de inicio de sesión segura.
Sec-Req-03: Los DATOS PERSONALES se cifrarán en reposo.
# 2) Fase de planificación
En un nivel alto, pero no solo limitado a estos, los siguientes puntos deben ser atendidos en la Fase de Planificación.
software gratuito para copiar dvd a mp4
- Un fuerte, Equipo de seguridad dedicado , que funciona fuera de la PMO (oficina de gestión de proyectos) del equipo del programa, que consta de Oficial de seguridad, arquitectos de seguridad, probadores de seguridad formarse para llevar a cabo y gestionar todas las actividades del programa relacionadas con la seguridad de forma imparcial. Para cada uno de estos roles, se definen un RnR (roles y responsabilidades) y un RACI claros.
- Alguna escaladas, ambigüedades Los problemas relacionados con la seguridad deben ser manejados por el PSO (Product Security Officer) para que el equipo de seguridad funcione sin problemas y ayude a tomar las decisiones correctas.
- Un robusto Estrategia de prueba de seguridad Es necesario identificar cómo implementar los requisitos relacionados con la seguridad, cómo, cuándo y qué probar, qué herramientas deben usarse en cada etapa.
- Es obligatorio involucrar al Punto de contacto de seguridad para todas las discusiones técnicas / de revisión relacionadas con el programa para que el equipo de seguridad esté al tanto de cualquier cambio que se produzca en el programa.
# 3) Fase de arquitectura y diseño
Prestar más atención a los aspectos de seguridad desde el principio durante la fase de diseño ayudará a prevenir los riesgos de seguridad y reducirá esfuerzos considerables en los cambios de diseño más adelante en el SDLC.
Al diseñar el software y la infraestructura en la que se alojará el software, todo lo posible Implementaciones de diseño de seguridad deben estar bien diseñados con la participación de los arquitectos de seguridad.
Cualquier ambigüedad y conflicto entre los aspectos funcionales y no funcionales de Diseño y Arquitectura deben resolverse mediante sesiones de lluvia de ideas que involucren a las partes interesadas adecuadas.
Durante esta fase, se realiza una evaluación detallada de riesgos de seguridad del producto, que a veces también se denomina 'Evaluación estática' debe ser realizado por el equipo de expertos en seguridad.
Evaluación de riesgos de seguridad incluye una revisión de los programas desde el punto de vista de la seguridad en la etapa preliminar de diseño / arquitectura para identificar las fallas relacionadas con la seguridad desde la perspectiva del diseño y, en consecuencia, elevar el producto Riesgos de seguridad al equipo del proyecto para abordarlos y evitar entrar en la siguiente fase.
Estas evaluaciones se llevan a cabo en base a las pautas, estándares y controles de seguridad industrial / organizacional descritos en esos documentos. P.ej. UXW 00320, UXW 030017
Durante la evaluación de riesgos de seguridad del producto:
- Se revisan los requisitos, las características, las historias de usuario y sus documentos de diseño, en función de los detalles, los artefactos compartidos por el equipo del proyecto, P.ej. Documentos de diseño (HLDD y LLDD). Las evaluaciones también involucran discusiones con los miembros relevantes del equipo del proyecto en caso de ausencia de documentos o para aclarar dudas.
- Las brechas se identifican al mapear los requisitos de seguridad del programa con los estándares establecidos y otras mejores prácticas. A veces, los modelos de amenazas también se desarrollan en función de las brechas identificadas.
- Estas brechas se identifican como posibles riesgos de seguridad que también incluyen sugerir posibles mitigaciones para la implementación, se plantean y gestionan.
- Una vez que el equipo del proyecto implementa estas mitigaciones, se verifica el cierre mediante casos de prueba apropiados diseñados por el equipo de prueba del sistema.
- La Matriz de gestión de riesgos, que proporciona trazabilidad, está preparada para rastrear estos riesgos. El arquitecto de seguridad y PSO tomarán la aprobación y la firma con el riesgo residual.
Los patrones de amenazas típicos que se identifican en la fase de diseño están relacionados con la validación de entrada, auditoría / gestión de registros, configuraciones y cifrados. La identificación de riesgos incluye atacar vulnerabilidades como contraseñas débiles, ataques simples de fuerza bruta, etc.
Las revisiones típicas incluyen riesgos relacionados con el acceso a datos personales, acceso a pistas de auditoría, entidades de listas blancas y negras, limpieza de datos y actividad de eliminación.
Los escenarios de prueba de muestra incluyen:
- Vulnerabilidad de desbordamiento de búfer: Para asegurarse de que mediante la fuzzing manual de los parámetros, no debería ser posible ralentizar el servidor y obligarlo a no responder (Denegación de servicio).
- Sanitización de datos: Para garantizar que se realice una desinfección de datos adecuada para cada entrada y salida, de modo que el atacante no pueda inyectar y almacenar el contenido malicioso en el sistema.
# 4) Fase de desarrollo
Análisis de código seguro es un Evaluación de código estático método que se utiliza para evaluar la Código de seguridad de las diversas funciones del software utilizando una herramienta de escaneo automatizada. Ejemplo: Fortalecer.
Este análisis se lleva a cabo en cada registro / compilación de código para escanear el código generado en busca de amenazas de seguridad. Esta evaluación generalmente se realiza a nivel de historia de usuario.
- Los análisis de Fortify a través de complementos deben instalarse en las máquinas del desarrollador.
- Fortify debe integrarse con la plantilla de compilación.
- El escaneo automatizado se llevará a cabo en todas las compilaciones a diario.
- El equipo de seguridad analizará el resultado del análisis en busca de falsos positivos.
- Los defectos identificados por esta evaluación se plantean y gestionan hasta el cierre, de modo que la filtración se minimice / reduzca a cero al siguiente nivel.
Los escenarios de prueba de muestra incluyen:
- Para garantizar que los datos confidenciales no se envíen en texto sin formato durante la transmisión de datos.
- Para garantizar una transmisión de datos segura, las API externas deben implementarse en un canal HTTPS.
# 5) Fase de implementación
Análisis de código dinámico no es más que pruebas de seguridad de aplicaciones, que también se denominan pruebas OWASP (Proyecto de seguridad de aplicaciones web abiertas). El análisis de vulnerabilidad y las pruebas de penetración (VAPT) deben realizarse en la fase de implementación / prueba.
Este análisis evalúa los binarios y algunas configuraciones del entorno y refuerza aún más el código para los requisitos de seguridad.
Como parte de este análisis, el Comportamiento dinámico o la funcionalidad de varias características de los programas se analizan en busca de vulnerabilidades relacionadas con la seguridad. Los casos de uso y escenarios comerciales estipulados también se utilizan para realizar análisis de código dinámico.
Esta actividad se realiza en el Probar compilaciones utilizando diversas herramientas de seguridad con un enfoque automático y manual.
cómo abrir archivos jar en windows
- Las herramientas de interfaz de usuario de HP WebInspect, Burp Suite, ZAP y SOAP se utilizan generalmente para verificar vulnerabilidades frente a bases de datos de vulnerabilidades estándar ( Ejemplo: Top 10 de OWASP )
- Esta actividad, aunque está principalmente automatizada, debido a ciertas restricciones de herramientas, es posible que se requiera algún trabajo manual para clasificar los falsos positivos.
- Esto se hace idealmente en un entorno separado (entorno de prueba del sistema), donde se implementa el software listo para la prueba.
- Las vulnerabilidades deben plantearse y resolverse con las Mitigaciones sugeridas.
Los patrones de amenazas típicos identificados durante este análisis están relacionados con la validación de entrada, autenticación rota y administración de sesiones, exposición de datos confidenciales, XSS y administración de contraseñas.
Los escenarios de prueba de muestra incluyen,
- Gestión de contraseñas: Para asegurarse de que las contraseñas no se almacenen en texto sin formato en los archivos de configuración o en cualquier lugar del sistema.
- Fuga de información del sistema: Para garantizar que la información del sistema no se filtre en ningún momento, la información revelada por printStackTrace podría ayudar al adversario en un plan de ataque.
# 6) Pruebas: fase previa a la implementación
Pruebas de penetración , Pen Test en breve y Infra VAPT (análisis de vulnerabilidad y pruebas de penetración) , es la prueba holística en toda regla con solución completa y configuraciones (incluida la red) que idealmente se realiza en un entorno de producción o de preproducción.
Esto se lleva a cabo principalmente para identificar las vulnerabilidades de la base de datos y las vulnerabilidades del servidor junto con cualquier otra vulnerabilidad. Esta es la última etapa de las pruebas de seguridad que se llevaría a cabo. Por lo tanto, esto también incluye la verificación de defectos y riesgos informados anteriormente.
- Herramientas como Nessus, Nmap, HP Web Inspect, Burp Suite, ZAP que están disponibles en el mercado se utilizan para realizar Pen testing.
- El escaneo de aplicaciones web utilizando herramientas automatizadas y la explotación para una verificación adicional se realiza durante esta prueba. Las pruebas se realizan para simular el comportamiento del atacante real y, por lo tanto, también pueden incluir algunas pruebas negativas.
- Vulnerabilidad de la infraestructura La evaluación incluye escaneo, análisis y revisión de la configuración de seguridad de la infraestructura (redes, sistemas y servidores) para identificar las vulnerabilidades y verificar la resistencia contra los ataques dirigidos.
- Esto se lleva a cabo en un entorno de preproducción o similar a la producción, donde se prueba el software que está listo para implementarse y, por lo tanto, se simula el entorno en tiempo real.
- Las vulnerabilidades se identifican mediante escáneres y técnicas manuales para eliminar los falsos positivos. Además, se llevarán a cabo escenarios comerciales en tiempo real durante las pruebas manuales.
- Se producirá un informe final sobre todo el Análisis de Seguridad que se lleva a cabo para todo el programa, destacando el estado de los elementos de alto riesgo, si los hubiera.
Los escenarios de prueba de muestra incluyen,
- Para asegurarse de que los métodos HTTP vulnerables no estén habilitados.
- Para garantizar que la información confidencial de los otros usuarios no esté visible en texto claro en la red.
- Para garantizar que se implemente la validación de Carga de archivos para evitar la carga de un archivo malicioso.
Resumen tabular para SSDLC
La siguiente tabla resume los diferentes aspectos del análisis de seguridad que se explican anteriormente.
Fase SDLC | Análisis clave realizado | ¿Qué se hace exactamente en estas evaluaciones? | Aporte | Herramientas utilizadas | Producción |
---|---|---|---|---|---|
Requisitos | Para garantizar que los requisitos de seguridad se capturen de manera eficiente. | Se analizan los requisitos. | Documentos de requisitos / Historias de usuarios / Funciones | Manual | Los requisitos de seguridad se incluyen en las especificaciones de requisitos. |
Planificación | Equipo de seguridad que se configurará Estrategia de prueba de seguridad preparada. | Equipo identificado y configurado. Estrategia elaborada, revisada y aprobada con las partes interesadas. | Nulo | Manual | Configuración del equipo de seguridad con RnR y RACI definidos. Documento de estrategia de prueba de seguridad firmado. |
Diseño | Evaluación de riesgos de seguridad | Revisión de los documentos relacionados con el programa para identificar las fallas de seguridad. Discusión con el equipo. Se identifican los riesgos y se sugieren las mitigaciones. | Documentos relacionados con el proyecto: HLDD, LLDD. | Revisión manual | Riesgos de diseño identificados. Matriz de gestión de riesgos con mitigaciones sugeridas. |
Desarrollo | Análisis de código seguro (evaluación estática) | Los escáneres de seguridad están conectados a las máquinas del desarrollador. Herramienta de seguridad integrada con plantilla de construcción. | Código desarrollado | Automatizar escáneres (Fortify). Triaje manual de falsos positivos. | Defectos en el código de seguridad. Matriz de gestión de riesgos con mitigaciones. |
Implementación | Análisis de código dinámico (evaluación dinámica) | Realización de pruebas de seguridad de la aplicación. | Construcción unitaria probada Entorno de prueba dedicado | Herramientas de prueba de seguridad (HP WebInspect, Suite Burp, ZAP Triage manual de falsos positivos. | Defectos de análisis de código dinámico. Matriz de gestión de riesgos con mitigaciones. |
Prueba / implementación previa | Prueba de pluma, Infra VAPT | Pruebas de penetración e Infra VAPT utilizando escenarios en tiempo real. Verificación de riesgos / defectos notificados anteriormente. | Listo para implementar construir. Pre-producción o entorno de producción. | Herramientas de prueba de seguridad (Nessus, NMAP, HP WebInspect) Triaje manual de falsos positivos. | Matriz de gestión de riesgos con mitigaciones. Informe final de pruebas de seguridad con el estado de riesgo. |
Conclusión
Por lo tanto, la implementación de todos estos aspectos relacionados con la seguridad integrados en las diversas fases de SDLC ayuda a la organización a identificar los defectos de seguridad al principio del ciclo y permite a la organización implementar las mitigaciones adecuadas, evitando así la Defectos de seguridad de alto riesgo en el Live System.
El estudio también muestra que la mayoría de los defectos de seguridad se inducen en el software durante la etapa de desarrollo, es decir, durante la Fase de codificación , en el que la codificación no se ha ocupado suficientemente de todos los aspectos de seguridad, por cualquier motivo.
Idealmente, ningún desarrollador querría escribir un código incorrecto que comprometa la seguridad. Por lo tanto, para guiar a los desarrolladores sobre cómo escribir un software seguro, el próximo tutorial cubre Mejores prácticas y pautas de codificación para Desarrolladores, para garantizar una mejor Seguridad del Software.
¡Esperamos que este tutorial sobre Secure SDLC o SSDLC haya sido útil!
Lectura recomendada
- Fases, metodologías, procesos y modelos de SDLC (ciclo de vida de desarrollo de software)
- Las 10 mejores herramientas de prueba de seguridad de aplicaciones móviles en 2021
- 19 potentes herramientas de prueba de penetración utilizadas por profesionales en 2021
- Directrices de prueba de seguridad de aplicaciones móviles
- Pruebas de seguridad de red y las mejores herramientas de seguridad de red
- Pruebas de seguridad (una guía completa)
- Las 4 mejores herramientas de prueba de seguridad de código abierto para probar aplicaciones web
- Guía de pruebas de seguridad de aplicaciones web