Global Technology

Seguridad en el ciclo de vida del desarrollo de software

SOC

Son diversos los motivos por los que las organizaciones están tomando conciencia de la importancia de asumir la seguridad como un elemento esencial en los procesos de negocio. Unos tienen que ver con el incremento de servicios expuestos en Internet, la utilización de plataformas en la nube, la globalización y la movilidad que llevan aparejados nuevos riesgos para los sistemas de información, mientras que otros están asociados al cumplimiento normativo. En ambos casos pueden tener impacto económico para la organización si no se adopta una adecuada estrategia de seguridad de la información. Los entornos de desarrollo son muy sensibles a estos nuevos retos y para afrontarlos se está apostando por la adopción de nuevos modelos y metodologías de trabajo orientados a la introducción de la cultura de la seguridad en todo el proceso de desarrollo.   Modelo de desarrollo seguro de aplicaciones Uno de los modelos que más aceptación está obteniendo es el del Ciclo de Vida de Desarrollo Seguro de Software, conocido por sus siglas en inglés como S-SDLC. Se trata de un conjunto de principios y buenas prácticas tendentes a detectar, prevenir y corregir defectos de seguridad en el desarrollo de aplicaciones, de forma que se obtenga software de confianza y robusto frente a ataques maliciosos, que realice solo las funciones para las que fue diseñado, que esté libre de vulnerabilidades y asegure cumplir con los tres pilares sobre los que se asienta la seguridad de la información: integridad, disponibilidad y confidencialidad. Fue Microsoft quien definió el modelo SDL (Security Development Lifecycle), introduciendo la seguridad y la privacidad en todas las fases del desarrollo. Posteriormente, surgieron otros como el Modelo de Madurez para el Aseguramiento de Software, más conocido como SAMM por sus siglas en inglés. Se trata de un marco de trabajo abierto y flexible que facilita la implementación de una estrategia de seguridad para el desarrollo de software diseñado por OWASP.   Estos modelos tienen su traslación en la metodología de trabajo DevSecOps que surge para integrar la seguridad en el proceso de desarrollo de software. De esta manera, los equipos de seguridad pasan a trabajar de forma conjunta con los de desarrollo y operaciones desde que se inicia el proceso de desarrollo hasta que se produce el despliegue. DevSecOps adopta los principios y buenas prácticas de seguridad para fomentar una cultura de seguridad, a la vez que introduce, como novedad, la utilización de herramientas para automatizar la ejecución de pruebas de seguridad. El esfuerzo requerido para resolver problemas de seguridad aumenta a medida que se avanza en el proceso de desarrollo de una aplicación. Mitigar una vulnerabilidad en una fase inicial del proyecto tiene un impacto mucho menor sobre su coste que si se intenta abordar una vez alcanzada la puesta en producción.   Tipos de herramientas para testear las aplicaciones Dependiendo de la fase en la que se aborde el análisis de las aplicaciones, las herramientas para automatizar este proceso se dividen en dos tipos: Herramientas SAST (Static Application Security Testing): estas permiten revisar el código fuente durante la fase de desarrollo de la aplicación y prevenir problemas de seguridad futuros. Herramientas DAST (Dynamic Application Security Testing): este tipo de herramientas permiten realizar el escaneo tras desplegar la aplicación, no necesitando tener acceso al código fuente. Se caracterizan por tener un menor número de falsos positivos, si bien su eficacia es menor según aumenta la complejidad de la arquitectura o las funcionalidades de la aplicación. Así mismo, la velocidad de escaneo es menor respecto a las herramientas SAST. Son muchas las ventajas que aporta la utilización de este tipo de herramientas. Por un lado, se consiguen acelerar los tiempos de entrega y se incrementa el nivel de seguridad. Por otro, gracias a estas herramientas se consigue alcanzar un mayor nivel de calidad en el producto final y, se evita incurrir en costes sobrevenidos tras su entrega motivados por la detección de incidencias de seguridad abordables en la fase de desarrollo.   Global Technology dispone de la tecnología y el equipo técnico experto para ayudar a las organizaciones a completar el ciclo de vida del desarrollo de software de forma segura a través de la realización de análisis SAST y DAST. Contacta con un especialista. José Antonio Barrio PuyoResponsable de SOC en Global Technology

SecDevOps, desarrollo seguro de software

SecDevOps: desarrollo seguro de software | Global Technology

