Exploit (segurança de computadores)

Um exploit (em português explorar, significando "usar algo para sua própria vantagem") é um software ou código malicioso que explora uma falha ou vulnerabilidade relacionada ao software ou hardware de um computador, um exploit também pode afetar outros eletrônicos como roteadores, celulares e etc. (normalmente é utilizado para afetar eletrônicos "computadorizados"). A execução bem sucedida de um exploit costuma resultar no ganho de acesso ao sistema alvo, na escalação de privilégio ou em negação de serviço. Tal resultado depende do propósito para o qual o código foi desenvolvido.

Exploits podem ter muitos outros propósitos além dos exemplos citados acima. Eles geralmente são elaborados por hackers para demonstrar a existência e o impacto de uma vulnerabilidade, a fim reportar a vulnerabilidade ao proprietário para que essa falha seja corrigida. Exploits também podem ser desenvolvidos por crackers (cyber criminosos), a fim de ganhar acesso não autorizado a sistemas ou causar prejuizos.

Até meados dos anos 1990, acreditava-se que os exploits exploravam exclusivamente problemas em aplicações e serviços para plataformas Unix . A partir do final da década, especialistas demonstraram a capacidade de explorar vulnerabilidades em plataformas de uso massivo, por exemplo, sistemas operacionais Win32 (Windows 9x, NT, 2000 e XP). Como exemplo tem-se o CodeRed, o MyDoom, o Sasser em 2004 e o Zotob em 2005.

Classificação

Há vários métodos de se classificar um exploit. O mais comum é através de como o exploit se comunica com o sistema vulnerável.

Um exploit remoto funciona sobre uma rede e explora a vulnerabilidade de segurança sem qualquer acesso prévio ao sistema vulnerável.

Um exploit local requer acesso prévio ao sistema vulnerável e normalmente aumenta os privilégios da pessoa que executa o exploit além daqueles concedidos pelo administrador do sistema.

Também existem exploits contra aplicações que funcionam como (cliente) e requerem conexão com um servidor, normalmente consistindo de servidores modificados que ao serem acessados enviam um exploit para a aplicação (cliente). Uma forma comum de exploit contra aplicativos cliente são exploits para navegadores.

Exploits contra aplicações do cliente também podem requerer alguma interação com o usuário e assim pode ser usado em combinação com o outras formas de ataque, como a engenharia social.

Outra classificação é pela ação contra o sistema vulnerável. Acesso não autorizado a dados, execução de código arbitrário e negação de serviço são exemplos. Muitos exploits são projetados para fornecer acesso de nível de super-usuário para um sistema de computador. Entretanto, também é possível usar vários, primeiro para ganhar acesso de baixo nível, depois para escalar privilégios repetidamente até alcançar o nível de root. Normalmente um único exploit pode apenas tomar vantagem de uma vulnerabilidade de software específica. Geralmente, quando um exploit é publicado, a vulnerabilidade é corrigida através de um patch (remendo) e o exploit torna-se obsoleto até novas versões do software tornarem-se disponíveis. Esta é a razão do por quê alguns hackers chapéu preto não publicam seus exploits, optando por mantê-los privados para si mesmos ou para outros hackers. Tais exploits são classificados como exploits do 0day e obter acesso a tais exploits é o desejo primário de atacadores não qualificados, geralmente script kiddies com apelidos.

Tipos

Exploits são comumente classificados usando os seguintes critérios:

Pivotante

Pivotante (do inglês pivoting) refere-se a um método usado por testadores de penetração que utilizam o sistema comprometido para atacar outros sistemas na mesma rede para evitar restrições, como configurações de firewall, que poderiam proibir acesso direto a todas as máquinas. Por exemplo, se um atacante compromete um servidor web em uma rede corporativa, o atacante pode então usar o servidor web comprometido para atacar outros sistemas na rede. Esses tipos de ataques frequentemente são chamados de ataques multi-camadas. Pivotante também é conhecido como salto de ilha (island hopping).

Pivotantes podem ainda ser distinguidos em pivotante de proxy e pivotante de VPN:

Normalmente, as aplicações de proxy ou VPN permitem pivotante de serem executados no computador alvo como o payload de um exploit.

Referências

  1. Goodrich, Michael T. "Capítulo 9: Modelos de Segurança e Prática". Introdução à Segurança de Computadores, Primeira Edição. Porto Alegre: Bookman, 2013. p. 460.
  2. «Channel about open source vulnerabilities» 
  3. Whitman,Michael (2012). "Chapter 2: The Need for Security". Principles of Information Security, Fourth Edition. Boston, Mass: Course Technology. p. 53.
  4. Metasploit Framework Pivoting, Digital Bond: Metasploit Basics – Part 3: Pivoting and Interfaces

Ligações externas