Desarrollo de Software Seguro

Computadora

Es un modelo de trabajo que se basa en la realización de exploraciones de seguridad continuas dentro de la construcción de un proyecto, es decir desde sus fases iniciales y antes de que se escriba una sola línea de código. Estas pruebas se centran en descubrir y corregir cualquier error en una etapa temprana y comprenden tests de autenticación, autorización, confidencialidad, integridad, estabilidad, no repudio, disponibilidad o resiliencia.

El objetivo es asegurarnos de que impediremos el acceso al programa y a los datos almacenados por parte de los usuarios.

Ciclo de vida de desarrollo de seguridad 

El seguimiento de procedimientos recomendados para el desarrollo de software seguro requiere la integración de seguridad en cada fase del ciclo de vida de desarrollo, del análisis de requisitos al mantenimiento, independientemente de la metodología de proyecto.

Como resultado de infracciones de datos de alto perfil y el aprovechamiento de brechas de seguridad operativa, cada vez más desarrolladores comprenden que la seguridad se debe abordar a lo largo de todo el proceso de desarrollo.

Las fases para el desarrollo de Software seguro son las siguientes

  • Capacitación
  • Requerimientos
  • Diseño
  • Implementación
  • Comprobación
  • Resultados
  • Lanzamiento

Metodologías 

Las metodologías de desarrollo seguro de software sitúan a la seguridad en el centro del proceso.

Existen distintos modelos, concebidos por grandes compañías, organizaciones nacionales y bajo paradigmas de código abierto.

  • S-SDLC (Secure Software Development Life Cycle). Se basa en verificar los requisitos de seguridad a lo largo de las distintas fases de construcción del software: análisis, diseño, desarrollo, pruebas y mantenimiento. Sobre todo, durante las dos primeras, ya que gran parte de las debilidades de los sistemas se generan incluso antes de comenzar las tareas de programación. Las claves del S-SDLC son la atención al detalle, para favorecer la identificación inmediata de las vulnerabilidades; y la mejora continua.
  • CLASP (Comprehensive Lightweight Application Security Process): Proyecto del OWASP que establece una serie de actividades, roles y buenas prácticas dirigidas a coordinar los procesos de desarrollo seguro de software. La organización OWASP CLASP se asienta en cinco perspectivas o vistas que abordan los conceptos generales de esta metodología, la distribución de funciones, la valoración de las actividades aplicables, la implementación de estas actividades, y el listado de problemas que pueden dar lugar a la aparición de vulnerabilidades.
  • SSDF (Secure Software Development Framework): Iniciativa del NIST (National Institute of Standards and Technology de Estados Unidos), provee indicaciones para evangelizar a la organización acerca de la importancia de la seguridad informática; proteger el software de uso habitual ante hipotéticos ataques; orquestar un desarrollo seguro de software; y detectar y solucionar con rapidez cualquier vulnerabilidad.
  • Pushing Left, Like a Boss: Serie de artículos en línea donde se describen los distintos tipos de actividades de seguridad de aplicaciones que los desarrolladores deben seguir para crear código más seguro.
  • Plataforma de identidad de Microsoft: Se trata de una plataforma completa que consiste en un servicio de autenticación, bibliotecas de código abierto, registro y configuración de aplicaciones, documentación completa para desarrolladores, ejemplos de código y otro contenido. La plataforma de identidad de Microsoft admite protocolos estándar del sector tales como OAuth 2.0 y OpenID Connect.

Cualquier paso en falso puede develar datos personales o dejar un software a merced de mentes malintencionadas. Por ello, es imprescindible tener presentes las técnicas de desarrollo seguro de software en todo momento y en proyectos de todo tipo.

 

Fuente: Microsoft Documentación