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)