Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

47
Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados. Principais ameças à Aplicações Web Como explorá-las e como se proteger Rafael Soares Ferreira Clavis Segurança da Informação [email protected]

description

Principais ameças à Aplicações Web - Como explorá-las e como se proteger. http://websecforum.com.br/http://www.clavis.com.brO objetivo da palestra é apresentar as mais críticas ameaças à aplicações web. Serão demonstradas maneiras de identificar, explorar e mitigar cada uma das ameaças. Serão apresentados também algumas boas práticas de segurança e de programação segura.

Transcript of Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Page 1: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais ameças à Aplicações Web Como explorá-las e como se proteger

Rafael Soares FerreiraClavis Segurança da Informaçã[email protected]

Page 2: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Principais Ameaças

• Injeções

• Cross-Site Scripting (XSS)

• Quebra de Autenticação / Sessão

• Referência direta à objetos

• Cross-Site Request Forgery (CSRF)

Page 3: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Principais Ameaças (cont.)

• Falhas de Configuração

• Armazenamento Inseguro

• Falha na Restrição de Acesso à URLs

• Canal Inseguro

• Redirecionamentos Não-Validados

Page 4: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Dados não esperados

• Strings interpretadas como comandos

• SQL, Shell, LDAP, etc...

• SQL é o caso mais comum

Injeções

Principais Ameaças

Page 5: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

SELECT id FROM usuarios WHERE nome = '$nome' AND senha = '$senha';

<form method="post" action="http://SITE/login.php"><input name="nome" type="text" id="nome"><input name="senha" type="password" id="senha"></form>

Client-Side:

Server-Side:

Principais Ameaças

Injeções - Exemplos

Page 6: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

' OR 'a'='a

SELECT id FROM usuarios WHERE nome = '$nome' AND senha = '' OR 'a'='a';

Client-Side: O Exploit!

Server-Side:

Principais Ameaças

Injeções - Exemplos

Page 7: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Injeções - Exemplos

Código PHP:

