Pular para o conteúdo principal

Container Security Challenge

Six real docker run commands, each carrying a flag that hands an attacker the host. Click the dangerous ones, then see the actual escape path and what to grant instead. Covers the Docker socket, --privileged, host PID namespace, SYS_ADMIN and unconfined AppArmor, plus one command with nothing wrong with it.

Categoria: Security

O que você vai aprender

  • Por que montar /var/run/docker.sock equivale a entregar root no host
  • O que --privileged realmente concede, e os dois escapes que habilita
  • Como --pid=host mais uma capability se combinam num escape completo de container
  • Por que SYS_ADMIN chega perto de root, mesmo parecendo mais cuidadoso que --privileged
  • Do que o perfil padrão do AppArmor está silenciosamente te protegendo
  • Como é um comando docker run reforçado quando toda flag é deliberada

Tópicos abordados: security, docker, containers, escape, privileged, capabilities, hardening, interactive

// simulador

Container Security Challenge

Six real docker run commands, each carrying a flag that hands an attacker the host. Click the dangerous ones, then see the actual escape path and what to grant instead. Covers the Docker socket, --privileged, host PID namespace, SYS_ADMIN and unconfined AppArmor, plus one command with nothing wrong with it.

1 / 6

O runner de CI

Um container de build que precisa construir imagens. Todo tutorial de "docker in docker" sugere isso.

Clique em cada parte deste comando que permitiria um atacante alcançar o host.

Sobre este desafio de segurança de containers

O que você vai aprender

  • Que a maioria dos escapes de container é uma flag, não um exploit de kernel
  • Como o socket do Docker transforma qualquer container em root do host
  • Por que duas flags individualmente sobreviváveis podem se combinar em algo bem pior
  • O que conceder no lugar, para cada flag perigosa
  • Que um container não é uma fronteira de segurança a menos que você a construa

Por que isso importa

O escaneamento de imagens recebe a atenção, mas um scanner nunca olha para como o container é executado. Cada cenário aqui é algo que as pessoas genuinamente publicam, geralmente porque um tutorial mandou, e cada um dá o host a um atacante sem precisar de um CVE.

O último cenário não tem nada de errado. Assumir que toda config está quebrada é seu próprio modo de falha.

Experimente também

Sponsored
Carbon Ads
$ cd /games
// compartilhar