Estudando Application Security com o OWASP Juice Shop na AWS

Escrito por

em

Quem estuda segurança de aplicações precisa de um lugar para praticar sem atacar o sistema de ninguém. Neste post de apoio ao vídeo, mostro como subir o OWASP Juice Shop em uma instância EC2 com Docker e usá-lo como laboratório de Application Security.

O que é o OWASP Juice Shop

O Juice Shop é uma loja virtual propositalmente vulnerável, mantida pela fundação OWASP. Ela é escrita em Node.js e roda em contêiner. A aplicação reúne dezenas de desafios que cobrem o OWASP Top 10 e muito mais, como:

  • Broken Access Control: acessar dados ou funções de outro usuário.
  • Injection: o clássico SQL injection, que continua aparecendo em aplicações reais.
  • Cross-Site Scripting (XSS).
  • Falhas de autenticação, de criptografia e de configuração.

Cada desafio resolvido aparece no placar (Score Board) da própria aplicação, o que transforma o estudo em um jogo com progresso visível. A página do projeto também tem um guia completo de instruções.

O Juice Shop é a mesma aplicação que uso como alvo no laboratório de WAF: Como configurar o AWS WAF.

Recursos AWS utilizados

RecursoPapel no laboratório
Amazon EC2 (Ubuntu)Máquina que roda o contêiner do Juice Shop
VPC padrão e IP públicoAcesso à aplicação pelo navegador, sem montar rede
Security GroupLibera a porta 3000, que é a porta do Juice Shop
DockerBaixa e executa a imagem oficial do Juice Shop

Existe também uma imagem do Juice Shop no AWS Marketplace, mas no vídeo subo tudo manualmente. Assim você entende cada peça, e o processo é simples.

Passo a passo resumido

1. Criar a instância EC2

  • AMI Ubuntu, tipo pequeno (elegível ao nível gratuito, se for o seu caso).
  • VPC padrão, com IP público habilitado, para acessar pelo navegador sem precisar de NAT ou VPN.
  • Security Group: entrada TCP 3000 para acessar a aplicação, e SSH (22) para administrar.

2. Instalar o Docker

Conecte na instância e rode:

sudo apt update && sudo apt upgrade -y
sudo apt install -y docker.io
sudo systemctl enable --now docker
docker --version

3. Subir o Juice Shop

sudo docker pull bkimminich/juice-shop
sudo docker run -d --name juice-shop -p 3000:3000 bkimminich/juice-shop

Acesse http://IP-PUBLICO-DA-INSTANCIA:3000 no navegador e a loja já estará funcionando.

Cuidados importantes com o laboratório

Lembre-se de que você está publicando uma aplicação vulnerável de propósito. Alguns cuidados evitam que o laboratório vire um problema:

  • Restrinja o Security Group ao seu IP (opção My IP no console), tanto na porta 3000 quanto na 22. Nunca deixe aberto para 0.0.0.0/0 por mais tempo do que o necessário.
  • Use uma conta AWS só para laboratório, separada de qualquer ambiente com dados reais.
  • Não reutilize senhas nem chaves de outros ambientes na instância.
  • Desligue ou apague a instância quando terminar. Além do risco, a EC2 e o IP público geram custo enquanto existirem.
  • Ataque apenas a sua própria instância. Testar sistemas de terceiros sem autorização é crime.

Próximos passos de estudo

  1. Abra o Score Board e comece pelos desafios de uma estrela.
  2. Use um proxy de interceptação, como o OWASP ZAP ou o Burp Suite Community, para ver e modificar as requisições.
  3. Para cada vulnerabilidade explorada, estude como corrigi-la no código. É aí que o conhecimento vira AppSec de verdade.
  4. Depois, coloque um AWS WAF na frente da aplicação e veja quais ataques ele bloqueia e quais passam: Como configurar o AWS WAF.
  5. Leve o aprendizado para o pipeline com práticas de DevSecOps: Como começar com DevSecOps.

Material de apoio

Você já usa o Juice Shop nos seus estudos? Conta nos comentários qual desafio deu mais trabalho.

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Visão geral de privacidade

Este site usa cookies para que possamos oferecer a melhor experiência de usuário possível. As informações dos cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.