Conteúdos da cadeira

Pensar como atacante

Modelo de ameaças completo de uma aplicação simples, com método reutilizável de tutoriais e CTF.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
Nesta página

Todas as páginas anteriores ensinaram peças. Esta junta-as num método: como analisar um sistema desconhecido, ordenar o que atacar ou defender primeiro e registar o trabalho de forma reutilizável. É também o método que os tutoriais avaliados e os desafios CTF esperam ver no teu diário de bordo.

Modelação de ameaças em cinco passos

A modelação de ameaças (threat modeling) é uma conversa estruturada sobre um sistema, feita antes ou durante a sua análise. Cinco perguntas chegam longe:

  1. O que proteger? Lista os ativos: dados, serviços, reputação. Sem ativos, não há prioridades.
  2. Quem ataca? Lista os atacantes plausíveis com as suas capacidades: o curioso sem meios, o cliente descontente, o criminoso organizado, o ex-funcionário com acessos antigos.
  3. Por onde entra? Para cada ativo, enumera os vetores: formulários, anexos, rede exposta, suportes perdidos, pessoas enganadas.
  4. O que corre mal? Descreve cenários concretos de falha, um por combinação relevante de atacante e vetor.
  5. O que fazer? Propõe contramedidas, ordenadas pelo risco da primeira página: probabilidade vezes impacto, custo da medida e rapidez de aplicação.

O modelo nunca está acabado: cada descoberta nos tutoriais atualiza-o. Um vetor que julgavas fechado e afinal está aberto reordena as prioridades, e registar essa mudança é parte do trabalho.

O método nos tutoriais e nos CTF

Perante um desafio novo, resiste ao impulso de experimentar comandos ao acaso. Os mesmos cinco gestos servem na loja e num desafio:

  1. Reconhece. Mapeia a loja: que formulários existem, que painel de administração responde, que portas estão expostas. Aponta tudo antes de tocar.
  2. Formula uma hipótese. “O painel de administração aceita palavras-passe fracas, logo testo credenciais comuns.” Uma hipótese diz o que esperas observar.
  3. Testa em ambiente próprio. Só na tua máquina virtual com a cópia da loja. Começa pelo acesso legítimo, depois pelo caso hostil mínimo.
  4. Regista comando, saída e conclusão. “Tentei X, observei Y, por isso Z.” O diário de bordo é a tua memória externa e a prova do trabalho.
  5. Verifica a correção. Aplica papéis por função e confirma que a palavra-passe fraca deixa de entrar sem partir o acesso legítimo.
  1. Reconhece. Lê o enunciado e explora o ambiente: que sistema é, que serviços respondem, que entradas aceitam. Aponta tudo antes de tocar.
  2. Formula uma hipótese. “Este campo ecoa a entrada, logo testo XSS refletido.” Uma hipótese diz o que esperas observar, o que distingue um teste de uma tentativa cega.
  3. Testa em ambiente próprio. Só no alvo oficial do desafio. Começa pelo caso benigno, depois pelo caso hostil mínimo.
  4. Regista comando, saída e conclusão. “Corri X, observei Y, por isso Z.” Sem registo, um desafio resolvido não ensina nada reutilizável.
  5. Verifica a correção. Depois de explorar, aplica a defesa e confirma que o ataque deixa de funcionar sem partir o uso legítimo. Atacar sem propor defesa é metade do exercício.

Exemplo: modelo de ameaças da loja em linha

Aplica os cinco passos à loja da apresentação, que vende em linha e guarda dados de clientes:

AtivoAtacante plausívelVetorCenárioContramedida (página)
Dados de clientes e cartõescriminoso organizadoformulário de registoinjeção SQL devolve a tabela inteiraconsultas parametrizadas e conta só de leitura (Segurança Web)
Preços e stockconcorrente ou cliente maliciosopainel de administraçãopalavra-passe fraca permite alterar preçoschaves SSH, sem root remoto, papéis por função (Controlo de acessos)
Disponibilidade do siteextorsionistarede expostaSYN flood ou avalanche HTTP na véspera de saldosfila gerida, limitação de débito, filtragem a montante (Segurança de redes)
Cópias de segurançaex-funcionário com acessos antigospasta partilhadaleitura de arquivos com dados de clientesutilizador próprio, arquivos cifrados, acessos revogados (Criptografia, Controlo de acessos)
Código da aplicaçãofornecedor ou erro internodependência desatualizadabiblioteca vulnerável abre execução remotaatualizações e validação de entradas (Programação defensiva)

Para reutilizares, copia a tabela e preenche-a para o teu alvo: uma linha por ativo, sem linhas decorativas. Se uma célula te obrigar a inventar, marca-a como dúvida e vai verificar ao sistema em vez de a fechar com imaginação. O modelo vale pela honestidade, não pelo tamanho.

Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

Álgebra, lógica e uma ideia de cada vez.

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.