Slide 1

Slide 1 text

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

Slide 6

Slide 6 text

Docker arquitetura: Client/server https://nickjanetakis.com/blog/understanding-how-the-docker-daemon-and-docker-cli-work-together

Slide 7

Slide 7 text

https://www.slideshare.net/jmoc25/testing-docker-images-security-ncn-edition Usuários conectam Docker host

Slide 8

Slide 8 text

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

Slide 19

Slide 19 text

Ferramentas

Slide 20

Slide 20 text

Docker Bench Security

Slide 21

Slide 21 text

Lynis

Slide 22

Slide 22 text

Ferramentas - Docker Bench Security - Lynis - Dagda - CoreOS Clair - Sonatype’s Nexus Lifecycle - Tenable - Anchore - Twistlock - Aqua Security

Slide 23

Slide 23 text

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