13

Comparación de ciclos de vida de desarrollo de software seguro (S-SDLC)

1519Puntos

hace 5 años

Introducción a los S-SDLC
Hoy en día cualquier institución del ámbito público o privado, sin importar la actividad que realice o la magnitud de la misma, implementa en alguno de sus procesos soluciones de software, que van desde la publicación de su propia página para ofrecer servicios, hasta grandes módulos para la gestión de recursos con el objetivo de facilitar sus labores cotidianas.

Estas soluciones a lo largo de los años ponderaban su calidad o cumplimiento en base a la funcionalidad, por lo cual se implementaron diversas metodologías de desarrollo para elevar la calidad de los productos entregados. Una de ellas es el desarrollo en cascada, el cual se llevaba a cabo de forma lineal y secuencial. Conforme fue creciendo la demanda de generar software en el menor tiempo posible, dio inicio a una tendencia llamada “Software de gestión ágil” en el año 2001 y en años posteriores la adopción de la filosofía “Devops”.

Todas estas metodologías cumplían sus cometidos en cuanto a calidad y eficiencia en el tiempo de despliegue del desarrollo, pero se descuidaba un componente importante: la seguridad ante esa rapidez. En la mayoría de los casos cuando se concluye el desarrollo de un proyecto hasta ese momento específico es donde integramos mecanismos de protección, esta visión es totalmente errónea puesto que desde las primeras fases del desarrollo tenemos que integrar componente de seguridad, para que puedan defenderse en el mundo digital (nacidas para pelear).

Para (McGraw, Software Security, 2006) la seguridad en el software es una idea de la Ingeniería de Software que busca que un producto desarrollado continúe funcionando correctamente ante ataques maliciosos, es la construcción de software que puede resistir proactivamente los ataques, además que un aspecto crítico de los problemas de seguridad, son los problemas que presenta el software mismo.

Principales trabajos y estudios hasta la fecha.
La escasa implementación de mecanismos de seguridad en el desarrollo de software permite fácilmente que un ciberdelincuente afecte directamente a los pilares de la seguridad de la información como son la confidencialidad, integridad y disponibilidad, generado pérdidas económicas importantes, además afectar la reputación de la misma. Un ejemplo de ello es el caso de EQUIFAX.

Caso: EQUIFAX data breach (Buro de crédito EUA)
En septiembre del 2017 la empresa fue afectada por una brecha de seguridad importante, en la cual se filtraron 143 millones de registros que contenían información importante para la validar la identidad de una persona como nombres, direcciones, teléfonos y correos electrónicos. Los costos de Equifax vinculados al manejo de esta crisis podrían oscilar entre los 200 y 300 millones de dólares.

¿Cómo fue comprometida?
El ataque se llevó a cabo entre los meses de marzo-junio, aprovechando que existía una falla de seguridad de Apache Struts 2, el cual es un framework en JAVA, un componente de 3ro que no estaba actualizado en su desarrollo. Llama la atención que los desarrolladores de Struts 2 meses antes del ataque habían anunciado este desperfecto en su software y lanzaron una actualización de inmediato para remediarla.

Un poco de estadística
En un reporte de investigación realizado por verizon en el año 2017, una de las principales brechas de seguridad en los aplicativos webs son las relacionadas con el uso de credenciales robadas y SQL injection

Captura de Pantalla 2019-04-29 a la(s) 20.49.06.png

Dentro de la información más buscada por los ciberdelincuentes, está la relacionada con los datos personales, credenciales de autentificación y pagos.
Captura de Pantalla 2019-04-29 a la(s) 20.49.16.png

Algunos estudios por parte de empresas o instituciones expertas en estos temas, muestran el siguiente informe:

  • 75% de los accidentes de seguridad son causados por fallas en las aplicaciones (Gartner).
  • 92% de las vulnerabilidades se encuentran en las aplicaciones (NIST).
  • Del 2013, el top 3 de vulnerabilidades es el mismo (OWASP).
Captura de Pantalla 2019-04-29 a la(s) 20.49.41.png

Diferentes tipos de S-SDLC

  • MICROSOFT SDL: El ciclo de vida de desarrollo de seguridad (SDL) es una metodología para el control de seguridad orientado al desarrollo de software. Es una iniciativa por parte de Microsoft y una directiva obligatoria desde el año 2004.

  • BSIMM: Building In Maturity Model (BSIMM) es un modelo desarrollado en 2009 derivador de OpenSAMM (McGraw, Chess & Migues, 2009).
    Es un enfoque práctico basado en evidencia empírica y observación de datos de nueve iniciativas de seguridad de software de servicios financieros, proveedores de software independientes y firmas de tecnología (Adobe, EMC, QUALCOMM, Google, Wells Fargo, Microsoft, DTCC y otras dos compañías no reveladas). A diferencia de otras metodologías SSDL, no cuenta con compilación de buenas prácticas a nivel teórico. Es una colección de prácticas utilizadas en el mundo real.

  • CLASP: Es un conjunto de buenas prácticas para el desarrollo seguro de software desarrollado por varias compañías de seguridad que forman parte del consorcio OWASP (Open Web Application Security Project), que permite integrar en cualquier fase del SDLC independiente de la metodología implementada.

  • SAAM: Marco abierto para ayudar a las organizaciones a diseñar e implementar una estrategia para la creación de software seguro, es un modelo flexible que se adapta a la cada organización, independientemente del fabricante, el cual fue creado por Pravir Chanda OWASP CLASP Project Leader.

Continúa aprendiendo más de seguridad en el curso de Hacking Etico

Alan
Alan
ajbaeza

1519Puntos

hace 5 años

Todas sus entradas
Escribe tu comentario
+ 2
1
15103Puntos

Buena información. Seria interesante ver como se comporta el desarrollo y evaluar el resultado con respecto a la seguridad utilizando un Marco de trabajo como Scrum y CLASP.