Skip to main content

Cómo proteger el desarrollo de próxima generación: lecciones de Trust Bank y TASConnect

Escrito por
Headshot of Gerald Crescione

Gerald Crescione

blog feature snyk iac cli enhancements

5 de junio de 2024

0 minutos de lectura

Hoy, una aplicación promedio contiene miles de componentes en constante cambio. Las organizaciones implementan aplicaciones en entornos multicloud con contenedores y microservicios, y usan una combinación de código escrito por equipos internos, generado por IA y seleccionado por terceros. 

Los equipos de seguridad tienen una tarea difícil: mantener seguras estas aplicaciones complejas, especialmente ante el creciente número de ataques a la cadena de suministro de software. Deben encontrar formas de integrar la seguridad en nuevas prácticas habituales, como el código generado por IA, sin dejar de considerar la velocidad de desarrollo y el éxito del negocio.  

Snyk tuvo la oportunidad de organizar una sesión en Black Hat Asia, en la que se profundizó en las prácticas recomendadas para responder a estas nuevas complejidades y desafíos. En esta conversación participaron dos expertos de la industria: Jerome Walter, CISO de Trust Bank Singapore, y Madhi Periannan, CTO de TASConnect Singapore.

Sigue leyendo para conocer las experiencias de primera mano de los ponentes al enfrentar y superar los desafíos de seguridad del desarrollo de software de próxima generación. 

¿Qué es el desarrollo de software de próxima generación y cómo afecta a AppSec? 

Según los ponentes, el desarrollo de software de “próxima generación” suele caracterizarse por tres factores.

Arquitectura compleja

Una aplicación promedio contiene varios elementos arquitectónicos, como microservicios, y se conecta con numerosas bibliotecas externas y plataformas SaaS. Los equipos de desarrollo crean estas aplicaciones con un enfoque ágil y rápido. Esta complejidad dificulta que los equipos de seguridad mitiguen los riesgos en las aplicaciones actuales. Walter comentó: “El software de hoy se compone de bibliotecas externas y conexiones con plataformas SaaS que no controlamos por completo… por eso, para proteger el software, hay que dominar la infraestructura y entender SaaS y el software de terceros”.

Herramientas de IA que surgen rápidamente

Los equipos de desarrollo actuales también usan herramientas de IA generativa, como GitHub Copilot y Google Gemini, para producir código más rápido. Si bien esta velocidad puede favorecer la agilidad del negocio, también significa que tanto el código seguro como el inseguro llegan al pipeline a una velocidad sin precedentes. 

Distribución en varios entornos de nube y ubicaciones geográficas

Además, el software de próxima generación suele ejecutarse en entornos multicloud, y empleados y clientes de todo el mundo acceden a él. Periannan afirma: “Hoy, las aplicaciones deben implementarse en varias nubes y en varios países. Ahí es donde surge la complejidad. Por eso, necesitamos mejores herramientas para administrar la seguridad en distintas ubicaciones geográficas”.

Equilibrar personas, procesos y herramientas para proteger las aplicaciones de próxima generación

Para responder a estos desafíos, en definitiva, se necesita un equilibrio entre las personas, los procesos y las herramientas adecuadas. Parte de este equilibrio consiste en compartir la responsabilidad entre los equipos de desarrollo y seguridad: un enfoque DevSecOps. Al permitir que los equipos de desarrollo corrijan problemas a lo largo de estos ciclos de vida complejos, las organizaciones pueden minimizar los riesgos que llegan a producción. Walter y Periannan compartieron algunas recomendaciones para fomentar una cultura de responsabilidad por la seguridad, entre ellas:

Adoptar un enfoque proactivo en lugar de reactivo.

Según los ponentes, la seguridad debe ser proactiva, no reactiva. Walter explicó que este enfoque consiste en ver la seguridad como un recorrido, no como un cambio de un día. Para comenzar este camino hacia una seguridad proactiva, recomendó “implementar herramientas como Snyk, que ofrecen comentarios y análisis inmediatos”. 

Estas herramientas permiten que los desarrolladores corrijan problemas al proporcionarles el nivel adecuado de comentarios y orientación para la corrección. En algunos casos, la seguridad requiere más que lanzar un parche. Por eso, a veces conviene que los desarrolladores examinen la arquitectura y la rediseñen para mitigar los riesgos. Como están más cerca del código, los equipos de desarrollo pueden implementar las mejores correcciones posibles. 

Este enfoque proactivo también fomenta una mejor relación entre los equipos de seguridad y desarrollo. Periannan explicó: “Con las herramientas y los modelos de amenazas adecuados, no estamos en modo de pánico ni enfrentando una situación de ‘apagar incendios’, que no es la mejor experiencia para los desarrolladores”.

Otras formas de adoptar un enfoque proactivo incluyen: 

  • Usar el modelado de amenazas para comprender el posible impacto de las vulnerabilidades existentes y priorizar mejor los riesgos

  • Identificar métodos de corrección para cada etapa del ciclo de vida del desarrollo de software

  • Fomentar una cultura de shift left que priorice la seguridad desde el diseño al principio del pipeline

