Pular para o conteúdo
Pentest11 min de leituraAtualizado em Por Cesar Gargiulo

Relatório de pentest: um exemplo comentado

Todos os dados desta página são sintéticos. Nenhum cliente, ambiente ou achado real é reproduzido aqui.

Quem nunca recebeu um relatório de pentest não tem como avaliar uma proposta pelo entregável, porque o entregável só existe no final. Esta página resolve isso mostrando a estrutura completa com achados sintéticos, construídos para ilustrar o formato.

Aviso importante e literal: a empresa Exemplo Comércio Digital, o domínio exemplo.test e todos os achados abaixo são fictícios. Nenhum dado de cliente real, nenhum ambiente real e nenhum achado real da GUARDIASEC aparece aqui. As requisições foram construídas para demonstrar formato, e nenhuma delas é reproduzível contra um alvo real.

Use este material de três formas: para saber o que exigir de um fornecedor, para estruturar um relatório interno da sua própria equipe, ou para entender como um achado vira decisão de correção.

1. Sumário executivo

Esta é a seção que a diretoria lê. Ela responde três perguntas em menos de uma página: qual o risco atual, o que acontece se nada mudar e o que precisa de decisão. Nenhum jargão técnico sem explicação, nenhuma sigla sem expansão na primeira ocorrência.

exemplo sintético de sumário executivo
Cliente: Exemplo Comércio Digital (fictício)
Período: 12 a 23 de agosto de 2026
Escopo: aplicação web de loja e API de pedidos, ambiente de homologação
Modalidade: caixa cinza, com credenciais de cliente e de operador

Resultado: 9 achados, sendo 1 crítico, 2 altos, 4 médios e 2 baixos.

O achado crítico permite que um cliente autenticado consulte pedidos
de outros clientes trocando o identificador na requisição, expondo
nome, endereço de entrega e itens comprados. Foi comunicado no
segundo dia de teste, fora do ciclo do relatório.

Decisão necessária: priorizar a correção da autorização na API de
pedidos antes da próxima campanha de vendas, quando o volume de
requisições e a exposição da base de clientes aumentam.

Repare no que o exemplo não faz. Não usa a palavra hacker, não estima prejuízo financeiro sem base e não afirma que o ambiente ficará seguro depois da correção. Relatório que exagera perde credibilidade na primeira leitura técnica.

2. Escopo e o que ficou de fora

A seção de escopo protege as duas partes. Ela registra o que foi testado, o que não foi, e por quê. Sem isso, um incidente futuro em um componente nunca avaliado vira discussão sobre responsabilidade.

Escopo do teste de exemplo
ItemSituaçãoObservação
loja.exemplo.testTestadoAplicação web, 3 perfis de acesso
api.exemplo.testTestadoAPI REST, 41 endpoints autenticados
admin.exemplo.testTestadoPainel administrativo, perfil operador
Gateway de pagamento de terceiroFora do escopoAmbiente de terceiro, sem autorização do fornecedor
Infraestrutura de rede internaFora do escopoPrevisto para avaliação separada
Negação de serviçoNão executadoExcluído por acordo, técnica potencialmente disruptiva

A seção também registra as limitações encontradas durante a execução: indisponibilidade do ambiente em determinada janela, funcionalidade bloqueada por proteção de borda que impediu teste completo, ou perfil de acesso que não foi entregue a tempo. Omitir limitação é o mesmo que declarar cobertura que não houve.

3. Critério de severidade

O relatório declara como classifica antes de classificar. Isso permite que a equipe interna discorde de um enquadramento específico sem precisar discordar do método inteiro.

Matriz de severidade usada no exemplo
SeveridadeFaixa CVSS baseAjuste pelo contexto
Crítica9.0 a 10.0Ou nota menor com exposição pública e dado pessoal em volume
Alta7.0 a 8.9Reduzida quando o ativo é acessível só por rede restrita
Média4.0 a 6.9Elevada quando encadeia com outro achado do mesmo relatório
Baixa0.1 a 3.9Mantida, com registro do racional
InformativaSem notaBoa prática não adotada, sem impacto demonstrado