$query = "SELECT * FROM usuarios WHERE username ='" . $_REQUEST[‘usr'] . “’ AND passwd=‘“ . $_REQUEST[‘pwd’] . “’”;

Exploração:

login.php?usr=’+OR+‘1’=‘1’--&pwd=a

query <- SELECT * FROM usuarios WHERE username =‘’+OR+‘1’=‘1’--’ AND passwd=‘a’

Page 8: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Injeções - Exemplos

Código Java:

String query = "SELECT * FROM usuarios WHEREusername = '" + req.getParameter("usr") + "' andpasswd = '" + req.getParameter("pwd") +"'";

Exploração:

login.jsp?usr=admin’--&pwd=a

query <- SELECT * FROM usuarios WHERE username =‘admin’--’ AND passwd=‘a’

Page 9: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

www.seginfo.com.br

Tradução da Tirinha “Exploits of a mom” do xkcd

Principais Ameaças

Injeções - Exemplos

Page 10: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Injeção de Comandos

• Exemplo:DNS lookup em domínios passados pelo usuário

Principais Ameaças

Injeções - Exemplos

Page 11: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Código:$dominio = param(‘dominio');$nslookup = "/usr/bin/nslookup";

Exploit:clavis.com.br%20%3B%20/bin/ls%20-l

Principais Ameaças

Injeções - Exemplos

Page 12: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Resultado:/usr/bin/nslookup clavis.com.br ; /bin/ls -l

Além do resultado do nslookup, o atacante receberá a lista dos arquivos que estão no diretório da aplicação

Principais Ameaças

Injeções - Exemplos

Page 13: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

● Tratamento de entradas

● Validação por whitelist

● Minimize os privilégios

● OWASP:SQL_Injection_Prevention_Cheat_Sheet

Principais Ameaças

Injeções - Recomendações

Page 14: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Enviados ao browser do usuário

• Posts, URLs, javascript, etc...

• Todo Browser é “vulnerável”: javascript:alert(document.cookie)

• Redirecionamento e/ou roubo de dados

Cross-Site Scripting (XSS)

Principais Ameaças

Page 15: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Cross-Site Scripting (XSS)

Page 16: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Persistente

• Não Persistente

• DOM (Document Object Model)

Tipos:

Principais Ameaças

Cross-Site Scripting (XSS)

Page 17: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Persistente

Dados enviados sem tratamento para usuários

Principais Ameaças

Cross-Site Scripting (XSS)

Page 18: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Cross-Site Scripting (XSS)

Page 19: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Não Persistente

Dados enviados de volta sem tratamento e executado no browser da vítima.

Principais Ameaças

Cross-Site Scripting (XSS)

Page 20: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Cross-Site Scripting (XSS)

Page 21: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Código vulnerável<?phpecho “Hello ” . $_GET[‘name’] . ”.\n”;?>

• Requisiçãoindex.php?name=<script>alert(1)</script>

Principais Ameaças

Cross-Site Scripting (XSS)

Page 22: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• DOM

Código executado no browser utilizandoelementos do DOM

Não há falha no servidor

Principais Ameaças

Cross-Site Scripting (XSS)

Page 23: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Cross-Site Scripting (XSS)

Page 24: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Cross-Site Scripting (XSS)

● Validação de entrada

● Validação de saída

● Validação de elementos do DOM

● OWASPXSS Prevention Cheat Sheet

Page 25: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Restrição de conteúdos / recursos

● Autenticação HTTP:Basic -> credenciais concatenadasseparadas por “:” e codificadas em base64

Digest -> hash MD5

Quebra de Autenticação / Sessão

Principais Ameaças

Page 26: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Cookie:[...]Authorization: Basic dGVzdGU6ZHVtbXlwYXNzd29yZA==[...]

Decodificando:$ echo "dGVzdGU6ZHVtbXlwYXNzd29yZA==" | base64 –dteste:dummypassword

Quebra de Autenticação / Sessão

Principais Ameaças

Page 27: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

HTTP digest:

Força-brutaHydra (http://freeworld.thc.org/thc-hydra/)

Replay de tráfegoTCPReplay (http://tcpreplay.synfin.net/trac/)

Quebra de Autenticação / Sessão

Principais Ameaças

Page 28: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

● Tunelameto por SSL

● Políticas de segurança

● CAPTCHA

● OWASPAuthentication_Cheat_Sheet

Quebra de Autenticação / Sessão

Principais Ameaças

Page 29: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Exposição de informações internas

• Evite Controle de Acesso em camada de apresentação

● Modificações de informações para acesso a dados não autorizados

Referência Direta a Objetos

Principais Ameaças

Page 30: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Evite expor referências a objetos internos

● Validação de referências

● Mapas de referênciaEx: http://www.example.com/application?file=1

Referência Direta a Objetos

Principais Ameaças

Page 31: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Browsers enviam alguns tipos de credenciais automaticamente em cada requisição

CookiesCabeçalhosEndereço IPCertificados SSL

Cross Site Request Forgery (CSRF)

Principais Ameaças

Page 32: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• A vítima acessa um site malicioso enquanto está logada no sistema vulnerável

● O atacante força a vítima a fazer tal requisição

Cross Site Request Forgery (CSRF)

Principais Ameaças

Page 33: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Principais Ameaças

Cross Site Request Forgery (CSRF)

Page 34: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Autenticações forçadas em requisições sensíveis

● Controle exposição de dados utilizados como credenciais

● OWASP:CSRF_Prevention_Cheat_Sheet

Cross Site Request Forgery (CSRF)

Principais Ameaças

Page 35: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Aplicações rodam em cima de serviços que rodam em cima de SOs

• Todos podem ser vetores de ataque

• Exploits (e patchs!) se aplicam à qualquer tipo de software

Falhas de Configuração

Principais Ameaças

Page 36: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• “hardening” de servidores

● Patchs e atualizações

● Homologação de mudanças

● Vulnerability Management

Falhas de Configuração

Principais Ameaças

Page 37: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Identificação de dados sensíveis

• Banco de dados, Arquivos, Diretórios, Arquivos de log, Backups, etc...

• Proteção insuficiente ou inexistente

• Confidencialidade e integridade

Armazenamento Inseguro

Principais Ameaças

Page 38: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

1. Cliente faz transações com cartão de crédito

2. Log com os dados da transção apontam algum erro

3. Um insider acessa milhões de números de cartão de crédito

Armazenamento Inseguro

Principais Ameaças

Page 39: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

● Algoritmos fortes

● Chaves diferenciadas

● Política de criação, armazenamento e troca de chaves

● OWASPCryptographic_Storage_Cheat_Sheet

Armazenamento Inseguro

Principais Ameaças

Page 40: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

● Exposição do nível de privilégio

● Camada de apresentação e / ou tráfego legítimo

● É possível forçar outros níveis (admin, manager, etc)

Falha na Restrição de Acesso à URLs

Principais Ameaças

Page 41: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

● Restrição de acesso em várias camadas

● Bloqueie requisições à tipos não autorizados de arquivos (configurações, logs, fontes, etc.)

Falha na Restrição de Acesso à URLs

Principais Ameaças

Page 42: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• A internet é pública e hostil

• Dados podem ser (e serão!) capturados

• Utilize criptografia

• Visualização / modificação informações

Canal Inseguro

Principais Ameaças

Page 43: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Certificado Digital

• Confidencialidade e Auntenticidade

• Algoritmos seguros

• OWASPTransport_Layer_Protection_Cheat_Sheet

Canal Inseguro

Principais Ameaças

Page 44: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Requisição forjada com instrução de redirecionamento

• Aplicação não valida o parâmetro e redireciona a vítima para site malicioso

Redirecionamentos Não-Validados

Principais Ameaças

Page 45: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

• Se possível, evite “redirects” e “forwards”

● Caso seja necessário, não envolva parâmetros fornecidos pelo usuário

● Utilize whitelists

Redirecionamentos Não-Validados

Principais Ameaças

Page 46: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Dúvidas?

Perguntas?

Críticas?

Sugestões?

Page 47: Principais ameças à Aplicações Web - Como explorá-las e como se proteger.

Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.

Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.

Fim...

Muito Obrigado!

Rafael Soares Ferreira

[email protected]

@rafaelsferreira