Índice
O que é falsificação de solicitação entre sites (CSRF)?
Falsificação de solicitação entre sites, frequentemente abreviada como CSRF, é um possível ataque que pode ocorrer quando um site malicioso, blog, mensagem de email, mensagem instantânea ou aplicação web faz com que o navegador de um utilizador execute uma ação indesejada num site confiável no qual o utilizador está atualmente autenticado.
O impacto de um ataque CSRF é determinado pelas capacidades expostas dentro da aplicação vulnerável. No nível mais básico, os ataques CSRF são utilizados por um atacante para fazer com que um sistema alvo execute qualquer função disponível e maliciosa através do navegador do alvo sem o conhecimento do utilizador alvo. Esta função geralmente não é conhecida pela vítima até depois de ter ocorrido.
Uma vulnerabilidade de CSRF pode dar a um atacante a capacidade de forçar um utilizador autenticado e com sessão iniciada a realizar uma ação importante sem o seu consentimento ou conhecimento. É o equivalente digital a alguém forjar a assinatura de uma vítima num documento importante. Na verdade, é ainda mais eficaz, porque o atacante não deixa rastros de evidência. Isto acontece porque o pedido forjado contém todas as informações e provém do mesmo endereço IP de um pedido real da vítima. Isto significa que qualquer aplicação que permita a um utilizador enviar ou atualizar dados é um alvo potencial para um atacante.
Uma coisa importante a lembrar é que, para o CSRF funcionar, a vítima tem de estar ligada ao site alvo. Embora isto possa parecer uma impedância para o atacante, muitos websites permitem que o utilizador escolha "manter-me ligado". Isto aumenta significativamente o tamanho do período de tempo em que uma falsificação pode ser feita.
Possíveis utilizações maliciosas de CSRF
O objetivo mais comum de um CSRF é o roubo — seja roubo de dados, roubo de identidade ou roubo financeiro. Alguns usos comuns de CSRF incluem:
- Transferir dinheiro de uma conta bancária para outra. A sua sessão online no banco é comprometida e trata isto como um pedido legítimo, enviando $1000 da sua conta para a conta de Mallory. Todas as evidências sugerem que fez esta transação legitimamente a partir do seu navegador com sessão iniciada.
- Use um sistema de gestão de conteúdos para adicionar/eliminar conteúdo de um website. Se a vítima for um utilizador administrativo, todo o website estaria sob o controlo do atacante.
- Alterar a senha de um utilizador. Se uma vítima estiver ligada à sua conta, o atacante pode simplesmente forjar um pedido de alteração de e-mail. Uma vez que isto aconteça, se o atacante conseguir forjar um pedido de redefinição de senha, o atacante poderia posteriormente obter controlo total da conta da vítima.
- Adicionar itens ao carrinho de compras de um utilizador ou alterar o endereço de entrega de uma encomenda. Muitos websites têm uma página de “minha conta” ou outras páginas semelhantes que armazenam a informação de um utilizador, e frequentemente permitem que um utilizador altere o seu endereço ou ajuste o seu carrinho de compras. Com CSRF, um atacante pode ajustar esta informação, e para o website, parecerá como se a vítima fosse a originadora de todas as alterações.
Prevenção de vulnerabilidades CSRF
Existem dois métodos principais pelos quais a falsificação de solicitação entre sites pode ser evitada.
- Impedir que o navegador envie cookies de terceiros para a aplicação web.
- Sincronizar o cookie com um token anti-CSRF que já foi fornecido ao navegador.
- Exigindo uma “resposta ao desafio”, que é frequentemente usada em conjunto com as outras duas técnicas de prevenção disponíveis.
Técnica #1: cookies do mesmo site
O atributo de cookie same-site é um atributo recém-desenvolvido que pode ser definido em cookies para instruir o navegador a desativar o uso por terceiros para cookies específicos. Este atributo é definido pelo servidor ao mesmo tempo que define o próprio cookie e solicita ao navegador que envie o cookie apenas num contexto de primeira parte. Por causa disso, a solicitação tem de se originar do mesmo local. Portanto, solicitações feitas por sites de terceiros não podem incluir o cookie same-site. Isto elimina efetivamente o CSRF sem exigir o uso de tokens sincronizadores. A única desvantagem é que os cookies same-site estão disponíveis apenas em alguns navegadores modernos.
Técnica #2: tokens anti-CSRF
O método de prevenção recomendado e mais amplamente adotado para falsificações de pedidos entre sites é um token anti-CSRF, também conhecido como token sincronizador. Quando um utilizador submete informações ou interage com o site, ou faz qualquer outra coisa que gere um cookie, o token anti-CSRF deve também ser incluído no pedido de cookie. Este pedido é então submetido a um processo de verificação, onde a autenticidade ou até mesmo a existência deste token é verificada antes de processar o pedido. Se o token estiver ausente ou incorreto, o pedido pode ser rejeitado.
Para garantir a qualidade de proteção com tokens anti-CSRF, é essencial que a biblioteca de tokens conhecidos seja atualizada regularmente para corresponder às ameaças existentes. Muitas dessas bibliotecas são de código aberto e de fácil acesso. Num mundo perfeito, ambos os métodos seriam combinados para ajudar a defender contra um ataque CSRF.
Técnica #3: resposta ao desafio
Como camada adicional de proteção, pode exigir uma resposta de desafio de um utilizador quando um formulário é submetido. Alguns exemplos de respostas de desafio incluem:
- Re-Autenticação de Palavra-Passe ou Informações Pessoais
- Validação CAPTCHA
- Emitir um token único
Embora o desafio-resposta possa ser um impedimento eficaz contra CSRF quando projetado e implementado adequadamente, ele tem impacto na experiência do utilizador. Para aplicações que necessitam de alta segurança, tanto tokens quanto desafio-resposta devem ser utilizados para garantir a segurança.
Porque o CSRF é importante
Ataques CSRF podem ser usados numa grande variedade de sites. Se um site permitir que os dados sejam alterados do lado do utilizador, então é um alvo potencial para um atacante. Com algumas das correções listadas acima, o seu site pode garantir um nível de segurança muito mais elevado numa vasta gama de sites. Qualquer site onde os dados possam ser alterados é um alvo potencial.
O impacto de um ataque CSRF bem-sucedido pode variar muito dependendo dos privilégios da vítima. Se o alvo for um utilizador básico, tudo desde as suas informações pessoais até aos privilégios do site podem ser comprometidos. Embora isso pareça mau, se uma conta de administrador for comprometida, um ataque pode paralisar todo o site. Isto mostra a escala de um possível ataque e por que a proteção contra CSRF é uma parte essencial de qualquer pacote de segurança web.
Saiba mais sobre CSRF
Leitura adicional
- Folha de Dicas para Prevenção de Falsificação de Solicitação entre Sites (CSRF)
- Wikipedia: Falsificação de Pedido Entre Sites
Como a Barracuda pode ajudar
O Barracuda Web Application Firewall protege automaticamente o seu site e aplicações web contra ataques CSRF, juntamente com milhares de outras ameaças cibernéticas, incluindo ameaças OWASP Top 10. Se ainda não tiver um firewall de aplicações web, pode solicitar uma versão de teste gratuita da Barracuda. Também pode utilizar o Barracuda Vulnerability Manager para fazer uma análise gratuita do seu site e verificar se é vulnerável a um ataque CSRF.
Além de fornecer proteção baseada em firewall, a Barracuda também oferece proteção CSRF no nosso produto Barracuda Load Balancer ADC. O balanceador de carga é um Controlador de Entrega de Aplicações seguro, concebido para garantir a disponibilidade, aceleração e controlo do website. As atualizações automáticas garantem segurança abrangente para ameaças de Camada 7 existentes e emergentes, como scripting entre sites, injeções SQL e falsificação de solicitações entre sites.
Tem mais questões sobre Cross Site Request Forgery? Contacte-nos hoje.