Os user namespaces permitem que processos executem com UIDs e GIDs diferentes dentro de um namespace isolado. Assim, um processo pode aparecer como root dentro do namespace, mas permanecer sem privilégios no host. Esse isolamento beneficia containers e ambientes de sandbox, porém também amplia a superfície de ataque: usuários sem privilégios podem criar namespaces e explorar vulnerabilidades do kernel para burlar os controles de acesso no nível do host.
O Alibaba Cloud Linux 2 e 3 oferecem três parâmetros de kernel para reduzir essa exposição. Todos aceitam alterações temporárias, válidas até a próxima reinicialização.
|
Parâmetro |
O que controla |
Requisito de versão do kernel |
|
|
Número máximo de namespaces filhos por namespace pai, por nível |
Todas as versões suportadas |
|
|
Profundidade máxima de aninhamento de user namespaces |
AL2 >= 4.19.91-27, AL3 >= 5.10.134-12 |
|
|
Define se usuários sem |
AL2 >= 4.19.91-27, AL3 >= 5.10.134-12 |
user.max_user_namespaces
Esse parâmetro limita o número de namespaces filhos criáveis sob cada namespace pai em todos os níveis da hierarquia.
Defina esse parâmetro como 0 para desativar completamente os user namespaces.
Consultar o valor atual
# /proc interface
cat /proc/sys/user/max_user_namespaces
# sysctl interface
sysctl -n user.max_user_namespaces
Defina o valor
Substitua <namespaces> pelo número máximo de namespaces filhos permitidos. Defina como 0 para desativar a criação de namespaces.
# /proc interface
sudo sh -c 'echo <namespaces> > /proc/sys/user/max_user_namespaces'
# sysctl interface
sudo sysctl -w user.max_user_namespaces=<namespaces>
kernel.userns_max_level
Esse parâmetro restringe a profundidade de aninhamento dos user namespaces.
Requisitos de versão
Alibaba Cloud Linux 2: versão do kernel 4.19.91-27 ou posterior
Alibaba Cloud Linux 3: versão do kernel 5.10.134-12 ou posterior
Valores válidos: de 0 a 33
|
Valor |
Comportamento |
|
|
Desativa os user namespaces |
|
|
Limita o aninhamento ao número especificado de níveis |
|
|
Padrão; corresponde ao comportamento nativo do kernel |
Consultar o valor atual
# /proc interface
cat /proc/sys/kernel/userns_max_level
# sysctl interface
sysctl -n kernel.userns_max_level
Defina o valor
Substitua <levels> pela profundidade máxima de aninhamento. Defina como 0 para desativar os user namespaces.
# /proc interface
sudo sh -c 'echo <levels> > /proc/sys/kernel/userns_max_level'
# sysctl interface
sudo sysctl -w kernel.userns_max_level=<levels>
kernel.unprivileged_userns_clone
Esse parâmetro determina se usuários sem CAP_SYS_ADMIN podem criar user namespaces. Quando usuários sem privilégios conseguem criar namespaces, mais processos acionam caminhos de código relacionados a namespaces, o que aumenta a exposição a vulnerabilidades de escalonamento de privilégios. Restringir a criação de namespaces a usuários privilegiados reduz essa exposição.
Requisitos de versão
Alibaba Cloud Linux 2: versão do kernel 4.19.91-27 ou posterior
Alibaba Cloud Linux 3: versão do kernel 5.10.134-12 ou posterior
Valores válidos
|
Valor |
Comportamento |
|
|
Usuários sem privilégios e sem |
|
|
Apenas usuários privilegiados com |
Consultar o valor atual
# /proc interface
cat /proc/sys/kernel/unprivileged_userns_clone
# sysctl interface
sysctl -n kernel.unprivileged_userns_clone
Restringir a criação de namespaces a usuários privilegiados
# /proc interface
sudo sh -c 'echo 0 > /proc/sys/kernel/unprivileged_userns_clone'
# sysctl interface
sudo sysctl -w kernel.unprivileged_userns_clone=0