Esqueleto en el armario de Apple: CocoaPods violó la privacidad en el ecosistema iOS

Esqueleto en el armario de Apple: CocoaPods violó la privacidad en el ecosistema iOS

Errores de autenticación podrían haber destruido la cadena de suministro de Apple.

image

Especialistas de EVA Information Security descubrieron vulnerabilidades en el gestor de dependencias CocoaPods, que habían pasado desapercibidas durante más de 10 años y podrían haber sido utilizadas para organizar ataques a la cadena de suministro para macOS y iOS. Los errores permitían insertar código malicioso en muchas de las aplicaciones más populares, creando un riesgo para millones de usuarios en todo el mundo.

Las vulnerabilidades se encontraban en el servidor de gestión Trunk del proyecto CocoaPods . CocoaPods es un repositorio para proyectos abiertos en Swift y Objective-C, del que dependen aproximadamente 3 millones de aplicaciones para macOS y iOS. Cuando los desarrolladores realizan cambios en sus "pods" (paquetes de código individuales), las aplicaciones dependientes los integran automáticamente a través de actualizaciones, a menudo sin ninguna interacción con los usuarios finales.

Uno de los errores descubiertos permitía a un atacante insertar código en aplicaciones que pueden acceder a información confidencial de los usuarios: datos de tarjetas de crédito, registros médicos, datos personales y mucho más. La inserción de código podría permitir el uso de la información para cualquier propósito malicioso, como extorsión, fraude, chantaje o espionaje corporativo. Las empresas que utilizan aplicaciones vulnerables estaban expuestas a graves riesgos legales y de reputación.

Las tres vulnerabilidades descubiertas estaban relacionadas con un mecanismo inseguro de verificación de correo electrónico utilizado para autenticar a los desarrolladores de módulos individuales. El desarrollador introducía una dirección de correo electrónico asociada con su módulo. El servidor Trunk respondía enviando un enlace a la dirección. Cuando la persona hacía clic en el enlace, obtenía acceso a la cuenta.


Normalmente, el correo electrónico contenía un enlace válido al servidor CocoaPods.org (arriba), pero un atacante podía modificar la URL para que dirigiera a un servidor malicioso (abajo).

Se descubrieron las siguientes vulnerabilidades:

  • CVE-2024-38366 (calificación CVSS: 10.0) causada por un proceso inseguro de verificación de correo electrónico que permite la ejecución de código arbitrario en el servidor Trunk, que luego puede usarse para manipular o reemplazar paquetes.
  • CVE-2024-38367 (calificación CVSS: 8.0) relacionada con un mecanismo inseguro de verificación de correo electrónico utilizado para autenticar a los desarrolladores. Permite manipular el enlace URL en el correo enviado para que dirija a un servidor del atacante, lo que permite interceptar las credenciales de los desarrolladores y acceder a sus cuentas. Además, el ataque puede mejorarse a un ataque Zero-Click, modificando el encabezado HTTP (es decir, cambiando el campo de encabezado X-Forwarded-Host) y aprovechando herramientas de seguridad de correo electrónico mal configuradas.
  • CVE-2024-38368 (calificación CVSS: 9.9) permite tomar control de "pods" abandonados que aún se utilizan en aplicaciones. La interfaz que permite a los desarrolladores recuperar el acceso a sus "pods" ha estado activa desde 2014. Un atacante podría aprovechar esta interfaz sin confirmación de propiedad.

Tras el descubrimiento de las vulnerabilidades, CocoaPods las corrigió rápidamente en octubre. Los desarrolladores afirmaron que en el momento de la corrección no había evidencia de explotación activa. Sin embargo, la posibilidad de tales ataques fue confirmada.

Para prevenir incidentes similares en el futuro, CocoaPods implementó un nuevo proceso de recuperación de "pods" abandonados, que requiere contacto directo con los desarrolladores, haciendo imposible la explotación de vulnerabilidades relacionadas con paquetes abandonados.

Aunque no se requiere ninguna acción de los desarrolladores de aplicaciones y usuarios, los investigadores de EVA recomendaron tomar medidas de precaución adicionales. Los desarrolladores deben:

  • Sincronizar el archivo podfile.lock;
  • Verificar los checksums de los paquetes descargados;
  • Realizar una auditoría exhaustiva del código de terceros;
  • Escanear regularmente el código en busca de secretos y componentes maliciosos.

Se debe prestar especial atención a las dependencias que son ampliamente utilizadas, ya que son un objetivo atractivo para los ataques.

¿Estás cansado de que Internet sepa todo sobre ti?

¡Únete a nosotros y hazte invisible!