Slide 1

Slide 1 text

Ataque e Auditoria de Containers Docker e Clusters Kubernetes Fernando Silva @FernandoDebrand

Slide 2

Slide 2 text

Sobre mim! Fernando Silva Information Security Specialist

Slide 3

Slide 3 text

Visão Geral ● Introdução ● Vetores de Ataque ● Ferramentas de Auditoria ● Ataques Populares

Slide 4

Slide 4 text

Vazamento de Dados

Slide 5

Slide 5 text

O que é Docker?

Slide 6

Slide 6 text

O que é Docker? Docker é uma plataforma Open Source que permite criar, executar, testar e implantar aplicações distribuídas dentro de containers.

Slide 7

Slide 7 text

Evolução

Slide 8

Slide 8 text

Container Vs Virtual Machine

Slide 9

Slide 9 text

Docker Engine Docker Engine abstrai as chamadas de SO das suas aplicações e utiliza as bibliotecas e binários já existentes

Slide 10

Slide 10 text

Onde usar Docker? Containers Docker estão em todos os lugares: Linux, Windows, Data center, Cloud, Serverless, etc.

Slide 11

Slide 11 text

Vetores de Ataque

Slide 12

Slide 12 text

Vetores de ataque

Slide 13

Slide 13 text

Ferramentas de Auditoria de Containers Docker

Slide 14

Slide 14 text

anchore.com/opensource

Slide 15

Slide 15 text

Análise de conformidade de container para garantir a segurança e a estabilidade

Slide 16

Slide 16 text

github.com/docker/docker-bench-security

Slide 17

Slide 17 text

O Docker Bench for Security é um script que verifica dezenas de boas práticas

Slide 18

Slide 18 text

O Docker Bench for Security é um script que verifica dezenas de boas práticas

Slide 19

Slide 19 text

github.com/aquasecurity/trivy

Slide 20

Slide 20 text

Scanner de vulnerabilidade de containers

Slide 21

Slide 21 text

falco.org

Slide 22

Slide 22 text

Container Native Runtime Security

Slide 23

Slide 23 text

Introdução a Kubernetes

Slide 24

Slide 24 text

Kubernetes Kubernetes (K8s) é um produto Open Source utilizado para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos em containers

Slide 25

Slide 25 text

Kubernetes Ele agrupa containers que compõem uma aplicação em unidades lógicas para facilitar o gerenciamento e a descoberta de serviço. O Kubernetes se baseia em 15 anos de experiência na execução de containers em produção no Google, combinado com as melhores ideias e práticas da comunidade.

Slide 26

Slide 26 text

Arquitetura Kubernetes

Slide 27

Slide 27 text

Arquitetura Kubernetes Cluster: conjunto dos componentes (Master, nodes, pods, contêineres, etc). Obs: A imagem acima representa o cluster onde trabalharemos.

Slide 28

Slide 28 text

Arquitetura Kubernetes Master: ponto de controle central que provê uma visão unificada do cluster. É a máquina mestre que recebe as configurações preestabelecidas através dos arquivos .yaml.

Slide 29

Slide 29 text

Arquitetura Kubernetes Node: Uma máquina ativa (gerenciada pelo master), também conhecida como Minion. Dentro dele ficam os serviços necessários para rodar os pods. Os serviços em um node incluem Docker, Kubelet e kube-proxy.

Slide 30

Slide 30 text

Arquitetura Kubernetes Pods: menores unidades implantadas que podem ser criadas, escaladas e manuseadas. É uma coleção lógica de contêineres que pertencem a uma aplicação.

Slide 31

Slide 31 text

Arquitetura Kubernetes Obs: Um master pode gerenciar um ou mais nodes, um node pode conter um ou mais pods, e um pod pode conter um ou mais containers.

Slide 32

Slide 32 text

Vetores de ataque

Slide 33

Slide 33 text

Ferramentas de Auditoria de Clusters Kubernetes

Slide 34

Slide 34 text

kubesec.io

Slide 35

Slide 35 text

Análise de risco de segurança para recursos do Kubernetes

Slide 36

Slide 36 text

github.com/aquasecurity/kube-bench

Slide 37

Slide 37 text

Verifica se o Kubernetes é implantado de acordo com as melhores práticas de segurança

Slide 38

Slide 38 text

github.com/aquasecurity/kube-hunter

Slide 39

Slide 39 text

Busca por fraquezas de segurança nos clusters Kubernetes

Slide 40

Slide 40 text

Ataques populares em torno do ecossistema de Docker e Kubernetes

Slide 41

Slide 41 text

Nuvem da Tesla foi invadida e usada para minerar criptomoeda https://blog.redlock.io/cryptojacking-tesla

Slide 42

Slide 42 text

17 imagens Docker disponibilizadas por uma única conta durante 10 meses no Docker Hub, com mais de 5 milhões de pulls, podem ter minerado US $90.000 em criptomoedas Monero.

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

Grupo de hackers está sequestrando sistemas Docker com terminais de API expostos https://www.zdnet.com/article/a-hacking-group-is-hijacking-docker-systems-with-exposed-api-endpoints/

Slide 48

Slide 48 text

Anatomia do ataque ● verifica mais de 59.000 redes IP (netblocks) ● identifica um host exposto ● Inicia um container Alpine Linux OS ● instala um minerador de criptomoeda ● desinstala os agentes de monitoramento ● encerra os processos associados às botnets rivais ● criptografa e rouba arquivos de configuração ● cria contas de backdoor, deixando as chaves SSH

Slide 49

Slide 49 text

Dezembro de 2018: Global / > 1.300 APIs Expostas

Slide 50

Slide 50 text

Dezembro de 2018: Brasil / > 25 APIs Expostas

Slide 51

Slide 51 text

Abril de 2019: Global / > 4.900 APIs Expostas

Slide 52

Slide 52 text

Dezembro de 2019: Global / > 15.000 APIs Expostas

Slide 53

Slide 53 text

Dezembro de 2019: Brasil / > 840 APIs Expostas

Slide 54

Slide 54 text

Aumento das APIs Expostas - Global

Slide 55

Slide 55 text

Como proteger a API Docker? ● Crie regras de firewall ● Proteja o soquete do daemon do Docker ● TLS precisa ser ativado especificando o sinalizador tlsverify e apontando o tlscacert do Docker para um certificado de CA confiável ( https://docs.docker.com/engine/security/https) ● Habilitando API do Docker de forma segura utilizando container (https://github.com/fernandodebrando/docker-remote-api-tls)

Slide 56

Slide 56 text

Vazamento de Dados configuração incorreta

Slide 57

Slide 57 text

DÚVIDAS? fernando.poa.br speakerdeck.com/fernandodebrando Perguntas?