En la economía actual de las aplicaciones, la demanda de desarrollo de software es cada vez mayor. El software y las aplicaciones se han convertido en elementos clave para la toma de decisiones, donde los retrasos en los plazos de entrega se traducen en pérdidas de ingresos y una funcionalidad deficiente puede provocar la pérdida de clientes. Cada vez más, las empresas adoptan DevOps para satisfacer su necesidad de rapidez, integrando los equipos de desarrollo y operaciones, que antes operaban por separado.
Al mismo tiempo, el flujo constante de noticias sobre software vulnerable y filtraciones de datos relacionadas con aplicaciones está impulsando DevSecOps, que integra la seguridad en el desarrollo y las pruebas de software para obtener resultados más rápidos, de mayor calidad y más seguros.
Tradicionalmente, era responsabilidad del desarrollador garantizar que el código funcionara. Esta práctica se veía reforzada por la antigua división entre los equipos de desarrollo, operaciones y seguridad: siempre que la aplicación se entregara a tiempo y funcionara, su trabajo estaba hecho. A partir de entonces, el equipo de seguridad se encargaba de garantizar la seguridad y el equipo de operaciones de mantener el sistema operativo en funcionamiento.
Sin embargo, el cambio hacia DevOps ha significado que los desarrolladores ahora deban asumir un papel más activo para garantizar la calidad y la seguridad de su código. Esto está creando nuevos desafíos para los desarrolladores, para quienes la seguridad del código era, en el mejor de los casos, una cuestión secundaria.
Las deficiencias de la educación formal
El cambio hacia DevOps —y cada vez más hacia DevSecOps— ha puesto de manifiesto que la educación formal actual para los profesionales de TI y desarrollo no ha evolucionado en consonancia con las prácticas empresariales. Una encuesta reciente, [encargada por Veracode y DevOps.com](https://info.veracode.com/analyst-report-devsecops-global-skill-survey.htmlUn estudio reveló que, si bien el 65 % de los profesionales de DevOps afirma que es fundamental tener conocimientos de DevOps al ingresar al sector de TI, tres cuartas partes de los encuestados indicaron que no reciben la capacitación necesaria durante su formación académica formal para tener éxito en DevSecOps.
Muchos cursos universitarios de informática no ofrecen actualmente orientación práctica sobre cómo mitigar las vulnerabilidades de seguridad en el código, un componente crucial del nuevo rol del desarrollador de DevSecOps. Si bien casi el 80 % de los encuestados posee una licenciatura o maestría, el 70 % afirmó que su formación en seguridad no cumple con los requisitos de su puesto actual.
Aunque cabe preguntarse si las universidades deberían incorporar más aprendizaje práctico en sus cursos, además del enfoque teórico actual, a corto plazo se requiere otra solución.
Hasta que la educación formal comience a hacer mayor hincapié en enseñar a desarrolladores e ingenieros de software cómo crear código más seguro, serán las organizaciones que adopten DevOps las que deberán capacitar a sus desarrolladores para identificar y mitigar vulnerabilidades en el código.
Capacitación de su equipo de desarrollo
Mi experiencia personal gestionando equipos de desarrollo para solucionar esta brecha de habilidades en seguridad me ha demostrado que no existe una solución rápida. Más allá de los requisitos de capacitación técnica, los gerentes de equipos de desarrollo comprenden que priorizar la seguridad dentro de la cultura existente es quizás el mayor obstáculo.
Entonces, ¿qué pueden implementar los gerentes de equipos de desarrollo para capacitar a sus desarrolladores en seguridad del código y evitar una reacción negativa por parte de la cultura organizacional? Aquí están los tres enfoques que he encontrado más efectivos.
Capacitación externa
Ya sea presencial o a través de eLearning, un tercio de los encuestados identificó la capacitación externa como la forma más efectiva de adquirir nuevas habilidades. Desafortunadamente, solo el cuatro por ciento de los encuestados había tenido la oportunidad de hacerlo.
La formación presencial es indudablemente costosa, por lo que muchas organizaciones optan por el aprendizaje en línea. Sin embargo, es fundamental que aquellas que realizan esta inversión implementen procesos que garanticen un retorno de la inversión mínimo.
Para habilidades tan cruciales como la codificación segura, las organizaciones deberían introducir cursos obligatorios para los nuevos empleados, estableciendo así un nivel mínimo de competencia en todo el equipo. Establecer objetivos anuales también asegurará que el personal realice ciertos cursos.
Integre el análisis estático en el flujo de trabajo de DevOps.
La mejor manera de garantizar que los desarrolladores creen código seguro mientras trabajan es proporcionarles retroalimentación constante sobre lo que escriben, al igual que la línea roja ondulada de Microsoft Word nos ha ayudado a evitar errores tipográficos durante más de una década.
La integración del análisis estático en el flujo de trabajo de DevOps puede proporcionar esa retroalimentación constante para garantizar que los desarrolladores puedan corregir el código vulnerable a medida que avanzan, en lugar de generar extensos informes de seguridad al finalizar las vulnerabilidades, los cuales deben corregir posteriormente. Esto no solo ayuda a los desarrolladores a detectar errores y corregirlos sobre la marcha, sino que también evita que el gerente de desarrollo tenga que decidir entre incumplir un plazo o lanzar una aplicación o actualización insegura.
Crear líderes de seguridad
No todos los desarrolladores necesitan ser expertos en seguridad. Sin embargo, sí necesitan acceso a una persona con conocimientos en seguridad y que comprenda la forma de trabajar de los desarrolladores. Un pequeño equipo de expertos en seguridad puede aprovechar sus habilidades capacitando a ciertos desarrolladores en los fundamentos de la codificación segura, creando líderes de seguridad para fomentar la concienciación sobre seguridad en todo el equipo.
En este modelo, el equipo recurre a su líder de seguridad para obtener asesoramiento rutinario sobre diseño y codificación seguros. Los líderes de seguridad pueden ayudar a garantizar que sus equipos Scrum prioricen la seguridad en el ciclo de vida del desarrollo de software (SDLC), además de brindar apoyo en problemas de seguridad particularmente complejos. Los líderes de seguridad garantizan que ninguna vulnerabilidad quede sin corregir por falta de conocimientos y que los desarrolladores reciban asesoramiento sobre seguridad de compañeros que hablan su idioma y comprenden sus desafíos.
Es hora de actuar
A medida que más organizaciones adoptan las prácticas DevOps y DevSecOps, los procesos de seguridad tradicionales se considerarán insuficientes. Ante la amenaza de que los ciberdelincuentes exploten aplicaciones y software vulnerables, es innegable que las organizaciones deben actuar de inmediato para capacitar a sus desarrolladores y adaptarlos a los nuevos requisitos que impone este cambio en las prácticas de desarrollo. Independientemente del enfoque que adopten para la capacitación en seguridad, la necesidad es innegable.
Escrito por: Maria Loughlin