Muchas aplicaciones de macOS e iOS estuvieron abiertas a una vulnerabilidad en CocoaPods, un administrador de dependencias de código abierto, E.V.A. Information Security reveló el 1 de julio. La vulnerabilidad ha sido parcheada desde que EVA la descubrió por primera vez, y no ha habido ataques que estén conclusivamente relacionados con ella.
Sin embargo, el caso es interesante porque la vulnerabilidad pasó desapercibida durante tanto tiempo y resaltó cómo los desarrolladores deberían tener cuidado con las bibliotecas de código abierto. La vulnerabilidad es un buen recordatorio para los desarrolladores y equipos de DevOps para verificar si alguno de los dispositivos de sus organizaciones podría verse afectado.
“Thousands of applications and millions of devices” podrían haber sido impactados aguas abajo, dijo E.V.A. El equipo de seguridad dice que encontraron pods de CocoaPods vulnerables en “la documentación o documentos de términos de servicio de 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.”
E.V.A. reportó la vulnerabilidad a CocoaPods en octubre de 2023, momento en el cual fue parcheada.
“El equipo de CocoaPods respondió de manera responsable y rápida a las vulnerabilidades una vez reveladas,” escribió E.V.A. Information Security.
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. E.V.A. Information Security no estaba originalmente buscando vulnerabilidades en CocoaPods; en cambio, el equipo las descubrió mientras realizaba pruebas de red para un cliente.
E.V.A. reportó varias causas de las vulnerabilidades. Primero, CocoaPods migró de GitHub a un servidor “trunk” en 2014, pero los propietarios de los pods necesitaban reclamar manualmente sus espacios. Algunos de ellos no lo hicieron, dejando 1,866 pods “huérfanos” que permanecieron intactos durante los siguientes 10 años. Cualquiera podí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 servidor “trunk” explotando un flujo de trabajo de verificación de correo electrónico inseguro. A partir de ahí, podrían manipular o reemplazar paquetes descargados desde ese servidor.
Tercero, los atacantes podrían robar tokens de verificación de cuentas suplantando un encabezado HTTP y aprovechando herramientas de seguridad de correo electrónico mal configuradas. A partir de ahí, podrían usar ese token para cambiar paquetes en el servidor de CocoaPods, lo que potencialmente podría llevar a ataques de cadena de suministro y de día cero.
Un investigador de E.V.A. Information Security utilizó un token de validación de sesión falsificado para hacerse cargo de una cuenta de CocoaPods. Imagen: E.V.A. Information Security
Lo que los desarrolladores y equipos de DevOps pueden hacer para mitigar las vulnerabilidades de CocoaPods
Las vulnerabilidades de CocoaPods son un buen recordatorio para los desarrolladores y equipos de DevOps de no olvidar los administradores de dependencias, que podrían ser un eslabón débil en la seguridad de la cadena de suministro. Para manejar las vulnerabilidades de CocoaPods, los desarrolladores y equipos de DevOps deberían verificar dos veces las dependencias de código abierto utilizadas en su código de aplicación.
E.V.A. sugirió:
Si estás utilizando software que depende de paquetes CocoaPods huérfanos, mantén tu archivo podfile.lock sincronizado con todos los desarrolladores de CocoaPods para asegurarte de que todos estén en la misma versión de los paquetes.
Revisa las listas de dependencias y los administradores de paquetes utilizados en tus aplicaciones.
Valida los checksums de bibliotecas de terceros.
Realiza escaneos periódicos de bibliotecas externas, especialmente CocoaPods, para detectar código malicioso o cambios sospechosos.
Mantén el software actualizado.
Limita el uso de paquetes CocoaPods huérfanos o no mantenidos.
Sé cauteloso con la posible explotación de dependencias ampliamente utilizadas como CocoaPods.