Teste de Penetração e a borda

teste de penetração

Um teste de penetração (pen test) consiste em um ataque cibernético simulado por um profissional de segurança para determinar se o testador pode acessar um alvo por meio de vulnerabilidades do dispositivo. Lembre-se, no blog “Edge Security in a Insecure World”, afirma-se que a interface de rede de um dispositivo conectado à Internet forma uma grande parte de sua superfície de ataque. A interface de rede do dispositivo de borda expõe várias portas de rede que apresentam protocolos exclusivos para a Internet. Cada uma dessas portas é um ponto de entrada em potencial para um hacker - por exemplo, o protocolo HTTP exposto na porta 80 ou 8080. O entendimento do protocolo (e versão) exposto em uma determinada porta fornece muitas informações ao hacker.

Processo de teste de penetração

Como uma simulação de um hacking, o teste de penetração segue um processo semelhante ao de um possível hacker. Abaixo está um processo simples para tentar penetrar em um sistema em uma rede. O processo de teste consiste em:

1. Seleção de um target
2. Detecção de Vulnerabilidade
3. Correspondência de exploração (exploit)
4. Tentativa de exploração

Para a seleção de targets, este é simplesmente o dispositivo autorizado no teste. O target é sondado por um detector de vulnerabilidade, como um scanner de porta, para avaliar os pontos de entrada no dispositivo, juntamente com outras informações sobre esses pontos de entrada (protocolo, versão etc.). A seguir, é apresentada a identificação de possíveis explorações para esses pontos de entrada, com uma tentativa de exploração como a etapa final (Figura 1). Esse processo ignora o desenvolvimento de exploração personalizada, que é um processo consideravelmente mais complexo.

teste de penetracao 0

Figura 1: Diagrama do processo de teste de penetração. (Fonte: Autor)

 

Escaneamento de Portas

Para identificar possíveis vulnerabilidades em um dispositivo, uma das abordagens mais simples é o scanner de portas. Um scanner de porta é uma aplicação que verifica portas abertas em um dispositivo e, através dos números de porta associados a essas portas, identifica os serviços de rede acessíveis. Como um número de porta pode representar números no intervalo de 1 a 65535, a verificação de porta pode ser um processo demorado.

As verificações de portas são realizadas de várias maneiras, mas no caso mais simples, o scanner de portas tenta se conectar às portas do dispositivo. Se o dispositivo confirmar a solicitação de conexão, geralmente chamada de handshake de três vias para TCP, a porta estará aberta. Caso contrário, a porta está fechada ou bloqueada.

O teste de penetração geralmente pode identificar o serviço de rede usando o número da porta. Por exemplo, se o scanner de porta encontrar uma porta aberta na porta 80 ou 8080, o protocolo HTTP está disponível.

Os detalhes dos pacotes subjacentes trocados entre o dispositivo e o scanner de porta também fornecem informações valiosas. O testador pode usar informações sobre como um dispositivo específico configura parâmetros do protocolo para identificar o sistema operacional (SO) ou a pilha de protocolos em um processo chamado impressão digital do dispositivo.

A Figura 2 fornece uma amostra da saída do utilitário de scanner de porta Network Mapper (NMAP). Essa solicitação específica usa o método de pacote SYN e solicita informações de serviço para portas abertas no dispositivo de rede 192.168.1.4. Como mostrado na saída, o NMAP identifica um grande número de portas abertas e até identifica o dispositivo através de informações trocadas pelas portas.

Figura 2: A imagem mostra um scanner de porta simples para uma impressora local. (Fonte: Autor)

O NMAP é uma ferramenta essencial para a exploração e descoberta de redes. Depois de entender a superfície de ataque de um dispositivo de rede, você estará pronto para testar as possíveis explorações no dispositivo.

Testando potenciais explorações no dispositivo

Entender se os vetores de ataque à rede de um dispositivo incluem explorações em potencial é a próxima fase do teste de penetração. O teste de exploração é um empreendimento complicado, mas o projeto Metasploit simplifica esse processo.

Projeto Metasploit

O Metasploit é um projeto que cria uma estrutura para teste de exploração, oferecendo suporte à correspondência, execução e desenvolvimento de exploração. O Metasploit inclui um extenso banco de dados de explorações - um pequeno número é mostrado na Figura 3 - que pode ser comparado a um dispositivo de rede em teste e depois invocado.

teste de penetracao 2

Figura 3: Imagem de um console do Metasploit e uma lista de explorações do XP. (Fonte: Autor)

O Metasploit inclui explorações de código de shell para assumir o controle de um dispositivo de destino executando código através de um payload no dispositivo target. O Metasploit permite que o testador de penetração misture explorações com qualquer payload baseada na impressão digital de um dispositivo e na compreensão de seus vetores de ataque disponíveis.

O framework Metasploit é a estrutura mais amplamente usada para testes de penetração, oferecendo um ambiente completo para descoberta, correspondência e execução de exploração, bem como desenvolvimento de exploração.

Kali Linux

Por fim, há uma distribuição Linux focada no teste de penetração e desenvolvida pela Offensive Security Ltd. O Kali Linux, derivado do Debian Linux, pode ser instalado em um computador com recursos limitados ou inicializado a partir de um CD / DVD ou um pendrive. Ele vem pré-instalado com mais de 600 ferramentas de teste de segurança, incluindo NMAP, a estrutura Metasploit, scanners de segurança de aplicativos, Wireshark (para análise de pacotes), suítes de software para teste de penetração de LAN sem fio e muito mais. O Kali Linux ainda roda em dispositivos baseados em ARM (como o Raspberry Pi2) e dispositivos Android PDA (como o Gemini PDA).

Protegendo seus dispositivos

Embora a segurança seja geralmente uma reflexão tardia no projeto de dispositivos, há alguns aspecto básicos que você pode fazer para proteger seus dispositivos de borda. Comece respondendo essas perguntas.

1. A superfície de ataque do dispositivo foi revisada e minimizada?
2. Todas as portas abertas são necessárias ou podem ser fechadas após a conclusão do desenvolvimento?
3. Se você estiver executando o Linux no seu dispositivo, o kernel e os pacotes estão atualizados e as vulnerabilidades são compreendidas (como anunciadas pelo Exploit Database)?
4. Seu código foi revisado (manualmente ou através de uma ferramenta de análise de código-fonte)?

São ações básicas que um desenvolvedor pode fazer para proteger seu dispositivo, mas tudo começa com o entendimento da superfície de ataque e dos testes de penetração.

Conclusão

O teste de penetração baseia-se na ideia de defender seu dispositivo de rede, conectado em campo; primeiro você precisa pensar sobre sua segurança ofensivamente. O teste de penetração coloca você no papel de alguém que deseja explorar seu dispositivo para que, quando o dispositivo for lançado, você possa ter certeza de que cobriu explorações conhecidas para seu SO ou pilha de rede.

Artigo escrito originalmente por M. Tim Jones para Mouser Electronics: Penetration Test and the edge. Traduzido por Equipe Embarcados.

Para artigos como esse, acesse o link.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Software » Teste de Penetração e a borda
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu

WEBINAR
 

Soluções inteligentes para acionamento de MOSFETs/IGBTs com família STDRIVE

Data: 08/10 às 15:00h - Apoio: STMicroelectronics
 
INSCREVA-SE AGORA »



 
close-link