DevSecOps
En el ámbito del desarrollo ágil de software, la seguridad de los productos adquiere un papel cada vez más importante. En una época en la que, tanto la integración, como las entregas, aspiran a ser continuas (continuous integration, continuous delivery), no debe menospreciarse el desafío que supone el proceso de desarrollo. Por este motivo, cada vez más empresas adoptan el enfoque DevOps, que entrelaza desde el inicio los procesos de desarrollo (development) y los de ejecución o de operaciones (operations), y lo amplían con componentes de seguridad (security): de ahí el acrónimo DevSecOps. Se trata, por lo tanto, de una solución a muchos problemas del día a día en las compañías de software y que, además, tiene en cuenta tanto las expectativas de velocidad, como las de seguridad, en el desarrollo del producto.
DevSecOps – Definición
DevSecOps permite utilizar de manera óptima la agilidad y la rapidez de reacción que ofrece el enfoque DevOps. En este sistema, los mecanismos de seguridad están integrados en el proceso ya desde el inicio del desarrollo. Esta es una de las claras diferencias entre el sistema DevSecOps y los enfoques convencionales, en los que los equipos de seguridad suelen aplicar las medidas correspondientes una vez se ha finalizado el producto en sí.
¿En qué concepto se basa DevSecOps?
Con el método DevSecOps, la máxima seguridad está también garantizada cuando se trabaja con los métodos ágiles y rápidos de desarrollo ligados a la entrega continua o continuous delivery y a la integración continua o continuous integration. Para lograrlo, los requisitos de seguridad, que suelen ser muy altos, deben formar parte del proceso ya desde la fase de programación. En este sentido, es esencial que haya una muy buena comunicación entre los equipos encargados de la seguridad, del desarrollo y de las operaciones informáticas. Por este motivo, el carácter interdisciplinar del proceso es clave para lograr una buena implementación.
¿Por qué es DevSecOps tan importante?
Desde hace algunos años, la seguridad viene ganando cada vez más importancia en el ámbito del desarrollo de software. En especial, cuando se trata de procesos cortos de desarrollo, que tienen que producirse cada vez con más rapidez entre las versiones, el cumplimiento de los estándares de seguridad es todo un desafío. En este contexto, si se deja la seguridad para el final, tras la fase de desarrollo en sí, puede que no se logre alcanzar tales estándares. En muchos casos, las empresas tienen que elegir entre un alto nivel de seguridad, que requiere una gran inversión de tiempo, o ciclos cortos de lanzamiento que renuncian a la seguridad. Ante estas opciones, muchas compañías se deciden por la segunda. DevSecOps, en cambio, ofrece una solución que reúne las ventajas de las dos anteriores: un alto nivel de seguridad y ciclos cortos de lanzamiento de productos.
¿Cómo consigue DevSecOps beneficiar tanto a los clientes, como a las empresas?
Los métodos más antiguos de integración de mecanismos y protocolos de seguridad no tienen parangón con sus nuevos y más rápidos equivalentes del desarrollo ágil de software. Para conseguir la seguridad necesaria en procesos cortos de desarrollo y de lanzamiento, es imprescindible integrar activamente los aspectos de seguridad y concederles importancia ya desde la fase de desarrollo del software. Desafortunadamente, solo algunas empresas se ajustan a este principio. En las que no lo hacen, la negligencia se descubre fácilmente: como resultado, en algunos productos con ciclos cortos de desarrollo se deja la seguridad de lado y las consecuentes brechas deben repararse luego, de emergencia y de forma provisoria, con los llamados one-day patches.
Para garantizar altos estándares de seguridad, por lo tanto, las compañías tienen dos opciones: o bien pagar el precio, como hasta ahora, de los largos ciclos de desarrollo, o bien aplicar el método DevSecOps para lograr el objetivo deseado.
DevSecOps en la práctica: un ejemplo
Podemos presentar los conceptos explicados hasta ahora con un práctico ejemplo del día a día de un usuario particular. Imaginemos una aplicación de contabilidad que permite gestionar ingresos y gastos desde el smartphone: registrarlos, clasificarlos y marcarlos con distintos colores, por ejemplo. Puesto que no se trata de datos muy sensibles, los aspectos de seguridad no tienen mucha relevancia.
Sin embargo, si la aplicación luego se amplía con una función que permita escanear y procesar automáticamente tiques de compra, la cosa cambia: se estarían entonces recogiendo y analizando muchos datos en servidores, por lo que sería muy importante la seguridad en la comunicación y el procesamiento de los datos. En un caso como este, relegar los mecanismos de seguridad al final del proceso retrasaría el lanzamiento de la nueva función quizá medio año.
Supongamos ahora que queremos añadir otra función a la aplicación: la integración de los gastos realizados online. Se trata, en este caso, de procesar datos extremadamente sensibles, de manera que la implementación de los estándares de seguridad necesarios puede llegar a durar más de un año. Este periodo de tiempo le daría mucha ventaja a la competencia, de forma que el producto en cuestión probablemente habría perdido interés al llegar al mercado.
Con la metodología DevSecOps, en cambio, los mecanismos de seguridad se integran ya en las fases de programación y de desarrollo. De esta forma, el plazo hasta el lanzamiento puede acortarse enormemente sin tener que renunciar a la seguridad. De hecho, el nivel de seguridad incluso suele aumentar al incorporar las medidas correspondientes ya desde la programación, en lugar de aplicarlas a modo de kit de seguridad sobre el producto ya cerrado. De esta forma, la empresa se beneficia de ciclos más cortos entre las versiones y los usuarios, por su parte, de las actualizaciones frecuentes del software.
Ventajas de DevSecOps en el proceso de desarrollo
Las ventajas que ofrece DevSecOps saltan a la vista. Las empresas que, guiándose por el aumento de la demanda de nuevos productos y los desafíos del mercado, deciden aplicar el moderno sistema DevOps al desarrollo de sus productos, suelen alcanzar velocidades inesperadas en la producción y lanzamiento de nuevas versiones. Sin embargo, este método, por sí solo, no tiene en cuenta las medidas de seguridad, que por lo general suelen integrarse posteriormente, una vez el producto ya está acabado. Esta manera de proceder no solo puede causar problemas en el funcionamiento del software, sino que también suele alargar mucho los plazos hasta su lanzamiento al mercado.
Por el contrario, si se integran los elementos de seguridad ya desde la fase de desarrollo, los resultados son otros: el proceso apenas se alarga, ya que las cuestiones de seguridad también pueden someterse a la automatización y a los mecanismos de seguimiento. Además, los distintos equipos encargados del desarrollo y de las operaciones se familiarizan con los factores de seguridad y los aplican desde el inicio, previniendo así posibles brechas de seguridad. De esta manera, en poco tiempo se crean versiones de software seguras y estables, que pueden ponerse directamente a disposición de los clientes. Así, tanto los clientes, como las empresas, se benefician de las nuevas posibilidades.
Inconvenientes y dificultades de DevSecOps
Al igual que ocurre con DevOps, que DevSecOps se implemente de forma adecuada y eficiente depende de cómo se adapten los equipos y miembros de la empresa al cambio que supone. Sin una estructura empresarial abierta e interconectada que facilite la comunicación entre equipos y departamentos, el concepto de DevSecOps no puede funcionar. Por este motivo, es importante que la dirección, además de comunicar las ventajas que el nuevo sistema trae consigo, involucre a los distintos departamentos y a los trabajadores en la toma de decisiones que conlleven cambios.
El posible rechazo de algunos trabajadores hacia el nuevo sistema (por ejemplo, si se opusiesen a incluir a expertos en seguridad en el proceso de desarrollo) podría complicar mucho el proceso.
En resumen: una buena implementación ofrece muchas ventajas
La implementación de medidas importantes de seguridad tiene un papel esencial en el ámbito del desarrollo de software y también, directamente, en las operaciones informáticas. Relegar las medidas de seguridad hasta el final del desarrollo no solo implica atrasar en mayor medida el lanzamiento del producto, sino que abre la puerta a posibles fallos que quizá no pueda solucionar siquiera una revisión exhaustiva. Con la metodología DevSecOps, en cambio, se incorporan elementos de seguridad ya desde la fase de desarrollo del programa, así como de las actualizaciones y de las nuevas versiones: de esta manera se acortan los plazos necesarios para crear un producto seguro y, gracias a los controles automatizados, la calidad aumenta considerablemente. Por ello, la mejor manera en la que las empresas pueden aprovechar las ventajas del concepto DevOps es implementando, conjuntamente, DevSecOps, es decir, incorporando medidas de seguridad al software y a los datos desde el inicio de su desarrollo.