SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
Análise de segurança e
hacking de containers
Docker
Fernando Silva
fernando.poa.br
Sobre mim!
Fernando Silva
Analista de Desenvolvimento
Visão Geral
1 - Estatísticas
2 - Preocupações com segurança ao usar Docker
3 - Práticas de segurança
4 - Ferramentas de análise de segurança e hacking
Estatistícas
Pesquisa realizada entre 14 e 25 de agosto 2017
36 participantes
Já utilizou Docker em produção?
Verifica vulnerabilidades nas
imagens utilizadas?
∎ Processo de análise manual, analisando o dockerfile e suas
dependências
∎ Autenticação, permissões e qualquer tipo de comunicação com
o host é mapeada
∎ Clair, TwistLock e Aqua
∎ Mais de 80% não verifica
Como verificar vulnerabilidades?
Preocupações com
segurança ao usar
Docker
Ao contrário de uma VM, o kernel é compartilhado entre todos os
containers e o host, aumentando a importância de qualquer
vulnerabilidade que explore o kernel.
Kernel exploits (exploração do kernel)
Como todos os containers compartilham recursos do kernel, se
um container pode monopolizar o acesso a certos recursos,
incluindo memória, ou até IDs de usuário (UIDs), pode faltar
recursos para outros containers, resultando em uma negação de
serviço (DoS).
Denial-of-service attacks (ataque de
negação de serviço)
Um invasor que tem acesso a um container não pode ter acesso a
outros containers ou ao host. Se você usa root no container, você
será root no host.
Container breakouts (invasão de container)
Como você sabe que as imagens que você está usando são
seguras, não foram adulteradas, e vêm de onde elas afirmam vir?
Poisoned images (imagens “envenenadas”)
https://hub.docker.com/r/fernandosilva/nginx-trojanized/
Poisoned images (imagens “envenenadas”)
Poisoned images (imagens “envenenadas”)
Poisoned images (imagens “envenenadas”)
Poisoned images (imagens “envenenadas”)
Quando um container acessa um banco de dados ou serviço,
provavelmente exigirá credenciais, como um token ou mesmo
usuário e senha. Se um invasor tiver acesso ao container terá
acesso a estes dados.
Application secrets (segredos de aplicações)
Práticas de segurança
Como devemos
armazenar dados
sensíveis, como senhas,
chaves privadas, tokens,
chaves de APIs?
Não use variáveis de
ambiente ou incorpore na
imagem de container
https://wycd.net/posts/2017-02-21-ibm-whole-cluster-privilege-escalation-disclosure.html
Docker Secrets Management
O Docker Secrets funciona como um cofre onde você pode colocar
coisas sensíveis lá e só quem tem a chave do cofre consegue utilizar,
no caso essa chave é designada aos nós dos serviços que a chave
for atribuída.
Docker Secrets Management
http://www.mundodocker.com.br/docker-secrets/
Docker Secrets Management
∎ Certifique-se de que seu host e a configuração do Docker
engine sejam seguras
∎ Mantenha seu SO atualizado
∎ Impor controle de acesso para evitar operações indesejadas,
tanto no host como nos containers, usando ferramentas como
SecComp, AppArmor ou SELinux
Proteja seu host
∎ Tomar cuidado ao executar como root
∎ Crie namespaces isolados
∎ Limitar privilégios ao máximo
∎ Verifique se o container é confiavél (verifique a imagem)
Redução dos privilégios
∎ De onde veio?
∎ Você confia no criador?
∎ Quais políticas de segurança está usando?
∎ Identificação do autor
∎ Não use se não confia na fonte
∎ Use um servidor Docker Registry próprio
∎ Verifique a assinatura da imagem
Autenticidade da imagem
∎ Limite os recursos no kernel ou no container
∎ Fazer testes de carga antes de por em produção
∎ Implemente monitoramento e alertas
Alto uso de recursos do container
∎ Inspecionar as imagens
∎ Atualize para pegar novos patches de segurança
∎ Utilize uma ferramenta de scanner de vulnerabilidades
∎ Integre esse scanner como etapa do seu CI/CD
Vulnerabilidades de segurança
presentes na imagem
Ferramentas de análise de
segurança e hacking
Docker Security Scanning
hub.docker.com
store.docker.com
cloud.docker.com
Docker Security Scanning
Anteriormente conhecido por Projeto Nautilus, a solução fornece
um perfil de segurança detalhado das imagens Docker com
objetivo de tornar o ambiente em conformidade com as melhores
práticas. A ferramenta faz uma varredura das imagens antes de
serem utilizadas e monitoramento de vulnerabilidades.
Discover, Analyze, and
Certify Container Images
anchore.io
imagelayers.io
microbadger.com
Demonstração
Imagelayers.io
microbadger.com
Open source project for the static analysis of
vulnerabilities in appc and docker containers.
github.com/coreos/clair
Online automatic
analysis
quay.io
Container Security for
Docker, Kubernetes and
Beyond
twistlock.com
Aqua Container Security
Platform
aquasec.com
Docker Bench for Security
Avalia se o ambiente Docker está em conformidade com as
melhores práticas. Sua função é verificar se as recomendações de
segurança implementadas corretamente durante a configuração do
serviço Docker.
Teste de segurança para ambiente
Docker
docker run -it --net host --pid host --cap-add audit_control 
-e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST 
-v /var/lib:/var/lib 
-v /var/run/docker.sock:/var/run/docker.sock 
-v /usr/lib/systemd:/usr/lib/systemd 
-v /etc:/etc --label docker_bench_security 
docker/docker-bench-security
https://dockerbench.com/
Demonstração
1. Configuração de host
2. Configuração do Docker Daemon
3. Arquivos de configuração do Docker
4. Imagens de containers e arquivos
5. Tempo de execução de containers
O que fazer com os resultados?
https://d3oypxn00j2a10.cloudfront.net/assets/img/Docker%20Security/WP_Intro_to_container_security_03.20.2015.pdf
https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.12.0_Benchmark_v1.0.0.pdf
The Behavioral Activity
Monitor
With Container Support
github.com/draios/falco
Audit your images,
assessing both running
containers and cold
images
open-scap.org
github.com/kost/dockscan
Docker Scan
github.com/cr0hn/dockerscan
∎ Faz scan de uma rede tentando localizar os Docker Registries
∎ Registry
Delete: Exclui image / tag remota
Info: Mostra informações de registros remotos
Push: Envia uma imagem (como Docker)
Upload: Upload de arquivo aleatório
Principais Funcionalidades
∎ Image
□ Analyze
Busca por informações confidenciais em uma imagem
Docker
Busca por senhas em variáveis de ambiente
Busca por qualquer URL / IP em variáveis de ambiente
Tenta identificar o usuário usado para executar o software
Principais Funcionalidades
∎ Image
□ Extract: extrair uma imagem docker
□ Info: Obtém meta-informação da imagem
□ Modify:
entrypoint: altere o ponto de entrada em um docker
trojanize: injeta um reverser shell em uma imagem docker
user: altere o usuário em execução em uma imagem docker
Principais Funcionalidades
Demonstração
Mais conteúdo sobre...
Docker Security - Play Safe
scaledocker.com
cisecurity.org/benchmark/docker
Mais conteúdo sobre...
oreilly.com/docker-security docker.com/docker-security
Referências
● https://gianarb.it/blog/Docker-Security-Benchmark
● https://sysdig.com/blog/20-docker-security-tools
● https://sysdig.com/blog/7-docker-security-vulnerabilities
● http://techfree.com.br/2015/06/seguranca-no-docker
● https://blog.docker.com/2016/05/docker-security-scanning
● https://blog.docker.com/2015/05/understanding-docker-security-and-best-practices
● http://rancher.com/container-security-tools-breakdown
● https://medium.com/enterstone/protegendo-docker-f95a831a31f3
● https://securitytraning.com/docker-containers-security
● https://www.tripwire.com/state-of-security/featured/security-risks-consider-deploying-
containers-docker
● https://blog.sqreen.io/docker-security
● https://blog.docker.com/2017/02/docker-secrets-management
OBRIGADO!
fernando.poa.br
speakerdeck.com/fernandodebrando
Perguntas?