SecDevOps es uno de los términos de moda en el mundo de la ciberseguridad, el puesto que más están solicitando las grandes organizaciones y el elemento fundamental para maximizar la seguridad de los aplicativos que utilizan. Pero ¿qué es SecDevOps? ¿A qué nos referimos cuando hablamos de implantar un servicio de este tipo? El desarrollo de software sigue, de un tiempo a esta parte, un ciclo de vida de entrega continua, fruto de la necesidad de adaptarse a las exigencias del mercado y las continuas correcciones que hay que ir realizando a medida que van apareciendo errores, bien sea por fallos en la programación en sí, bien por adaptarse a requerimientos cambiantes del cliente. Ese ciclo de vida de desarrollo del software (SDLC), que puede realizarse de muy diversas maneras, consta de distintas fases que pueden resumirse en: Planificación y diseño Programación Pruebas Lanzamiento Despliegue Operaciones y configuración Monitorización y detección de fallos (y vuelta a empezar) Este era al menos el enfoque, digamos, tradicional. Es el sistema DevOps (Dev, developers (desarrolladores); Ops, operations (operaciones)). En este enfoque, normalmente hasta la fase de despliegue (o como máximo la de lanzamiento) no se introducen las pruebas de comprobación de seguridad del software que se está desarrollando. El problema es que es un estado demasiado avanzado de desarrollo que lo que implica es constituir un cuello de botella importante a la hora de que el ciclo de desarrollo y entrega continuo se mantenga. Además, no solo provoca ese cuello de botella retrasando la entrega, sino que supone un incremento de costes importante si se descubren vulnerabilidades serias, pues hay que rehacer el proyecto desde el principio con todo lo que ello supone. El enfoque SecDevOps lo que promueve es adelantar la introducción de la seguridad en el ciclo de desarrollo de software. Hasta el punto de considerarla en todo él, desde el mismo momento del diseño. Las ventajas son más que evidentes: se elimina el cuello de botella, al no retrasar las comprobaciones de seguridad y se reducen los costes de desarrollo. Al tener presente la seguridad desde el mismo diseño, se limitan enormemente las vulnerabilidades encontradas en las fases posteriores y, por lo tanto, no se retrasa la entrega continua, minimizando así los costes por desviaciones en el proyecto. Para llegar a maximizar los beneficios de implantar el enfoque SecDevOps no solo debemos incorporar los controles de seguridad al ciclo de vida de desarrollo de software, sino también extender y promover una cultura de programación segura dentro de la organización. Los desarrolladores tradicionalmente se centran en la funcionalidad. Cuando se les pide algo es siempre para conseguir un resultado y ese es, lógicamente, su principal objetivo. Sin embargo, el modo en que se desarrolle ese software, las versiones de lenguajes, librerías y APIs que utilicen, la forma de diseñar los flujos de información, la forma de encriptarla, cómo se gestionan las cookies, los mensajes de error que se presentan al usuario… todo influye en la seguridad del aplicativo que se está desarrollando y, por tanto, influirá directamente en minimizar el coste final de obtener un software que sea realmente seguro y exento de vulnerabilidades. El éxito de la implantación de un modelo SecDevOps radica en tres pilares fundamentales: Introducción de la seguridad desde el mismo momento del diseño y en todas las fases del ciclo de vida del software (security by design) Fomento de una cultura de desarrollo seguro entre los desarrolladores (tanto internos como externos) mediante formación adecuada e información constante sobre guías y recomendaciones (OWASP, IEE, SANS). Uso de herramientas de análisis de código para poder tener control absoluto de la evolución de las vulnerabilidades, las mejoras necesarias y el esfuerzo en horas/hombre necesarias para corregirlas. Un último beneficio que aporta el modelo SecDevOps en una organización es servir de nexo de unión para dos departamentos entre los que frecuentemente existen roces, como son desarrollo y operaciones (sistemas). La necesidad de coordinar ambos departamentos a la hora de detectar, analizar y corregir las distintas vulnerabilidades e introducir esas modificaciones en el ciclo de entrega continua, redunda en una mejora del trabajo en equipo, la comprensión y el entendimiento entre ellos. La seguridad está aquí para quedarse, imbuyéndose en todos los procesos tradicionales de una organización para garantizar la protección de la información con la que se trabaja. Si hablamos de equipos de desarrollo en la empresa, el futuro solo tiene un nombre: el modelo SecDevOps. Global TechnologySomos una compañía especializada en Seguridad, Ciberseguridad e Inteligencia empresarial, que mediante los últimos avances tecnológicos, garantizamos la seguridad y confianza que nuestros clientes necesitan. globalt4e.com