principais ameças à aplicações web - como explorá-las e como se proteger
Post on 25-May-2015
2.483 Views
Preview:
DESCRIPTION
TRANSCRIPT
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çãorafael@clavis.com.br
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)
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
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
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
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
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’
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’
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
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
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
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
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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?
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
rafael@clavis.com.br
@rafaelsferreira
top related