O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Protegendo Docker

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio

Confira estes a seguir

1 de 26 Anúncio

Protegendo Docker

Baixar para ler offline

Docker tem diversas features para garantir a segurança dos seus containers. Vamos discutir como adicionar estas camadas de segurança como SELinux, Capabilities, AppArmor, Seccomp e outras abordagens para garantir o isolamento das suas aplicações.

Docker tem diversas features para garantir a segurança dos seus containers. Vamos discutir como adicionar estas camadas de segurança como SELinux, Capabilities, AppArmor, Seccomp e outras abordagens para garantir o isolamento das suas aplicações.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Protegendo Docker (20)

Anúncio

Mais recentes (20)

Protegendo Docker

  1. 1. Globalcode – Open4education Protegendo Docker Guilherme Oki
  2. 2. Globalcode – Open4education Quem sou eu? • SRE na Stone Pagamentos • Apaixonado por open source • Entusiasta da cultura e do desenvolvimento ágil
  3. 3. Globalcode – Open4education O que é Docker? "Docker is about running random crap from the internet as root on your host"
  4. 4. Globalcode – Open4education O que são containers?
  5. 5. Globalcode – Open4education Por que eles precisam de proteção?
  6. 6. Globalcode – Open4education O que precisa de proteção? • Application • Containers <-> Containers • Containers <-> Hosts
  7. 7. Globalcode – Open4education Como proteger?
  8. 8. Globalcode – Open4education Capabilities • Capabilities foram adicionadas no kernel há 15 anos atrás. • Tenta dividir o poder de root • Lista atuais capabilities no Docker • getpcaps 1 • Algumas capabilities • chow • kill • setuid • dac_override • Enabled by default "nothing should need this. If your container need this, it's probably doing something horrible." Steve Grubb, security expert at Red Hat
  9. 9. Globalcode – Open4education Quais capabilities eu realmente preciso no meu container? • Entre em modo permissivo • setsebool virt_sandbox_use_all_caps=0 • setenforce 0 • Execute seu container com todas as caps. • docker run --cap-add all IMAGE ... • Isto irá gerar uma mensagem sobre as capabilities usadas • grep capability /var/log/audit/audit.log "type=AVC msg=audit(1495655327.756:44343): avc: denied { syslog } for pid=5246 comm="rsyslogd" capability=34 scontext=system_u:system_r:container_t:s0:c795,c887 tcontext=system_u:system_r:container_t:s0:c795,c887 tclass=capability2 " • cap_name[31]="cap_setfcap" • cap_name[32]="cap_mac_override" • cap_name[33]="cap_mac_admin" • cap_name[34]="cap_syslog"
  10. 10. Globalcode – Open4education Limite o recurso disponível • Recurso do cgroups • Memory • --memory • Swap • --memory-swap • CPU • --cpu-shares • DISK I/O • --device-read-iops • --device-write-iops
  11. 11. Globalcode – Open4education Linux Security Modules
  12. 12. Globalcode – Open4education SELinux
  13. 13. Globalcode – Open4education SELinux • Type Enforcement e Multi Category Security ( MCS ) • sandbox_lxc_process = "system_u:system_r:container_t:s0" • cada container s0:c1, s0:c2, … • Adicione este parâmetro no docker daemon para habilitar o SELinux • --selinux-enabled
  14. 14. Globalcode – Open4education AppArmor • Profile padrão é o docker-default • Para carregar o profile padrão • --security-opt apparmor=docker-default • Você pode gerenciar syscalls, capabilities e paths • Você pode utilizar um gerador de profiles • https://github.com/jessfraz/bane
  15. 15. Globalcode – Open4education Use patch de segurança para o Kernel
  16. 16. Globalcode – Open4education Seccomp • Docker tem um profile padrão para seccomp • Adicione este parâmetro para usar um custom profile • --security-opt seccomp:custom.json { "defaultAction": "SCMP_ACT_ALLOW", "syscalls": [ { "name": "chown", "action": "SCMP_ACT_ERRNO" }, { "name": "chmod", "action": "SCMP_ACT_ERRNO" } ] }
  17. 17. Globalcode – Open4education Como funciona uid/gid?
  18. 18. Globalcode – Open4education Read only images • docker run --read-only IMAGE
  19. 19. Globalcode – Open4education Limpe seus container • Dockerfile • RUN for i in `find / -not ( -path /proc -prune ) -perm +6000 -type f`; chmod a-s $i; done
  20. 20. Globalcode – Open4education Escaneie seus containers
  21. 21. Globalcode – Open4education Assine sua imagem
  22. 22. Globalcode – Open4education Futuro - Rootless containers • Runc executando como usuário não-privilegiado • Alguns problemas com cgroups • Alguns problemas com host network
  23. 23. Globalcode – Open4education Futuro - Intel Clear Containers • Pula diretamente para o Kernel Linux usando kvmtool • In-place Kernel Load • Suporte para Docker Containers • Boot em 0.2 seconds • Slim Kernel
  24. 24. Globalcode – Open4education Dúvidas?
  25. 25. Globalcode – Open4education Obrigado! :-)

×