Sprint 2
Diário de Bordo – Marcus
Disciplina: [GERÊNCIA DE CONFIGURAÇÃO E EVOLUÇÃO DE SOFTWARE] Equipe: [OWASP] Comunidade/Projeto de Software Livre: Pencil Labs / EJ-Platform
Sprint 2 – 23/09/2025 – 07/10/2025
Resumo da Sprint
O foco desta sprint foi o estudo e a análise de duas classes de vulnerabilidades: IDOR (Insecure Direct Object References) e Gerenciamento de Sessões Inseguras. A pesquisa foi focada em entender o conceito, os riscos associados e, principalmente, em como essas falhas poderiam ser exploradas no contexto da aplicação EJ-Platform, rodando em um ambiente de desenvolvimento local.
Atividades Realizadas
| Data | Atividade | Tipo (Código/Doc/Discussão/Outro) | Link/Referência | Status |
|---|---|---|---|---|
| 26/09 | Estudo sobre vulnerabilidades IDOR | Estudo | [OWASP - INDOR] | Concluído |
| 01/10 | Estudo sobre Gerenciamento de Sessões Inseguras | Estudo | - | Concluído |
| 03/10 | Exploração manual da aplicação com múltiplos usuários | Teste/Configuração | - | Concluído |
| 05/09 | Análise de cookies de sessão e seus atributos de segurança | Estudo | - | Concluído |
| 05/09 | Tentativa de exploração de IDOR entre usuários | Teste/Exploração | - | Concluído |
Ferramentas
- Navegador Web (OperaGX/Firefox) e Ferramentas de Desenvolvedor (DevTools): Foi essencial para a análise. A aba "Network" foi usada para observar as requisições e a aba "Application" (ou "Storage") para inspecionar os cookies de sessão.
- Múltiplos Perfis de Navegador/Janelas Anônimas: Utilizados para manter sessões ativas de dois usuários diferentes (user@user.com e admin@admin.com) simultaneamente, extremamente importante pra testar o controle de acesso do IDOR.
Passo a Passo e Exemplos com Aplicação na EJ
O objetivo foi simular como um invasor poderia explorar essas vulnerabilidades dentro do contexto da aplicação "Empurrando Juntas".
A. Teste de IDOR (Insecure Direct Object Reference)
- Cenário de Exploração na EJ-Platform: A hipótese foi que um usuário comum poderia acessar informações de um dashboard ou perfil que pertencem a outro usuário, como um administrador, se o sistema não validasse a permissão corretamente. Por exemplo, se a URL para ver um perfil fosse http://localhost:8000/users/1/profile.
Método de Teste:
-
Preparação:Utilizando o comando inv docker-exec "inv db-fake", garanti que os usuários de teste, incluindo admin@admin.com e user@user.com, existissem no banco de dados para a simulação. -
Login Simultâneo:Para isolar as sessões e simular dois atores diferentes, fiz o login como admin@admin.com em uma janela de navegador e como user@user.com em uma janela anônima separada. -
Identificação de IDs:Olhando os perfis, mostrou que as URLs de perfil públicas (ex: /profile/) não mostravam os IDs dos usuários. A estratégia foi então acessar o painel de administração do Django em /admin/ com o usuário administrador. Dentro do painel, na seção de perfis (Profiles), foi possível listar todos os usuários e obter seus IDs numéricos únicos ao inspecionar a URL de edição de cada um (ex: .../profile/34/change/). -
Tentativa de Acesso Direto:Com o ID do administrador, na sessão do navegador logado como user@user.com, fiz uma requisição direta à URL hipotética do perfil público do administrador, no formato http://localhost:8000/users/X/. -
Análise do Resultado:A aplicação respondeu com um erro Page not found (404). A análise da página de erro, listava todas as rotas válidas, confirmando então que a aplicação não possui um endpoint no formato users/, indicando que este vetor específico para um ataque de IDOR não é aplicável.
B. Análise de Sessões / Cookies Inseguros
Esta análise verifica se os cookies usados para gerenciar a sessão do usuário estão configurados com atributos de segurança essenciais.
- Cenário de Exploração na EJ-Platform: A hipótese era verificar se o cookie de sessão (sessionid) estava sendo transmitido sem as flags de segurança recomendadas, o que poderia facilitar ataques como roubo de sessão (Session Hijacking), especialmente em conjunto com um ataque de XSS.
Método de Teste:
-
Login na Aplicação:Fiz login com qualquer usuário. -
Inspeção do Cookie:Abri as Ferramentas de Desenvolvedor (F12) -> aba "Application" -> "Cookies". -
Análise dos Atributos:Localizei o cookie sessionid e verifiquei a presença das seguintes flags: -
HttpOnly:Presente, e impede que o cookie seja acessado por scripts JavaScript no lado do cliente, importante contra XSS. -
Secure:Garante que o cookie só seja enviado em requisições HTTPS, caso exita. -
SameSite:Ajuda a proteger contra ataques de CSRF (Cross-Site Request Forgery).
Resultados
A. Teste de IDOR (Insecure Direct Object Reference) : A tentativa de acesso direto a perfis de usuário através de URLs com IDs (ex: /users/X/) que é do Admin resultou em um erro 'Page not found (404)'. Isso indica que a aplicação não expõe perfis de usuário através deste tipo de URL, o que a protege contra esta forma específica de ataque de IDOR."
B. Análise de Sessões / Cookies Inseguros: A análise dos cookies de sessão revelou que a aplicação utiliza corretamente as flags HttpOnly e SameSite=Lax, que são boas práticas que protegem contra ataques de XSS e CSRF. No entanto, a flag Secure não está ativada, o que no caso representa um risco de segurança para o ambiente de produção.
Maiores Avanços
- Configurar o mkdocs dentro do projeto para que não tenha mais problemas na hora de dar commit.
- Começar a entender sobre essas formas de ataque.
- Também compreendi o significado e a importância dos atributos de segurança de cookies (HttpOnly, Secure, SameSite) das quais tive que utilizar IA e pesquisas para aprrender como inspecioná-los corretamente usando ferramentas que já vêm no navegador.
Maiores Dificuldades
A principal dificuldade foi gerenciar duas sessões de usuários distintas de forma simultânea para realizar os testes de IDOR, exigindo o uso de diferentes navegadores ou perfis para evitar o compartilhamento de cookies. Outra dificuldade encontrada que ainda permanece e entender realmente como funciona esses ataques baseado no que estamos estudando, aplicar isso na pratica está sendo mais complicado do que eu imaginei.
Aprendizados
- Aprendi mais na prática como executar uma análise basica de vulnerabilidade IDOR. O processo envolveu o uso de duas sessões de usuário com privilégios diferentes, a descoberta de IDs de recursos através do painel de administração da aplicação e a tentativa de acesso direto a esses recursos via manipulação da URL para verificar as defesas de controle de acesso.
- Compreendi como inspecionar cookies de sessão usando as ferramentas do navegador para analisar sua segurança.
Plano Pessoal para a Próxima Sprint
- ■ Aprofundar o teste de IDOR para incluir requisições de modificação (POST/PUT).
- ■ Realizar um teste prático de interceptação de sessão.