Mais conteúdo relacionado

Mais procurados

Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneosFernando Ike
 
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Tchelinux
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoDiogo Lucas
 
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Tchelinux
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucaoFernando Ike
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Wellington Silva
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerWaldemar Neto
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoSérgio Lima
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerLuís Bianchin
 
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017Tchelinux
 

Mais procurados (20)

Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Introdução ao Ceph - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
Open Source Cloud Computing - Leonardo Vaz - Tchelinux Bento Gonçalves 2017
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Iniciando com docker
Iniciando com dockerIniciando com docker
Iniciando com docker
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3Talk no Meetup LaravelSP #3
Talk no Meetup LaravelSP #3
 
Desenvolvendo com PHP e Docker
Desenvolvendo com PHP e DockerDesenvolvendo com PHP e Docker
Desenvolvendo com PHP e Docker
 
Docker: uma visão geral
Docker: uma visão geralDocker: uma visão geral
Docker: uma visão geral
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
Microserviços - Cristiano dos Santos Diedrich - Tchelinux Bento Gonçalves 2017
 
Docker compose
Docker composeDocker compose
Docker compose
 
5. rodando containers docker na aws
5. rodando containers docker na aws5. rodando containers docker na aws
5. rodando containers docker na aws
 

Semelhante a Análise de segurança e hacking de containers Docker - Fernando Silva - Tchelinux Bento Gonçalves 2017

