Recientemente se ha reportado un bug en el SDK de Docker para Python que ha generado problemas en las aplicaciones que usaban la librería para ejecutar contenedores y afectado gravemente a la disponibilidad de las mismas.
El motivo principal de la incidencia ha sido no definir su dependencia request con una versión fija (término conocido habitualmente como “pinned version”), de tal forma que al actualizarse su dependencia con cambios que hacían fallar al SDK de Docker, el bug se ha ido replicando a cada una de las aplicaciones que lo usaban. En este momento en el que estamos publicando la noticia todavía no se ha resuelto el fallo en la librería de Docker, pero se puede solucionar temporalmente definiendo en el gestor de paquetes de la propia aplicación la librería requests en una versión inferior a la 2.32.0.
Tal y como contamos en nuestro post Consejos de ciberseguridad en el uso de Dockers (microservicios) en el blog de Ciberso, el uso de los tags “latest” de las imágenes base en contenedores o, como en este caso, utilizar las librerías en su última versión disponible sin haber verificado previamente su compatibilidad con el código es una mala práctica que puede hacer que el código no sea seguro y robusto.
Malas prácticas de seguridad que afectan a la integridad de aplicaciones
Por otra parte, cabe destacar que esta mala práctica de seguridad en desarrollo no solo afecta a la disponibilidad de la aplicación, si no a su propia integridad. Existen otros ataques, como el conocido Dependency Confusion, un ataque muy sonado durante el 2021 que se aprovecha de la mala configuración de las versiones de una aplicación para que un atacante pueda inyectar una versión de la librería con malware en una aplicación. La vulnerabilidad, de forma sintetizada, consiste en que el atacante logra confundir al gestor de dependencias para que se descargue la versión infectada desde las fuentes públicas.
Para ver el impacto de este tipo de problemas, en un estudio de la empresa Orca Security se estimó que un 49% de empresas de desarrollo eran vulnerables a este tipo de ataques. Es por ello que desde Ciberso buscamos ayudar, impulsar y formar que los desarrollos sigan estas buenas prácticas gracias a nuestros equipos de DevSecOps y de seguridad de aplicaciones.