quarta-feira, 5 de novembro de 2008

Cap 2 - Elementos de Malwares

No capítulo anterior apresentei uma proposta de taxonomia para os malwares (vírus, worms, trojans, loggers, etc), agora explicarei como separei os elementos que formaram essas categorias.

Elementos
Apesar de particularmente não gostar de referenciar informações provindas de fontes de dados não cientificamente válidas, entretando, a definição de Elementos já é tão amplamente conhecida, que aqui utilizarei o Wikipedia apenas para formalizar o conceito para o estudo apresentado:

Segundo Wikipedia (2008) , elemento pode ser:
  1. aquilo que é simples
  2. o que se pensa impossível de decompor
  3. o que é um componente de um todo
  4. matéria-prima
Dessa forma, compreendemos o termo "Elemento" como aquilo que é simples, indivisível e que participa de um todo.

Elementos de Malwares
Os elementos de malwares foram definidos aqui segundo suas características técnicas. Essas características foram percebidas através de uma pesquisa documental, resgatando a histórica de evolução dos malwares (1979~2008), e destacando as ações realizadas por cada malware registrado na história. São elas:

  • Inicialização – altera arquivos de inicialização do computador (Bios, Fat, boot.ini, autoexec.bat, registro,etc), para ser automaticamente inicializado junto ao sistema operacional;
  • Infecção – infecta outros arquivos em execução no computador como forma de se multiplicar;
  • Ocultaçãoutiliza códigos de compactação, criptografia ou criação de proxies (memória, FAT ou substituição de arquivos originais por falsos), a fim de se mascarar contra sistemas antivírus e de detecções manuais dos usuários;
  • Incubaçãodepende da existência de um programa para se propagar e reproduzir;
  • Engenharia Socialdepende da utilização de técnicas contra a ingenuidade dos usuários a fim de serem executados no sistema operacional;
  • Propagaçãoutiliza as redes de computadores como forma de se alastrar e infectar outras máquinas em redes, utiliza os conceitos de bugs, exploits e vulnerabilidades;
  • Remotopermite o envio de informações para um master a fim da realização de controle remoto slave (ou zumbie);
Taxonomia de Malwares
A tabela a seguir é uma proposta de categorizar os malwares através de seus elementos:


Malware

Inicialização

Infecção

Ocultação

Incubação

Eng. Social

Propagação

Remoto

Vírus

X

X

X

X

X



Worm





X

X


Trojan





X



Backdoor

X




X



Rootkits

X


X


X


X

Loggers

X


X


X


X

Spywares





X


X

Bots

X

X

X



X

X




O terpo malwares seria então o conjunto de categorias simples, e estas por sua vez formadas por conjuntos de elementos únicos que as tornassem distintas umas das outras.
Fica agora as seguintes questões: todos os elementos foram listados? todas as categorias foram formuladas?

Conclusão e Estudos Futuros
Acredito que em linhas gerais, a forma para categorizar os malwares, tenha sido apresentada de forma clara e fundamentada em teoria consistente. Particularmente já consegui elencar 12 elementos de malwares e formular 10 categorias de malwares, entretando não disponibilizei ainda para não esgotar o assunto e abrir o tema para discussões.


Referência Bibliográfica
Wikipedia, disponível em http://pt.wiktionary.org/wiki/elemento, acessado em Novembro, 2008.

Cap 1 - Malwares, vírus e pragas virtuais.

Malware não é vírus!
Vírus é um tipo de malware!
Malware é qualquer tipo de software malicioso que visa obter vantagens sobre o usuário.

Essa confusão sobre tipos de malwares é relativamente nova. Desde o surgimento dos primeiros vírus de computadores (na década de 80) que todo problema relacionado a um comportamento anômalo do sistema é atribuído a vírus de computador. Porém, com o passar do tempo, estudiosos da área de segurança de rede perceberam a necessidade de distinguir os tipos de softwares maliciosos, em função de suas características técnicas, modus operandi, objetivos e formas de combatê-los. Vejamos a seguir um breve resumo sobre este tema:

Histórico
O primeiro malware da história é o vírus de computador. Nasce na forma de um trecho de código, geralmente em assembler, a ser injetado dentro de um programa aplicativo (.exe, .com, .bat, etc). Várias formas e variações surgiram, mas todas com o mesmo modus operandi: necessidade de um código hospedeiro para sobreviver e replicar.

Nessa mesma época já se discutia um segundo tipo de malware, o keylogger, um programa cujo modus operandi residia em escrita bash, voltado para capturar senhas e usuários de terminais Unix, e utilizado geralmente em universidades. Para disseminar, controlar e ocultar a presença dos keyloggers foi desenvolvido um terceiro tipo de malware, o rootkit. Um conjunto de scripts que tinham por finalidade: 1) invadir um alvo vulnerável, 2) adulterar os principais programas de monitoração do host a fim de tornar-se invisível, 3) excluir as entradas em logs do host que pudessem registrar sua presença, 4) instalar o keylooger.

O conceito destes tipos de malware só seriam portados para plataformas Windows por volta de 1996, quando do lançamento do Windows 95. O principal representante nesta época, para Windows, seria o BackOrifice, seguido do seu concorrente em ambiente gráfico: o NetBus.