Seguranca - docker
Seguranca - dockerSeguranca - docker
Seguranca - dockerStefani Lima
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...tdc-globalcode
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas DevopsCristian Trucco
 
Introdução à Segurança de Containers
Introdução à Segurança de ContainersIntrodução à Segurança de Containers
Introdução à Segurança de ContainersAlexandre Sieira
 
Introdução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e KubernetesIntrodução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e KubernetesTenchi Security
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Docker basicão e sem mistérios
Docker basicão e sem mistériosDocker basicão e sem mistérios
Docker basicão e sem mistériosIsaac Maciel
 
Orquestração de containers com Rancher
Orquestração de containers com RancherOrquestração de containers com Rancher
Orquestração de containers com RancherAlex Ishida
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com DockerAécio Pires
 

Semelhante a Análise de segurança e hacking de containers Docker - Fernando Silva - Tchelinux Bento Gonçalves 2017 (20)

Seguranca - docker
Seguranca - dockerSeguranca - docker
Seguranca - docker
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Docker meetup
Docker meetupDocker meetup
Docker meetup
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Protegendo Docker
Protegendo DockerProtegendo Docker
Protegendo Docker
 
Docker e outras ferramentas Devops
Docker e outras ferramentas DevopsDocker e outras ferramentas Devops
Docker e outras ferramentas Devops
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Introdução à Segurança de Containers
Introdução à Segurança de ContainersIntrodução à Segurança de Containers
Introdução à Segurança de Containers
 
Introdução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e KubernetesIntrodução à Segurança de Containers e Kubernetes
Introdução à Segurança de Containers e Kubernetes
 
Docker
DockerDocker
Docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker basicão e sem mistérios
Docker basicão e sem mistériosDocker basicão e sem mistérios
Docker basicão e sem mistérios
 
Orquestração de containers com Rancher
Orquestração de containers com RancherOrquestração de containers com Rancher
Orquestração de containers com Rancher
 
Docker
DockerDocker
Docker
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 

Mais de Tchelinux

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Tchelinux
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeTchelinux
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Tchelinux
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeTchelinux
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Tchelinux
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Tchelinux
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeTchelinux
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeTchelinux
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...Tchelinux
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...Tchelinux
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Tchelinux
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Tchelinux
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.Tchelinux
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygameTchelinux
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Tchelinux
 

