Vulnerabilidade en Docker que che permite escapar do contedor

No kit de ferramentas para xestionar contedores docker Linux illados identificado vulnerabilidade (CVE-2018-15664), que, baixo un determinado conxunto de circunstancias, permítelle acceder ao ambiente host desde un contedor se ten a posibilidade de lanzar as súas imaxes no sistema ou con acceso a un contedor en execución. O problema aparece en todas as versións de Docker e permanece sen solucionar (proposto, pero aínda non aceptado, parche, que implementa a suspensión do contedor mentres se realizan operacións co FS).

A vulnerabilidade permite extraer ficheiros dun contedor a unha parte arbitraria do sistema de ficheiros do sistema host ao executar o comando "docker cp". A extracción de ficheiros realízase con dereitos de root, o que permite ler ou escribir calquera ficheiro no ambiente host, o que é suficiente para gañar o control do sistema host (por exemplo, pode sobrescribir /etc/shadow).

O ataque só se pode levar a cabo cando o administrador executa o comando "docker cp" para copiar ficheiros desde ou cara ao contedor. Así, o atacante debe convencer dalgún xeito ao administrador de Docker da necesidade de realizar esta operación e prever o camiño empregado ao copiar. Por outra banda, pódese levar a cabo un ataque, por exemplo, cando os servizos na nube proporcionan ferramentas para copiar ficheiros de configuración nun contedor, construído mediante o comando "docker cp".

O problema é causado por un fallo na aplicación da función SigaSymlinkInScope, que calcula a ruta absoluta no sistema de ficheiros principal en función da ruta relativa, tendo en conta a colocación do contedor. Mentres se executa o comando "docker cp", un a curto prazo condición de carreira, no que xa se comprobou o camiño, pero aínda non se realizou a operación. Dado que a copia realízase no contexto do sistema de ficheiros principal do sistema anfitrión, nun período de tempo especificado, pode conseguir substituír a ligazón por outra ruta e iniciar a copia de datos a unha localización arbitraria do sistema de ficheiros fóra do envase.

Xa que a xanela de tempo para que se produza unha condición de carreira é moi limitada nun preparado explotar o prototipo Ao realizar operacións de copia desde un contedor, foi posible conseguir un ataque exitoso en menos do 1% dos casos ao substituír cíclicamente unha ligazón simbólica na ruta utilizada na operación de copia (o ataque exitoso realizouse despois de aproximadamente 10 segundos de intentos). para copiar continuamente o ficheiro nun bucle co comando "docker cp").

Ao realizar unha operación de copia nun contedor, pode conseguir un ataque de sobreescritura de ficheiros repetible no sistema host en só unhas poucas iteracións. A posibilidade de ataque débese ao feito de que ao copiar nun contedor utilízase o concepto "chrootarchive", segundo o cal o proceso archive.go extrae o arquivo non no chroot da raíz do contenedor, senón no chroot do directorio pai da ruta de destino, controlado polo atacante, e non detén a execución do contedor (o chroot úsase como sinal para explotar as condicións de carreira).

Fonte: opennet.ru

Engadir un comentario