360 likes | 475 Views
Técnicas de Detecção de Vírus. TÉCNICAS DE DETECÇÃO DE VÍRUS Roberto Cássio Silva do Nascimento Júnior (rcsdnj) Manoel Gilvan Calou de Araújo e Sá Filho (mgcasf). ROTEIRO DA APRESENTAÇÃO. Técnicas de Detecção de Vírus. Algumas definições Prejuízos ocasionados por vírus e similares
E N D
Técnicas de Detecção de Vírus TÉCNICAS DE DETECÇÃO DE VÍRUS Roberto Cássio Silva do Nascimento Júnior (rcsdnj) Manoel Gilvan Calou de Araújo e Sá Filho (mgcasf)
ROTEIRO DA APRESENTAÇÃO Técnicas de Detecção de Vírus • Algumas definições • Prejuízos ocasionados por vírus e similares • Um pouco de história • Funcionamento básico • Técnicas utilizadas por vírus • Tipos de vírus • Técnicas de detecção • Limitações dos softwares anti-vírus • Como prevenir • Conclusão • Referências
ALGUMAS DEFINIÇÕES Técnicas de Detecção de Vírus • Vírus x Worm • O comportamento é bastante similar • O vírus necessita de um “hospedeiro” a ser executado, como meio para se propagar • Worm não depende de intervenção humana para seu espalhamento • Worm explora vulnerabilidades do sistema ou do comportamento das pessoas
ALGUMAS DEFINIÇÕES Técnicas de Detecção de Vírus • Trojans • Atuam indesejadamente, e podem causar danos, da mesma forma como vírus e worms • A diferença consiste apenas na falta de um mecanismo de auto-replicação • Bots • Possui as características básicas de um worm • Em geral, possuem uma gama aumentada de meios para infectar • Provêem serviços como espionagem, suporte a spam, ataques de DoS, etc.
PREJUÍZOS OCASIONADOS POR VÍRUS E SIMILARES Técnicas de Detecção de Vírus • Estimativa: U$ 200 por host infectado • Tempo perdido na empresa com tratamento do problema • Gastos com suporte • Danos morais / à imagem • Ações danosas para outras pessoas podem partir de uma máquina hospedeira, cujo dono sequer tem conhecimento do problema... • Empresas podem perder credibilidade devido a ações de software desse tipo • Ajudam a espalhar a maldição do spam
UM POUCO DE HISTÓRIA Técnicas de Detecção de Vírus • Existem trabalhos teóricos desde o final da década de 40, a respeito (Von Neumann) • Teorema da recursão • Década de 70: • Vírus Creeper • Utilizava a rede militar ARPANET, precursora da Internet • “I am the Creeper – catch me if you can” • Vírus Reaper • Apagava as instâncias do Creeper que encontrava • Pergunta-se se não foi feito pelo mesmo que criou o Creeper
UM POUCO DE HISTÓRIA Técnicas de Detecção de Vírus • Década de 70 (cont.): • Vírus “Rabbit” • Apenas multiplicavam-se, sem ação alguma • Acabavam travando ao exceder um certo número de infecções • 80's • Apple II • Elk Cloner Primeiro vírus a ter alcance em larga escala • 1992 • Já 1300 diferentes vírus existentes (aumento de 420% em relação a 1990)
FUNCIONAMENTO BÁSICO Técnicas de Detecção de Vírus • Quando um arquivo ou setor de inicalização infectado é executado... • O vírus é carregado na memória • Altera as rotinas do sistema necessárias para viabilizar as suas ações • Ao detectar um outro local passível de ser executado... • Abre o destino de infecção • Detecta o ponto inicial da execução do código deste local a ser infectado • Modifica as instruções iniciais para que contenha um “jump” para as suas próprias instruções • Coloca suas próprias instruções anexadas no final do local de execução
FUNCIONAMENTO BÁSICO Técnicas de Detecção de Vírus • Quando um arquivo ou setor de inicalização executado é executado... (cont.) • Ao ser disparado um evento (rotina) que esteja sob seu controle, provoca a ação para a qual foi programado • Este evento pode estar associado a algum tipo de timer, e até mesmo só ocorrer numa certa data específica
TIPOS DE VÍRUS Técnicas de Detecção de Vírus • Vírus de Programa • Jerusalem, Cascade. • Vírus de setor de boot • Form, Disk Killer, Michelangelo e Stoned. • Alguns vírus infectam boot e também arquivos • Vírus de macro • Devido à facilidade com que estes vírus podem ser criados, existem milhares deles espalhados
TÉCNICAS UTILIZADAS PELOS VÍRUS Técnicas de Detecção de Vírus • Tunneling • Vírus que buscam restaurar as rotinas originais do sistema operacional que foram controladas pelo software antivírus • Monitora o funcionamento do antivírus e o analisa com heurísticas • Assim, consegue definir uma estratégia ótima de ataque • Softwares anti-virus podem detectar isto e se instalam em rotinas sob as que foram utilizadas pelo vírus • Vírus mais espertos tentam sobrescrever rotinas sob as rotinas gerenciadas pelo anti-vírus • Funciona bem com SOs sem núcleo protegido. A “guerra” entre vírus e anti-vírus acaba gerando problemas no sistema
TÉCNICAS UTILIZADAS PELOS VÍRUS Técnicas de Detecção de Vírus • Stealthing • Mascaramento da presença do vírus quando este tem controle das interrupções do SO • Técnicas para que dificultar a detecção do vírus • Ex.: Não alterar a data e hora, ou tamanho do arquivo contaminado • Modificar rotinas do S.O. para que a leitura das áreas afetadas, quando feita por um antivírus, pareça estar com resultados normais
TÉCNICAS UTILIZADAS PELOS VÍRUS Técnicas de Detecção de Vírus • Encriptação • Utilização de criptografia no código do vírus • Pode ser utilizada para dificultar desinfecção de arquivos • Pode usar sistema de chave privada ou chave pública • Polimorfismo • Capacidade do vírus de modificar seu código a cada execução, mantendo a funcionalidade • Normalmente se utiliza de criptografia • São usados também alguns truques para trocar o código por outro equivalente, sem alterar a função do mesmo • Em geral, utiliza-se um misto destas duas técnicas • Código alterado com “truques” para a parte de criptografia do vírus • Código restante de execução do vírus cifrado • Ex.: Tremor (6,000,000,000 de variações)
TÉCNICAS DE DETECÇÃO Técnicas de Detecção de Vírus • Necessidade de Evolução das técnicas desde 80/90: • Novos tipos de arquivos infectados (.DOC, .XLS, .VBS, etc.) • Maior quantidade de dados (capacidade dos HDs) • Necessidade de separar os tipos de vírus e os tipos de infecções • Criatividade dos programadores X Anti-vírus: • Com a popularização da internet aumentou a velocidade de proliferação • Necessidade de métodos de identificação para vírus novos
TÉCNICAS DE DETECÇÃO Técnicas de Detecção de Vírus • Há quatro principais técnicas de detecção: • Scanning • Integrity checking • Heuristic detection • Interception
SCANNING Técnicas de Detecção de Vírus • Busca por strings características de um vírus particular; • Os vírus também se utilizam desta técnica; • Busca realizada na memória, no setor de boot e no disco; • Código suspeito e checksum também sáo verificados. • Exemplo de assinatura: • –EICAR: arquivo padrão para teste de detecção de vírus por assinatura, inofensivo. • X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS- TEST-FILE!$H+H*
SCANNING Técnicas de Detecção de Vírus • Má escolha da assinatura pode ocasionar falsos-positivos ou não identificar um vírus • Exemplo: • X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-ALTERADO !$H+H* • Um anti-vírus que procurasse pela assinatura completa, não identificaria esse EICAR alterado • Uso de caracteres coringas ajuda: • X5O!P%@AP[4\PZX54(P^)7CC)7}$ [*] !$H+H*
SCANNING Técnicas de Detecção de Vírus • Dois tipos de Scanning: • On-access • Os arquivos são carregados na memória e checados antes da execução • Vantagem • a verificação é feita de forma automática, sem depender da intervenção constante do usuário • Desvantagem: • consome recursos, degradando o desempenho do sistema
SCANNING Técnicas de Detecção de Vírus • Dois tipos de Scanning (cont.): • On-demand • Faz a varredura em toda a memória principal e secundária, incluindo setor de boot • O momento da execução é determinado pelo usuário • Vantagem: • Pode ser agendada para um horário conveniente, não degradando a utilização da máquina • Desvantagem: • Longo período de execução
SCANNING Técnicas de Detecção de Vírus • Desvantagens: • Identifica apenas vírus conhecidos • Vírus polimórficos ou encriptados podem “enganar” a busca pela assinatura • Vantagens: • Detecta rapidamente vírus que ainda não foram executados; • Baixa taxa de falsos-positivos
INTEGRITY CHECKING Técnicas de Detecção de Vírus • Um verificador da integridade grava a informação da integridade sobre arquivos importantes no disco • Em geral, é utilizado checksumming; • Anti-vírus incorpora um código (valor) ao arquivo; • Poucos anti-vírus utilizam esta técnica.
INTEGRITY CHECKING Técnicas de Detecção de Vírus • Program Inoculation: • Técnica que camufla um arquivo limpo, em infectado; • Adiciona dados benignos ao arquivo; • Só funciona para um tipo de vírus por arquivo; • Prejudica a checagem de integridade.
INTEGRITY CHECKING Técnicas de Detecção de Vírus • Vantagens: • Forma mais confiável de provar se um arquivo foi corrompido; • Permite restaurar o arquivo após uma possível infecção ou corrupção. • Desvantagens: • Softwares não oferecem clareza na checagem de integridade (corrompido ou infectado?); • Esta técnica só funciona quando um arquivo já foi infectado;
HEURISTIC DETECTION Técnicas de Detecção de Vírus • "Heurística" vem da palavra grega "heuriskein" e significa "descobrir“ • Técnica utilizada para estudar o comportamento, a estrutura e as características de um arquivo • 70% a 90% dos vírus conhecidos e desconhecidos • Pode ser realizada de duas formas: • Heurística estática; • Heurística dinâmica
HEURISTIC DETECTION Técnicas de Detecção de Vírus • Heurística Estática: • Checa a presença de fragmentos de código suspeito. • Vantagens: • Mais rápida; • Mais fácil de implementar. • Desvantagens: • Mais propensa a disparar falsos-positivos; • Pode não detectar comportamento suspeito de vírus encriptados e polimórficos.
HEURISTIC DETECTION Técnicas de Detecção de Vírus • Heurística Dinâmica: • Emulação de um programa verificando atividade suspeita. • Vantagens: • Pode verificar o funcionamento de vírus encriptados e polimórficos; • Diminui a ocorrência de falsos-positivos. • Desvantagens: • Mais lenta;
INTERCEPTION Técnicas de Detecção de Vírus • Funciona como uma sub-especialização da análise heurística • Monitora a atividade dos processos rodando no computador, e avisa quando existe uma seqüência suspeita • Vantagens: • É um bom método genérico para evitar ação destrutiva por parte de algum vírus, trojan ou afins • Apesar de não identificar o software malicioso, pode impedir maiores danos, parando a sua ação • Desvantagens: • É um recurso fácil de ser desabilitado pelos vírus • Alguns danos podem já ter sido efetivados antes da intercepção ser feita
LIMITAÇÕES DOS SOFTWARES ANTI-VÍRUS Técnicas de Detecção de Vírus • Análise Heurística dificilmente detecta vírus de linguagens de alto nível como C/C++, Delphi ou Visual Basic • Trojans são menos vulneráveis aos anti-vírus, a menos que eles sejam largamente disseminados, como é o caso do Back Oriffice e do NetBus
LIMITAÇÕES DOS SOFTWARES ANTI-VÍRUS Técnicas de Detecção de Vírus • Vírus de Macro: • Maior dificuldade para desenvolver heurísticas • Mais populares e contagiosos • ActiveX e Applets Java: • Novos riscos de segurança
COMO PREVENIR Técnicas de Detecção de Vírus • Verificar se as suas definições de vírus estão atualizadas • Evitar deixar um disco flexível no computador quando desligá-lo • Suspeitar de anexos de e-mail provenientes de origens desconhecidas. Abrir ou executar estes anexos é como “aceitar carona de estranhos” • Os vírus mais recentes podem enviar mensagens de e-mail que parecem ter sido enviadas por pessoas que você conhece
COMO PREVENIR Técnicas de Detecção de Vírus • Ativar a exibição de extensões para arquivos conhecidos no sistema operacional (desativada por quê?) • Arquivos com duplas-extensões, como: .txt.exe ou .jpg.vbs são maliciosos, praticamente sempre • Quanto mais pessoas tiverem acesso a um mesmo computador, mais chance de ser infectado • Evitar troca de dados com computadores "públicos“ • Inspeção manual pode ser uma tática importante, para um usuário mais experiente
CONCLUSÃO Técnicas de Detecção de Vírus • Não existe um método único de detecção para todos os casos • Através da análise de padrões de forma, arquitetura e comportamento dos vírus existentes, pode-se criar novos métodos heurísticos para identificar novas ameaças • Escritores de vírus estão mais sofisticados e os vírus mais complexos • “Para leigos não há limites!” • A melhor proteção ainda é o bom senso.
Técnicas de Detecção de Vírus Perguntas / Dúvidas?
REFERÊNCIAS Técnicas de Detecção de Vírus • Security focus – Markus Schmall • http://online.securityfocus.com/infocus/1542 • Sha Sha Chu, Brendan Dixon, Peter Lai, Darren Lewis, and Camila Valdes • http://cse.stanford.edu/class/cs201/projects-00-01/viruses/anti-virus.html • Extreme Tech • http://www.extremetech.com/article2/0,1697,1154645,00.asp • Lockabit – Bruno da Rocha Braga • http://www.lockabit.coppe.ufrj.br/rlab/rlab_textos?id=73
REFERÊNCIAS Técnicas de Detecção de Vírus • Malicious Cryptography: Exposing Cryptography, by Adam Young and Moti Yung • Erik Kohler • http://www.geocities.com/CollegePark/Union/3590/virus.html • Symantec • http://www.symantec.com/region/br/avcenter/education/index.html#2 • Grisoft • http://www.grisoft.com/doc/DetectionMethods/lng/br-pt/tpl/tpl01 • Igor Muttik • http://www.mcafee.com/common/media/vil/pdf/imuttik_VB_%20conf_2000.pdf
REFERÊNCIAS Técnicas de Detecção de Vírus Malicious Cryptography: Exposing Cryptography, by Adam Young and Moti Yung