Vírus - inf.unioeste.br

Propaganda
Vírus e outras ameaças
Vírus Computacionais
computacional/biológico
• O termo vírus computacional deriva e é de alguma forma
análogo ao vírus biológico
• Infecções virais biológicas são propagadas através do
vírus que injecta o seu conteúdo numa célula
• A célula infectada passa a ser uma fábrica replicadora de
vírus
Vírus Computacionais
computacional/biológico
• Um vírus computacional não é mais que um segmento
de código
• O vírus tem capacidade de se copiar para um ou mais
hospedeiros quando activado
• Quando o hospedeiro infectado é executado o vírus é
activado e o hospedeiro passa a ser uma fábrica
replicadora de vírus
Vírus Computacionais
computacional/biológico
• Vírus computacionais são do mais aproximado ao
conceito de vida artificial do que qualquer outra coisa
criada pelo homem :
– São capazes de se reproduzirem
– São capazes de se esconderem dos seus predadores
– Têm capacidade de sobrevivência fora de cativeiro
Vírus Computacionais
Evolução histórica
– 1949: J.V. Neumann – “Theory and Organization of Complicated
Automata”
– 1950: Bell Labs – “Core Wars”
– 1970: Brunner’s “Shockwave Rider” and Ryan’s Adolescence of P-1”
– 1981: O Primeiro Vírus – Apple Computers, Texas A&M
– 1983: Tese de Cohen’s – Mathematical Virus
– 1986: Basit e Amjad – “Pakistan Brain”
– 1988: Jerusalem
– 1990: Primeiro Anti-Virus: Norton, Symantec
– 1991: Vírus polimórficos
– 1992: Aumento de 420% desde 1990!!!
– 1995: Windows 95 e o vírus “Macro”
– 1996: Vírus em código Java
– Hoje: Mais de 50,000
– Futuro…?
Virus para computador faz 25 anos
• O primeiro vírus de computador criado, o Elk
Cloner, completa, em julho de 2007, 25 anos
de idade
• A praga criada pelo adolescente Rich Skrenta
em 1982, com 15 anos na época
• Criado para o computador Apple II
• contaminava máquinas através da inserção de
disquetes infectados
Vírus Computacionais
Estrutura e operação
• O verdadeiro vírus tem duas componentes:
• Propagação
• Manipulação
• De modo a funcionar; o vírus tem de se adicionar a
algum pedaço de código
• Uma forma de classificar estes vírus é a aproximação
que o mesmo toma quando se adiciona a outro pedaço
de código (cápsula, add-on ou intrusivo)
Vírus Computacionais
Estrutura e operação
• Vírus cápsula:
– Forma uma cápsula em volta do código original, torna-se o
programa e o programa original torna-se uma sub-rotina do
código viral
• boot virus
• …etc…
Vírus Computacionais
Estrutura e operação
• Vírus add-on:
– Adicionam o seu código ao código do hospedeiro. A sua única
indicação de presença é a de que o tamanho do hospedeiro
original aumenta
• Quase todos os vírus são add-on
Vírus Computacionais
Estrutura e operação
• Vírus intrusivo:
– Reescrevem parte, ou todo, do código do hospedeiro original
• Poucos vírus são deste tipo
Vírus Computacionais
as cinco gerações
• A primeira geração (simples) :
– Estes vírus não faziam nada de extraordinário para além da
replicação, alguns vírus de hoje ainda pertencem a esta geração
– Os estragos não vão para além de bugs ou incompatibilidades no
software que antes não existiam
– Não são difíceis de descobrir, visto que nada fazem para se
esconderem, de modo que um simples aumento num ficheiro,
por exemplo, denuncia-o imediatamente
Vírus Computacionais
as cinco gerações
• A segunda geração (auto-reconhecimento) :
– Implementam uma espécie de assinatura que assinala o ficheiro ou
sistema como infectado, ou seja, não acontecem infecções duplicadas
de hosts, permitindo que o virus seja mais dificil de detectar
– A assinatura pode ser uma sequência de bytes em disco ou memória
– Ao mesmo tempo que a assinatura pode impedir a detecção
instantânea do vírus, no reverso da medalha a assinatura por si só é
uma indicação da presença do vírus, embora não tão aparentemente
fácil de descobrir
Vírus Computacionais
as cinco gerações
• A terceira geração (furtivo) :
– A maior parte dos vírus pode ser identificada analisando padrões de
dados próprios dos mesmos nos sistema de armazenamento
secundários
– De modo a impedir a detecção alguns vírus usam técnicas furtivas de
modo a não serem descobertos
– Como exemplo se numa análise a um disco o vírus detecta que existe
uma chamada do sistema para ler uma porção do vírus, este retornaria
não o vírus mas os dados que estariam presentes se o sistema
estivesse livre de infecção
Vírus Computacionais
as cinco gerações
• A quarta geração (armadura) :
– À medida que antivírus saem para o mercado, autores de vírus
voltaram-se para métodos de ofuscarem o seu código
– Estas técnicas de ‘armadura’ incluem:
• Adicionar confusão e código desnecessário de modo a dificultar a análise
do código do vírus
• Defesas que podem tomar a forma de ataques directos a software de
antivírus
– Estes vírus começam a aparecer por volta de 1990
• Em 1990 sai para o mercado o primeiro antivírus da Norton
Vírus Computacionais
as cinco gerações
• A quinta geração (polimórficos) :
– A mais recente classe de vírus a aparecer são os polimórficos, capazes
de se mutarem
– Infectam os seus hospedeiros com uma versão modificada ou cifrada
deles próprios
– De modo a se poder detectar estes vírus é necessário um algoritmo
mais complexo que seja capaz de reverter o processo de mutação de
modo a poder detectar se o vírus está presente ou não
Mudança de foco
• Enquanto as primeiras gerações de pragas virtuais irritavam os
usuários com apresentações de imagens e frases impróprias, ou
apagando o conteúdo de um disco rígido, as ameaças atuais são
mais insidiosas e caminham em outra direção.
• Bloqueio a sites, máquinas zumbis e o acesso a informações
sensíveis de usuários e empresas têm causado prejuízos
incalculáveis.
• Em 2006, as fraudes virtuais custaram ao Brasil cerca de 300
milhões de reais, de acordo com o Instituto de Peritos em
Tecnologias Digitais e Telecomunicações (IPDI).
• A disseminação de tecnologias também tem aberto novas frentes
de ataques, sequer imaginadas quando o Elk Cloner foi escrito.
• Por exemplo, em apenas três anos, o número de pragas escritas
para dispositivos móveis cresceu mais de 1.200%, secundo a FSecure
Detecção
• Assinaturas
• Pequenos blocos de dados utilizados para identificar um
determinado vírus
• Zero day problem
• mutações
– Exemplo:
• X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUSTEST-FILE!$H+H*
• EICAR: software para teste de antivírus
– Mais informações:
• http://superdownloads.uol.com.br/materias/assinaturasvirus/234,1.html
• http://superdownloads.uol.com.br/materias/assinaturasvirus/234,1.html
Detecção
• Heurísticas
– A heurística é uma técnica utilizada para estudar o
comportamento, a estrutura e as características
de um arquivo, para definí-lo como suspeito ou
não
– Ela pode fazer com que o antivírus emita muitos
falsos-positivos, mas é uma técnica que se
mostrou bastante útil para evitar vírus
desconhecidos.
Detecção
– Em geral, um vírus que infecta arquivos .EXE age
da seguinte forma:
Detecção
– Um arquivo .EXE possui um pequeno cabeçalho, um
Entry Point - o ponto onde começa a execução de um
programa, e o programa propriamente dito.
– Após uma infecção, o Entry Point é alterado, de forma
que passe a apontar para o código do vírus.
– Após a execução do vírus, este pula para o Entry Point
original do programa, fazendo-o funcionar
normalmente.
– Como a grande maioria dos vírus que infectam .EXE
trabalha desta forma, a pesquisa heurística poderia
ajudar, bastaria verificar se o Entry Point está fora da
seção do código do programa ou se o Entry Point é um
JMP.
Detecção
• Emulação
– Detecção de vírus polimórficos
– Pesquisas por assinaturas em vírus polimórficos
são praticamente inviáveis
– Basicamente, um emulador tenta identificar a
rotina de decriptografia do vírus
– Se o código não for muito modificado, poderemos
utilizar a heurística para identificar o vírus
Detecção
• Vírus “Simili”
– Este vírus contém um decriptografador
polimórfico que modifica o tamanho e a
localização das infecções
– Ele "disassembla" seu próprio código para uma
forma intermediária, injeta novas instruções e
sujeira ao código e "re-assembla", gerando uma
nova cópia polimórfica
– As novas cópias podem variar de 30 a 120 Kbytes
Detecção
• Outra maneira de fazer a emulação é
interceptar funções da API do sistema
operacional ou capturar interrupções do DOS
que estejam ligadas diretamente à gravação,
leitura ou execução.
• Se um determinado programa executar uma
série de ações suspeitas, o antivírus emitirá
aviso de um arquivo suspeito.
Atividade 1: Teste de Antivírus
• EICAR:
– este arquivo NÃO é vírus, mas é detectado como
tal pela maioria dos anti-vírus, por convenção.
– sua utilidade é testar a eficácia de detecção do
anti-vírus
• http://www.eicar.org/anti_virus_test_file.htm
• Teste a eficiência do antivírus instalado na sua
máquina, usando o eicar original e
modificando o arquivo
Atividade 2: Avaliação de Códigos-Fonte
• http://www.totallygeek.com/vscdb/
• http://www.62nds.co.nz/pg/e90.php
1. Escolher um vírus
2. Fazer uma breve descrição do vírus
(pesquisar)
3. Apresentar o código e mostrar o que ele faz
Download