Millones de aplicaciones de Apple fueron vulnerables a un ataque de CocoaPods

Muchas aplicaciones de macOS e iOS estaban abiertas a una vulnerabilidad en CocoaPods, un gestor de dependencias de código abierto, reveló E.V.A. Information Security el 1 de julio. La vulnerabilidad ha sido parcheada desde que EVA la descubrió por primera vez, y no se han producido ataques que estén conclusivamente relacionados con ella.

Sin embargo, el caso es interesante porque la vulnerabilidad pasó desapercibida durante tanto tiempo y destacó cómo los desarrolladores deben 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.

“Podrían haber sido afectadas miles de aplicaciones y millones de dispositivos”, dijo E.V.A. El equipo de seguridad dice que encontraron pods vulnerables de CocoaPods 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. informó sobre la vulnerabilidad a CocoaPods en octubre de 2023, momento en el que 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.

Las vulnerabilidades se originaron en CocoaPods
CocoaPods es un gestor 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ó al hacer pruebas de penetración para un cliente.

E.V.A. informó sobre 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 lugares. Algunos de ellos no lo hicieron, dejando 1,866 pods “huérfanos” que permanecieron intactos durante los próximos 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.

LEAR  Programa Mundial de Alimentos de la ONU detiene entregas de ayuda en Gaza tras ataque a equipo por disparos.

En segundo lugar, los atacantes podí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.

En tercer lugar, los atacantes podían robar tokens de verificación de cuenta suplantando una cabecera 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 podría llevar potencialmente a ataques de la 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

Qué pueden hacer los desarrolladores y equipos de DevOps 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 gestores 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 equipos de DevOps deben verificar dos veces las dependencias de código abierto utilizadas en su código de aplicación.

E.V.A. sugirió:

Si estás usando software que depende de paquetes de CocoaPods huérfanos, mantén sincronizado tu archivo podfile.lock 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 gestores de paquetes utilizados en tus aplicaciones.
Valida los checksums de las 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 de CocoaPods huérfanos o no mantenidos.
Sé cauteloso con la posible explotación de dependencias ampliamente utilizadas como CocoaPods.

LEAR  Resumen del miércoles: Grandes protestas en Nairobi