EVA Information Security reveló el 1 de julio que muchas aplicaciones de macOS e iOS estaban expuestas a una vulnerabilidad en CocoaPods, un administrador de dependencias de código abierto. La vulnerabilidad ha sido parcheada desde que EVA la descubrió por primera vez y no se han producido ataques que estén relacionados de manera concluyente con ella. Sin embargo, el caso es interesante porque la vulnerabilidad pasó desapercibida durante mucho tiempo y destacó cómo los desarrolladores deben tener cuidado con las bibliotecas de código abierto. La vulnerabilidad es un buen recordatorio para que los desarrolladores y los equipos de DevOps verifiquen si alguno de los dispositivos de sus organizaciones podría verse afectado. “Miles de aplicaciones y millones de dispositivos” podrían haberse visto afectados en sentido descendente, dijo EVA. El equipo de seguridad dice que encontraron pods CocoaPods vulnerables en “la documentación o los documentos de términos de servicio de las aplicaciones proporcionadas por Meta (Facebook, Whatsapp), Apple (Safari, AppleTV, Xcode) y Microsoft (Teams); así como en TikTok, Snapchat, Amazon, LinkedIn, Netflix, Okta, Yahoo, Zynga y muchos más”. EVA informó de la vulnerabilidad a CocoaPods en octubre de 2023, momento en el que se solucionó. «El equipo de CocoaPods respondió de forma responsable y rápida a las vulnerabilidades una vez reveladas», escribió EVA Information Security. Cobertura de Apple imprescindible Vulnerabilidades originadas en CocoaPods CocoaPods es un administrador de dependencias para proyectos Swift y Objective-C, y verifica la legitimidad de los componentes de código abierto. EVA Information Security no estaba buscando vulnerabilidades en CocoaPods originalmente; en cambio, el equipo las descubrió cuando hizo un equipo rojo para un cliente. VER: CISA recomienda usar lenguajes de programación seguros para la memoria para proyectos de código abierto. EVA informó de varias causas de las vulnerabilidades. Primero, CocoaPods migró de GitHub a un servidor «troncal» en 2014, pero los propietarios de los pods tuvieron que recuperar manualmente sus lugares. Algunos de ellos no lo hicieron, lo que dejó 1.866 pods «huérfanos» que permanecieron intactos durante los siguientes 10 años. Cualquiera podría enviar un correo electrónico a CocoaPods para reclamar esos pods, lo que habría permitido a los atacantes inyectar contenido malicioso. En segundo lugar, los atacantes podrían ejecutar código malicioso en el propio servidor «troncal» explotando un flujo de trabajo de verificación de correo electrónico inseguro. Desde allí, podrían manipular o reemplazar paquetes descargados de ese servidor. En tercer lugar, los atacantes podrían robar tokens de verificación de cuenta falsificando un encabezado HTTP y aprovechando herramientas de seguridad de correo electrónico mal configuradas. Desde allí, podrían usar ese token para cambiar paquetes en el servidor CocoaPods, lo que potencialmente podría conducir a ataques de cadena de suministro y de día cero. Un investigador de EVA Information Security utilizó un token de validación de sesión falsificado para apoderarse de una cuenta de CocoaPods. Imagen: EVA Information Security Lo que los desarrolladores y los equipos de DevOps pueden hacer para mitigar las vulnerabilidades de CocoaPods Las vulnerabilidades de CocoaPods son un buen recordatorio para los desarrolladores y los equipos de DevOps de que no se olviden de los administradores de dependencias, que podrían ser un eslabón débil potencial en la seguridad de la cadena de suministro. Para manejar las vulnerabilidades de CocoaPods, los desarrolladores y los equipos de DevOps deben verificar dos veces las dependencias de código abierto utilizadas en el código de su aplicación. EVA sugirió: si está utilizando software que depende de paquetes CocoaPods huérfanos, mantenga su archivo podfile.lock sincronizado con todos los desarrolladores de CocoaPods para asegurarse de que todos estén en la misma versión de los paquetes. Revise las listas de dependencias y los administradores de paquetes utilizados en sus aplicaciones. Valide las sumas de comprobación de las bibliotecas de terceros. Realice escaneos periódicos de bibliotecas externas, especialmente CocoaPods, para detectar código malicioso o cambios sospechosos. Mantenga el software actualizado. Limite el uso de paquetes CocoaPods huérfanos o sin mantenimiento. Tenga cuidado con la posible explotación de dependencias ampliamente utilizadas como CocoaPods.