OpenCyber Academy
Graduação · Capítulo 27 · Português
Código do curso: OCA-099Capítulo 27: OCA-099-C027

Capítulo 27 — Arquitetura e engenharia de segurança: verificação

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 27 publicada. Mapa, exemplo, EX079.

flowchart TD
  N0["27.1 Planejar a verificação"]
  N1["27.2 Escolher os métodos"]
  N2["27.3 Registrar as evidências"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3
  N3 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX079"]

Desenho lógico

flowchart LR
  N0["27.1 Planejar a verificação"]
  N1["27.2 Escolher os métodos"]
  N2["27.3 Registrar as evidências"]
  N3["Síntese"]
  N0 --> N1 --> N2 --> N3 --> Q["EX079"]
[27.1 Planejar a verificação]
    |
    v
[27.2 Escolher os métodos]
    |
    v
[27.3 Registrar as evidências]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX079]

Objetivos de aprendizagem

Você vai (1) planejar a verificação dos requisitos de segurança; (2) usar testes, revisões e varreduras de forma adequada; (3) registrar as evidências de verificação.

27.1 Planejar a verificação

Para o serviço de click-and-collect, Lucas escreve os requisitos de segurança como enunciados testáveis: deve ser exigido um código de retirada para liberar um pedido; os códigos devem expirar depois de catorze dias; as telas do aplicativo da equipe devem mascarar os números de telefone depois da retirada; e o serviço deve registrar cada liberação com a identidade do funcionário. Para cada requisito, ele nomeia um método de verificação e quem o executa. Requisitos escritos como objetivos vagos, como "o serviço deve ser seguro", não podem ser verificados e dão um falso conforto a todos que os leem.

27.2 Escolher os métodos

Lucas associa métodos aos requisitos. A expiração dos códigos é verificada por um teste automatizado com o relógio adiantado. O mascaramento é verificado por um revisor usando o aplicativo da equipe numa conta de teste. O logging é verificado fazendo uma liberação e lendo o log. Uma varredura de dependências procura bibliotecas com vulnerabilidades conhecidas, como recomenda o SP 800-218. Ele observa que as varreduras encontram problemas conhecidos, mas não falhas de lógica, como liberar um pedido sem código, que só um teste projetado para isso consegue captar. Cada método cobre o que pode.

27.3 Registrar as evidências

Toda verificação produz um registro: data, método, resultado e quem a executou. Um teste falha: os códigos não expiram porque a tarefa de expiração não foi agendada em produção. O desenvolvedor corrige, e Lucas roda o teste de novo. O registro mostra tanto a falha quanto a correção, o que convence mais um auditor do que uma folha impecável. Lucas acrescenta os testes ao checklist de release, para que as mudanças futuras sejam verificadas de novo, em vez de se supor que preservaram o comportamento.

Exemplo resolvido

Lucas escreve quatro requisitos testáveis, associa cada um a um método de verificação, encontra uma tarefa de expiração não agendada e registra a falha e a correção.

Caso sintético. O serviço e os resultados são sintéticos; o SP 800-218 é real.

Erros e limites

Os testes verificam apenas o que foram projetados para verificar. As evidências envelhecem a cada mudança.

Exercícios

Síntese

A verificação precisa de requisitos testáveis, métodos correspondentes e evidências registradas, inclusive das falhas.

Respostas comentadas

EX079. Porque não pode ser verificado, então dá um falso conforto.

EX080. Falhas de lógica, como liberar um pedido sem código.

EX081. A expiração dos códigos falhou porque a tarefa de expiração não estava agendada em produção.