18
Especialização em Segurança da Informaçã Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira [email protected] http://si.uniminas.br/~marcio/ Pós-SI – 4ª Turma – 2008

Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira [email protected]

Embed Size (px)

Citation preview

Page 1: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Especialização em Segurança da Informação

Segurança em Aplicações3. Principais Ataques às Aplicações

Márcio Aurélio Ribeiro [email protected]://si.uniminas.br/~marcio/

Pós-SI – 4ª Turma – 2008

Page 2: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 2

Estrutura típica de aplicações

WebServer(DMZ)

`

Firewall

Clients

DatabaseServer

ApplicationServer

Pro

duct

ion

VLA

N (

switc

h)

Bac

kend

VLA

N (

switc

h)

Privated AreasPublic Areas

Page 3: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 3

Principais pontos de ataque

Áreas públicas:Vantagem: Facilidade de ataqueDesvantagem: Baixo retornoAlvos e ataques:

Clientes: Roubo de informaçõesLinks: Coleta de pacotesWebservers: Negação de serviço

Áreas restritas:Vantagem: Alto retornoDesvantagem: ComplexidadeAlvos e ataques:

Firewall: Negação de serviçoS.Aplicação: Violação de acessoS.Banco: Violação de acesso

WebServer(DMZ)

`

Firewall

Clients

DatabaseServer

ApplicationServer

Pro

duct

ion

VLA

N (

switc

h)

Bac

kend

VLA

N (

switc

h)

Privated AreasPublic Areas

FácilBaixo Retorno

DifícilRentável

Page 4: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 4

Principais vulnerabilidades

Áreas públicas:Baixo conhecimento dos usuáriosBaixo nível de proteção das estaçõesUso de protocolos inseguros ou frágeis

Áreas restritas:Gestão inadequada de usuáriosGestão inadequada de perfisInterfaces inseguras entre sistemasServidores mal configuradosAplicações mal escritas

WebServer(DMZ)

`

Clients

Public Areas

Firewall

DatabaseServer

ApplicationServer

Pro

duct

ion

VLA

N (

switc

h)

Bac

ken

d V

LAN

(sw

itch)

Privated Areas

Page 5: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 5

Explorando vulnerabilidades públicas

Explorando a fragilidade do usuário:Cavalo de tróia, vírus/verme (seqüestro de sessão)Engenharia social (obter informações privadas)Fragilidade de senhas

Explorando a fragilidade da máquina:Keyloggers (interceptadores de teclado e mouse)Tomando o controle da máquina do usuário

Explorando pacotes de rede:Coleta de credenciais (Ethereal)Preparação de ataques a áreas restritasGanhar acesso e controle de servidores

`

Page 6: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 6

Explorando gestão inadequada

Gestão inadequada de usuáriosUm usuário para cada sistema ou aplicaçãoUsuários demitidos, mas os acessos nãoAcumulação de acessos durante a carreiraFalta de padronizações (processos adequados)

Gestão inadequada de perfisNivelar perfil pela maior necessidadeAcumulação de perfis durante a carreiraIntegração de parceiros, terceiros, visitantes, etc.

Page 7: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 7

Explorando servidores mal configurados

Trocando módulos e pacotes de correçõesInterceptando chamadas de sistemaExplorando Rootkits (kernel forjado)Explorando Condições de Corrida

Ganhar privilégios indevidos ou negar o serviço

Buffer OverflowAtacar protocolos frágeisAtacar utilitários frágeis

Page 8: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 8

Explorando interfaces ruins

A integração de sistemas é muito comumComo sistemas heterogêneos podem

conversar entre si?Solução comum:

Arquivos texto ASCIIArmazenado em pastas comuns aos sistemasTransportados em mídias ou links inseguros

Interface humana (lê em um e digita no outro)Ataques:

Interceptação, cópia, alteração, inclusão e exclusão

Page 9: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 9

Explorando aplicações mal escritas

Redundâncias de autenticações:n aplicações n bases de autenticações

Injeção de código:SQL injection:

Forjar acessos válidos (ataque ao where)Ganhar acesso indevido (console remoto)

Code injection:Forjar acessos válidos (ataque ao if)Buffer overflow: instalando portas de acessoCapturar áreas de memória (memory dump)

Explorar falta de rastreabilidade e consistência:Usar credenciais válidas para ações ilícitas

Page 10: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 10

Explorando aplicações web

Inspeção de pacotes: usar https com sslKeyloggers: usar teclado virtualExplorar portas: usar firewallEspalhar vírus e trojan: usar antivírusSites clonados: digite o endereçoE-mails falsos:

