vírus e outras ameaças - computação unioesteguilherme/tsc/virus.pdf · vírus computacionais...

25
Vírus e outras ameaças

Upload: lamdien

Post on 08-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus e outras ameaças

Page 2: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• O termo vírus computacional deriva e é de alguma formaanálogo ao vírus biológico

• Infecções virais biológicas são propagadas através do

computacional/biológico

• Infecções virais biológicas são propagadas através dovírus que injecta o seu conteúdo numa célula

• A célula infectada passa a ser uma fábrica replicadora devírus

Page 3: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• Um vírus computacional não é mais que um segmentode código

• O vírus tem capacidade de se copiar para um ou mais

computacional/biológico

• O vírus tem capacidade de se copiar para um ou maishospedeiros quando activado

• Quando o hospedeiro infectado é executado o vírus éactivado e o hospedeiro passa a ser uma fábricareplicadora de vírus

Page 4: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• Vírus computacionais são do mais aproximado aoconceito de vida artificial do que qualquer outra coisacriada pelo homem :

computacional/biológico

– São capazes de se reproduzirem

– São capazes de se esconderem dos seus predadores

– Têm capacidade de sobrevivência fora de cativeiro

Page 5: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

– 1949: J.V. Neumann – “Theory and Organization of ComplicatedAutomata”

– 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

Evolução histórica

– 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…?

Page 6: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Virus para computador faz 25 anos

• O primeiro vírus de computador criado, o ElkCloner, completa, em julho de 2007, 25 anos de idade

• A praga criada pelo adolescente Rich Skrenta• A praga criada pelo adolescente Rich Skrentaem 1982, com 15 anos na época

• Criado para o computador Apple II• contaminava máquinas através da inserção de

disquetes infectados

Page 7: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• O verdadeiro vírus tem duas componentes:• Propagação• Manipulação

Estrutura e operação

• De modo a funcionar; o vírus tem de se adicionar aalgum pedaço de código

• Uma forma de classificar estes vírus é a aproximaçãoque o mesmo toma quando se adiciona a outro pedaçode código (cápsula, add-on ou intrusivo)

Page 8: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• 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 docódigo viral

• boot virus• …etc…

Estrutura e operação

• …etc…

Page 9: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• 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 hospedeirooriginal aumenta

• Quase todos os vírus são add-on

Estrutura e operação

Page 10: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• Vírus intrusivo:– Reescrevem parte, ou todo, do código do hospedeiro original

• Poucos vírus são deste tipo

Estrutura e operação

Page 11: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• A primeira geração (simples) :

– Estes vírus não faziam nada de extraordinário para além dareplicação, alguns vírus de hoje ainda pertencem a esta geração

as cinco gerações

– Os estragos não vão para além de bugs ou incompatibilidades nosoftware que antes não existiam

– Não são difíceis de descobrir, visto que nada fazem para seesconderem, de modo que um simples aumento num ficheiro,por exemplo, denuncia-o imediatamente

Page 12: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• A segunda geração (auto-reconhecimento) :

– Implementam uma espécie de assinatura que assinala o ficheiro ousistema como infectado, ou seja, não acontecem infecções duplicadasde hosts, permitindo que o virus seja mais dificil de detectar

as cinco gerações

– A assinatura pode ser uma sequência de bytes em disco ou memória

– Ao mesmo tempo que a assinatura pode impedir a detecçãoinstantâ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 aparentementefácil de descobrir

Page 13: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• A terceira geração (furtivo) :

– A maior parte dos vírus pode ser identificada analisando padrões dedados próprios dos mesmos nos sistema de armazenamentosecundários

as cinco gerações

secundários

– De modo a impedir a detecção alguns vírus usam técnicas furtivas demodo a não serem descobertos

– Como exemplo se numa análise a um disco o vírus detecta que existeuma chamada do sistema para ler uma porção do vírus, este retornarianão o vírus mas os dados que estariam presentes se o sistemaestivesse livre de infecção

Page 14: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• A quarta geração (armadura) :

– À medida que antivírus saem para o mercado, autores de vírusvoltaram-se para métodos de ofuscarem o seu código

as cinco gerações

– 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

Page 15: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Vírus Computacionais

• A quinta geração (polimórficos) :

– A mais recente classe de vírus a aparecer são os polimórficos, capazesde se mutarem

as cinco gerações

– Infectam os seus hospedeiros com uma versão modificada ou cifradadeles próprios

– De modo a se poder detectar estes vírus é necessário um algoritmomais complexo que seja capaz de reverter o processo de mutação demodo a poder detectar se o vírus está presente ou não

Page 16: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

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. 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 F-Secure

Page 17: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Detecção

• Assinaturas• Pequenos blocos de dados utilizados para identificar um

determinado vírus• Zero day problem• mutações

– Exemplo:– Exemplo:• X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-

TEST-FILE!$H+H*• EICAR: software para teste de antivírus

– Mais informações:• http://superdownloads.uol.com.br/materias/assinaturas-

virus/234,1.html• http://superdownloads.uol.com.br/materias/assinaturas-

virus/234,1.html

Page 18: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

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 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.

Page 19: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Detecção

– Em geral, um vírus que infecta arquivos .EXE age da seguinte forma:

Page 20: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

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– Após a execução do vírus, este pula para o Entry Pointoriginal 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.

Page 21: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Detecção

• Emulação– Detecção de vírus polimórficos– Pesquisas por assinaturas em vírus polimórficos

são praticamente inviáveissã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

Page 22: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

Detecção

• Vírus “Simili”– Este vírus contém um decriptografador

polimórfico que modifica o tamanho e a localização das infecçõeslocalizaçã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

Page 23: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

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, 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.

Page 24: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

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írusanti-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

Page 25: Vírus e outras ameaças - Computação Unioesteguilherme/tsc/virus.pdf · Vírus Computacionais • O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

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írus1. Escolher um vírus2. Fazer uma breve descrição do vírus

(pesquisar)3. Apresentar o código e mostrar o que ele faz