Download - Slides ataques e vulnerabilidades
![Page 1: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/1.jpg)
Ataques e Vulnerabilidades
Prof. Islene Calciolari Garcia1° semestre de 2010
MC 514Sistemas Operacionais: Teoria e Prática
![Page 2: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/2.jpg)
Introdução
Formas de ataque
Aprofundamento
SO: Defesa e Proteção
Prática: O Bug de 8 Anos
Índice
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 3: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/3.jpg)
Introdução
Formas de ataque
Aprofundamento
SO: Defesa e Proteção
Prática: O Bug de 8 Anos
Índice
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 4: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/4.jpg)
• O que são vírus
• Princípios básicos
• Modus Operandi– Vírus de disco– Vírus de arquivo– Vírus Mult-partite
• Autodefesa
Introdução
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 5: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/5.jpg)
• Ataques e vulnerabilidades– Conceito– Origens de vulnerabilidades– Motivos dos ataques– Tipos de ataques
• Acesso físico• Intercepção de comunicações• Recusas de serviço• Intrusões• Engenharia Social• Alçapões
Introdução
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 6: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/6.jpg)
Formas de ataque
Aprofundamento
SO: Defesa e Proteção
Prática: O Bug de 8 Anos
Introdução
Índice
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 7: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/7.jpg)
• Spywares• Adwares• Ransomwares• Worms• Trojans• Hijackers• Keylogger• Rootkits
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 8: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/8.jpg)
• Recolhem informações e transmite informação.
• Não costumam se alto duplicar. • Muitos vírus transportam
spywares visando roubar certos dados confidenciais.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Spywares
![Page 9: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/9.jpg)
• Costuma-se incluir os adwares no estudo dos spywares
• Trazem para a tela do usuário algum tipo de propaganda.
• Vem embutidos em diversos programas de download livre.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Adwares
![Page 10: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/10.jpg)
• Criptografam todo ou parte do conteúdo do disco rígido.
• Exigem da vítima, um pagamento pelo "resgate" dos dados.
• São ferramentas para crimes de extorsão e são extremamente ilegais.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Ransomwares
![Page 11: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/11.jpg)
• Programa auto-replicante.
• Usa a rede para enviar cópias de si mesmo para outros, sem nenhuma intervenção do usuário.
• Não é necessário anexá-lo em programas existentes.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Worms
![Page 12: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/12.jpg)
• Pretende se passar por ser aplicação benigna.
• Faz algo que o usuário não espera.
• Trojans não se replicam.
• Atacam de forma direta.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Trojans
![Page 13: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/13.jpg)
• Sequestram navegadores de Internet.
• Altera a página inicial do browser, exibe propagandas, instala barras de ferramentas no navegador.
• Impede acesso a determinados sites.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Hijackers
![Page 14: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/14.jpg)
• Ficam escondidos no sistema operacional.
• Desenvolvidos para meios ilícitos, como, por exemplo, roubo de dados pessoais.
• Capturam as teclas e podem também capturar a tela.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Keyloggers
![Page 15: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/15.jpg)
• Escondem processos, arquivos ou dados do sistema do Sistema Operacional.
• Ajudam intrusos a manter acesso ao sistema enquanto evita a detecção.
• Existem rootkits para vários Sistemas Operacionais.
• Freqüentemente modificam partes do Sistema Operacional ou instalam-se em drivers ou módulos do Kernel.
Formas de Ataque
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Rootkits
![Page 16: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/16.jpg)
Aprofundamento
SO: Defesa e Proteção
Prática: O Bug de 8 Anos
Introdução
Formas de ataque
Índice
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 17: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/17.jpg)
Devido ao grande número de formas de ataque, optamos pela escolha de duas delas: Rootkits e Spyware, a fim de aprofundar o conhecimento, estas são descritas a seguir.
Aprofundamento
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 18: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/18.jpg)
• O que são?
• Qual sua intenção?
• Diferenças na infecção– Windows– Linux/UNIX
• As três gerações
AprofundamentoRootkits
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 19: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/19.jpg)
• O que são?
• Para que são projetados?
• Formas de infecção– Programa de instalação sobreposto
– Download guiado
– Adicionador de melhorias do broswer
– Mascarado como um anti-spyware
AprofundamentoSpyware
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 20: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/20.jpg)
Introdução
Formas de ataque
Aprofundamento
SO: Defesa e Proteção
Prática: O Bug de 8 Anos
Índice
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 21: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/21.jpg)
• Sistema de permissões
• Dificuldades oferecidas pelo GNU/Linux
• Diferença DOS/Windows vs. Linux
• Chamadas de sistema em segurança
• Execução em sistemas específicos
Defesa
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 22: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/22.jpg)
• O arquivo ao ser criado recebe uma permissão determinada pelo processo que o gerou. Essa permissão pode ser de três tipos, r, w e x, respectivamente, leitura, escrita e execução. As permissões são atribuídas ao usuário, seu grupo e outros usuários, desse modo 9 bits são suficientes para representação do direito de acesso. Alguns exemplos são mostrados a seguir:
Defesa
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Sistemas de permissões
Valor Binário Transcrição Significado
111000000 rwx – – – – – – Dono pode ler, escrever e executar
111111000 rwxrwx– – – Dono e Grupo podem ler, escrever e executar
110100000 rw–r– – – – – Dono pode ler e escrever, grupo poder ler
110100100 rw–r– –r– – Dono pode ler e escrever, outros poder ler
111101101 rwxr–xr–x Dono pode fazer tudo, outros ler e executar
000000000 – – – – – – – – – Ninguém possui nenhum tipo de acesso
000000111 – – – – – –rwx Somente pessoas de fora possuem acesso
![Page 23: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/23.jpg)
As principais chamadas de sistemas utilizadas e suas características são apresentadas a seguir:
chmod (path, mode)
É a mais utilizada, ela serve para modificar o modo de proteção. Por exemplo:
s = chmod("usr/ast/newgame", 0755);
seta newgame para rwxr–xr–x, assim todos podem executa-lo, vale notar q o valor 0755 é um número em octal, que é conveniente pois os bits de proteção vem em grupos de 3.
Somente o dono do arquivo e a root podem trocar esses bits de proteção.
Defesa
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Chamadas de sistemas
![Page 24: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/24.jpg)
access(path, mode)
• Esse system call é necessário para evitar brechas de segurança, em programas que possuem o SETUID setados e cujos donos são a root. Esses programas podem executar qualquer ação, por isso, às vezes é necessário checar se o usuário está permitido a realizar o acesso. Para isso o a chamada de sistema access verifica o UID e o GID real do usuário.
Defesa
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Chamadas de sistemas
![Page 25: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/25.jpg)
getuid( )
• Retorna o valor real do UID do usuário.
geteuid( )
• Retorna o valor efetivo do UID do usuário.
getgid( )
• Retorna o valor real do GID do usuário.
getegid( )
• Retorna o valor efetivo do GID do usuário.
Defesa
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Chamadas de sistemas
![Page 26: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/26.jpg)
chown(path, owner, group)
• Só pode ser utilizado pela root, muda o UID e o GID do arquivo.
setuid(uid)
• Só pode ser utilizado pela root, muda o UID de um processo.
setgid(gid)
• Só pode ser utilzado pela root, muda o GID de um processo.
Defesa
Universidade Estadual de Campinas - Instituto de Computação - MC 514
Chamadas de sistemas
![Page 27: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/27.jpg)
Introdução
Formas de ataque
Aprofundamento
SO: Defesa e Proteção
Prática: O Bug de 8 Anos
Índice
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 28: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/28.jpg)
Acesso a privilégios locais
• Distribuições vulneráveis:– Kernel 2.4 (2.4.4 até 2.4.37.4, inclusive);– Kernel 2.6 (2.6.0 até 2.6.30.4, inclusive);– Todas as arquiteturas desde maio/2001
PráticaA vulnerabilidade
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 29: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/29.jpg)
Estrutura proto_ops do socket:– Ponteiros para funções;– Problema: lidar com operações indisponíveis;
• Exemplo: sock_sendpage
• Fragilidade no código do kernel
PráticaA vulnerabilidade
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 30: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/30.jpg)
Escalação de privilégio local:– Mapeamento no endereço zero;– Acionamento de operação vulnerável;
• Total controle do sistema!
PráticaComo aproveitar
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 31: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/31.jpg)
Corrigir os protocolos?
• Corrigir sock_sendpage– Verifica ponteiros nulos
• Patch disponibilizado em agosto/2009– 8 anos depois...
PráticaA solução
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 32: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/32.jpg)
PráticaA solução
Universidade Estadual de Campinas - Instituto de Computação - MC 514
static ssize_t sock_sendpage(struct file *file, struct page *page, int offset, size_t size, loff_t *ppos, int more)
{ struct socket *sock;
(...)
return sock->ops->sendpage(sock, page, offset, size, flags);}
int kernel_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags){ if (sock->ops->sendpage) return sock->ops->sendpage(sock, page, offset, size, flags);
return sock_no_sendpage(sock, page, offset, size, flags);}
![Page 33: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/33.jpg)
Teste no kernel antigo;– Fedora 11 (kernel 2.6.29.4)
• Teste no kernel com patch;– Ubuntu 9.10
PráticaSimulação
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 34: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/34.jpg)
PráticaSimulação
Universidade Estadual de Campinas - Instituto de Computação - MC 514
mem = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
if (mem != NULL) {mem = mmap(NULL, 0x1000, PROT_READ | PROT_WRITE,
MAP_FIXED | MAP_ANONYMOUS | MAP_PRIVATE, 0, 0); Kernel corrigido
if (mem != NULL) {fprintf(stdout, "UNABLE TO MAP ZERO PAGE!\n");return 1;
}}
fprintf(stdout, " [+] MAPPED ZERO PAGE!\n"); Kernel antigo
![Page 35: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/35.jpg)
PráticaSimulação
Universidade Estadual de Campinas - Instituto de Computação - MC 514
char template[] = "/tmp/sendfile.XXXXXX";int in, out;
if ((in = mkstemp(template)) < 0) {fprintf(stdout, "failed to open input descriptor, %m\n");return 1;
}unlink(template);d = 0;
for (; domains[d][0] != DOMAINS_STOP; d++) {if ((out = socket(domains[d][0], domains[d][1], domains[d][2])) >= 0)
break;} if (out < 0) {
fprintf(stdout, "unable to find a vulnerable domain, sorry\n");return 1;
}
ftruncate(in, getpagesize());sendfile(out, in, NULL, getpagesize());
![Page 36: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/36.jpg)
Teste no kernel antigo;– Fedora 11 (kernel 2.6.29.4)
• Teste no kernel com patch;– Ubuntu 9.10
PráticaSimulação
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 37: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/37.jpg)
Teste no kernel antigo;– Fedora 11 (kernel 2.6.29.4)
• Teste no kernel com patch;– Ubuntu 9.10
PráticaSimulação
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 38: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/38.jpg)
? Dúvidas
Universidade Estadual de Campinas - Instituto de Computação - MC 514
![Page 39: Slides ataques e vulnerabilidades](https://reader033.vdocuments.mx/reader033/viewer/2022050723/55760452d8b42a81158b5129/html5/thumbnails/39.jpg)
Obrigados
João Carlos Maggiotto R.A.: 081721
Mariana Mendes Caspirro R.A.: 082204
Murilo Fossa Vicentini R.A.: 082335
Patricia Kawaguchi Cesar R.A.: 085984
Ataques e Vulnerabilidades