Cómo crear un plan de batalla para la seguridad de aplicaciones: edición Mi pobre angelito
20 de diciembre de 2022
0 minutos de lectura¡La temporada de fiestas es el momento perfecto para volver a ver algunas de tus películas favoritas! A algunas personas les gustan las películas navideñas lo más cursis posible (Hallmark, las estamos mirando a ustedes), mientras que otras disfrutan la oportunidad anual de ver a un niño de 8 años vengarse de dos torpes ladrones en el clásico de 1990 Mi pobre angelito.
Es divertido pensar en un niño que defiende su casa por sí solo de dos ladrones con microcoches, una plancha y varias otras trampas de comedia física. Pero es mucho más probable que las empresas tengan que defender su propiedad (es decir, sus aplicaciones) de los atacantes. Implementar las medidas adecuadas de seguridad de aplicaciones quizá no sea tan gracioso como quemarle la cabeza a un villano con un soplete, pero puede parecerse en muchos sentidos al «plan de batalla» de Kevin McCallister.
Así que, con el espíritu de las fiestas, presentemos el mejor «plan de batalla» para proteger tus aplicaciones de los atacantes.

Los «pisos» de tu aplicación
El ingenioso plan de Kevin incluía trampas en todos los pisos de su casa: el sótano, la planta baja y el segundo piso. En la película, tuvo que idear planes ingeniosos para cada entrada y habitación. Después de todo, no podía predecir cómo Harry y Marv (los ladrones) intentarían entrar en su casa ni qué harían una vez adentro.
Del mismo modo, un buen plan de seguridad de aplicaciones cubre todos los «niveles» de tu aplicación: el código fuente, la cadena de suministro de software y la infraestructura.
Kevin no solo puso trampas ingeniosas (y francamente perversas) en todos los pisos de la casa, sino que también planeó que estuvieran interconectadas. Marv subió a trompicones una escalera cubierta de alquitrán y tuvo que quitarse los zapatos. Así quedó en la posición perfecta para pisar un clavo (¡qué horror!). Harry chocó de frente contra un plástico cubierto de pegamento y luego tropezó con un ventilador que le lanzó un montón de plumas. ¡Se le pegaron enseguida! Las bromas de Kevin se complementaban a la perfección.
Al igual que las trampas de Kevin, los elementos de tu plan de seguridad de aplicaciones deben complementarse. Todo lo que sucede en un «piso» de tu aplicación debe conectarse con las medidas de seguridad de los demás «pisos». Hoy en día, esto significa integrar las medidas de seguridad en el código fuente —tanto propietario como de código abierto—, así como en la infraestructura de nube y los contenedores. Veamos cómo es cada uno de estos «pisos».
Piso 1: Código fuente
El buen y viejo código fuente desarrollado internamente es el nivel más básico de tu aplicación. Si no se escribe pensando en la seguridad, podría convertirse en una puerta abierta de par en par para los atacantes.
Pero tu equipo de seguridad no puede estar en todas partes al mismo tiempo. Por eso, necesitas automatizar algunas partes de tu plan de batalla. Así como Kevin usó hilos trampa para activar sus trucos automáticamente, tu equipo puede usar pruebas estáticas de seguridad de aplicaciones (SAST) automatizadas para encontrar y corregir código inseguro. Para proteger tu código fuente hay que seguir dos pasos: realizar pruebas estáticas de seguridad de aplicaciones (SAST) de forma periódica y capacitar a tus desarrolladores en las prácticas recomendadas, para que puedan escribir código seguro desde el principio.

Piso 2: Cadena de suministro de software
El segundo «piso» de tu aplicación es la cadena de suministro de software: las partes de tu app que se ensamblan, en lugar de crearse desde cero, como las imágenes base de contenedores y los componentes de código abierto. Sin embargo, corregir los problemas de seguridad de la cadena de suministro de software requiere capacidades especializadas. Necesitas una herramienta diseñada para analizar vulnerabilidades específicas de los contenedores y otra que identifique los riesgos del código abierto. Ambas deben ofrecer pasos claros para corregir los problemas, como volver a la versión más segura del recurso.

Piso 3: Infraestructura
Para crear el mejor enfoque general de seguridad de aplicaciones, debes tener en cuenta los elementos estructurales de tu app, como tu entorno de nube y la infraestructura como código (IaC). ¿Qué servicios de nube usas para el almacenamiento? ¿Están configurados adecuadamente con los permisos y controles de acceso correctos, o podrían exponer tu aplicación a riesgos? ¿Y tu IaC está escrito de forma segura, al igual que tu código fuente?
Para proteger la infraestructura de tu app, necesitas un enfoque contextual. Después de todo, tu ecosistema de nube no existe en el vacío. La manera en que se usa depende en gran medida de tu IaC.

Cómo unir todas las partes de tu plan de batalla
Todas estas herramientas funcionan muy bien por separado, pero por algo lo llamamos un «plan» y no «planes». Si no defines una estrategia para alinear todas estas medidas de seguridad, pasarás por alto el contexto completo de las vulnerabilidades detectadas. Las herramientas desconectadas también dificultan la colaboración entre desarrolladores, profesionales de seguridad y arquitectos de nube que deben trabajar juntos en las medidas de seguridad.
Snyk aborda este desafío con una plataforma centralizada que cubre cinco áreas de seguridad: código fuente, código abierto, contenedores, nube e IaC. También ofrecemos capacitación para desarrolladores, para darles el poder a quienes mejor conocen todas estas áreas: los equipos de desarrollo. Descubre más sobre nuestra plataforma de seguridad para desarrolladores. Pero no te preocupes: si quieres hacer una pausa para leer y poner <i>Mi pobre angelito</i>, ¡aquí estaremos cuando vuelvas!

Empieza con Capture the Flag
Aprende a resolver desafíos de Capture the Flag viendo nuestro taller virtual introductorio a pedido.



