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
Técnicas de Detecção de Vírus
SIMILARES
•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 falsospositivos 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/antivirus.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/inde
x.html#2
Grisoft
•http://www.grisoft.com/doc/DetectionMethods/lng/brpt/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
Download

Vírus: Técnicas de Detecção e Prevenção