Principais
formas de ataques
- Código malicioso
- Exploração de bugs
- Varredura
- Falsificação de identidade (spoofing)
- Ataques por monitoramento (sniffing)
- Interrupção de serviço
- Quebra de senha
- Engenharia social
Código malicioso [top]
- entende-se por código malicioso todo programa ou parte de um programa que
apresenta um comportamento inesperado (escrever mensagens na tela do
computador, apagar arquivos, parar a execução de programas ...)
- existem vários tipos de códigos maliciosos: vírus, vermes, cavalos de
tróia, backdoors, bombas lógica
Vírus
- programa ou fragmento de código parasita (forma de código malicioso não
autônoma)
- requerem um hospedeiro para funcionar (são ativados pela execução de
programas infectados)
- principais formas de propagação: através da infecção de outros
programas, envio de programas infectados por email.
- alguns tipos de vírus: residentes na memória, vírus de boot, vírus de
programas e vírus de bibliotecas
Vermes (worms)
- ao contrário dos vírus, os vermes são programas independentes (forma de
código malicioso autônoma)
- o objetivo dos vermes é infectar os sistemas em rede
- propaga-se pela rede
- exemplo: Internet worm (1998) , nimda (2001)
Cavalo de tróia
- programa maléfico que se esconde dentro de outros programas ou se
disfarçam de programas légitimos para atacar os sistemas
- não se propagam
- exemplo: tela de login
Back doors (porta dos fundos) ou trap doors
(armadilhas)
- consistem em pontos de entrada secretos que podem ser explorados para
ganhar acesso a um sistema
- este tipo de código malicioso pode ser criado pelo projetista do sistema
ou introduzido por terceiros para permitir acesso privilegiado a alguém
- exemplo: código inserido nos programas para testes ou manutenção (quando
não documentados podem se tornar uma ameaça)
Bomba lógica
- programa ou fragmento de programa malicioso ativado por determinada
condição lógica
Exploração de bugs [top]
- objetivo desse ataque é explorar vulnerabilidades do software (furos de
implementação) para obter privilégios
- medidas de controle englobam cuidados com os seus próprios programas e
programas de terceiros
- exemplo típico: estouro de pilha
- consiste em extrapolar o tamanho de um buffer alocado na pilha de
execução de programas de modo que alguma informação importante do
programa (endereço de retorno de uma função, por exemplo) seja modificado
- a modificação introduzida pode provocar o disparo de um shell root no
retorno da função original
Varredura [top]
- ataque comum de hackers para reconhecimento do sistema
- técnica utilizada para descobrimento de informações e serviços em
execução no sistema (quais portas estão escutando), ou endereços IP
(máquinas existentes na rede)
- exemplos de portas comuns padrão da Internet:
- 25 (SMTP - envio de correio eletrônico)
- 23 (Telnet)
- 80 (HTTP - serviço WWW)
- 20/21 (FTP - dados e controle, respectivamente)
Falsificação de identidade (spoofing)
- existem vários tipos de spoofing sendo que todos envolvem alguma
forma fraudulenta de representação de informação. Exemplos:
- IP spoofing - consiste em obter acesso não autorizado a um sistema
(computador), através de um IP confiável - de uma máquina confiável da
rede
- DNS spoofing - consiste em subverter o servidor de nomes. Exemplos:
interpolação no meio de comunicação, redirecionamento, envenenamento de
DNS.
Ataques por monitoramento (sniffing)
- consistem no monitoramento de pacotes transitando na rede
- o monitoramento é feito através de interface de rede operando em modo
promíscuo, capturando todos os pacotes
- um programa sniffer pode monitorar endereços IP, senhas (Ex. o
telnet não criptografa senhas digitadas por usuários)
- utilização de programas sniffer é difícil de ser detectada
negação de serviço [top]
- esta forma de ataque consiste em interromper um serviço ou impedir seu uso
legítimo (por parte de usuários autorizados)
- ou derrubar uma máquina servidora
- ou indisponibilizar ("tirar do ar") um serviço
- exemplos de ataques por negação de serviço:
- consumo de banda de rede
- consumo de recursos do sistema
- adulteração de rotas DNS
- ping da morte
- syn flood
- smurf
- como se prevenir? distribuir os serviços, manter-se atualizado sobre as
vulnerabilidades apresentadas pela versão atual do sistema
- é difícil manter o sistema livre desse tipo de ataque :(
quebra de senhas [top]
- este ataque tem por objetivo descobrir a senha de algum usuário/recurso
através de tentativas sobre várias possibilidades de senhas
- é comum o uso de um dicionário de expressões/palavras usuais
- o alvo desse ataque é o arquivo de senhas do sistema
- as senhas do sistema são cifradas
- para descobrir uma senha, os atacantes experimentam várias possibilidades
de senhas (entradas de um dicionário) contra a cifra armazenada no arquivo de
senhas
- o algoritmo que codifica as senhas do sistema é o mesmo usado para
codificar as tentativas de senhas num ataque (na maior parte dos casos)
- existem vários programas "quebra-senhas" (crackers)
disponíveis para a maioria dos sistemas operacionais
Engenharia social [top]
- ataques dessa natureza consistem em usar métodos não técnicos para obter
acesso a um sistema e recuperar informações sigilosas; ou convencer a
vítima a executar ações indevidas e perigosas
- os métodos típicos englobam conversas por telefone ou correio
eletrônico.
- exemplo: ligações para funcionários de uma corporação, fingindo ser do
suporte técnico desta corporação, a fim de obter informações sobre senhas
de acesso ao sistema (no caso, de quem atendeu o telefone)
- como se prevenir? a regra geral é educação e conscientização
- não fornecer informações a estranhos
- exigir identificação
- escolher boas senhas
- não executar ações sem pensar
©2002 - Lívia Maria Rodrigues - livia@dsc.ufpb.br