imagen de una prueba de la euroncap en la que se golpea un coche por un costado para ponerlo a prueba
Auditoría de código,  Desarrollo seguro

Desarrollo de software seguro S-SDLC

La gestión de desarrollo de software seguro S-SDLC, las auditorías de código y el concepto de código seguro, hacen referencia al simple concepto de controlar la seguridad en el desarrollo de software. Actualmente en el mundo del desarrollo de software el control de calidad ha calado en mayor o menor medida en cada empresa, sabemos que lo barato sale caro.

Por otro lado el control de seguridad sigue sonando exótico y continúa siendo la asignatura pendiente. En este articulo vamos a ver como unos requisitos mínimos de seguridad son un objetivo asequible. Lejos de reinventar la rueda, el desarrollo seguro se adapta al ciclo de vida tradicional del desarrollo de software a la perfección.

diagrama con las 5 etapas del ciclo de vida de desarrollo de software tradicional S-SDLC

El desarrollo de software es un proceso de ingeniería muy maduro históricamente, que tiene como metodología básica el ciclo de vida del desarrollo de software. Este ciclo que tiene diferentes modelos de aplicación, siempre consta de cinco etapas tradicionales.

Es por ello que vamos a describir qué tareas principales implica la gestión de la seguridad, atendiendo a esta división tradicional. Siguiendo con cada una de las etapas del desarrollo de software. A través de una breve descripción de la metodología S-SDLC (Secure Software Development Life Cycle).

– Análisis

El análisis es la primera etapa de desarrollo de software. En esta identificamos y definimos qué requisitos deberá cumplir el desarrollo, tanto requisitos funcionales como orgánicos. Debemos visualizar los requisitos mínimos de calidad que deberá cumplir el futuro componente software.

Asimismo no nos olvidemos de los requisitos de seguridad que debe cumplir este software para ser válido y completo. En desarrollo de software seguro S-SDLC, este es el momento de revisar que todos los requisitos cumplen las políticas y normativa de seguridad.

Igualmente identificamos y definimos lo mejor posible, los propios requisitos de seguridad que debe garantizar el sistema. Un ejemplo son los requisitos que garantizan concretamente la protección de datos, bajo el reglamento general de protección de datos (GDPR).

imagen que hace referencia al análisis y diseño

– Diseño

Durante la fase de diseño, es importante contemplar la seguridad tanto en el análisis funcional, como en el análisis orgánico y su arquitectura propuesta. En esta fase estimaremos la envergadura del proyecto, además realizaremos la identificación, definición y priorización de riesgos. Como resultado, la seguridad debe formar parte del propio diseño del proyecto.

Que este punto de vista seguro esté presente desde etapas tempranas, nos facilitara y ahorrara mucho trabajo posterior

Múltiples normativas recogen este principio de seguridad desde el diseño y por defecto, además de una evaluación de riesgos. Por ejemplo en lo relativo a protección de datos, el nuevo Reglamento General de Protección de Datos (GDPR) hace mención expresa a ello en los artículos 25 “Data protection by design and by default”.

taza con una broma sobre programadores

– Desarrollo

La tercera parte del desarrollo de software seguro S-SDLC es el propio desarrollo. En esta fase se realizarán auditorías del componente software, la principal actividad llevada a cabo en la gestión de desarrollo seguro:

  • Las auditorías de código o auditorías de tipo estático (SAST), serán las primeras en realizarse, ya que pueden realizarse en cualquier momento e irán indicando al equipo de desarrollo las normas y buenas prácticas que deberán cumplir. Realizando estas auditorías con cierta frecuencia detectaremos posibles desviaciones.
  • Las auditorias de tipo dinámico (DAST), también serán una herramienta básica que nos arrojará valiosos resultados, aunque para este tipo de auditoría se requerirá tener disponible una versión del sistema ejecutándose. En este tipo de auditoría detectaremos vulnerabilidades y podremos simular los posibles ataques comprometiendo la integridad, disponibilidad o confidencialidad del sistema.

Ambos tipos de auditoria son complementarias y necesarias. Suponen un método de búsqueda de vulnerabilidades completamente diferente y arrojan resultados independientes una de otra.

– Pruebas

Más tarde en la fase de pruebas seguirá siendo el momento para las auditorías de código. El código seguirá cambiando como mínimo con desarrollos correctivos. En esta fase es más fácil realizar las auditorías de tipo dinámico por que disponemos de entornos de ejecución del sistema en versiones cercanas a la final. Será especialmente importante validar las versiones candidatas de paso a producción.

Finalmente, en este etapa de la producción software el análisis de riesgos debe estar contrastado y terminado. En consecuencia los riesgos habrán sido valorados y planificados por completo. Es importante trasladar a la dirección del proyecto aquellos riesgos que no hubieran sido completamente eliminados. Con esto podrán tomarse medidas ajenas al propio desarrollo, o aceptar estos riesgos.

imagen haciendo referencia a pruebas y mantenimiento, desarrollo de software seguro

– Mantenimiento

Por último la fase de mantenimiento requerirá de monitorización continua y definición de protocolos preventivos y reactivos ante incidentes de seguridad. Aquí hay una clara distinción entre las fases previas en las que se produce el software y esta fase final en la que se mantiene. En esta fase se requieren los servicios de un centro de operaciones de seguridad que controle los riesgos.

Conclusiones

La ciberseguridad cada vez tiene más repercusión y más importancia en la toma de decisiones. El mundo del desarrollo de software está en mejora continua y se adapta con agilidad a los nuevos requisitos, el control de seguridad no debe ser un aspecto a descuidar.

Espero que este artículo sirva como punto de partida para profundizar en esta interesante y agradecida característica del software.

Referencias y recursos para profundizar más en el tema

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

error

Enjoy this blog? Please spread the word :)

error: