En el dinámico mundo del desarrollo de software, la seguridad se ha convertido en un componente crítico que no se puede dejar al azar, por lo que Edgar Garza Director Comercial de Ventus Technology, empresa líder en soluciones tecnológicas, nos habló sobre la importancia de adoptar herramientas con un enfoque DevSecOps para mitigar los riesgos a lo largo de todo el ciclo de vida del software y cómo su implementación puede fomentar la colaboración entre los equipos de desarrollo, operaciones y seguridad en una organización.
1.¿Cuál es la diferencia entre DevOps y DevSecOps?
DevOps es la automatización de la operación del ciclo de desarrollo, mientras que la parte de DevSecOps es donde se incorporan políticas y medidas de seguridad informática al proceso de automatización de la elaboración de software. En este último lo que se busca no es solamente automatizar el ciclo de desarrollo, sino también generar código seguro a través de lineamientos y herramientas.
2. ¿Por qué es importante tener un enfoque de DevSecOps durante el proceso de desarrollo de software?
Ayuda a la reducción de riesgos, ya que incorporar seguridad desde el inicio permite identificar y mitigar vulnerabilidades antes de que lleguen a producción, lo que puede verse reflejado en grandes pérdidas para una organización. Según el National Institute of Standards and Technology (NIST) el costo de solucionar un problema de software es 30 veces más alto si se hace en fase de producción, en lugar de en la etapa de coding.
Permite a las organizaciones tener una mayor visibilidad sobre lo que se está desarrollando, aumenta la productividad desde el punto de vista que en un proceso industrial ayuda a desarrollar y liberar software de forma más continua.
Por otro lado, brinda a las diferentes áreas que participan en el tema de desarrollo de software, tales como los departamentos de infraestructura, desarrollo, arquitectura tecnológica y seguridad de la información, una herramienta colaborativa que facilita la interacción entre sí y al mismo tiempo fomenta una comunicación proactiva y profesional.
3. ¿Qué medidas se deben de tomar dentro de una organización para garantizar la colaboración efectiva y segura entre los distintos equipos de operaciones, seguridad y desarrollo?
Las organizaciones deben establecer una directriz que marque la pauta de cómo van a llevar el tema de desarrollo de software, para que en función de ésta surjan políticas y normativas, que les ayuden a definir una estrategia para trabajar y colaborar de forma conjunta.
Es importante que la alta dirección reconozca el valor que le da a la organización el tema de DevSecOps, para que a partir de ahí se definan las políticas y el marco normativo que las distintas áreas deberán implementar para colaborar con base en los procesos establecidos.
4. ¿Cuáles son los riesgos o vulnerabilidades más comunes a las que se enfrentan las empresas durante el desarrollo de software?
Los desarrolladores de software utilizan código abierto que se encuentran en el mercado online para ser más eficientes y en ocasiones esos componentes de software contienen código malicioso, bugs, insectos o gusanos, como se les llama comúnmente, que pueden desencadenar en un virus o ser una puerta de entrada para actores malignos.
El tema de DevSecOps ayuda a poder escanear estas vulnerabilidades a las que se pueden llegar a enfrentar, tanto el desarrollador como en sí el proceso de elaboración de software. Además, sirve para garantizar que se están utilizando las versiones de código adecuadas para que no vaya a haber algún error de inconsistencia.
También existen riesgos en torno a no utilizar certificados de seguridad actualizados, no se tengan mapeadas las interdependencias entre los diferentes componentes o plataformas de código que están involucradas.
Por otro lado, cuando se trabaja en un ambiente de contenedores a veces no se toman en cuenta las políticas de infraestructura que se requieren para poder desarrollar software.
Un ejemplo específico de los riesgos de seguridad relacionado con el desarrollo de software se ve reflejado en el caso de Heartbleed, que fue una vulnerabilidad crítica en la biblioteca de software de código abierto OpenSSL, utilizada para cifrar la comunicación en línea. Esta situación permitió a los atacantes obtener información sensible de la memoria de los sistemas afectados, lo que potencialmente expuso datos confidenciales como contraseñas, claves privadas y otra información personal.
5. ¿Cuáles son los principales desafíos a los que se enfrenta una organización al implementar DevSecOps y cómo poder sortearlos?
El principal desafío es del orden cultural, es decir lograr que al interior de las empresas realmente crean en este enfoque, estén dispuestos a transparentar sus procesos de desarrollo de software, de seguridad de la información y de control de ambientes productivos para la liberación de software.
Otro gran desafío recae en la colaboración entre las áreas. Normalmente las organizaciones y sobre todo los departamentos de tecnología, tienden a trabajar como silos de manera independiente, por lo tanto, es un reto lograr que todos participen y se apoyen entre sí. Un proceso DevSecOps ayuda a que la colaboración suceda de forma natural a través de una plataforma amigable.
Por otro lado, a veces las organizaciones no se dan la oportunidad de ver el valor que les da trabajar bajo una plataforma DevSecOps que les facilite la vida y que al final de cuentas puedan medir los beneficios de lograr industrializar el proceso de desarrollo software. Tener bien claro los distintos beneficios que brindan estas valiosas herramientas ayuda a eliminar las fronteras que se dan de forma natural entre las diferentes áreas involucradas.
6. ¿Qué recomendarías a una empresa que quiere comenzar a implementar DevSecOps para que lo haga adecuadamente?
El primer paso es tomar la decisión de querer hacerlo. Una vez hecho esto hay que apoyarse con un especialista que les ayude a conocer cuál es su estado actual y a definir cuál es su estado ideal, es decir el proceso al cual quieren llegar.
Es importante establecer un plan intermedio porque muchas veces las organizaciones cometen el error de querer llegar al último estado de madurez de la noche a la mañana y eso impide que continúen avanzando. Por lo tanto, deben de definir un plan que incluya los mejores siguientes pasos que se deben dar en el tema de la adopción del proceso y de la herramienta que mejor empate con la naturaleza de la organización, así como con su situación actual en cuanto a políticas, procesos plataforma y personal.
Una vez definido lo anterior, hay que armar un plan de implementación acompañado de un profesional en la materia y respaldado por una plataforma que ayude a resolverlo.
Ventus es un especialista, tenemos ya más de 5 años trabajando en esto, contamos con ingenieros certificados en México, además trabajamos con las plataformas líderes a nivel mundial para poder implementar un proceso y que estén respaldados por una plataforma como GitLab que incluye un conjunto de herramientas que permiten automatizar de punta a punta el proceso de desarrollo.
Está claro que incorporar medidas de seguridad desde el inicio del ciclo de desarrollo de software mediante un enfoque DevSecOps no solo reduce riesgos y costos, sino que también fomenta una colaboración más efectiva entre las distintas áreas de una organización, convirtiéndose en un elemento fundamental para impulsar la innovación de toda clase de organizaciones en la era digital.