DevSecOps: Producir software de forma rápida, continua y segura
Tabla de contenidos
DevSecOps es un modelo que permite a las empresas que desarrollan software integrar la seguridad en todo su ciclo de vida
¿Cuándo se tiene que garantizar la seguridad de las aplicaciones de software? La respuesta puede parecer obvia, pero es importante remarcarla: siempre. O, dicho de otra forma, a lo largo de todo su ciclo de vida, desde que se comienza a idear la solución hasta que se retira del mercado. Esto es lo que busca conseguir una práctica cada vez más relevante en el sector del desarrollo de software: DevSecOps.
Según OWASP, un auténtico referente global en la elaboración de metodologías en materia de ciberseguridad, el objetivo del enfoque DevSecOps es «detectar problemas de seguridad (por diseño o vulnerabilidad de la aplicación) lo antes posible». A ello habría que añadir que DevSecOps pretende realizar esta detección inmediata en todas las fases de desarrollo de software.
En este artículo, vamos a analizar la importancia de implementar DevSecOps y garantizar la seguridad de las aplicaciones de software a lo largo de todo su ciclo de vida, para prevenir incidentes de seguridad que amenacen la continuidad de negocio, menoscaben la reputación de una compañía y tengan consecuencias económicas y legales de gran envergadura.
1. ¿Qué se esconde detrás del concepto DevSecOps?
El concepto anglosajón DevSecOps es el resultado de sumar las palabras desarrollo (development), seguridad (security) y operaciones (operations). Precisamente, las prácticas DevSecOps abogan por aunar en un mismo marco de trabajo el desarrollo de software, las operaciones tecnológicas y la gestión de la infraestructura IT de una empresa, y la ciberseguridad de una organización. Este enfoque implica acabar con los compartimentos estancos y abordar la seguridad como una cuestión transversal al conjunto de una empresa y no como un ítem a cargo únicamente de un equipo de profesionales.
Para ello, es fundamental crear flujos de trabajo en los que se combinen actividades de desarrollo, seguridad y operaciones y permitan obtener información sólida para tomar decisiones en materia de securización del software a lo largo de su ciclo de vida.
Asimismo, también juega un papel fundamental la automatización de procesos y pruebas de seguridad, de cara a detectar vulnerabilidades de forma temprana desde las fases de desarrollo y despliegue, tratando de que nunca lleguen a entornos expuestos donde puedan ser explotadas por actores hostiles.
DevSecOps es un enfoque que se sustenta sobre la idea de que las empresas deben poner en marcha procesos optimizados que garanticen:
- Seguridad del código, verificando que ofrece capacidades defensivas adecuadas y no incluye vulnerabilidades identificadas.
- Seguridad de la cadena de suministro (librerías, contenedores…).
- Protección en tiempo de ejecución, para detectar vulnerabilidades antes de que sean explotadas con éxito.
Todos los profesionales involucrados en el desarrollo de software han de tener en cuenta las cuestiones de seguridad. Además, la seguridad no solo debe abordarse en las partes finales del desarrollo de software, sino desde el mismo momento en que comienza a planearse en su fase de diseño.
2. De DevOps a DevSecOps o cómo la seguridad emergió como un elemento vital de esta era
El concepto DevSecOps es la evolución natural de la metodología DevOps, empleada por los desarrolladores de software en los últimos años y que permite acelerar los ciclos de desarrollo y facilitar la entrega continua de soluciones.
Mediante la incorporación del concepto de seguridad, se busca que la entrega de software a clientes no solo sea rápida, sino también segura.
La metodología de trabajo DevOps busca poner en marcha procesos de integración, entrega e implementación continuas (CI/CD) de software, gracias al uso de herramientas para automatizar estos procesos. De tal manera que se crea un flujo conformado por prácticas de desarrollo y operaciones:
- Desarrollo:
- Plan
- Código
- Construcción
- Test
- Operaciones:
- Entrega
- Despliegue
- Operar
- Monitorear
Así se optimiza la obtención de feedback y se reducen los plazos de entrega, detectando y corrigiendo problemas en fases tempranas del desarrollo.
La metodología DevSecOps ha venido a incorporar el concepto de seguridad, dando paso a la inclusión de prácticas de seguridad a lo largo de todo el flujo de trabajo. Por ejemplo, a la hora de planear software, resulta conveniente realizar un modelado de amenazas. Mientras que en lo relativo al código, se ha de realizar un análisis del código estático en busca de prácticas inadecuadas de desarrollo que desemboquen en vulnerabilidades.
De esta forma, si se opta por un enfoque DevSecOps, las empresas pueden producir software de calidad, de manera rápida, continua y segura.
3. Beneficios de DevSecOps
Todo lo que hemos ido desgranando en este artículo se materializa en una serie de beneficios vinculados a la implementación de una metodología DevSecOps en el seno de una organización.
- Reducción de los tiempos de entrega y de los costes de producción de software. La clave del enfoque DevOps es agilizar el proceso de entrega de software, posibilitando el lanzamiento de más actualizaciones. A la vez, se logran reducir los gastos gracias a las automatizaciones y las mejoras de los flujos de trabajo entre los desarrolladores y los profesionales de los equipos de operaciones.
- Desarrollo de software seguro desde el diseño, previniendo problemas y evitando costes adicionales ligados a la mitigación de vulnerabilidades y a las actuaciones de respuesta y recuperación en caso de que se produzcan incidentes de seguridad.
- Optimización de la capacidad de detección y mitigación de las vulnerabilidades, optando por un enfoque proactivo en la búsqueda de debilidades que puedan ser explotadas por los actores hostiles.
- Adopción de una cultura de seguridad que sea transversal a toda la compañía y reduzca la posibilidad de que se produzca un incidente de seguridad a raíz de malas prácticas de un profesional de la empresa.
- Fortalecimiento de la seguridad de la cadena de suministro. Los ataques de cadena de suministro son una de las principales amenazas a las que se enfrentan las compañías que desarrollan software, pero también las empresas que emplean soluciones de terceros.
- Cumplir con un marco normativo cada vez más exigente en materia de ciberseguridad, sobre todo en lo relacionado con la protección de los datos y la resiliencia de las empresas que operan en sectores críticos como las finanzas, la energía o la salud.
4. La automatización como aliada a la hora de implementar un modelo DevSecOps
A lo largo de este artículo hemos hecho hincapié en uno de los aspectos esenciales de DevSecOps: la automatización.
Automatizar procesos permite a los desarrolladores producir software en menos tiempo y con menos costes. Pero, además, en lo que respecta a la seguridad, las automatizaciones permiten introducir controles de seguridad y definir métricas desde el inicio del ciclo de vida del software y realizar una tarea de monitorización permanente en busca de problemas.
Además, implementar un enfoque DevSecOps conlleva fortalecer la realización de pruebas de seguridad que permitan detectar y evaluar vulnerabilidades en todo el ciclo de vida del software y encontrar fallos de seguridad. Dependiendo de la fase del ciclo de vida y de los componentes analizados, se introducen distintos tipos de análisis: SAST, DAST, IAST, SCA, IaC, etc.
Precisamente, hoy en día, los profesionales de ciberseguridad pueden emplear herramientas y soluciones para automatizar la búsqueda de vulnerabilidades integrándose en los repositorios de código y en los procesos de integración continua del software (CI/CD).
En este sentido, es fundamental disponer de un Software Bill of Materials (SBOM) automatizado, es decir, un inventario de los elementos que se han empleado para desarrollar todos los componentes del software. Este inventario es imprescindible para analizar los elementos de terceros que se han usado en busca de vulnerabilidades, recurriendo a pruebas de seguridad como SCA y SAST.
Todas las ventajas ligadas a la automatización de procesos, controles y pruebas se han de ver complementadas con un servicio de asesoramiento integral a cargo de especialistas en ciberseguridad que ayuden a las empresas a analizar y priorizar la mitigación de vulnerabilidades y fallos en el ciclo de vida del software.
5. La fórmula Tarlogic: Realizar pruebas de seguridad usando Checkmarx One y asesoramiento integral
Precisamente, la división de ciberseguridad de Tarlogic Security ofrece un servicio para implementar DevSecOps que combina la realización de pruebas de seguridad de aplicaciones para evaluar el software empresarial de forma rápida y eficiente, con un asesoramiento integral para priorizar y mitigar las vulnerabilidades y poner en marcha las actuaciones necesarias para fortalecer las capacidades defensivas.
5.1. Pruebas de seguridad de aplicaciones
Como señalamos en el apartado anterior, efectuar pruebas de seguridad de aplicaciones (AST, Application Security Testing) es esencial para detectar cualquier problema de seguridad desde las primeras fases del desarrollo.
Por ello, Tarlogic ha suscrito un acuerdo con Checkmarx, empresa líder en la fabricación de tecnología para revisar aplicaciones, que permite a los profesionales de la compañía emplear la plataforma Checkmarx One para efectuar servicios de pruebas de seguridad de aplicaciones que incluyen:
- Análisis estático del código fuente (SAST), para analizar automáticamente el código fuente de una aplicación en busca de fallos o problemas.
- Análisis de composición de software (SCA), de cara a detectar vulnerabilidades en los componentes de código abierto usados en un determinado software.
- Seguridad de la cadena de suministro (SCS), una prueba que sirve para encontrar anomalías y prevenir los crecientes ataques de cadena de suministro.
- Prueba de seguridad de aplicaciones dinámicas (DAST), centrada en encontrar vulnerabilidades desconocidas durante la ejecución del software.
- Seguridad de APIs, mitigando los riesgos al eliminar las APIs fantasmas encontradas en el código fuente.
- Infraestructure-as-code-Security (IaC), para evaluar la infraestructura IT de cara a subsanar configuraciones inseguras.
- Seguridad de contendores, una prueba que permite analizar el estado de seguridad de los sistemas basados en contenedores.
5.2. Subsanar vulnerabilidades y reducir riesgos
La realización de estas pruebas de seguridad de forma continua para evaluar el software desde el diseño y a lo largo de su ciclo de vida permite a los profesionales de Tarlogic ayudar a las empresas a incrementar la protección de su software empresarial.
¿Cómo? Ofreciendo un asesoramiento integral para evaluar y priorizar las vulnerabilidades de cara a mitigarlas teniendo en cuenta el riesgo de explotación, su nivel de criticidad para el modelo de negocio y el impacto que puede suponer un incidente de seguridad.
De tal forma que la detección de fallos y problemas de seguridad da paso a una gestión eficiente de las vulnerabilidades para limitar el riesgo de sufrir un ciberataque e incrementar la resiliencia de una organización frente a las acciones de actores hostiles que buscan aprovecharse de debilidades del software para cumplir sus objetivos maliciosos: secuestrar o exfiltrar información confidencial, paralizar la actividad empresarial, menoscabar la reputación de la compañía…
El modelo DevSecOps evidencia la importancia de disponer de herramientas avanzadas para monitorear la infraestructura IT de forma continua y detectar vulnerabilidades, así como la necesidad de contar con profesionales altamente especializados en la optimización de las capacidades defensivas y la lucha contra las ciberamenazas.
6. DevSecOps, un enfoque para conjugar desarrollo, negocio y seguridad
Si la instauración del modelo DevOps supuso poner fin a la era de los compartimentos estancos y crear flujos de trabajo e integración y despliegue continuos, pasar de este enfoque a DevSecOps es crucial para lograr combinar prácticas eficientes en el desarrollo de software, cumplir con los objetivos de negocio y garantizar la seguridad de la infraestructura IT de una organización.
Frente a una concepción de la ciberseguridad como un elemento separado, DevSecOps aboga por situar a la seguridad en el corazón de la estrategia empresarial y ponerla en directa relación con el modelo de negocio de cada empresa. Todo ello, de forma continua y desde las fases iniciales de cualquier desarrollo de software.
6.1. OWASP y DevSecOps: Caminar hacia la madurez en la protección del software
Al inicio de este artículo, recurríamos a OWASP para definir la meta principal de un enfoque DevSecOps. Pues bien, esta fundación, a la vanguardia en la elaboración de metodologías y documentación al servicio de las empresas y los profesionales de ciberseguridad, está produciendo material de gran valor para ayudar a las compañías a implementar este enfoque en sus procesos de desarrollo de software:
- Una guía para implementar DevSecOps en el seno de una organización, securizar su proceso de desarrollo e instaurar una cultura de seguridad.
- DevSecOps Verification Standard (DSOVS), un marco de trabajo que sirve para definir los requerimientos de seguridad básicos que ha de cumplir una empresa que desarrolla software.
- DevSecOps Maturity Model (DSOMM), un framework que presenta las medidas de seguridad que se deben poner en marcha cuando se optar por una estrategia DevOps, de cara a anticiparse a los actores hostiles, cuyas tácticas, técnicas y procedimientos son cada vez más sofisticadas.
- Software Assurance Maturity Model (SAMM), un modelo que ayuda a las empresas y los expertos en ciberseguridad a analizar y mejorar el ciclo de vida de desarrollo seguro de software.
- Un futuro Top 10 de riesgos a tener en cuenta a la hora de implementar un modelo DevSecOps en una organización.
6.2. Un cambio de paradigma para situar a la seguridad en el centro de la estrategia empresarial
En definitiva, el enfoque DevSecOps se ha abierto paso en el terreno del desarrollo de software porque permite a las compañías:
- Poner en relación los objetivos de negocio con las necesidades de seguridad.
- Desplegar flujos de trabajo en el que participen profesionales de múltiples departamentos.
- Incorporar a expertos en seguridad en el inicio del ciclo de vida del software y no solo cuando este ya ha sido desarrollado.
- Emplear las automatizaciones para mejorar el monitoreo del software y la búsqueda de vulnerabilidades.
- Instaurar una cultura de la seguridad.
- Enfrentarse con éxito a un panorama de amenazas cada vez más complejo y a ciberataques altamente sofisticados.
¿Solo las grandes compañías pueden optar por un modelo DevSecOps? No, este enfoque es lo suficientemente abierto como para adaptarse a cualquier organización y la aparición de metodologías y frameworks como DSOMM y SAMM así lo evidencian.
Tarlogic Security pone a disposición de las empresas un equipo de profesionales altamente especializados en el modelo DevSecOps y en la puesta en marcha de pruebas de seguridad que permitan detectar vulnerabilidades y priorizar su mitigación para prevenir incidentes de seguridad.
El software debe analizarse y protegerse desde el diseño, de lo contrario, se abre la puerta a la aparición de vulnerabilidades explotables por los actores hostiles.