4. Achado crítico de exemplo: autorização quebrada na API de pedidos

Este é o formato completo de um achado. Cada campo existe porque alguém precisa dele: o desenvolvedor precisa dos passos, o gestor precisa do impacto, o auditor precisa da referência e o reteste precisa do critério de verificação.

ACH-001 (sintético)
Identificador: ACH-001
Título: Quebra de autorização a nível de objeto na consulta de pedidos
Severidade: Crítica
Vetor CVSS 3.1: AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N (nota base 6.5)
Severidade final: Crítica (elevada pelo volume de dados pessoais expostos
  e pela exposição pública do endpoint)
Referência: OWASP API Security Top 10, API1:2023 Broken Object Level
  Authorization; OWASP WSTG-ATHZ-04
Componente: GET /v1/pedidos/{id} em api.exemplo.test
Perfil usado: cliente comum (conta de teste [email protected])

Descrição

O endpoint de consulta de pedido valida se o solicitante está autenticado, mas não verifica se o pedido consultado pertence à conta autenticada. Um cliente autenticado consegue recuperar o pedido de qualquer outro cliente informando o identificador correspondente. Os identificadores são numéricos e sequenciais, o que dispensa qualquer descoberta: basta decrementar o número do próprio pedido.

Passos de reprodução

  • Autenticar na loja com a conta de teste [email protected] e obter o token de sessão
  • Criar um pedido e anotar o identificador retornado, por exemplo 48213
  • Repetir a consulta trocando o identificador por um valor menor, por exemplo 48212
  • Observar que a resposta retorna 200 com o conteúdo do pedido de outra conta
evidência sintética, com dados mascarados
GET /v1/pedidos/48212 HTTP/1.1
Host: api.exemplo.test
Authorization: Bearer <token da conta teste-a>

HTTP/1.1 200 OK
Content-Type: application/json

{
  "pedido": 48212,
  "cliente": "M**** S****",
  "email": "m****@exemplo.test",
  "endereco": "Rua ****, 1**, São Paulo SP",
  "itens": [{ "sku": "SKU-8842", "qtd": 1 }],
  "total": 249.90
}

Impacto

Comprovado: um cliente autenticado acessa dados de pedido de outros clientes, incluindo nome, e-mail, endereço de entrega e itens comprados. Consequência plausível não testada: como os identificadores são sequenciais, a enumeração completa da base de pedidos é viável, o que caracterizaria tratamento indevido de dados pessoais em escala sob a LGPD. A enumeração em massa não foi executada, por decisão de limitar o impacto do teste.

Recomendação

  • Validar no lado servidor, em cada endpoint que recebe identificador de objeto, se o recurso pertence à identidade autenticada
  • Centralizar a verificação em uma camada comum, para que a regra não dependa de cada desenvolvedor lembrar de aplicá-la
  • Substituir identificadores sequenciais por identificadores não previsíveis, como medida complementar e nunca como correção principal
  • Registrar tentativa de acesso negado, para que a exploração futura seja detectável
  • Verificar os demais endpoints que recebem identificador: a mesma ausência de validação costuma aparecer em vários

A terceira recomendação carrega uma armadilha frequente. Trocar identificador sequencial por identificador aleatório deixa a exploração mais difícil, não impossível, e várias equipes param aí. Sem validação de propriedade no servidor, a falha continua existindo para quem descobrir um identificador válido de qualquer outra forma.

Critério de reteste

O achado será considerado corrigido quando a requisição dos passos de reprodução retornar 403 ou 404 para pedido que não pertence à conta autenticada, e quando a mesma verificação passar em pelo menos três outros endpoints que recebem identificador de objeto.

5. Achado médio de exemplo: sessão sem expiração no painel

Nem todo achado precisa de tanto detalhe. Achados de severidade menor cabem em um formato mais curto, desde que mantenham evidência e critério de reteste.