Não abra, use confirmação de remetente, etc.Utilize e-mails seguros (cifrados e autenticados)

Assistentes virtuais: personalize a página

Page 11: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 11

Explorando o “man in the middle”

Ataque do homem do meio:Interceptar uma conexãoSeqüestrar a sessãoRecomendações:

Não use proxyUse certificados públicosUse uma entidade certificadora externaUse cartões de números variáveis (tokens)Autentique a estação de origem

Questão: como autenticar dispositivos móveis?

`

Cliente Servidor

Espião

Page 12: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 12

Buffer Overflow

Exemplo:char nome[30];printf(“Nome: ");gets(nome); // permite o overflow da variávelchar b[100];strcpy(nome, b); // copia os 100 bytes de b em nome

Se faltar memória: Erro Se a linguagem tratar: Erro ou exceção Se a linguagem não tratar?

Existem vários ataques que exploram isto!

ClientesClientes

Nome:

Variável nome (RAM): Buffer overflow

Page 13: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 13

Buffer Overflow - Estratégia

Injetar código nas variáveis das funções:Acessar o shell do SOAbrir portas para ataques posterioresInstalar ou abrir servidores de acesso

remoto

Mudar o endereço de retorno Disparar o código por outra injeção Vulnerabilidades conhecidas:

TCP/IP, IIS (ISAPI), Apache, Sendmail, Linux e Unix (DNS: update de zonas), etc.

Argumentos

Endereço de retorno

Variáveis

Código da função

Retorno

Estrutura de Funções:

Page 14: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 14

SQL Injection

Idéia: injetar código para ganhar acessoExemplo de autenticação:

SELECT*FROM usuariosWHERE usuario = '$usuario' AND senha = '$senha'

Sintaxe SQL:' (apóstrofo) Terminador de strings-- (2 menos)Comentários (ignora o restante)

O que acontece se digitarmos no campo usuário?x' OR 1=1 --

LoginLogin

Usuário:

Senha:

Page 15: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 15

SQL Injection - Exemplos

No SQL Server: '; EXEC xp_cmdshell 'net stop sqlserver', no_output --No lugar do comando (net stop ...), podemos colocar:

Net user admin2 /add && net localgroup administrators admin2 /add && net localgroup ORA_DBA admin2 /add

' UNION SELECT id, name, '', 0,'' FROM sysobjects WHERE xtype='U' --

Injeção no get (passagem de parâmetros) em url:http://windefense/index.asp?id=10 UNION SELECT TOP 1

TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25login%25'—

Referências:www.owasp.org/images/7/74/Advanced_SQL_Injection.ppt

Page 16: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 16

Code Injection

Após ganhar acesso ao SO digite:cat > exs // copia digitação em exs

#!/bin/sh // o shell default é o shA=$1 // atribui o 1º parâmetro à Aeval "ls $A“ // executa ls com conteúdo de A

chmod a+rx exs // permite execução de exsO que acontece se digitarmos?

./exs ".;chmod o+r *“O caractere “;” é um separador de

comandos do shell do linux e unix

Page 17: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 17

Condições de corrida

Os arquivos temporários são gerados por funções:name=maketemp("/tmp/gs_XXXXXXXX"); fp=fopen(name,"w");

Eles herdam os privilégios de seus geradores O que podemos colocar em arquivos temporários? O que ocorre se no momento de uma condição de corrida

mudarmos a path do arquivo?Ex: symlink /tmp/gs_12345A -> /etc/passwd

As condições de corrida podem ocorrer:Memória, arquivos ou sinais.

Referência:http://projects.cerias.purdue.edu/secprog/class2/5.Links_&_Races.pdf

Page 18: Especialização em Segurança da Informação Segurança em Aplicações 3. Principais Ataques às Aplicações Márcio Aurélio Ribeiro Moreira marcio.moreira@uniminas.br

Segurança em AplicaçõesMárcio Moreira Unidade 3 – Principais Ataques às Aplicações – Slide 18

O que fazer?

Proteger a infra-estrutura:Segurança de perímetro (Firewall, IDS, IPS, etc.)Segurança na instalação, configuração e manutençãoAtualização segura de SO e serviçosAvaliação periódica de segurança (Ethical Hacking)Monitoramento contínuo de log

Proteger as aplicações:Processo de desenvolvimento seguro de desenvolvimentoAutenticação centralizadaAdote padrões de comunicação e conexão com DBMSProcesso de garantia da qualidade (avaliações periódicas)