9 Métodos Comprovados de Testes de Penetração para 2021: Proteja Seu Negócio
No mundo corporativo atual, a segurança tornou-se a preocupação mais comum. Todos os dias, ouvimos falar de como atacantes invadiram sistemas de computador e roubaram informações cruciais.
Em 2019, houve 1.473 violações de dados reportadas nos Estados Unidos, com mais de 164 milhões de registros sensíveis expostos. No primeiro semestre de 2020, o número de violações de dados chegou a 540. — Relatório Statista
Para detectar fraquezas e vulnerabilidades de segurança, muitas grandes empresas realizam um ciberataque simulado autorizado em seus próprios sistemas. Isso é o que chamamos de teste de penetração (ou Pen Test, para abreviar). Basicamente, o objetivo é identificar vulnerabilidades e fraquezas de segurança antes que o hacker o faça e corrigi-las o mais rápido possível.
Mais especificamente, os testes de penetração envolvem a simulação de cenários de ataque do mundo real para encontrar e explorar lacunas de segurança (de maneira segura) que poderiam levar ao roubo de informações, credenciais comprometidas ou outros resultados prejudiciais para o negócio.
Podem ser realizados internamente através de ferramentas de pen-testing ou terceirizados para um provedor de testes de penetração. O processo geralmente começa com um profissional de segurança enumerando a rede alvo para detectar dispositivos ou contas vulneráveis. Isso significa escanear todos os dispositivos na rede em busca de portas abertas com serviços em execução.
O nível de intrusão depende do tipo de operação que o testador de segurança deseja explorar no sistema alvo. Portanto, o testador deve ter um bom conhecimento do tipo mais relevante de pen test.
Os testes de penetração podem ser classificados com base em como são realizados, bem como nos ativos e componentes visados. Neste artigo de visão geral, explicamos diferentes tipos de testes de penetração projetados para serem intensos e invasivos.
Testes de Penetração Baseados nos Métodos Utilizados
1. Teste de Caixa Preta (Black Box Testing)
- Casos de teste podem ser projetados imediatamente
- Pode detectar certos tipos de falhas
Nos testes de penetração de caixa preta, o testador não tem acesso à aplicação do cliente, configuração de rede ou qualquer tipo de informação interna. Ele/ela realiza todo o reconhecimento para extrair as informações necessárias.
Este tipo de teste determina as fraquezas de um sistema que são exploráveis a partir do exterior da rede. Encontrar essas fraquezas depende da inspeção dinâmica de programas e sistemas atualmente em execução dentro da rede alvo.
O testador deve estar familiarizado com software de escaneamento automatizado e diferentes técnicas de testes de penetração manuais. Como não há conhecimento prévio da configuração do sistema ou código-fonte da aplicação, o testador de caixa preta deve ser capaz de construir seu próprio mapa da rede alvo com base em observações pessoais.
O conhecimento limitado impede o testador de encontrar todas as vulnerabilidades do sistema. Esta é a principal desvantagem deste tipo de teste. Se os testadores não conseguem violar todos os perímetros, as vulnerabilidades internas permanecem undiscovered.
No entanto, pode descobrir certos tipos de falhas, como erros de configuração do servidor e erros de validação de entrada/saída. Para ser bem-sucedido (detectar e remediar eficientemente mais vulnerabilidades), as metodologias de teste de caixa preta devem ser combinadas com outras ferramentas de teste.
Existem muitas ferramentas disponíveis no mercado para realizar testes de penetração de caixa preta. O Wapiti, por exemplo, analisa aplicações web em busca de responsabilidades potenciais injetando dados temporários.
2. Teste de Caixa Branca (White Box Testing)
- Mais abrangente
- Permite otimização de código e detecção de problemas de segurança ocultos
Como o nome sugere, o teste de penetração de caixa branca é o oposto do teste de caixa preta. O testador tem acesso completo à documentação de arquitetura, código-fonte e outras informações do sistema.
Os testadores vasculham um grande volume de dados disponíveis para detectar potenciais pontos de fraqueza. Eles podem usar analisadores de código estáticos e dinâmicos e depuradores para este tipo de teste.
Como os testadores têm conhecimento completo do sistema, leva mais tempo para decidir quais módulos devem ser testados primeiro e qual software específico deve ser usado para conduzir o teste.
JUnit, PyUnit, Selenium são algumas das ferramentas de teste de caixa branca open-source mais populares. O Selenium, por exemplo, é usado para validar aplicações web em vários navegadores e plataformas.
3. Teste de Caixa Cinza (Gray Box Testing)
- Identifica vulnerabilidades mais significativas com menos custo e esforço
- O teste é realizado do ponto de vista do usuário, não do designer
Esta é a combinação de testes de penetração de caixa preta e caixa branca. O testador de caixa cinza tem algum conhecimento dos internos do sistema, como banco de dados e documentos de design. Com esse conhecimento limitado, ele/ela pode criar melhores dados de teste e casos de teste ao preparar um plano de teste.
Este tipo de teste fornece uma avaliação mais eficiente e focada da segurança do sistema em comparação com a avaliação de caixa preta. Pode identificar defeitos devido ao uso inadequado de aplicações ou estrutura de código inadequada. Mais especificamente, descobre erros específicos de contexto concentrando-se em todas as camadas de sistemas complexos.
O teste de caixa cinza é mais adequado para testes funcionais, aplicações web, serviços web, avaliação de segurança e GUI. O Burp Suite é uma das ferramentas populares de teste de caixa cinza que explora vulnerabilidades de aplicações atacando pontos inseguros tentativos.
Diferenças Entre Estas Três Técnicas de Teste
| Teste de Penetração Caixa Preta | Teste de Penetração Caixa Cinza | Teste de Penetração Caixa Branca |
|---|---|---|
| Nenhum conhecimento do funcionamento interno do sistema é necessário | Conhecimento parcial do funcionamento interno do sistema é necessário | Conhecimento completo do funcionamento interno do sistema é necessário |
| Muito difícil descobrir erros ocultos | Difícil descobrir erros ocultos | Simples descobrir erros ocultos |
| Também conhecido como teste de caixa fechada ou teste orientado a dados | Também conhecido como teste translúcido | Também conhecido como teste de caixa clara, teste estrutural ou teste baseado em código |
| Menos demorado | Parcialmente demorado | Mais abrangente e demorado |
| Melhor para encontrar erros de validação de entrada/saída | Mais adequado para testar domínios de dados e design do sistema | Mais adequado para testar algoritmos, estrutura de código e limites internos |
| Testes conduzidos por usuários finais, desenvolvedores e testadores | Testes realizados por testadores independentes e desenvolvedores | Testes realizados por testadores e desenvolvedores |
Testes de Penetração Baseados em Componentes Alvo
1. Teste de Serviços de Rede
- Previne violações de rede e dados
- Garante segurança de rede e sistema
O processo de teste de penetração de rede envolve descobrir vulnerabilidades de segurança em aplicações e sistemas usando diferentes métodos maliciosos para examinar a segurança da rede.
Normalmente, o testador identifica redes, hosts, sistemas e dispositivos exploráveis (como switches e roteadores) para descobrir fraquezas. Como uma rede tem pontos de acesso externos e internos, é obrigatório realizar testes remotamente do mundo exterior e localmente no site do cliente.
Isso ajuda os testadores a entender o nível de risco com o qual a organização está lidando e como abordar e corrigir falhas de segurança. Dependendo do risco, eles podem visar diferentes áreas de rede em seus testes. Por exemplo, podem conduzir:
- Teste de análise stateful
- Teste de configuração de firewall
- Teste de bypass de firewall
- Ataques DNS
Os protocolos mais comuns investigados nestes testes incluem:
- Simple Mail Transfer Protocol (SMTP)
- File Transfer Protocol (FTP)
- Secure Shell (SSH)
- MySQL e SQL Server
Dependendo do tamanho e complexidade do sistema, pode levar de uma a quatro semanas para completar um teste de penetração de rede. Os testadores podem oferecer uma estimativa detalhada apenas após o escopo do projeto.
2. Teste de Penetração de Aplicação Web
Passos para realizar um teste de penetração de app web
- Identifica vulnerabilidade tanto no design quanto na configuração
Localiza invasores e os bloqueia
Como muitas aplicações web contêm informações sensíveis, é necessário mantê-las seguras o tempo todo. Uma maneira de fazer isso é incluir testes de penetração de app web como parte do Ciclo de Vida de Desenvolvimento de Software (SDLC).
Os testes de penetração facilitam a determinação de vulnerabilidades de toda a aplicação web e seus componentes, incluindo banco de dados, rede de backend e código-fonte. Isso ajuda os desenvolvedores a identificar e priorizar fraquezas e erros e encontrar maneiras de mitigá-los.
Este tipo de teste envolve coletar dados sobre a aplicação web alvo, mapear a rede do host e examinar todos os possíveis pontos de injeção ou ataques de adulteração. As principais razões para realizar testes de penetração de app web são:
- Detectar vulnerabilidades desconhecidas
- Verificar componentes expostos publicamente, como roteadores e firewalls
- Encontrar a rota mais vulnerável para um possível ataque
- Procurar brechas que poderiam resultar em roubo de informações
- Verificar a eficácia das políticas de segurança existentes
Muitas ferramentas estão disponíveis no mercado para conduzir (tanto manuais quanto automatizados) testes de penetração de aplicações web. Vega, Veracode e Zap são alguns dos mais comuns para realizar testes rápidos.
3. Teste de Penetração Wireless
- Determina a postura realista de segurança de redes wireless
- Aborda vulnerabilidades e políticas/procedimentos de segurança
O teste de penetração wireless envolve detectar e analisar as conexões entre todos os dispositivos conectados ao WiFi da empresa. Isso inclui laptops, smartphones, tablets, impressoras e outros dispositivos de Internet das Coisas (IoT).
Vários protocolos wireless e pontos de acesso wireless são testados para descobrir brechas de segurança. Geralmente, esses testes são conduzidos no site do cliente porque o testador precisa estar no alcance dos sinais wireless para acessar o dispositivo.
Na maioria dos casos, as vulnerabilidades são encontradas em pontos de acesso WiFi devido à falta de filtragem MAC e controles de acesso à rede insuficientes. Para remediar esses problemas antes que aconteçam de verdade, é crucial testar a eficácia da postura de segurança e expor fraquezas não intencionais.
Também é importante lembrar que WiFi não é a única tecnologia wireless que atacantes podem explorar. Existem vários dispositivos Bluetooth, dispositivos Bluetooth Low Energy e outras tecnologias menos populares, como Z-wave e DECT (telefone sem fio), encontradas em público.
4. Teste de Penetração Client-Side
- Detecta configurações incorretas de segurança em software client-side
- Permite controle adequado de tráfego de rede de entrada e saída
Este é um Pen Test interno onde os testadores exploram vulnerabilidades em programas de aplicação client-side, como navegadores web, Adobe Acrobat, clientes de email, Macromedia Flash, etc.
Embora não haja regra para conduzir tais testes em intervalos específicos, as empresas devem realizar testes de penetração quando nova infraestrutura de TI ou aplicações client-side são adicionadas ou quando a infraestrutura existente é alterada.
A maioria das vulnerabilidades client-side ocorre devido a software não corrigido instalado em laptops ou desktops. Alguns atacantes até interceptam o processo de atualização, enviando código malicioso junto com a atualização original.
Dispositivos USB também são infectados com arquivos maliciosos ou código executável. Esses arquivos são executados automaticamente assim que a vítima conecta o USB à sua máquina. Cross-site scripting, form hijacking, clickjacking, injeção HTML e redirecionamento aberto são alguns dos ataques de segurança client-side mais comuns.
É por isso que é importante testar a suscetibilidade dos funcionários e a capacidade das redes de reconhecer e responder a ataques client-side.
5. Teste de Penetração Externo
- Uma avaliação de segurança dos sistemas de perímetro de uma empresa
- Inclui avaliações tanto na camada de aplicação quanto na camada de rede
O teste de penetração externo geralmente testa a partir da perspectiva do atacante, sem acesso prévio ao sistema ou rede alvo. Isso é diferente do teste de penetração interno, no qual o atacante já tem um ponto de apoio na máquina comprometida.
No teste de penetração externo, o testador tenta obter acesso à rede interna aproveitando vulnerabilidades encontradas nos ativos externos. Ele/ela realiza reconhecimento nos ativos no escopo, coletando dados sobre todos os ativos no escopo.
Esses dados podem incluir portas abertas, vulnerabilidades ou informações de funcionários para ataques de senha. Uma vez que o perímetro é violado, o objetivo do teste de penetração externo é alcançado, e o testador prossegue para o teste de penetração interno.
Leia também: 30 Ferramentas Úteis de Rastreamento de Bugs Para Desenvolvedores
6. Engenharia Social
- Engana funcionários desavisados a comprometer a segurança da empresa
- Explora a psicologia humana para obter dados confidenciais
O termo engenharia social é usado para uma ampla gama de atividades maliciosas realizadas através de interações humanas. Como depende de erro humano (em vez de fraqueza em aplicações ou redes), é menos previsível e mais difícil de detectar do que intrusões baseadas em malware.
Estes tipos de testes envolvem tentar obter dados confidenciais enganando os funcionários da empresa a revelar informações sensíveis. Isso pode ser alcançado através de testes remotos ou físicos.
Leia também: 15 Melhores Ferramentas de Geração de Dados de Teste
O teste remoto envolve enviar emails de phishing para funcionários ou bombardear seus dispositivos com falsos alarmes ou ameaças fictícias. Em contraste, o teste físico inclui tailgating, personificação, dumpster diving, ameaças físicas, etc.
Tecnologia industrial
- 14 Tipos Comuns de Vírus de Computador para Proteger Seus Sistemas (Atualização 2021)
- 5 Modelos de Data Center Explicados: Design, Casos de Uso e Exemplos
- Oito Modelos Principais de Computação em Nuvem de 2021
- 9 Métodos Comprovados de Testes de Penetração para 2021: Proteja Seu Negócio
- Entendendo Anti-Aliasing: 6 Tipos e Métodos para Suavizar Imagens Digitais
- 5 Tipos Essenciais de Juntas de Soldagem: Design, Qualidade e Impacto no Custo
- Conheça 15 Tipos Essenciais de Fresadoras para Usinagem de Precisão
- 10 Tipos Essenciais de Modelos de Fundição para Produção Metálica Otimizada
- Estratégias Modernas de Manutenção para Sucesso na Manufatura
- 5 Testes Essenciais de Equipamentos para Desempenho Confiável na Construção