SlideShare uma empresa Scribd logo
Globalcode – Open4education
Protegendo Docker
Guilherme Oki
Globalcode – Open4education
Quem sou eu?
• SRE na Stone Pagamentos
• Apaixonado por open source
• Entusiasta da cultura e do desenvolvimento ágil
Globalcode – Open4education
O que é Docker?
"Docker is about running random crap
from the internet as root on your host"
Globalcode – Open4education
O que são containers?
Globalcode – Open4education
Por que eles precisam de proteção?
Globalcode – Open4education
O que precisa de proteção?
• Application
• Containers <-> Containers
• Containers <-> Hosts
Globalcode – Open4education
Como proteger?
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
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"
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
Globalcode – Open4education
Linux Security Modules
Globalcode – Open4education
SELinux
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
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
Globalcode – Open4education
Use patch de segurança para o Kernel
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"
}
]
}
Globalcode – Open4education
Como funciona uid/gid?
Globalcode – Open4education
Read only images
• docker run --read-only IMAGE
Globalcode – Open4education
Limpe seus container
• Dockerfile
• RUN for i in `find / -not ( -path /proc -prune ) -perm +6000 -type f`; chmod a-s $i;
done
Globalcode – Open4education
Escaneie seus containers
Globalcode – Open4education
Assine sua imagem
Globalcode – Open4education
Futuro - Rootless containers
• Runc executando como usuário não-privilegiado
• Alguns problemas com cgroups
• Alguns problemas com host network
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
Globalcode – Open4education
Dúvidas?
Globalcode – Open4education
Obrigado! :-)
Protegendo Docker

Mais conteúdo relacionado

PDF
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
PDF
5. rodando containers docker na aws
PDF
Deploying Docker Containers
PDF
Talk no Meetup LaravelSP #3
PDF
Desenvolvendo e implantando aplicações PHP utilizando Docker
PDF
TDC 2015 POA - O Fantástico Mundo de Docker
PDF
Orquestrando Docker Containers: Machine, Swarm e Compose
PDF
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
5. rodando containers docker na aws
Deploying Docker Containers
Talk no Meetup LaravelSP #3
Desenvolvendo e implantando aplicações PHP utilizando Docker
TDC 2015 POA - O Fantástico Mundo de Docker
Orquestrando Docker Containers: Machine, Swarm e Compose
TDC 2015 Floripa - Criando ambientes de forma simples com Docker e Ansible

Mais procurados (20)

PDF
Docker na vida real
PDF
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
PDF
Primeiros passos com o Docker
PDF
TDC2018SP | Trilha Containers - Linux Conteineres na unha
PDF
Docker, facilitando a vida do desenvolvimento
PDF
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda Parte
PDF
Verdades que não querem te contar sobre Docker
PDF
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
PDF
Docker Swarm Cluster
PDF
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
PDF
O poder do Docker (7 Masters)
PDF
Vagrant & Docker: carregue seus ambientes no bolso
PDF
TDC2018SP | Trilha Containers - Docker Swarm - Os problemas
PDF
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
PPTX
Dicas de como entrar no mundo do DevSecOps
PDF
Apresentação docker
PDF
Bem vindo ao Docker
PDF
Docker 1.12 - Swarm Mode
PPTX
Escalando Aplicações com Redis
PDF
Kubecon EU 2019 Remarks
Docker na vida real
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...
Primeiros passos com o Docker
TDC2018SP | Trilha Containers - Linux Conteineres na unha
Docker, facilitando a vida do desenvolvimento
InfoPI 2013 - Minicurso - Introdução ao CUDA - Segunda Parte
Verdades que não querem te contar sobre Docker
TDC2018SP | Trilha Containers - Provisionando um cluster Kubernetes multi-mas...
Docker Swarm Cluster
TDC2018SP | Trilha Containers - Kubernetes: como a magica acontece?
O poder do Docker (7 Masters)
Vagrant & Docker: carregue seus ambientes no bolso
TDC2018SP | Trilha Containers - Docker Swarm - Os problemas
TDC2018SP | Trilha Containers - ASGARD: Abstraindo orquestradores de containers
Dicas de como entrar no mundo do DevSecOps
Apresentação docker
Bem vindo ao Docker
Docker 1.12 - Swarm Mode
Escalando Aplicações com Redis
Kubecon EU 2019 Remarks
Anúncio

Semelhante a Protegendo Docker (10)

PPTX
TDC2016SP - Trilha DevOps Java
PDF
Aplicações 12 fatores, melhor com Docker
ODP
Docker tdc 2014
PPT
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
PPT
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
PPT
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
PPTX
TDC2019Floripa - Não existe container de prata
PPT
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
PPT
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
PDF
O que é docker?
TDC2016SP - Trilha DevOps Java
Aplicações 12 fatores, melhor com Docker
Docker tdc 2014
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
TDC2019Floripa - Não existe container de prata
Banco de Dados - Docker Compose + Bancos Relacionais: descomplicando a montag...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
O que é docker?
Anúncio

Último (19)

PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula 18 - Manipulacao De Arquivos python
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula04-Academia Heri- Tecnologia Geral 2025
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Apple Pippin Uma breve introdução. - David Glotz
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula 18 - Manipulacao De Arquivos python

Protegendo Docker