Adoptar una mentalidad que priorice a los desarrolladores

Walter también destacó la importancia de facilitar el trabajo de los desarrolladores. Comentó: “Los desarrolladores dedican muchísimo tiempo a las operaciones de seguridad, como cambiar contraseñas e implementar parches, y queremos ayudarlos a dedicar más tiempo al negocio mediante la automatización de parte de las tareas de higiene de seguridad”.

Algunas formas de facilitarles el trabajo a los desarrolladores incluyen:

  • Automatizar tantas tareas rutinarias como sea posible, por ejemplo, el cambio de contraseñas

  • Brindarles a los desarrolladores la información que necesitan para tener éxito, como capacitación periódica en seguridad y orientación para corregir problemas

  • Dedicar tiempo a priorizar los riesgos con precisión permite que los desarrolladores se enfoquen en las correcciones más importantes

Una mentalidad que prioriza a los desarrolladores también implica abordar directamente cualquier fricción entre los equipos de desarrollo y seguridad. Para mejorar la relación entre estos equipos, hay que abrir un diálogo y conocer de verdad los puntos débiles de los desarrolladores, sus flujos de trabajo diarios, etc. También es importante que el equipo de seguridad demuestre que valora el tiempo de los desarrolladores y que trabaja activamente para encontrar mejores enfoques. Uno de estos enfoques clave debe ser orientar AppSec a la priorización precisa de riesgos, teniendo en cuenta el contexto y la posibilidad de explotación, en lugar de enviarles largas listas de vulnerabilidades.  

Cómo medir el éxito de AppSec en un entorno de software complejo 

Otro componente del éxito de la seguridad es hacer un seguimiento de las métricas adecuadas. Walter y Periannan recomendaron empezar por cinco aspectos, entre ellos:

  1. Implementación de capacitación en seguridad y seguimiento para asegurar que todas las personas que participan en el SDLC completen la capacitación

  2. Cobertura de las pruebas de seguridad en todos los niveles del desarrollo, como código propio, componentes de código abierto, infraestructura como código, contenedores, etc., para mostrar el avance en la cobertura de más funciones de desarrollo a lo largo de todo el pipeline

  3. Pruebas de vulnerabilidades críticas y de gravedad alta para evaluar el éxito de la organización en la reducción de vulnerabilidades a lo largo del tiempo

  4. Tiempo para aplicar parches y tiempo para corregir, a fin de medir si el programa ha ganado eficiencia con el tiempo

  5. Cantidad de automatizaciones de seguridad para demostrar que el equipo de seguridad trabaja en un enfoque más rápido y eficaz 

Aunque estas métricas se relacionan con la seguridad, también pueden vincularse, ante todo, con los KPI del negocio. Estas conexiones entre la seguridad y los objetivos del negocio pueden ser sorprendentes, como ocurrió con uno de los clientes de Snyk del sector financiero. Esta organización quería aumentar su Net Promoter Score (NPS) y recurrió a las herramientas de seguridad de Snyk para lograrlo. Como Snyk hizo más eficiente el proceso de encontrar y corregir vulnerabilidades, el equipo pudo implementar parches en ventanas de mantenimiento más cortas, lo que aumentó el NPS.

Walter también explicó: “El tiempo de corrección es un factor importante para nuestra capacidad de entregar software. También está directamente relacionado con la capacidad de tu negocio para ofrecer nuevas funciones. Cuanto más ágil sea tu proceso de desarrollo de software, más ágil serás al aplicar parches. Si puedes implementar una nueva función para mañana, también puedes aplicar un parche para mañana. Entender que ser más rápido beneficia tanto a la seguridad como al negocio es una muy buena manera de tener una conversación constructiva con el negocio”.

Mira la sesión completa de Black Hat Asia 

Para mejorar la seguridad de sus aplicaciones frente a las ciberamenazas en evolución y los avances tecnológicos, las organizaciones deben enfocarse en prácticas proactivas y favorables para los desarrolladores. Según los ponentes, este enfoque comienza con algunos cambios de mentalidad. 

En primer lugar, los equipos deben entender que se trata de mantener la seguridad de forma continua, no solo de completar una vez prácticas recomendadas como el modelado de amenazas, sino de implementar y monitorear constantemente los controles de seguridad a lo largo del tiempo. 

Además, los equipos de seguridad deben cambiar su manera de pensar sobre la relación entre los desarrolladores y la seguridad. Los equipos de desarrollo suelen tener las ideas y los métodos más innovadores para corregir problemas, ya que son quienes están más cerca del código y de otros componentes de las aplicaciones. 

Para aprender más sobre cómo fomentar una relación sólida entre los equipos de seguridad y desarrollo en el desarrollo de software de próxima generación, escucha la sesión “Cómo proteger el desarrollo de software de próxima generación: desafíos y soluciones”.

Securing the Next-Gen Software Development: Challenges & Solutions