Malware Raphael Lima B. Barros Introdução Seguindo os avanços tecnológicos, softwares maliciosos vem sendo criados para danificar computadores e sistemas. Estes programas, inicialmente apenas vírus, atuavam corrompendo e apagando arquivos. Hoje, com a era da informação, outras formas de ataque vem surgindo. Atuando principalmente na coleta de dados. Seminário em Informática Teórica 2 Agenda Um pouco de história... Vírus Vírus X Anti-vírus: A Guerra Key-Loggers Trojans Spywares Worms Bots O que anda acontecendo Existem vírus no Linux? Conclusões Seminário em Informática Teórica 3 Um pouco de história... Seminário em Informática Teórica 4 Um pouco de história... Em 1984, o termo vírus é usado pela primeira vez. Em um artigo chamado, Experiments with Computer Viruses, de Fred Cohen. Em 1986, dois paquistaneses criam o primeiro vírus, chamado (c)Brain. Tratava-se de um vírus de boot. Seminário em Informática Teórica 5 Um pouco de história... Na segunda metade da década de 80 e início dos anos 90, as infecções se davam através de discos removíveis com arquivos infectados. A partir da metade dos anos 90 surgem os macro vírus. Ainda neste período, com o crescimento da Internet, os vírus passaram a se propagar de forma mais eficiente. Seminário em Informática Teórica 6 Vírus Seminário em Informática Teórica 7 Definição Segundo a Wikipedia: “Vírus de Computadores são programas escritos para modificar a forma como computadores operam. Normalmente, sem o conhecimento ou permissão do usuário, escondidos em outros programas.” Seminário em Informática Teórica 8 Definição Duas Características Principais: Auto-executáveis Auto-replicáveis 2 partes: Assinatura: Seqüência de bytes que o identifica. Payload: Porção de código que causa o dano propriamente dito. Seminário em Informática Teórica 9 Classificação Alguns Tipos: De Boot De Arquivos Macro-vírus Companheiro (Companion) Seminário em Informática Teórica 10 Vírus de Boot Provavelmente os primeiros tipos de vírus. O pioneiro: (c)Brain Danifica os setores de inicialização de discos rígidos (setores de boot). Seminário em Informática Teórica 11 Vírus de Arquivos Infectam arquivos executáveis, drivers e arquivos comprimidos. São ativados quando os programas hospedeiros são ativados. Podem se disseminar para programas em execução no dado momento de sua ativação. Modificam o código de programas, para serem ativados posteriormente. Exemplos: Randex, Meve e MrKlunky Seminário em Informática Teórica 12 Macro-vírus Infectam arquivos que são criados por aplicações que contem macros. Exs.: documentos Word, planilhas Excel, apresentações PowerPoint Como são escritos nas linguagem das aplicações (Macro linguagem), são independentes de plataforma. Exemplos: Relax, Melissa.A e Bablas Seminário em Informática Teórica 13 Vírus Companheiro (Companion) Se utilizam de uma falha do MS-DOS. Mesmo nome do arquivo executável, porém com outra extensão. Execução em ordem lexicográfica. Ex.: sptrec.com (vírus) < sptrec.exe (executável) Muito raros atualmente, desde a chegado do Windows XP. Não utiliza o MS-DOS. Seminário em Informática Teórica 14 Vírus – Crescimento em Números # vírus > 72000 Seminário em Informática Teórica 15 t Métodos de Replicação Basicamente, 2 estratégias: Residente: Permanece executando em background, a espera de algum evento, para que então, infecte um arquivo ou programa. Não-residente: Um módulo de busca, presente no vírus sai “à caça” de novos arquivos para infectar. Seminário em Informática Teórica 16 Residente Não-residente Seminário em Informática Teórica 17 Vírus X Anti-vírus: A Guerra Seminário em Informática Teórica 18 Round 1 O Ataque: Os vírus inserem seu código malicioso e alteram o ponto de entrada do programa. O Contra-ataque: Os anti-vírus otimizam seus scanners para vasculhar os arquivos, em busca das assinaturas dos vírus. Seguem a execução, a partir do ponto de entrada Seminário em Informática Teórica 19 Esquema Depois da Infecção Antes da Infecção 0 Programa A 0 Pule para 5 1 Programa A 1 Programa A 2 Programa A 2 Programa A 3 Programa A 3 Programa A 4 Programa A 4 Programa A 5 Vírus 6 Vírus 7 Vírus Fim do Programa 8 Seminário em Informática Teórica 20 Round 2 O Ataque: Os anti-vírus utilizam os chamados arquivos-isca (bait files). Para guardar um exemplar do vírus O Contra-ataque: Os vírus passam a decidir quando infectar (infecção esparsa), e não em todos os casos. Suspeita de arquivos-isca Seminário em Informática Teórica 21 Round 3 O Ataque: Os vírus passam a encriptar o seu código. 2 módulos: módulo de decriptação + código encriptado Às vezes a encriptação é simples: A XOR K = B, B XOR K = A O Contra-ataque: Os anti-vírus passam a utilizar: Emulação (Máquina virtual); Análise estatística de padrões; Seminário em Informática Teórica 22 Round 4 O Ataque: Os vírus passam a mudar o módulo de decriptação a cada infecção. Se bem escrito, o vírus pode variar todas as partes a cada infecção; Ou ainda, evitar a metamorfose, quando já houver um exemplar do vírus no computador; O Contra-ataque: Os anti-vírus ainda utilizam a Decriptação Genérica: Emulação da CPU; Seminário em Informática Teórica 23 O problema da Parada Se o GD Scanner conhecesse todos os arquivos infectados, seria fácil construí-lo: Emule o programa até encontrar o vírus; Mas isso não é viável! Seminário em Informática Teórica 24 O problema da Parada O emulador deve decidir: até que parte do programa procurar, antes de desistir? Semelhante ao Problema da Parada de Turing. Ainda outro problema: Como emular vários tipos de máquinas. Seminário em Informática Teórica 25 Key Loggers Seminário em Informática Teórica 26 Key Loggers Registram tudo que é digitado no teclado. Utilizado principalmente para capturar senhas. Normalmente instalados em: Um falso download E-mails maliciosos Seminário em Informática Teórica 27 Trojans Seminário em Informática Teórica 28 Trojans Também conhecidos com Cavalos de Tróia. Permitem que o computador hospedeiro receba comandos externos e dados possam ser enviados a terceiros. Disseminação: Inicialmente: Eram transportados por outros vírus, pois não podiam se replicar Hoje: Também baixados em arquivos e e-mails Seminário em Informática Teórica 29 Spywares Seminário em Informática Teórica 30 Spywares Também conhecidos como Advertising-Supported Software (Adware) Vão escondidos em Banners e propagandas em softwares, normalmente sharewares. Seminário em Informática Teórica 31 Spywares Enviam dados estatísticos pela rede, sem a permissão dos usuários. Monitoramento dos hábitos dos usuários “Gastam” tempo de processamento e largura de banda. Seminário em Informática Teórica 32 Worms Seminário em Informática Teórica 33 Worms Diferentes dos Vírus comuns, Worms são independentes de programas hospedeiros. Se replicam seguindo as conexões de uma rede. Seminário em Informática Teórica 34 Worms Assim como vírus comuns, são capazes de destruir arquivos essenciais. Exemplos: MS-Blaster e Sesser Seminário em Informática Teórica 35 Bots Seminário em Informática Teórica 36 Bots São programas que executam de forma autônoma. Também designam computadores dedicados na execução de programas para: Proliferação de worms Coleta de dados roubados por Spywares Realizar Denial-of-service attacks Etc. Seminário em Informática Teórica 37 O que anda acontecendo XSSV (Cross-site scripting virus): Se aproveitam de vulnerabilidades de Aplicações Web para injetar códigos maliciosos. Hoje são muito utilizados para a prática de Phishing. Cópia, principalmente, de Web sites para coleta de senhas e dados. Seminário em Informática Teórica 38 Existem vírus no Linux? Embora poucos, existem! Eles podem, por exemplo, infectar arquivos executáveis Linux. (ELF) Mas para isso: O executável precisa estar em arquivo com permissão de escrita para o usuário que esteja ativando o vírus Seminário em Informática Teórica 39 Existem vírus no Linux? Além disso: Numa instalação desktop, via de regra os arquivos executáveis têm como dono (owner) o administrador do sistema (root), e rodam em processo de usuário comum. Ou seja, a partir de uma conta não-privilegiada. Seminário em Informática Teórica 40 Conclusões Redes infecção? Onde está a fonte de Além disso, os avanços trouxeram consigo outras categorias de Malware. Invasão de Privacidade. A guerra Vírus X Anti-vírus, ainda está longe do fim! Seminário em Informática Teórica 41 Referências (Sites) Wikipedia: www.wikipedia.org Howstuffworks: http://www.howstuffworks.com/virus.htm Vírus no Linux: http://www.cic.unb.br/docentes/pedro/trabs/vir us_no_linux.html http://www.istf.com.br/vb/archive/index.php?t3670.html Seminário em Informática Teórica 42 Referências (Artigos) SZOR, P. FERRIE P. Hunting for Metamorphic. Symantec, jun. 2003. Disponível em: <colocar aqui>. Acesso em: 15 jan. 2007. NACHENBERG, C. Computer Virus – Coevolution. Communications of the ACM, n.40, jan. 1997. Disponível em: <Colocar aqui>. Acesso em: 15 jan. 2007. Seminário em Informática Teórica 43 Malware Raphael Lima B. Barros