Entretando, apesar do surgimento dos vírus e dos keyloogers, muito se discutiu em relação ao meio de propagação. Tanto o vírus quanto o keylogger eram programas que precisavam ser executados para terem seu payload (veneno) executado. Então nessa mesma época, começou o debate sobre os aplicativos trojans (Cavalos de Tróia). Os trojans seriam aplicativos válidos ou não, cuja principal finalidade seria de infectar um hospedeiro, no caso do conteúdo do trojan ser um vírus, ou instalar um logger, caso o conteúdo do trojan ser um keylogger. De fato, a maioria dos Trojans existentes nessa época consistiam de aplicativos válidos, como jogos, músicas ou websites, mas que traziam consigo um presente de grego atrelado. Nasce assim o terceiro tipo de malwares, os Trojan. Não como uma praga propriamente dita, mas como um meio de transporte para pragas diversas.

Por volta de 1988, um novo tipo de malware surge com expressa agressividade: o Worm (verme). O Worm é um aplicativo, que realiza uma busca por todos os computadores que estão em rede. Após localizar os hosts existentes, realiza um varredura por vulnerabilidades em programas específicos. Uma vez identificado um host vulnerável, o worm explora esta vulnerabilidade a fim de ganhar acesso irrestrito ao host. O host infectado passa então a realizar a ação do worm e continuar sua propagação via rede, infectando as demais máquinas vizinhas. O worm trás consigo duas implicações claras: 1) é um mecanismo de transporte via redes, pois abre espaço para um cavalo de tróia, 2) é um vírus inconsequênte, pois uma vez infectado um host, esse host irá tentar infectar seu progenitor novamente, causando exaustão de serviços da rede e do host.

As consequências indesejadas do Worm, em termos de exaustão da rede e do host, fizeram com que por volta de 1991, surgisse uma nova variação: o bot. O bot é uma variação inteligente do worm, porém, por apresentar um modus operandi diferente, é classificado como um malware específico. O bot além de abrir espaço pelas redes, comprometendo hosts vulneráveis, ele realiza uma busca inteligente excluindo os hosts já penetrados. Os hosts então infectados ficam a mercê de um controlador, ou seja, tornam-se zumbies aguardando a ordem de seu mestre. A principal diferença do bot para o worm é que um worm pode apresentar ciclos de infecções em rede, uma vez que não possui controle. Já os bots são temporários, pois uma vez que o mestre é exterminado, toda a rede zumbie perde relevância.

Em 1995, com a massificação do novo sistema operacional da microsoft, o Windows 95, diversos programadores começaram a corrida pela busca de vulnerabilidades. Nesta corrida, diversas formas de congelar (travar) o sistema foram descobertas na tentativa de localizar endereços na memória que permitissem o controle total de um host. Nasce o tipo de malware denominado Denied of Service (DoS). O DoS consistia em executar uma operação remota, contra um host, e como consequência o host ficaria congelado ao tentar responder a operação remota. O conceito de DoS porém é mais antigo que o fato histórico como malware. Originalmente, o DoS fora utilizado em contextos de segurança de rede, para silenciar uma determinada máquina, a fim de que um invasor de rede pudesse assumir a identidade daquele host mudo. Conceitos como DNS Spoofing, ARP Poising, ARP Spooing, Men-in-the-Middle Attack e ferramentas como a DSniff, tornaram o conceito de DoS mais conhecidos no mundo Unix/Linux, porém, este conceito aplicado contra plataformas da Microsoft, criaram uma série de programas específicos, cujas classificações é apresentada aqui como DoS.

Por volta do ano 2000, uma nova explosão de vírus, worms, trojans, loggers e DoS assolam a comunidade da Internet. Principalmente em função da massificação global da Internet. Nesse novo cenário de economias globalizadas, aldeias globais de conhecimento, telecomunicações populares e de longo alcance, nascem novas variações de malwares:

A primeira grande variação, e novo tipo de malware, após a virada do século foi o Spam. O Spam é uma variação do serviço de correio eletrônico, onde o objetivo é a proliferação de mensagens não solicitadas pelos usuários. Semelhante ao trojan, o spam se assemelha mais a um mecanismo de transporte do que infecção. O principal objetivo no uso dos spam, como forma de malware, é para a aplicação de golpes eletrônicos (fraudes online), transporte de trojans, vírus ou bots.

A segundo variação veio na forma do DDoS. Um DoS aplicado a rede. Aqui está uma mistura de bot e DoS, onde um controlador mestre, escravisa uma grande quantidade de zombies, que ao seu sinal irão desencadear um ataque cordenado e síncono contra um ou mais alvo específico.

Logo em seguida, ainda em meados do ano 2002, e com o emplacamento do e-commerce de forma global, os desenvolvedores de código malicioso criaram uma versão subversiva do mecanismo de registro das atividades dos consumidores, o ad-ware. O ad-ware, cuja principal finalidade era o registro de navegação do consumidor para facilitar a navegação entre páginas autenticadas e de perfil de consumo, foi transformada em uma versão espiã, denominada de Spyware. O Spyware possui o mesmo mecanismo técnico do ad-ware, porém se distancia por seu princípio ético. O Spyware coleta o histórico de navegação dos usuários, suas senhas, seus hábitos e encaminha, geralmente para um canal público de chat (IRC), os logs de acesso. Onde desenvolvedores maliciosos aguardam as informações para tirar proveitos para si.

Conclusão e Taxonomia
Ainda existe muito o que se discutir em relação a qual a classificação dos malwares, entretanto, em função dos registros históricos, das características técnicas (modus operandi) e das finalidades de cada tipo de código malicioso, aqui proponho a seguinte taxonomias para os malwares:

  1. Vírus de Computador
  2. Worms
  3. Keyloogers
  4. Rootkits
  5. Trojans
  6. Bots
  7. Spam
  8. DoS
  9. DDoS
  10. Spywares
Deixo um espaço agora para discutir a linha cronológica de surgimento das principais pragas. Qual o primeiro vírus? Qual o primeiro worm? Qual o primeiro logger? etc.