En el ámbito del de­sa­rro­llo ágil de software, la seguridad de los productos adquiere un papel cada vez más im­po­r­ta­n­te. En una época en la que, tanto la in­te­gra­ción, como las entregas, aspiran a ser continuas (co­n­ti­nuous in­te­gra­tion, co­n­ti­nuous delivery), no debe me­no­s­pre­ciar­se el desafío que supone el proceso de de­sa­rro­llo. Por este motivo, cada vez más empresas adoptan el enfoque DevOps, que entrelaza desde el inicio los procesos de de­sa­rro­llo (de­ve­lo­p­me­nt) y los de ejecución o de ope­ra­cio­nes (ope­ra­tio­ns), y lo amplían con co­m­po­ne­n­tes 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 ex­pe­c­ta­ti­vas de velocidad, como las de seguridad, en el de­sa­rro­llo del producto.

DevSecOps – De­fi­ni­ción

DevSecOps permite utilizar de manera óptima la agilidad y la rapidez de reacción que ofrece el enfoque DevOps. En este sistema, los me­ca­ni­s­mos de seguridad están in­te­gra­dos en el proceso ya desde el inicio del de­sa­rro­llo. Esta es una de las claras di­fe­re­n­cias entre el sistema DevSecOps y los enfoques co­n­ve­n­cio­na­les, en los que los equipos de seguridad suelen aplicar las medidas co­rre­s­po­n­die­n­tes una vez se ha fi­na­li­za­do el producto en sí.

¿En qué concepto se basa DevSecOps?

Con el método DevSecOps, la máxima seguridad está también ga­ra­n­ti­za­da cuando se trabaja con los métodos ágiles y rápidos de de­sa­rro­llo ligados a la entrega continua o co­n­ti­nuous delivery y a la in­te­gra­ción continua o co­n­ti­nuous in­te­gra­tion. Para lograrlo, los re­qui­si­tos de seguridad, que suelen ser muy altos, deben formar parte del proceso ya desde la fase de pro­gra­ma­ción. En este sentido, es esencial que haya una muy buena co­mu­ni­ca­ción entre los equipos en­ca­r­ga­dos de la seguridad, del de­sa­rro­llo y de las ope­ra­cio­nes in­fo­r­má­ti­cas. Por este motivo, el carácter in­te­r­di­s­ci­pli­nar del proceso es clave para lograr una buena im­ple­me­n­ta­ción.

¿Por qué es DevSecOps tan im­po­r­ta­n­te?

Desde hace algunos años, la seguridad viene ganando cada vez más im­po­r­ta­n­cia en el ámbito del de­sa­rro­llo de software. En especial, cuando se trata de procesos cortos de de­sa­rro­llo, que tienen que pro­du­ci­r­se cada vez con más rapidez entre las versiones, el cu­m­pli­mie­n­to de los es­tá­n­da­res de seguridad es todo un desafío. En este contexto, si se deja la seguridad para el final, tras la fase de de­sa­rro­llo en sí, puede que no se logre alcanzar tales es­tá­n­da­res. 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 la­n­za­mie­n­to 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 an­te­rio­res: un alto nivel de seguridad y ciclos cortos de la­n­za­mie­n­to de productos.

¿Cómo consigue DevSecOps be­ne­fi­ciar tanto a los clientes, como a las empresas?

Los métodos más antiguos de in­te­gra­ción de me­ca­ni­s­mos y pro­to­co­los de seguridad no tienen parangón con sus nuevos y más rápidos equi­va­le­n­tes del de­sa­rro­llo ágil de software. Para conseguir la seguridad necesaria en procesos cortos de de­sa­rro­llo y de la­n­za­mie­n­to, es im­pre­s­ci­n­di­ble integrar ac­ti­va­me­n­te los aspectos de seguridad y co­n­ce­de­r­les im­po­r­ta­n­cia ya desde la fase de de­sa­rro­llo del software. Des­afo­r­tu­na­da­me­n­te, solo algunas empresas se ajustan a este principio. En las que no lo hacen, la ne­gli­ge­n­cia se descubre fá­ci­l­me­n­te: como resultado, en algunos productos con ciclos cortos de de­sa­rro­llo se deja la seguridad de lado y las co­n­se­cue­n­tes brechas deben repararse luego, de eme­r­ge­n­cia y de forma pro­vi­so­ria, con los llamados one-day patches.

Para ga­ra­n­ti­zar altos es­tá­n­da­res de seguridad, por lo tanto, las compañías tienen dos opciones: o bien pagar el precio, como hasta ahora, de los largos ciclos de de­sa­rro­llo, o bien aplicar el método DevSecOps para lograr el objetivo deseado.

DevSecOps en la práctica: un ejemplo

Podemos presentar los conceptos ex­pli­ca­dos hasta ahora con un práctico ejemplo del día a día de un usuario pa­r­ti­cu­lar. Ima­gi­ne­mos una apli­ca­ción de co­n­ta­bi­li­dad que permite gestionar ingresos y gastos desde el sma­r­t­pho­ne: re­gi­s­trar­los, cla­si­fi­car­los y marcarlos con distintos colores, por ejemplo. Puesto que no se trata de datos muy sensibles, los aspectos de seguridad no tienen mucha re­le­va­n­cia.

Sin embargo, si la apli­ca­ción luego se amplía con una función que permita escanear y procesar au­to­má­ti­ca­me­n­te tiques de compra, la cosa cambia: se estarían entonces re­co­gie­n­do y ana­li­za­n­do muchos datos en se­r­vi­do­res, por lo que sería muy im­po­r­ta­n­te la seguridad en la co­mu­ni­ca­ción y el pro­ce­sa­mie­n­to de los datos. En un caso como este, relegar los me­ca­ni­s­mos de seguridad al final del proceso re­tra­sa­ría el la­n­za­mie­n­to de la nueva función quizá medio año.