ACH-004 (sintético)
Identificador: ACH-004
Título: Sessão do painel administrativo sem expiração por inatividade
Severidade: Média
Vetor CVSS 3.1: AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:N (nota base 5.0)
Referência: OWASP WSTG-SESS-07
Componente: admin.exemplo.test, cookie de sessão

Descrição: o cookie de sessão do painel permanece válido por 30 dias
e não expira por inatividade. Uma estação desbloqueada ou um cookie
obtido de um dispositivo compartilhado dá acesso administrativo
prolongado sem nova autenticação.

Evidência: cookie emitido em 12/08 continuou aceito em 21/08 sem
nenhuma requisição intermediária da mesma sessão.

Recomendação: expirar por inatividade em 15 a 30 minutos no perfil
administrativo, invalidar a sessão no lado servidor no logout e
exigir reautenticação para operações sensíveis.

Reteste: sessão administrativa inativa por mais de 30 minutos deve
ser rejeitada e redirecionar para autenticação.

6. Consolidação e ordem de correção

Depois dos achados individuais, o relatório consolida. A tabela de consolidação é o documento que a equipe leva para o planejamento de sprint, e por isso ela precisa carregar prazo e responsável, não apenas severidade.

Consolidação de exemplo (dados sintéticos)
IDAchadoSeveridadePrazo sugerido
ACH-001Autorização quebrada na API de pedidosCríticaImediato
ACH-002Enumeração de usuário na recuperação de senhaAlta15 dias
ACH-003Upload aceita tipo de arquivo não previstoAlta15 dias
ACH-004Sessão administrativa sem expiraçãoMédia30 dias
ACH-005Cabeçalhos de segurança ausentes na lojaMédia30 dias
ACH-006Mensagem de erro revela versão do componenteMédia60 dias
ACH-007Cookie sem atributo SameSiteMédia60 dias
ACH-008Política de senha permite senha comumBaixaPróximo ciclo
ACH-009Diretório de listagem habilitado em host estáticoBaixaPróximo ciclo

Uma observação que quase nunca aparece em modelo de relatório: achados de severidade média que se encadeiam merecem nota conjunta. No exemplo, a enumeração de usuário mais a política de senha fraca formam um caminho de ataque mais relevante do que qualquer um dos dois isoladamente.

7. Reteste e encerramento

O reteste produz um documento curto que atualiza o estado de cada achado. Ele não repete a descrição, apenas registra o resultado da verificação e o que sustenta essa conclusão.

Resultado de reteste de exemplo
IDEstadoVerificação
ACH-001CorrigidoRequisição a pedido de outra conta retorna 403; verificado em 4 endpoints
ACH-002CorrigidoResposta uniforme para conta existente e inexistente
ACH-003Parcialmente corrigidoValidação de tipo aplicada no envio, ausente no reprocessamento
ACH-004CorrigidoSessão inativa rejeitada após 20 minutos
ACH-005Não corrigidoCabeçalhos permanecem ausentes na loja

A linha do ACH-003 mostra por que reteste importa. A correção foi aplicada no caminho principal e esqueceu um caminho secundário que usa a mesma função. Sem reteste, o achado seria marcado como resolvido e voltaria no próximo teste.

O encerramento registra a destruição ou devolução dos dados de teste, das credenciais recebidas e das evidências que contêm informação do ambiente do cliente, conforme o que foi acordado no início do trabalho.

Checklist prático

  • Sumário executivo em uma página, legível por quem não é técnico
  • Escopo com o que foi testado, o que ficou fora e o motivo
  • Limitações encontradas durante a execução registradas explicitamente
  • Critério de severidade declarado antes dos achados
  • Cada achado com identificador estável, reutilizado no reteste
  • Vetor CVSS completo, não apenas a nota
  • Referência pública por achado (WSTG, API Top 10, CWE)
  • Passos de reprodução que a equipe interna consegue seguir
  • Evidência com dado sensível mascarado
  • Separação entre impacto comprovado e consequência plausível
  • Recomendação acionável, com a correção principal destacada da complementar
  • Critério objetivo de reteste por achado
  • Tabela de consolidação com prazo sugerido
  • Registro de destruição ou devolução de dados ao encerrar

