📖Namespaces

Apresentação

O docker utiliza namespaces para providenciar a isolação dos contêiners entre os hosts, algum deles:

  • PID namespace para isolamento de processo

  • NET namespace para gerenciamento de interfaces de internet

  • IPC namespace para gerenciamento de acesso a recursos IPC

  • MNT namespace para gerenciamento de montagem de filesystems

  • UTS namespace para isolamento de kernel

  • User ID(user) namespace para isolamento de privilégios

Iremos falar sobre o namespace User ID, como podemos mapear toda a raiz do host e como podemos defender desse ataque

Attack

O usuário precisa apenas estar no grupo docker, para poder rodar o docker, com isso ele consegue acesso root ao sistema mapeando o diretório raiz para um diretório dentro do contêiner

Defense

# Primeiro vamos parar o docker
sudo systemctl stop docker

# Agora vamos configurar corretamente o namespace user
sudo dockerd --userns-remap=default &

Conclusão

É muito usuários com menos privilégio terem permissão para executar o docker, e se o namespace do user não estiver mapeado para default, o usuário consegueria acesso ao diretório root no sistema

Last updated