El panorama de amenazas actual está en constante evolución, y ahora más que nunca, las organizaciones y empresas de todos los sectores tienen una necesidad crítica de producir y mantener software seguro de manera constante. Si bien algunas verticales, como la industria financiera, por ejemplo, han estado sujetas a requisitos regulatorios y de cumplimiento durante algún tiempo, estamos viendo un aumento constante en la atención sobre las mejores prácticas de seguridad cibernética en los niveles más altos del gobierno, con los EE. UU., el Reino Unido y Australia arrojó luz muy reciente sobre la necesidad de un desarrollo seguro en cada etapa del SDLC.
A pesar de esto, los atacantes encuentran constantemente nuevas formas de eludir incluso las protecciones y defensas más avanzadas. Por ejemplo, muchos han cambiado su enfoque de entregar malware a comprometer las API o lanzar ataques dirigidos. contra una cadena de suministro. Y si bien esos incidentes de alto nivel están ocurriendo con mucha mayor frecuencia, también lo están las vulnerabilidades más simples, como las secuencias de comandos entre sitios y la inyección SQL, que han sido un flagelo para las defensas de seguridad cibernética durante décadas. Sólo el mes pasadose informó una vulnerabilidad crítica de inyección de SQL en un complemento de WordPress de WooCommerce, con una calificación de gravedad de 9.8/10.
Cada vez es más evidente que, si bien las plataformas y las defensas de ciberseguridad son componentes críticos en la defensa contra los ataques modernos, lo que realmente se necesita es un código seguro que se pueda implementar sin vulnerabilidades. Y eso requiere un aumento deliberado y comprometido en los estándares de codificación segura, accionado por desarrolladores conscientes de la seguridad.
Muchos desarrolladores dicen que están dispuestos a defender la seguridad y comprometerse con estándares más altos de calidad de código y salida segura, pero no pueden hacerlo solos. No podemos darnos el lujo de ignorar las necesidades de los desarrolladores en la lucha contra las vulnerabilidades comunes, y necesitan el apoyo de herramientas y capacitación adecuadas, así como una reelaboración de las métricas tradicionales por las que a menudo son juzgados por sus empleadores y organizaciones.
Por qué la mayoría de los desarrolladores aún no priorizan la seguridad
Las mejores prácticas de codificación han seguido evolucionando a lo largo de los años, en respuesta a las necesidades comerciales y las tendencias del mercado. En el pasado, la mayoría de las aplicaciones se creaban utilizando los llamados desarrollo de cascada modelo en el que los ingenieros de software trabajaron para preparar su código para cumplir una serie continua de hitos u objetivos antes de pasar a la siguiente fase de desarrollo. Waterfall tendía a respaldar el desarrollo de programas que, habiendo cumplido todos los hitos anteriores en el camino, estaban libres de errores o fallas operativas cuando estaban listos para el entorno de producción. Pero según los estándares actuales, fue dolorosamente lento, a veces con 18 meses o más entre el inicio de un proyecto y la llegada a la meta. Y eso no va a funcionar en la mayoría de las empresas en estos días.
los método ágil tendía a reemplazar Waterfall, poniendo un énfasis mucho mayor en la velocidad. Y esto fue seguido por DevOps, que está diseñado para una velocidad aún mayor al combinar el desarrollo y las operaciones para garantizar que los programas estén listos para la producción casi tan pronto como se eliminen los ajustes finales de desarrollo.
Anteponer la velocidad a la seguridad, y casi todo lo demás más allá de la funcionalidad, era una necesidad a medida que evolucionaba el entorno empresarial. En un mundo basado en la nube donde todo el mundo está en línea todo el tiempo, y millones de transacciones móviles pueden ocurrir cada pocos segundos, implementar el software y entrar en la canalización de integración continua y entrega continua (CI/CD) lo más rápido posible es una misión crítica. por negocios.
No es que a las organizaciones no les importara la seguridad. Es solo que en el entorno comercial competitivo que existe en la mayoría de las industrias, la velocidad se consideraba más importante. Y los desarrolladores que podían igualar esa velocidad prosperaron hasta el punto en que se convirtió en el principal medio por el cual se juzgaba su desempeño laboral.
Ahora que los ataques avanzados aumentan de forma tan espectacular, implementar código vulnerable se está convirtiendo en una responsabilidad. La preferencia está cambiando una vez más, con la seguridad convirtiéndose cada vez más en el enfoque principal del desarrollo de software, con la velocidad en segundo lugar. Atornillar la seguridad después del hecho no solo es peligroso, sino que también ralentiza el proceso de implementación del software. Eso ha llevado al surgimiento de la DevSecOps metodología que intenta fusionar velocidad y seguridad para ayudar a generar código seguro y considerar la seguridad como una responsabilidad compartida. Pero los desarrolladores capacitados para la velocidad pura no pueden volverse funcionalmente conscientes de la seguridad sin mucho apoyo de sus organizaciones.
Lo que los desarrolladores necesitan para realmente tener un impacto en la reducción de vulnerabilidades
La buena noticia es que la mayoría de los desarrolladores quieren ver un cambio hacia la codificación segura y una nueva priorización de la seguridad como parte del proceso de desarrollo. en un encuesta completa realizado por Evans Data de más de 1,200 desarrolladores profesionales que trabajan activamente en todo el mundo a principios de este año, la gran mayoría dijo que apoyaba el concepto de crear un código seguro. La mayoría también esperaba que se convirtiera en una prioridad en sus organizaciones. Sin embargo, solo el 8% de los encuestados dijo que escribir código seguro era fácil de lograr. Eso deja mucho margen de mejora dentro de los equipos de desarrollo de la mayoría de las organizaciones entre lo que se necesita y lo que se requiere para llegar allí.
El simple hecho de exigir un código seguro no hará el trabajo, y sin el esfuerzo de desarrollar las habilidades y la conciencia adecuadas, será muy disruptivo para su flujo de trabajo. Los equipos de desarrollo deben existir en un entorno que fomente su mentalidad de seguridad y promueva una cultura de responsabilidad compartida.
Lo más importante que se necesita es una mejor capacitación para ellos, seguida de herramientas que ayuden a que la codificación segura sea una parte integral de su flujo de trabajo. Y el programa debe personalizarse para que los desarrolladores menos experimentados puedan comenzar su capacitación aprendiendo a reconocer los tipos de vulnerabilidades comunes que a menudo se introducen en el código, con mucho aprendizaje práctico y ejemplos. Mientras tanto, a los desarrolladores más avanzados que demuestren sus habilidades de seguridad se les puede asignar la tarea de errores más complejos y tal vez incluso conceptos avanzados de modelado de amenazas.
Además de financiar y apoyar los programas de capacitación, lo que incluye dar a los desarrolladores suficiente tiempo libre de la codificación para poder participar adecuadamente en esos programas, las organizaciones también deben cambiar la forma en que se evalúa a su cohorte. La métrica principal para recompensar a los desarrolladores debe alejarse de la velocidad bruta. En cambio, las evaluaciones podrían recompensar a aquellos que puedan crear un código seguro que esté libre de vulnerabilidades o exploits. Sí, la velocidad también puede ser un factor evaluado, pero ante todo, el código debe ser seguro y el desarrollo moderno debe forjar un camino en el que la seguridad a gran velocidad ya no sea un mito.
El envío de código inseguro o vulnerable no debería ser un riesgo comercial aceptable, y reforzar la seguridad después del hecho se está volviendo cada vez más ineficaz. Afortunadamente, la mejor arma para luchar contra esta preocupante tendencia es hacer que la comunidad de desarrolladores produzca un código seguro que los atacantes no puedan explotar. La mayoría de los desarrolladores están dispuestos a aceptar ese desafío; darles el apoyo para que esto suceda.
Secure Code Warrior es una de las cuatro empresas nombradas en el informe Gartner® Cool Vendors™ in Software Engineering: Enhancing Developer Productivity. Estamos listos para ayudar a los equipos de desarrollo a navegar las complejidades del desarrollo de software seguro con herramientas que tienen sentido en su mundo. Aprende más.
Nota – Este artículo está escrito y contribuido por Matias Madou, CTO y cofundador de Secure Code Warrior.