Mais de Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 

Último

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfNatalia Granato
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Análise de segurança e hacking de containers Docker - Fernando Silva - Tchelinux Bento Gonçalves 2017

  • 1. Análise de segurança e hacking de containers Docker Fernando Silva fernando.poa.br
  • 3. Visão Geral 1 - Estatísticas 2 - Preocupações com segurança ao usar Docker 3 - Práticas de segurança 4 - Ferramentas de análise de segurança e hacking
  • 4. Estatistícas Pesquisa realizada entre 14 e 25 de agosto 2017 36 participantes
  • 5. Já utilizou Docker em produção?
  • 7. ∎ Processo de análise manual, analisando o dockerfile e suas dependências ∎ Autenticação, permissões e qualquer tipo de comunicação com o host é mapeada ∎ Clair, TwistLock e Aqua ∎ Mais de 80% não verifica Como verificar vulnerabilidades?
  • 9. Ao contrário de uma VM, o kernel é compartilhado entre todos os containers e o host, aumentando a importância de qualquer vulnerabilidade que explore o kernel. Kernel exploits (exploração do kernel)
  • 10. Como todos os containers compartilham recursos do kernel, se um container pode monopolizar o acesso a certos recursos, incluindo memória, ou até IDs de usuário (UIDs), pode faltar recursos para outros containers, resultando em uma negação de serviço (DoS). Denial-of-service attacks (ataque de negação de serviço)
  • 11. Um invasor que tem acesso a um container não pode ter acesso a outros containers ou ao host. Se você usa root no container, você será root no host. Container breakouts (invasão de container)
  • 12. Como você sabe que as imagens que você está usando são seguras, não foram adulteradas, e vêm de onde elas afirmam vir? Poisoned images (imagens “envenenadas”) https://hub.docker.com/r/fernandosilva/nginx-trojanized/
  • 13. Poisoned images (imagens “envenenadas”)
  • 14. Poisoned images (imagens “envenenadas”)
  • 15. Poisoned images (imagens “envenenadas”)
  • 16. Poisoned images (imagens “envenenadas”)
  • 17. Quando um container acessa um banco de dados ou serviço, provavelmente exigirá credenciais, como um token ou mesmo usuário e senha. Se um invasor tiver acesso ao container terá acesso a estes dados. Application secrets (segredos de aplicações)
  • 19. Como devemos armazenar dados sensíveis, como senhas, chaves privadas, tokens, chaves de APIs?
  • 20. Não use variáveis de ambiente ou incorpore na imagem de container https://wycd.net/posts/2017-02-21-ibm-whole-cluster-privilege-escalation-disclosure.html
  • 22. O Docker Secrets funciona como um cofre onde você pode colocar coisas sensíveis lá e só quem tem a chave do cofre consegue utilizar, no caso essa chave é designada aos nós dos serviços que a chave for atribuída. Docker Secrets Management http://www.mundodocker.com.br/docker-secrets/
  • 24. ∎ Certifique-se de que seu host e a configuração do Docker engine sejam seguras ∎ Mantenha seu SO atualizado ∎ Impor controle de acesso para evitar operações indesejadas, tanto no host como nos containers, usando ferramentas como SecComp, AppArmor ou SELinux Proteja seu host
  • 25. ∎ Tomar cuidado ao executar como root ∎ Crie namespaces isolados ∎ Limitar privilégios ao máximo ∎ Verifique se o container é confiavél (verifique a imagem) Redução dos privilégios
  • 26. ∎ De onde veio? ∎ Você confia no criador? ∎ Quais políticas de segurança está usando? ∎ Identificação do autor ∎ Não use se não confia na fonte ∎ Use um servidor Docker Registry próprio ∎ Verifique a assinatura da imagem Autenticidade da imagem
  • 27. ∎ Limite os recursos no kernel ou no container ∎ Fazer testes de carga antes de por em produção ∎ Implemente monitoramento e alertas Alto uso de recursos do container
  • 28. ∎ Inspecionar as imagens ∎ Atualize para pegar novos patches de segurança ∎ Utilize uma ferramenta de scanner de vulnerabilidades ∎ Integre esse scanner como etapa do seu CI/CD Vulnerabilidades de segurança presentes na imagem
  • 29. Ferramentas de análise de segurança e hacking
  • 34. Docker Security Scanning Anteriormente conhecido por Projeto Nautilus, a solução fornece um perfil de segurança detalhado das imagens Docker com objetivo de tornar o ambiente em conformidade com as melhores práticas. A ferramenta faz uma varredura das imagens antes de serem utilizadas e monitoramento de vulnerabilidades.
  • 35.
  • 36.
  • 37.
  • 38. Discover, Analyze, and Certify Container Images anchore.io
  • 42. Open source project for the static analysis of vulnerabilities in appc and docker containers. github.com/coreos/clair
  • 44.
  • 45. Container Security for Docker, Kubernetes and Beyond twistlock.com
  • 46.
  • 48.
  • 49.
  • 50. Docker Bench for Security Avalia se o ambiente Docker está em conformidade com as melhores práticas. Sua função é verificar se as recomendações de segurança implementadas corretamente durante a configuração do serviço Docker.
  • 51. Teste de segurança para ambiente Docker docker run -it --net host --pid host --cap-add audit_control -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST -v /var/lib:/var/lib -v /var/run/docker.sock:/var/run/docker.sock -v /usr/lib/systemd:/usr/lib/systemd -v /etc:/etc --label docker_bench_security docker/docker-bench-security https://dockerbench.com/
  • 52.
  • 54. 1. Configuração de host 2. Configuração do Docker Daemon 3. Arquivos de configuração do Docker 4. Imagens de containers e arquivos 5. Tempo de execução de containers O que fazer com os resultados? https://d3oypxn00j2a10.cloudfront.net/assets/img/Docker%20Security/WP_Intro_to_container_security_03.20.2015.pdf https://benchmarks.cisecurity.org/tools2/docker/CIS_Docker_1.12.0_Benchmark_v1.0.0.pdf
  • 55. The Behavioral Activity Monitor With Container Support github.com/draios/falco
  • 56. Audit your images, assessing both running containers and cold images open-scap.org
  • 59. ∎ Faz scan de uma rede tentando localizar os Docker Registries ∎ Registry Delete: Exclui image / tag remota Info: Mostra informações de registros remotos Push: Envia uma imagem (como Docker) Upload: Upload de arquivo aleatório Principais Funcionalidades
  • 60. ∎ Image □ Analyze Busca por informações confidenciais em uma imagem Docker Busca por senhas em variáveis de ambiente Busca por qualquer URL / IP em variáveis de ambiente Tenta identificar o usuário usado para executar o software Principais Funcionalidades
  • 61. ∎ Image □ Extract: extrair uma imagem docker □ Info: Obtém meta-informação da imagem □ Modify: entrypoint: altere o ponto de entrada em um docker trojanize: injeta um reverser shell em uma imagem docker user: altere o usuário em execução em uma imagem docker Principais Funcionalidades
  • 63. Mais conteúdo sobre... Docker Security - Play Safe scaledocker.com cisecurity.org/benchmark/docker
  • 65. Referências ● https://gianarb.it/blog/Docker-Security-Benchmark ● https://sysdig.com/blog/20-docker-security-tools ● https://sysdig.com/blog/7-docker-security-vulnerabilities ● http://techfree.com.br/2015/06/seguranca-no-docker ● https://blog.docker.com/2016/05/docker-security-scanning ● https://blog.docker.com/2015/05/understanding-docker-security-and-best-practices ● http://rancher.com/container-security-tools-breakdown ● https://medium.com/enterstone/protegendo-docker-f95a831a31f3 ● https://securitytraning.com/docker-containers-security ● https://www.tripwire.com/state-of-security/featured/security-risks-consider-deploying- containers-docker ● https://blog.sqreen.io/docker-security ● https://blog.docker.com/2017/02/docker-secrets-management