Una serie de vulnerabilidades recientemente descubiertas en una herramienta de software de código abierto ampliamente utilizada podría causar serios problemas en grandes partes de los ecosistemas de iOS y macOS. Estos fallos, encontrados en Cocoapods, podrían afectar a miles de aplicaciones populares, incluyendo TikTok, Snapchat, LinkedIn, Netflix, Microsoft Teams, Facebook Messenger, entre muchas otras.
¿Qué es Cocoapods y por qué es importante?
Cocoapods es un gestor de dependencias utilizado para proyectos de software codificados en los lenguajes Swift y Objective-C. Los gestores de dependencias son herramientas cruciales en el desarrollo de software, ya que permiten la validación y firma criptográfica de los paquetes de software. La corrupción de una herramienta como Cocoapods tiene implicaciones significativas y negativas para gran parte de la web.
-Impacto de las vulnerabilidades
- Origen del problema: Los investigadores de E.V.A. Information Security descubrieron que los problemas surgieron de una migración imperfecta del servidor de Cocoapods en 2014, que dejó ‘huérfanos’ a miles de paquetes de software.
- Riesgo potencial: Debido a las deficiencias de seguridad en el sistema, estos paquetes podrían haber sido fácilmente capturados por actores maliciosos, quienes podrían usarlos para ataques a la cadena de suministro, introduciendo actualizaciones de código malicioso en los proyectos de software corporativos que dependen de ellos.
-Detalles técnicos de las fallas
Los investigadores explican que un atacante podría reclamar la propiedad de estos paquetes huérfanos utilizando una API pública y una dirección de correo electrónico disponible en el código fuente de Cocoapods. Esto les permitiría reemplazar el código fuente original con su propio código malicioso. Los investigadores resumieron la situación de la siguiente manera:
- Migración defectuosa: El proceso de migración de 2014 dejó miles de paquetes huérfanos.
- Toma de control: Usando información pública, un atacante podría reclamar estos paquetes y modificar su contenido.
- Impacto masivo: Las dependencias descendentes significan que miles de aplicaciones y millones de dispositivos podrían haber estado expuestos durante los últimos años.
-¿Qué deben hacer los desarrolladores?
Aunque las tres vulnerabilidades han sido parcheadas, la gravedad de las mismas y el hecho de que estuvieron expuestas durante casi nueve años preocupan a muchos equipos de desarrollo de software. Apple está en el centro de esta problemática porque muchas aplicaciones de iOS y macOS están codificadas en Swift y Objective-C, haciéndolas particularmente susceptibles a estos problemas. Las medidas recomendadas:
- Revisar productos: Los desarrolladores corporativos deben revisar sus productos y verificar la integridad de las dependencias de código abierto utilizadas en su código de aplicación.
- Actualizar sistemas: Asegurarse de que sus sistemas estén correctamente actualizados para proteger a los usuarios de posibles explotaciones.
-Consecuencias potenciales
Los investigadores no han encontrado evidencia de que alguna aplicación haya sido comprometida hasta ahora. Sin embargo, si algunas lo fueron, esto podría significar problemas mayores para los usuarios. Muchas aplicaciones tienen acceso a la información más sensible de los usuarios, como detalles de tarjetas de crédito, registros médicos y materiales privados. Un ciberdelincuente podría inyectar código en las aplicaciones a través de los pods comprometidos, permitiéndoles acceder a esta información para casi cualquier propósito malicioso imaginable: ransomware, fraude, chantaje y espionaje corporativo.
-Reflexiones finales
Las deficiencias de seguridad que pueden surgir en el software de código abierto son bien conocidas. La industria del software comercial depende del software libre y de código abierto (FOSS) para construir sus productos comerciales, pero se dedica poco tiempo a asegurar y proteger el ecosistema de software libre del que depende toda la internet. Los resultados, como era de esperar, no son buenos.
Para prevenir futuros problemas, es crucial que las empresas y desarrolladores se tomen en serio la seguridad de las dependencias de código abierto y adopten prácticas robustas de revisión y actualización de sus sistemas.