Millones de aplicaciones de Apple fueron vulnerables al ataque de CocoaPods

Numerosas aplicaciones de macOS e iOS fueron vulnerables en CocoaPods, un gestionador 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 relacionados de manera concluyente con ello.

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.

“Se podrían haber visto afectadas miles de aplicaciones y millones de dispositivos” afirmó 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 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 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 buscando originalmente vulnerabilidades en CocoaPods; en su lugar, el equipo las descubrió mientras hacía pruebas de ataque 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 sitios. 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.

LEAR  Ahorros del Día de los Caídos! Este control remoto multifuncional puede hacer que la navegación de Apple TV sea más fácil por $24

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. Desde allí, podrían manipular o reemplazar paquetes descargados desde ese servidor.

En tercer lugar, los atacantes podrían robar tokens de verificación de cuentas suplantando una cabecera HTTP y aprovechando herramientas de seguridad por correo electrónico mal configuradas. Desde ahí, podrían utilizar ese token para cambiar paquetes en el servidor de CocoaPods, lo que podría potencialmente conducir 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

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 olvidarse de los gestores 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 nuevamente las dependencias de código abierto utilizadas en el código de sus aplicaciones.

E.V.A. sugirió:

Si estás utilizando software que depende de paquetes CocoaPods huérfanos, mantén sincronizado tu archivo podfile.lock con todos los desarrolladores de CocoaPods para asegurar que todos estén en la misma versión de los paquetes.
Revisar las listas de dependencias y gestores de paquetes utilizados en tus aplicaciones.
Validar los checksums de las bibliotecas de terceros.
Realizar escaneos periódicos de las bibliotecas externas, especialmente CocoaPods, para detectar código malicioso o cambios sospechosos.
Mantener el software actualizado.
Limitar el uso de paquetes CocoaPods huérfanos o no mantenidos.
Estar atento a la posible explotación de dependencias ampliamente utilizadas como CocoaPods.

LEAR  Pasajeros 'sacudidos' después de que avión de Qantas sufre falla en el motor