"atacando e defendendo aplicações web" por rafael soares ferreira, sócio-diretor...

26
Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados. Atacando (e protegendo) aplicações web Rafael Soares Ferreira Clavis Segurança da Informação [email protected]

Upload: workshop-blog-seginfo

Post on 09-Jun-2015

1.693 views

Category:

Technology


0 download

DESCRIPTION

"Atacando e Defendendo Aplicações Web" por Rafael Soares Ferreira, Sócio-Diretor técnico do Grupo Clavis Segurança da Informação

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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