Boas práticas

  • Peça um relatório de exemplo antes de contratar: o formato revela o método
  • Exija identificador estável por achado, para acompanhar a correção ao longo do tempo
  • Prefira relatório que separa o comprovado do plausível a relatório que impressiona
  • Trate o relatório como documento controlado, com acesso restrito e prazo de retenção
  • Leve a tabela de consolidação para o planejamento, não o documento inteiro
  • Registre no próprio relatório os achados aceitos como risco, com quem aceitou e até quando

Erros comuns

  • Relatório que entrega a saída do scanner sem validação

    A equipe gasta tempo investigando falso positivo e passa a desconfiar de todo o documento, inclusive dos achados reais.

  • Achado sem passos de reprodução

    O desenvolvedor não consegue confirmar o problema, a correção vira suposição e o reteste falha sem que se saiba o motivo.

  • Severidade atribuída sem justificar o contexto

    A priorização perde credibilidade e a fila de correção passa a ser definida por quem grita mais alto, não por risco.

  • Evidência com dado pessoal real sem mascaramento

    O próprio relatório passa a ser um repositório de dado sensível, e circula por e-mail sem controle de acesso.

  • Relatório sem seção de limitações

    Cobertura parcial é lida como cobertura completa, e a área não testada passa a ser considerada segura sem nunca ter sido avaliada.

Quando procurar apoio especializado

Se você recebeu um relatório de pentest e não consegue transformar os achados em tarefas com prazo e responsável, o problema costuma estar na priorização, não na equipe. Uma leitura conjunta do relatório com quem entende do ambiente resolve a maior parte dos casos, e serve também para identificar os achados que merecem correção estrutural em vez de remendo pontual.

Perguntas frequentes

Os dados deste relatório de exemplo são reais?

Não. A empresa Exemplo Comércio Digital, o domínio exemplo.test, os identificadores de pedido e todos os nove achados são sintéticos, construídos para demonstrar o formato. Nenhum dado de cliente, nenhum ambiente e nenhum achado real da GUARDIASEC é reproduzido nesta página, e nenhuma requisição mostrada aqui funciona contra um alvo real.

Posso usar esta estrutura no relatório da minha equipe?

Sim. A estrutura segue o que as referências públicas do setor recomendam e pode ser adotada por qualquer equipe interna que conduza avaliações próprias. Os campos que mais fazem diferença na prática são o critério de severidade declarado antes dos achados e o critério objetivo de reteste por achado.

O que um relatório de pentest precisa ter para ser auditável?

Escopo com data e alvos, critério de severidade explícito, identificador estável por achado, evidência com passos de reprodução, referência pública por classe de falha e registro do reteste. Com isso, um terceiro consegue verificar como cada conclusão foi obtida sem depender da memória de quem executou.

Por que o relatório separa impacto comprovado de consequência plausível?

Porque a diferença entre os dois muda a decisão. Comprovar acesso a um registro e afirmar acesso à base inteira são coisas diferentes, e um relatório que confunde as duas perde credibilidade na primeira revisão técnica. A separação também deixa claro o que não foi executado por decisão de limitar o impacto do teste.

A GUARDIASEC entrega o relatório neste formato?

Sim, com a mesma estrutura: sumário executivo separado do detalhe técnico, escopo com exclusões e limitações, critério de severidade declarado, achados com evidência e passos de reprodução, consolidação com ordem de correção e reteste das falhas reportadas.

Autoria e revisão

Cesar Gargiulo

CEO e fundador da GUARDIASEC. Responsável técnico e editorial pelo conteúdo publicado nesta biblioteca.

Publicado em . Última revisão em . Encontrou um erro técnico? Escreva para [email protected] e corrigimos com registro da alteração.

Próximo passo

Vamos avaliar os riscos do seu ambiente?

Conte seu cenário e definimos juntos o escopo certo. O objetivo é reduzir caminhos prováveis de ataque e elevar a maturidade de segurança, sem promessas absolutas.