Exercícios de design

Os exercícios desse capítulo podem ser muito diferentes do que você está habituado. Muita gente quando pensa em segurança pensa somente na implementação — no código — e não leva em consideração que podem haver falhas de segurança em outros aspectos. Como por exemplo na própria forma como um determinado recurso (ou projeto como um todo) foi pensado.

Essa “forma” é o que a gente chama de design. Como algo foi pensado para ser é o design; como ele realmente é, é a implementação.

Falhas de implementação foi o que vimos nos exercícios anteriores, mas nesse capítulo iremos ver falhas de design. Que é quando algo é inseguro pela própria maneira que ele foi projetado para ser. Então mesmo que o design fosse implementado de forma “perfeita”, com um código “perfeito”, ainda sim haveria uma falha de segurança porque o próprio design é inseguro.

Aqui o seu pensamento analítico será a única “ferramenta” necessária para resolver os exercícios. Se não souber por onde começar, eu sugiro pesquisar por threat modelling1 e estudar projetos como o MITRE ATT&CK2 e o CAPEC3.

Os exercícios seguirão o seguinte formato:

  1. Título;
  2. Texto do exercício descrevendo o design inseguro;
  3. Solução.

O objetivo é ler o texto do exercício e identificar a falha de segurança no design. Detalhe que “falha de segurança” não é apenas um código vulnerável ou relacionados. Pode ser também, por exemplo, a ausência de uma proteção. Qualquer coisa que implique na fragilidade da segurança de um sistema é uma falha de segurança. Se ainda não souber o que é, sugiro que estude sobre a CIA triad.

Lembrando que o objetivo é encontrar uma falha de design e não uma possível falha que possa ocorrer na implementação.


  1. https://owasp.org/www-community/Threat_Modeling↩︎

  2. https://attack.mitre.org/↩︎

  3. https://capec.mitre.org/↩︎