Caixa Cinza
O que é uma caixa cinza?
A caixa cinza refere-se ao teste de software onde há algum conhecimento limitado de seu funcionamento interno. O teste de caixa cinza é uma técnica ética de hacking em que o hacker precisa usar informações limitadas para identificar os pontos fortes e fracos da rede de segurança de um alvo.
Entendendo as Caixas Cinzas
A caixa cinza é o híbrido de teste de caixa branca, em que o testador examina a lógica interna e a estrutura do código do software, e o teste de caixa preta,. em que o testador não sabe nada sobre o código do software. Para entender o teste de caixa cinza, devemos primeiro entender o teste de caixa preta e o teste de caixa branca.
Teste de caixa preta e caixa branca
O teste de caixa preta analisa nada mais do que entradas do usuário e qual saída o software produz de acordo com essas entradas. O teste de caixa preta não requer nenhum conhecimento de linguagem de programação ou outros detalhes técnicos. É um tipo de teste de alto nível usado em testes de sistema e testes de aceitação. Os engenheiros de software exigem um documento de especificação de requisitos de software (SRS) para realizar o teste de caixa preta. Esse teste adota uma perspectiva do usuário final , na qual o testador de caixa preta não sabe como as saídas são geradas a partir das entradas.
O teste de caixa branca requer um conhecimento profundo das técnicas e plataformas usadas para construir software, incluindo a linguagem de programação relevante. É um tipo de teste de baixo nível usado em testes de unidade e testes de indicação. Os engenheiros de software precisam entender a linguagem de programação usada para criar o aplicativo para que possam entender seu código-fonte. Os principais objetivos do teste de caixa branca são fortalecer a segurança, examinar como as entradas e saídas fluem pelo aplicativo e melhorar o design e a usabilidade. Quando um testador de caixa branca não obtém a saída esperada de uma determinada entrada, o resultado é considerado um bug que precisa ser corrigido.
Como funciona o teste de caixa cinza
O teste de caixa cinza inclui componentes importantes do teste de caixa preta e branca para obter um resultado melhor do que qualquer um poderia obter sozinho. Tanto os usuários finais quanto os desenvolvedores realizam testes de caixa cinza com conhecimento limitado (parcial) do código-fonte de um aplicativo. O teste de caixa cinza pode ser manual ou automatizado. É mais abrangente e demorado do que o teste de caixa preta, mas não tão abrangente ou demorado quanto o teste de caixa branca. Os testadores de caixa cinza exigem documentos de projeto detalhados.
O teste de caixa cinza envolve a identificação de entradas, saídas, caminhos principais e subfunções. Em seguida, ele passa a desenvolver entradas e saídas para subfunções, executar casos de teste para subfunções e verificar esses resultados.
Exemplo de caixa cinza
Um testador de caixa cinza pode verificar e corrigir os links em um site. Se um link não funcionar, o testador altera o código HTML para tentar fazer o link funcionar e, em seguida, verifica novamente a interface do usuário para ver se o link funciona. Um testador de caixa cinza também pode testar uma calculadora online. O testador definiria as entradas — fórmulas matemáticas como 1+1, 2*2, 5-4 e 15/3 — e verificaria se a calculadora fornece as saídas corretas dadas essas entradas. O testador de caixa cinza tem acesso ao código HTML da calculadora e pode alterá-lo se algum erro for identificado.
O teste de caixa cinza examina a interface do usuário do aplicativo, ou camada de apresentação, e seu funcionamento interno ou código. É usado principalmente em testes de integração e testes de penetração, mas não é adequado para testes de algoritmos . O teste de caixa cinza geralmente é usado para testar a interface do usuário, a segurança ou a funcionalidade online de um aplicativo por meio de técnicas como teste de matriz, teste de regressão,. teste de matriz ortogonal e teste de padrão. Os testadores de caixa cinza são mais propensos a identificar problemas específicos do contexto.
“Cinza” refere-se à capacidade parcial do testador de ver o funcionamento interno do aplicativo. “Branco” refere-se à capacidade de ver através da interface do software seu funcionamento interno, e “preto” refere-se à incapacidade de ver o funcionamento interno do software. O teste de caixa cinza às vezes é chamado de teste translúcido, enquanto o teste de caixa branca às vezes é chamado de teste claro e o teste de caixa preta também pode ser chamado de teste opaco.
Destaques
O teste de caixa cinza é essencialmente uma mistura de metodologias de caixa branca (com pleno conhecimento) e caixa preta (sem conhecimento).
O teste de caixa cinza é uma técnica para descobrir bugs de software ou encontrar exploits, onde algum conhecimento limitado sobre o software subjacente é conhecido antecipadamente.
Essa forma de "hacking ético" permite que os desenvolvedores de software criem correções e patches para impedir que invasores maliciosos utilizem essas explorações.