Introdução em Segurança de
Containers
Carol Valencia
Devops Engineer
Slide 2
Slide 2 text
Tópicos
- Containers
- Principais riscos em containers
- Boas práticas em Segurança com containers
- Ferramentas
Slide 3
Slide 3 text
Containers
Slide 4
Slide 4 text
NIST Special Publication 800-190
Virtualização Containers
Slide 5
Slide 5 text
https://d3oypxn00j2a10.cloudfront.net/assets/img/Docker%20Security/WP_Intro_to_container_security_03.20.2015.pdf
Container
- Linux kernel namespaces
- Linux control groups (cgroups)
- Docker daemon: dockerd
- Linux capabilities (libcap)
- Linux security mechanism:
AppArmor or SELinux
NIST Special Publication 800-190
Ciclo de Arquitetura com Containers
Slide 9
Slide 9 text
Principais Riscos em
Containers
Slide 10
Slide 10 text
Riscos
● Risco em containers
○ Vulnerabilidades dentro do
runtime do software.
○ Sem limites no acesso de rede
desde o container.
● Risco em imagens
○ Vulnerabilidades de imagem
○ Defeitos na configuração da
imagem
○ Embedded malware
○ Embedded secrets
○ Uso de imagens não confiáveis
Slide 11
Slide 11 text
Boas Práticas em Segurança
com Containers
Slide 12
Slide 12 text
Docker daemon API
API listen on
/var/run/docker.sock
Don’t mount
the docker socket
docker container run -d
-p 9000:9000 -v
/var/run/docker.sock:/var
/run/docker.sock
portainer/portainer
Slide 13
Slide 13 text
https://d3oypxn00j2a10.cloudfront.net/assets/img/Docker%20Security/WP_Intro_to_container_security_03.20.2015.pdf
Restrição em Arquivos
docker run -v
$(pwd)/secrets:/secrets:ro
debian touch /secrets/x
xxxx
Slide 14
Slide 14 text
x
Container Privileges: Capabilities
Running privileged containers
docker run -d --privileged ubuntu
grant it only the specific capabilities that it needs
docker run --cap-drop=ALL --cap-add=CAP_NET_ADMIN
docker run -d --cap-add SYS_PTRACE ubuntu
Slide 15
Slide 15 text
https://d3oypxn00j2a10.cloudfront.net/assets/img/Docker%20Security/WP_Intro_to_container_security_03.20.2015.pdf
Container: Restrição de Permissão
Running containers as root users
Run containers as non-root users
RUN groupadd -r user && useradd -r -g user user
USER user
Disable setuid rights in Dockerfile:
RUN find / -perm +6000 -type f -exec chmod a-s {} \;
\ || true
Slide 16
Slide 16 text
Docker Security
- Host configuration.
Unsecured, unhardened host
OS best practices
- Docker hardening standard
Docker bench security
Slide 17
Slide 17 text
Docker Content Trust
Pulling and running containers from public registries
Scan container images to detect and prevent
containers with known vulnerabilities or malicious packages
docker pull debian
Sign container images - Docker Content Trust
guarantees the integrity of the publisher and the integrity of the
contents of a container image
export DOCKER_CONTENT_TRUST=1
Slide 18
Slide 18 text
Scan container images to detect and prevent containers with known
vulnerabilities or malicious packages
Conclusões
● Conhecer os componentes no fluxo do CI/CD da
aplicação: infraestrutura, libs, CI/CD.
● Proteção da aplicação e do pipeline de containers.
● Usar ferramentas de segurança, muitas delas open
source.
Slide 24
Slide 24 text
Referências
● Application Container Security Guide - NIST
● Docker Security
● CIS Docker 1.13.0 Benchmark
● Testing Docker Images Security: Jose Manuel Ortega
● Google Security Containers
● Isolate containers with a user namespace
● Understanding-and-securing-linux-namespaces
Slide 25
Slide 25 text
Carol Valencia
linkedin.com/in/carolgv
github.com/krol3
email: guillen.carolina@gmail.com