"atacando e defendendo aplicações web" por rafael soares ferreira, sócio-diretor...
DESCRIPTION
"Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da InformaçãoTRANSCRIPT
![Page 1: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/1.jpg)
Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.
Atacando (e protegendo) aplicações web
Rafael Soares FerreiraClavis Segurança da Informaçã[email protected]
![Page 2: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/2.jpg)
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çõesOWASP Top 10 2010 - A1OWASP Top 10 2007 - A2
• Cross Site Scripting (XSS)OWASP Top 10 2010 - A2OWASP Top 10 2007 - A1
Principais Ameaças
![Page 3: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/3.jpg)
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 4: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/4.jpg)
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 5: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/5.jpg)
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 6: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/6.jpg)
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 7: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/7.jpg)
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 8: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/8.jpg)
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 9: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/9.jpg)
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 10: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/10.jpg)
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 11: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/11.jpg)
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 12: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/12.jpg)
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 13: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/13.jpg)
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 14: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/14.jpg)
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 15: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/15.jpg)
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
Tipos:
Principais Ameaças
Cross-Site Scripting (XSS)
![Page 16: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/16.jpg)
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 17: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/17.jpg)
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 18: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/18.jpg)
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 19: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/19.jpg)
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 20: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/20.jpg)
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 21: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/21.jpg)
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 22: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/22.jpg)
Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.
Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.
Outras Ameaças
● Quebra de Autenticação / Sessão
• Referência direta à objetos
• Cross-Site Request Forgery (CSRF)
• Falhas de Configuração
![Page 23: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/23.jpg)
Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.
Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.
Outras Ameaças
● Armazenamento Inseguro
• Falha na Restrição de Acesso à URLs
• Canal Inseguro
• Redirecionamentos Não-Validados
![Page 24: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/24.jpg)
Copyright © 2009 Clavis Segurança da Informação. Todos os direitos reservados.
Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados.
Referências
● OWASP Top 10https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
• OWASP Testing Guidehttps://www.owasp.org/index.php/Category:OWASP_Testing_Project
![Page 25: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/25.jpg)
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 26: "Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação](https://reader033.vdocuments.com.br/reader033/viewer/2022052903/5576072cd8b42a0d5e8b45d6/html5/thumbnails/26.jpg)
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
@rafaelsferreira