Partilhar: WhatsApp
aulify · Mini-Projecto
UC UC02836 · T. Desenv. Software
Versão · Aluno

Mini-Projecto · Auditoria e correcção de app vulnerável

Encontrar e corrigir vulnerabilidades reais
⏱ Duração estimada: 5 horas (≈ 3 aulas) ↗ Referencial SNQ
Índice

Contexto

O professor entrega a cada par/trio uma mini-app Python vulnerável (~200 linhas) construída intencionalmente com várias vulnerabilidades. A missão é:

  1. Encontrar todas as vulnerabilidades.
  2. Documentar cada uma (tipo, severidade, demonstração de exploit).
  3. Corrigir o código.
  4. Verificar que correcções resolveram sem partir funcionalidades.

Requisitos

Funcionais

  1. Identificar mín. 8 vulnerabilidades distintas.
  2. Para cada: tipo OWASP, severidade (alta/média/baixa), exploit demonstrável, correcção.
  3. Submeter PR com todas as correcções.
  4. Relatório de auditoria final.

Não-funcionais

  1. Não introduzir novas vulnerabilidades.
  2. App deve continuar a funcionar.
  3. Pelo menos 3 testes pytest que verificam as correcções.

Fases

Fase 1 · 1h

Inspecção

Lista inicial de suspeitas (mín. 8 items).

Fase 2 · 1.5h

Demonstrar exploits

Capturas/screenshots de cada exploit + payload.

Fase 3 · 1.5h

Correcções

Branch com commits descritivos.

Fase 4 · 0.5h

Testes

tests/test_security.py.

Fase 5 · 0.5h

Relatório

auditoria.md + apresentação curta (5 min).

Critérios de avaliação

Item Peso
Vulnerabilidades encontradas 25%
Exploits demonstrados 20%
Correcções correctas 25%
Não introduzir novos bugs 10%
Testes pytest 10%
Relatório claro 10%

Reflexão

Em meia página: que vulnerabilidade te surpreendeu mais? Que difícil é hoje atacar uma app moderna comparado com 10 anos atrás? Como aplicarias o que aprendeste ao teu próprio código futuro?