Su­po­n­ga­mos ahora que queremos añadir otra función a la apli­ca­ción: la in­te­gra­ción de los gastos rea­li­za­dos online. Se trata, en este caso, de procesar datos ex­tre­ma­da­me­n­te sensibles, de manera que la im­ple­me­n­ta­ción de los es­tá­n­da­res de seguridad ne­ce­sa­rios puede llegar a durar más de un año. Este periodo de tiempo le daría mucha ventaja a la co­m­pe­te­n­cia, de forma que el producto en cuestión pro­ba­ble­me­n­te habría perdido interés al llegar al mercado.

Con la me­to­do­lo­gía DevSecOps, en cambio, los me­ca­ni­s­mos de seguridad se integran ya en las fases de pro­gra­ma­ción y de de­sa­rro­llo. De esta forma, el plazo hasta el la­n­za­mie­n­to puede acortarse eno­r­me­me­n­te sin tener que renunciar a la seguridad. De hecho, el nivel de seguridad incluso suele aumentar al in­co­r­po­rar las medidas co­rre­s­po­n­die­n­tes ya desde la pro­gra­ma­ción, en lugar de apli­car­las 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 ac­tua­li­za­cio­nes fre­cue­n­tes del software.

Ventajas de DevSecOps en el proceso de de­sa­rro­llo

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 de­sa­rro­llo de sus productos, suelen alcanzar ve­lo­ci­da­des ine­s­pe­ra­das en la pro­du­c­ción y la­n­za­mie­n­to de nuevas versiones. Sin embargo, este método, por sí solo, no tiene en cuenta las medidas de seguridad, que por lo general suelen in­te­grar­se po­s­te­rio­r­me­n­te, una vez el producto ya está acabado. Esta manera de proceder no solo puede causar problemas en el fu­n­cio­na­mie­n­to del software, sino que también suele alargar mucho los plazos hasta su la­n­za­mie­n­to al mercado.

Por el contrario, si se integran los elementos de seguridad ya desde la fase de de­sa­rro­llo, los re­su­l­ta­dos son otros: el proceso apenas se alarga, ya que las cue­s­tio­nes de seguridad también pueden someterse a la au­to­ma­ti­za­ción y a los me­ca­ni­s­mos de se­gui­mie­n­to. Además, los distintos equipos en­ca­r­ga­dos del de­sa­rro­llo y de las ope­ra­cio­nes se fa­mi­lia­ri­zan con los factores de seguridad y los aplican desde el inicio, pre­vi­nie­n­do así posibles brechas de seguridad. De esta manera, en poco tiempo se crean versiones de software seguras y estables, que pueden ponerse di­re­c­ta­me­n­te a di­s­po­si­ción de los clientes. Así, tanto los clientes, como las empresas, se be­ne­fi­cian de las nuevas po­si­bi­li­da­des.

In­co­n­ve­nie­n­tes y di­fi­cu­l­ta­des de DevSecOps

Al igual que ocurre con DevOps, que DevSecOps se im­ple­me­n­te de forma adecuada y eficiente depende de cómo se adapten los equipos y miembros de la empresa al cambio que supone. Sin una es­tru­c­tu­ra em­pre­sa­rial abierta e in­te­r­co­ne­c­ta­da que facilite la co­mu­ni­ca­ción entre equipos y de­pa­r­ta­me­n­tos, el concepto de DevSecOps no puede funcionar. Por este motivo, es im­po­r­ta­n­te que la dirección, además de comunicar las ventajas que el nuevo sistema trae consigo, involucre a los distintos de­pa­r­ta­me­n­tos y a los tra­ba­ja­do­res en la toma de de­ci­sio­nes que conlleven cambios.

El posible rechazo de algunos tra­ba­ja­do­res hacia el nuevo sistema (por ejemplo, si se opusiesen a incluir a expertos en seguridad en el proceso de de­sa­rro­llo) podría complicar mucho el proceso.

En resumen: una buena im­ple­me­n­ta­ción ofrece muchas ventajas

La im­ple­me­n­ta­ción de medidas im­po­r­ta­n­tes de seguridad tiene un papel esencial en el ámbito del de­sa­rro­llo de software y también, di­re­c­ta­me­n­te, en las ope­ra­cio­nes in­fo­r­má­ti­cas. Relegar las medidas de seguridad hasta el final del de­sa­rro­llo no solo implica atrasar en mayor medida el la­n­za­mie­n­to del producto, sino que abre la puerta a posibles fallos que quizá no pueda so­lu­cio­nar siquiera una revisión exhau­s­ti­va. Con la me­to­do­lo­gía DevSecOps, en cambio, se in­co­r­po­ran elementos de seguridad ya desde la fase de de­sa­rro­llo del programa, así como de las ac­tua­li­za­cio­nes y de las nuevas versiones: de esta manera se acortan los plazos ne­ce­sa­rios para crear un producto seguro y, gracias a los controles au­to­ma­ti­za­dos, la calidad aumenta co­n­si­de­ra­ble­me­n­te. Por ello, la mejor manera en la que las empresas pueden apro­ve­char las ventajas del concepto DevOps es im­ple­me­n­ta­n­do, co­n­ju­n­ta­me­n­te, DevSecOps, es decir, in­co­r­po­ra­n­do medidas de seguridad al software y a los datos desde el inicio de su de­sa­rro­llo.

Ir al menú principal