View
133
Download
1
Category
Preview:
Citation preview
Falsificação de solicitação entre sites - CSRF
RAFAEL TAVARES ANDRADE TOLEDO
CROSS-SITE REQUEST FORGERY
Agenda
Historia
Conceito
Funcionamento
Possibilidades de Ataques
O Ataque – Exemplo
Politica de mesma origem – Same-origin policy
A Solução
Referências
Historia
Primeiros casos 2001. Cerca de 18 milhões de usuários do eBay na Coréia perdeu a
informação pessoais em fevereiro de 2008. Os clientes de um banco em México foram atacados no início
de 2008 com uma tag de imagem em e-mail. O link da tag de imagem mudou a entrada DNS para o banco em seu roteador ADSL para apontar para um site malicioso se passando pelo banco
Conceito
O Cross-site request forgery é um tipo de exploração maliciosa de um website pelo qual comandos não autorizados são transmitidos para um site malicioso. Ao contrário do XSS, que explora a confiança de um usuário para um site particular, o CSRF explora a confiança que um site tem no navegador do usuário.
Funcionamento – CSRF
Possibilidades de Ataques Tags
<img src=“https://bank.com/fn?param=1”>
<iframe src=“https://bank.com/fn?param=1”>
<script src=“https://bank.com/fn?param=1”>
Posts automáticos em forms<body onload="document.forms[0].submit()">
<form method="POST" action=“https://bank.com/fn”>
<input type="hidden" name="sp" value="8109"/>
</form>
XmlHttpRequest Sujeito a politica de mesma origem
O Ataque
Alice deseja transferir R$ 100,00 a João usando banco.com.br. O pedido gerado por Alice será semelhante ao seguinte:
No entanto, percebe que Maria da mesma aplicação web irá executar a mesma transferência usando parâmetros de URL da seguinte forma:
O Ataque
Maria decide agora para explorar esta vulnerabilidade de aplicações web usando Alice como sua vítima. Maria primeiro constrói a seguinte URL, que vai transferir R$ 100.000,00 da conta de Alice à sua conta:
Agora que seu pedido mal-intencionado é gerado, Maria tem truque para apresentar o pedido. O método mais básico é o de enviar um e-mail HTML para Alice contendo o seguinte:
O Ataque
Supondo que Alice esta autenticada com a aplicação, quando ela clica no link, a transferência de R$ 100.000 para a conta de Maria irá ocorrer.
No entanto, Maria percebe que se Alice clica no link, em seguida, Alice vai notar que a transferência ocorreu.
Por isso, Maria decide esconder o ataque em uma imagem de zero bytes:
O Ataque
Se essa tag de imagem for incluída no e-mail, Alice só vê uma pequena caixa que indica que o navegador não pode processar a imagem. No entanto, o navegador continua a enviar a solicitação para banco.com.br sem qualquer indicação visual de que atransferência tenha ocorrido.
A Solução
A solução para o problema de CSRF é gerar uma chave única quando o usuário visita a página com o formulário.
Vamos definir esta chave na $_SESSION, bem como um campo hidden no formulário.
Quando o formulário for enviado, vamos verificar a chave armazenada na sessão e a chave enviada pelo formulário. Se eles são os mesmos então nós sabemos que o usuário submeteu nosso formulário. Se eles não são iguais (ou a $_SESSION está vazia), então sabemos que algo nocivo está acontecendo e nós podemos seguramente redirecionar o usuário (e não tomar nenhuma ação).
Solução
Solução
Podemos acrescentar um nível adicional de segurança, certificando-se o usuário veio a partir da página que contém o formulário.
Funcionamento – Politica de mesma origem
A política de mesma origem restringe como um documento ou script carregado a partir de uma origem pode interagir com um recurso de outra origem.
Funcionamento – Politica de mesma origem Mozilla considera duas páginas para ter a mesma origem, se o protocolo, porta (se
informado), e o host/domínio são os mesmos para ambas as páginas. Para ilustrar, esta tabela dá exemplos de comparações origem para o URL http://store.company.com/dir/page.html .
Solução
RequestPolicy
Referências
https://www.w3.org/Security/wiki/Same_Origin_Policy
http://www.owasp.org/index.php/Cross-Site_Request_Forgery
http://www.cgisecurity.com/articles/csrf-faq.shtml
http://www.darkreading.com/document.asp?doc_id=107651&WT.svl=news1_2
HTTP://RAFAELTAVARES.CO/APRESENTACOES
Recommended