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. Automata Neumann Theory and Organization of Complicated 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 cápsula: Vírus Computacionais 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 Estrutura e operação
Vírus add-on: Vírus Computacionais Estrutura e operação 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 intrusivo: Vírus Computacionais Estrutura e operação 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 F- Secure
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-ANTIVIRUS- TEST-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