Tipos de Pentest: Black Box, Gray Box e White Box
Os testes de Black Box (caixa preta), Gray Box (caixa cinza) e White Box (caixa branca) são abordagens usadas tanto em testes de software (qualidade/funcionalidade) quanto em segurança da informação (pentest), diferenciando-se pelo nível de conhecimento prévio que o profissional tem sobre o sistema.
.
1. Black Box (Teste de Caixa Preta)
O pentester não tem nenhum conhecimento prévio da estrutura interna, código-fonte ou arquitetura do sistema. Ele avalia apenas as entradas (inputs) e saídas (outputs) para ver se o comportamento atende aos requisitos.
- Foco: Simular um usuário comum ou um invasor externo sem privilégios.
- Exemplo em Software: Testar um formulário de login em um site inserindo um e-mail e uma senha para ver se a página aceita ou rejeita o acesso corretamente, sem saber como a senha é validada no banco de dados.
- Exemplo em Segurança (Pentest): Receber apenas o endereço web (URL) de um e-commerce e tentar achar brechas de segurança de fora, exatamente como um hacker mal-intencionado faria.
Analogia
Imagine uma empresa contratando você para testar a segurança do prédio.
🔴 Black Box:
“Aqui está o endereço do prédio. Veja se consegue entrar.”
Você não recebe a planta, não sabe onde ficam as salas, não conhece os sistemas de segurança e não recebe uma chave.
.
2. Gray Box (Teste de Caixa Cinza)
O pentester possui conhecimento parcial ou acesso limitado do sistema (como credenciais de usuário comum, diagramas de rede ou documentação básica). É um meio-termo que combina eficiência e profundidade.
- Foco: Simular falhas internas por parte de usuários com permissões básicas ou testar rotas específicas de dados.
- Exemplo em Software: Preencher um cadastro em um aplicativo (visão de caixa preta) e, em seguida, acessar diretamente o banco de dados ou a API para conferir se os dados foram salvos nas tabelas corretas (visão interna parcial).
- Exemplo em Segurança (Pentest): Testar um sistema corporativo utilizando uma conta de colaborador comum para ver se é possível acessar dados de outros setores que não deveriam estar visíveis (simulando um funcionário mal-intencionado ou credenciais vazadas).
.
Vamos para um exemplo bem realista:
🏢 Pentest em uma empresa
Uma empresa contrata uma equipe de segurança para testar seu sistema interno.
Ela entrega ao pentester:
- o endereço do sistema;
- um usuário comum;
- uma senha;
- algumas informações básicas sobre a rede.
Mas não informa onde estão os servidores críticos, não entrega o código-fonte e não fornece acesso administrativo.
O pentester entra como se fosse um funcionário comum e começa a testar:
“Com esse usuário, consigo acessar informações de outro departamento?”
“Consigo acessar uma área administrativa?”
“Consigo alterar alguma informação que não deveria?”
“Consigo obter privilégios maiores?”
Outro exemplo para GrayBox
Imagine um sistema de RH:
Usuário fornecido: joao@empresa.com
Perfil: Funcionário
João deveria conseguir apenas:
consultar seus próprios dados;
consultar seus holerites;
atualizar algumas informações pessoais.
Durante o teste, o pentester descobre que, alterando uma requisição, consegue consultar informações de outros funcionários.
🚨 Isso seria uma vulnerabilidade encontrada no teste.
Por que é Gray Box?
Porque o pentester não começou do zero como no Black Box. A empresa entregou uma conta e algumas informações. Porém, ele também não recebeu conhecimento completo do sistema, como aconteceria no White Box.
.
3. White Box (Teste de Caixa Branca)
O testador tem acesso total e irrestrito aos componentes internos do sistema, incluindo código-fonte completo, arquitetura de rede, documentação de design e credenciais de administrador.
- Foco: Garantir que todos os caminhos do código e lógicas internas funcionem sem falhas ou vulnerabilidades ocultas.
- Exemplo em Software: Analisar linha por linha o código em Java ou Python de uma função de cálculo de juros para garantir que não há divisões incorretas por zero ou loops infinitos.
- Exemplo em Segurança (Pentest): Fazer uma auditoria de segurança entregando todo o repositório de código-fonte da aplicação para a equipe especializada analisar falhas de programação de forma minuciosa.
🔓 Exemplo de White Box
Uma empresa contrata uma equipe para realizar um pentest em seu sistema de RH.
Dessa vez, a empresa fornece ao pentester:
- código-fonte da aplicação;
- documentação da arquitetura;
- diagrama da rede;
- acesso ao ambiente de testes;
- diferentes tipos de usuários;
- informações sobre servidores e banco de dados.
O profissional pode analisar diretamente o sistema e procurar problemas como:
“Existe alguma falha no código que permita acessar dados de outros funcionários?”
“As permissões estão sendo verificadas corretamente?”
“As informações estão sendo protegidas adequadamente no banco de dados?”
“Existe alguma vulnerabilidade que não seria facilmente percebida em um teste externo?”
.
Resumo tabulado:
| Critério | Black Box | Gray Box | White Box |
|---|---|---|---|
| Conhecimento interno | Nenhum | Parcial / Limitado | Total / Completo |
| Perspectiva | Atacante externo / Usuário | Usuário padrão / Misto | Auditor / Desenvolvedor |
| Profundidade | Externa (superfície) | Equilibrada | Máxima (profunda) |
.
Até a próxima!
