Diário de Bordo – Mateus Vieira
Disciplina: Gestão de Configuração e Evolução de Software
Equipe: OWASP (Time Red)
Comunidade/Projeto de Software Livre: OWASP (ej-application)
Sprint 1 – 10/09 até 23/09
Resumo da Sprint
Nesta sprint, o foco principal foi o aprofundamento em tópicos de segurança de aplicações web, conforme o plano de estudos definido. As atividades incluíram o estudo teórico e a prática em laboratórios focados em SQL Injection, Cross-Site Request Forgery (CSRF), Cross-Site Scripting (XSS) e Clickjacking.
Atividades Realizadas
Data | Atividade | Tipo (Código/Doc/Discussão/Outro) | Link/Referência | Status |
---|---|---|---|---|
12/09 | Estudo teórico e prático sobre SQL Injection | Estudo / Prática | – OWASP SQL Injection | Concluído |
15/09 | Estudo teórico e prático sobre Cross-Site Scripting (XSS) e Clickjacking | Estudo / Prática | – OWASP XSS – OWASP Clickjacking |
Concluído |
20/09 | Estudo teórico e prático sobre Cross-Site Request Forgery (CSRF) | Estudo / Prática | – OWASP CSRF | Concluído |
23/09 | Relatório de Geral/Pessoal de GCES | Docs | – | Concluído |
Maiores Avanços
O maior avanço foi o estudo aprofundado e a compreensão das vulnerabilidades de SQL Injection, CSRF, XSS e Clickjacking. Através da prática em laboratórios, foi possível consolidar o conhecimento teórico sobre como esses ataques funcionam e, mais importante, como eles podem ser explorados na prática.
Maiores Dificuldades
Não houve grandes dificuldades, o conteúdo foi bem assimilado.
Aprendizados
Os principais aprendizados desta sprint foram:
-
SQL Injection: Entendimento de como a entrada de dados não validada e a concatenação de strings em consultas SQL podem permitir que um atacante execute comandos arbitrários no banco de dados.
- Exemplo: Um formulário de login vulnerável onde o atacante insere no campo de usuário
admin' --
. Se a aplicação não valida a entrada, a consulta pode se tornarSELECT * FROM users WHERE username = 'admin' --' AND password = 'senha_digitada'
. O--
é um comentário em SQL, ignorando o resto da string e permitindo o login sem a senha. - Referência: OWASP SQL Injection
- Exemplo: Um formulário de login vulnerável onde o atacante insere no campo de usuário
-
Cross-Site Scripting (XSS): O ataque consiste em injetar scripts maliciosos em páginas web visualizadas por outros usuários.
- Exemplo: Em um campo de comentário de um blog, o atacante insere o código
<script>alert('XSS Atacado!')</script>
. Se a aplicação não "sanitiza" a entrada, o script será executado no navegador de qualquer usuário que visualizar o comentário. - Referência: OWASP XSS
- Exemplo: Em um campo de comentário de um blog, o atacante insere o código
-
Cross-Site Request Forgery (CSRF): Forçar o usuário final a executar ações indesejadas em uma aplicação web na qual ele está autenticado. O ataque se baseia na confiança do site no navegador do usuário.
- Exemplo: Um atacante cria um site malicioso com o seguinte código em uma imagem oculta:
<img src="https://banco.com/transfer?destino=atacante&valor=1000">
. Se a vítima, logada no site do banco, visitar a página do atacante, seu navegador irá automaticamente tentar carregar a imagem, executando a transferência bancária sem o consentimento dela. - Referência: OWASP CSRF
- Exemplo: Um atacante cria um site malicioso com o seguinte código em uma imagem oculta:
-
Clickjacking: Consiste em enganar o usuário para que ele clique em algo que não pretendia, através de uma interface de usuário transparente ou oculta.
- Exemplo: Um atacante cria um site com um botão "Ganhe um prêmio!". Por cima desse botão, ele sobrepõe uma página de um site de banco em que a vítima está autenticada, com um botão "Transferir R$ 1000". A página de banco é invisível, mas o atacante a posiciona exatamente sobre seu botão "Ganhe um prêmio!". Quando a vítima clica no botão visível, ela está na verdade clicando no botão invisível do banco, executando a transferência.
- Referência: OWASP Clickjacking
Plano Pessoal para a Próxima Sprint
Na próxima sprint, o objetivo é aprofundar o aprendizado em segurança de aplicações web e aplicar o conhecimento adquirido. As atividades planejadas são:
- Testar os seguintes ataques sobre a aplicação do EJ:
- SQL Injection
- XSS
- CSRF
- Estudar sobre:
- Insecure Direct Object References (IDOR)
- Estudar sobre sessões/cookies inseguros
- Estudar sobre Brute force e rate limiting