Exploit (segurança de computadores)

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Exploit)
Ir para: navegação, pesquisa

Um exploit (em português explorar, significando "usar algo para sua própria vantagem") é um pedaço de software, um pedaço de dados ou uma sequência de comandos que tomam vantagem de um defeito, falha ou vulnerabilidade afim de causar um comportamento acidental ou imprevisto a ocorrer no software ou hardware de um computador ou em algum eletrônico (normalmente computadorizado). Tal comportamento frequentemente inclui coisas como ganhar o controle de um sistema de computador, permitindo elevação de privilégio ou um ataque de negação de serviço.[1]

São geralmente elaborados por hackers como programas de demonstração das vulnerabilidades, a fim de que as falhas sejam corrigidas, ou por crackers a fim de ganhar acesso não autorizado a sistemas. Por isso muitos crackers não publicam seus exploits, conhecidos como 0days, e o seu uso massificado deve-se aos script kiddies.

Até meados dos anos 1990, acreditava-se que os exploits exploravam exclusivamente problemas em aplicações e serviços para plataformas Unix [carece de fontes?]. 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 temos o CodeRed, o MyDoom, o Sasser em 2004 e o Zotob em 2005.

Classificação[editar | editar código-fonte]

Há vários métodos de se classificar os exploits. O mais comum é através de como o exploit contata o software 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 decorrido aqueles concedidos pelo administrador do sistema. Exploits contra aplicações do cliente também existem, normalmente consistindo de servidores modificados que enviam um exploit se acessado com uma aplicação de cliente. 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 método de 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 publicaram seus exploits, mas mantê-los privados para si mesmos ou para outros hackers. Tais exploits são classificados como exploits do dia zero e obter acesso a tais exploits é o desejo primário de atacadores não qualificados, geralmente script kiddies com apelidos.[2]

Tipos[editar | editar código-fonte]

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

  • O tipo de vulnerabilidade que exploram (veja vulnerabilidades para uma lista)
  • Se precisam ser executados na mesma máquina que o programa que tem a vulnerabilidade (local) ou pode ser executado em uma máquina para atacar um programa em execução em outra máquina (remoto).
  • O resultado da execução do exploit (EoP, DoS, spoofing, etc)

Pivotante[editar | editar código-fonte]

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 poderia 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:

  • Pivotante de proxy geralmente descreve a prática de canalizar tráfego através de um alvo comprometido usando uma carga de proxy na máquina e executando ataques do computador.[3] Este tipo de pivotante é restrito a certas portas TCP e UDP que são suportadas pelo proxy.
  • Pivotante VPN permite ao atacante criar um túnel criptografado de camada 2 na máquina comprometida para rotear qualquer tráfego de rede através daquela máquina alvo, por exemplo, para executar uma varredura de vulnerabilidade na rede interna através de uma máquina comprometida, dando efetivamente ao atacante acesso completo a rede como se eles estivessem atrás do firewall.

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. Whitman,Michael (2012). "Chapter 2: The Need for Security". Principles of Information Security, Fourth Edition. Boston, Mass: Course Technology. p. 53.
  3. Metasploit Framework Pivoting, Digital Bond: Metasploit Basics – Part 3: Pivoting and Interfaces

Ligações externas[editar | editar código-fonte]


Ícone de esboço Este artigo sobre computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.