top of page

Segurança de Aplicações Web: Ataques de Manipulação de Requisições | Grupo 3

Os ataques de Request Forgeries (CSRF) exploram a confiança entre um usuário autenticado e um site ou aplicativo da web, induzindo o usuário a executar ações indesejadas. O processo envolve a autenticação do usuário, injeção de código malicioso e execução não intencional da ação. Para prevenir esses ataques, é recomendado utilizar tokens de sincronização (CSRF tokens), verificar a origem da solicitação e implementar cabeçalhos de segurança.

Segurança de Aplicações Web: Ataques de Manipulação de Requisições | Grupo 3

Request Forgeries
As Request Forgeries, também conhecidas como Cross-Site Request Forgery (CSRF) ou XSRF, são ataques que exploram a confiança entre um usuário autenticado e um site ou aplicativo da web. Nesse tipo de ataque, um invasor induz um usuário legítimo a executar ações indesejadas em um site no qual o usuário já está autenticado.
O processo de um ataque de Request Forgery geralmente envolve os seguintes passos:
Autenticação do usuário: O usuário autentica-se em um site ou aplicativo da web e recebe um cookie de autenticação para identificá-lo em sessões futuras.
Injeção de código malicioso: O invasor cria uma página ou envia um link que contém um código malicioso embutido, que será executado no navegador do usuário.
Execução não intencional da ação: Quando o usuário acessa a página ou clica no link fornecido pelo invasor, o código malicioso é ativado e executa uma ação indesejada no site alvo. Essa ação pode ser qualquer coisa que o site permita fazer, como alterar configurações, fazer compras, excluir informações ou enviar formulários.
A chave para um ataque de Request Forgery bem-sucedido é explorar a confiança do site no usuário autenticado. O site confia que todas as solicitações vindas do usuário autenticado são legítimas e são executadas sem verificar se a solicitação foi realmente feita pelo usuário ou se foi forjada.
Para prevenir ataques de Request Forgery, as seguintes práticas de segurança são recomendadas:
Utilizar tokens de sincronização (CSRF tokens): Os tokens de sincronização são valores únicos gerados pelo servidor e incorporados em formulários ou solicitações. Esses tokens são verificados pelo servidor para garantir que a solicitação seja legítima e que o usuário tenha originado a ação intencionalmente.
Verificar a origem da solicitação: O servidor deve verificar se a solicitação vem de uma fonte confiável. Isso pode ser feito por meio do cabeçalho HTTP Referer, que indica a página de origem da solicitação.
Implementar cabeçalhos de segurança: Utilizar cabeçalhos HTTP, como o SameSite e o Content Security Policy (CSP), pode ajudar a mitigar os ataques de Request Forgery ao restringir a execução de scripts de terceiros e limitar o compartilhamento de cookies entre diferentes domínios.
Não confiar somente em cookies de autenticação: Além dos cookies, é importante incluir outros mecanismos de autenticação, como tokens de acesso ou autenticação de dois fatores, para aumentar a segurança do sistema.
Manter o software atualizado: É importante manter o site ou aplicativo da web atualizado com as últimas correções de segurança, uma vez que muitos ataques de Request Forgery exploram vulnerabilidades conhecidas em versões desatualizadas de software.
A implementação adequada dessas práticas de segurança pode ajudar a prevenir ataques de Request Forgeries e proteger os usuários e aplicativos da web contra ações indesejadas realizadas sem o conhecimento ou consentimento dos usuários autenticados.
Server-Side Request Forgery - SSRF
Server-Side Request Forgery (SSRF) é um tipo de ataque em que um invasor consegue persuadir um servidor a fazer solicitações em seu nome para recursos localizados em uma rede interna ou na Internet. Nesse tipo de ataque, o invasor explora a confiança que o servidor tem em si mesmo para executar ações maliciosas.
Aqui estão algumas características e considerações importantes sobre o Server-Side Request Forgery:
Funcionamento do ataque: O ataque geralmente começa com a exploração de uma função do servidor que permite fazer solicitações a outros recursos ou sistemas. O invasor manipula essa função, fornecendo URLs maliciosos que direcionam as solicitações para destinos indesejados.
Alvos das solicitações: O invasor pode direcionar as solicitações para recursos na rede interna, como servidores, bancos de dados ou outros serviços sensíveis que não são acessíveis publicamente. Também é possível direcionar solicitações para recursos externos na Internet.
Possíveis impactos: Com um SSRF bem-sucedido, o invasor pode explorar os recursos acessíveis pelo servidor, realizar varreduras de portas, obter informações confidenciais, realizar ataques de injeção de SQL ou desviar o tráfego de rede através do servidor comprometido.
Vulnerabilidades comuns: As vulnerabilidades que podem levar a um SSRF incluem a falta de validação adequada das URLs fornecidas pelos usuários, a confiança excessiva no servidor para fazer solicitações e a falta de restrições de acesso a recursos internos.
Prevenção: Para mitigar o risco de Server-Side Request Forgery, é importante seguir boas práticas de segurança, como:
Implementar uma lista de permissões (whitelist) para limitar os recursos acessíveis pelo servidor.
Validar e filtrar as URLs fornecidas pelos usuários, garantindo que elas estejam restritas a recursos autorizados.
Restringir o acesso a recursos internos, utilizando firewalls e filtros de pacotes para evitar solicitações não autorizadas.
Isolar o servidor em uma rede separada para reduzir o risco de acesso a recursos sensíveis.
Monitoramento e registros: É importante monitorar as atividades do servidor em busca de comportamentos suspeitos e registrar solicitações externas feitas pelo servidor. Isso ajuda na detecção de tentativas de SSRF e auxilia na investigação em caso de incidente.
A conscientização sobre as vulnerabilidades de SSRF e a implementação de medidas preventivas adequadas são fundamentais para proteger os servidores e as redes contra esse tipo de ataque. Manter-se atualizado sobre as práticas recomendadas de segurança e realizar testes de penetração regulares podem ajudar a identificar e corrigir possíveis vulnerabilidades antes que sejam exploradas por invasores.
Client-Side Request Forgery - CSRF
Client-Side Request Forgery (CSRF) é um tipo de ataque em que um invasor engana o navegador de um usuário para realizar solicitações indesejadas em seu nome a um aplicativo ou serviço web específico. Ao contrário do Server-Side Request Forgery (SSRF), o CSRF explora a confiança do aplicativo na identidade e nas ações do usuário autenticado.
Aqui estão algumas informações importantes sobre o Client-Side Request Forgery:
Funcionamento do ataque: O ataque CSRF geralmente ocorre quando um usuário legítimo visita um site malicioso ou clica em um link infectado. Esse site malicioso contém um código embutido que faz com que o navegador do usuário envie solicitações para o aplicativo alvo.
Exploração da sessão autenticada: O ataque aproveita o fato de que o aplicativo alvo confia na autenticação e na sessão do usuário legítimo. Quando o usuário realiza uma ação no site malicioso, como clicar em um link ou enviar um formulário, o código embutido executa solicitações no aplicativo alvo usando a identidade e as permissões do usuário legítimo.
Impacto do ataque: As solicitações falsificadas podem ter várias consequências, dependendo das permissões do usuário legítimo no aplicativo. Isso inclui alteração de configurações, exclusão de dados, transferência de fundos, envio de formulários indesejados e muito mais.
Medidas preventivas: Para mitigar o risco de Client-Side Request Forgery, é importante implementar as seguintes medidas de segurança:
Utilizar tokens de sincronização (CSRF tokens): Os tokens CSRF são gerados pelo servidor e incorporados em formulários ou solicitações. Eles são validados pelo servidor para garantir que a solicitação seja legítima e originada pelo aplicativo correto.
Implementar verificação de referência: O servidor pode verificar o cabeçalho Referer da solicitação para garantir que a solicitação venha de um domínio confiável. No entanto, esse método pode não ser completamente confiável, pois o cabeçalho pode ser manipulado.
Utilizar cookies com a configuração SameSite: Configurar cookies com a opção SameSite=Lax ou SameSite=Strict ajuda a limitar a disponibilidade dos cookies em solicitações de terceiros, reduzindo a chance de ataques de CSRF.
Implementar políticas de segurança adicionais: É recomendado utilizar políticas de segurança, como Content Security Policy (CSP) e CORS (Cross-Origin Resource Sharing), para controlar as solicitações feitas pelo navegador e restringir o acesso a recursos externos.
Educação do usuário: É importante conscientizar os usuários sobre os riscos associados a clicar em links suspeitos ou visitar sites não confiáveis. Instruir os usuários a nunca confiarem cegamente em solicitações ou ações em sites desconhecidos pode ajudar a reduzir as chances de sucesso de um ataque de CSRF.
A implementação adequada dessas medidas de segurança pode ajudar a mitigar os riscos de Client-Side Request Forgery e proteger os aplicativos e usuários contra ações indesejadas realizadas sem o conhecimento ou consentimento dos usuários autenticados.
Cross-Site Request Forgery - CSRF
Cross-Site Request Forgery (CSRF) é um tipo de ataque em que um invasor explora a confiança entre um usuário autenticado e um aplicativo da web para realizar ações indesejadas em nome desse usuário sem o seu conhecimento ou consentimento.
Aqui estão algumas informações importantes sobre o Cross-Site Request Forgery:
Funcionamento do ataque: O ataque CSRF geralmente ocorre quando um usuário autenticado visita um site malicioso ou clica em um link infectado em um site confiável. Esse site malicioso contém um código embutido que realiza solicitações em nome do usuário autenticado para o aplicativo alvo.
Exploração da confiança do aplicativo: O ataque aproveita a confiança que o aplicativo tem no usuário autenticado. O aplicativo acredita que as solicitações estão sendo originadas pelo usuário legítimo e, portanto, executa as ações solicitadas sem suspeitar de qualquer atividade maliciosa.
Impacto do ataque: Dependendo das permissões do usuário autenticado no aplicativo, as solicitações forjadas podem ter consequências graves, como alterar informações pessoais, fazer compras indesejadas, excluir dados, modificar configurações, entre outros.
Medidas preventivas: Para mitigar o risco de Cross-Site Request Forgery, é importante implementar as seguintes medidas de segurança:
Utilizar tokens de sincronização (CSRF tokens): Os tokens CSRF são gerados pelo servidor e incorporados em formulários ou solicitações. Eles são enviados junto com as solicitações e validados pelo servidor para garantir que a solicitação seja legítima e originada pelo aplicativo correto.
Verificar a origem da solicitação: O servidor pode verificar a origem da solicitação (como o cabeçalho HTTP Referer) para garantir que a solicitação venha de um domínio confiável. No entanto, essa verificação pode não ser totalmente confiável, pois o cabeçalho pode ser falsificado.
Utilizar cookies com a configuração SameSite: Configurar cookies com a opção SameSite=Lax ou SameSite=Strict ajuda a limitar a disponibilidade dos cookies em solicitações de terceiros, reduzindo a chance de ataques de CSRF.
Implementar redirecionamento seguro após operações sensíveis: Após a realização de operações sensíveis, o aplicativo pode redirecionar o usuário para uma página segura ou exibir uma confirmação para evitar que solicitações forjadas sejam realizadas novamente sem o conhecimento do usuário.
Educação do usuário: É importante conscientizar os usuários sobre os riscos associados a clicar em links suspeitos, especialmente quando estão autenticados em aplicativos da web. Instruir os usuários a terem cuidado ao acessar sites desconhecidos pode ajudar a reduzir as chances de sucesso de um ataque de CSRF.
A implementação adequada dessas medidas de segurança pode ajudar a mitigar os riscos de Cross-Site Request Forgery e proteger os aplicativos e usuários contra ações indesejadas realizadas sem o conhecimento ou consentimento dos usuários autenticados. É importante considerar a segurança desde o design e desenvolvimento do aplicativo, bem como manter-se atualizado sobre as melhores práticas de segurança web.
Ataques a APIs
Os ataques a APIs (Application Programming Interfaces) são uma preocupação significativa na segurança de aplicações modernas. As APIs são utilizadas para facilitar a comunicação e a integração entre diferentes sistemas e serviços. No entanto, elas também podem ser alvo de ataques maliciosos que visam explorar vulnerabilidades e comprometer a segurança dos sistemas.
Aqui estão alguns dos principais tipos de ataques a APIs:
Injeção de dados: Esse tipo de ataque ocorre quando um invasor insere dados maliciosos em uma solicitação para explorar vulnerabilidades de segurança no sistema. Isso pode incluir injeção de SQL, injeção de comandos, injeção de scripts, entre outros.
Exposição indevida de informações sensíveis: Se uma API não estiver configurada corretamente, informações sensíveis, como senhas, tokens de autenticação ou dados pessoais, podem ser expostas. Isso pode ocorrer por meio de respostas inadequadas da API, logs ou mensagens de erro.
Autenticação e autorização inadequadas: Quando a autenticação e a autorização em uma API não são implementadas corretamente, os invasores podem explorar essas falhas para acessar recursos não autorizados ou executar ações maliciosas em nome de outros usuários.
Cross-Site Scripting (XSS): Esse tipo de ataque ocorre quando um invasor insere scripts maliciosos em campos de entrada da API, que serão executados nos navegadores dos usuários que consomem esses dados. Isso pode levar ao roubo de informações, sequestro de sessões ou outras ações prejudiciais.
Cross-Site Request Forgery (CSRF): Nesse tipo de ataque, um invasor engana um usuário autenticado a realizar ações indesejadas em uma API em que o usuário tem permissões. Isso pode ser feito por meio de links maliciosos ou por meio de sites ou aplicativos comprometidos que exploram a confiança do aplicativo na identidade do usuário.
Denial of Service (DoS): Os ataques de negação de serviço visam sobrecarregar uma API com um grande número de solicitações maliciosas, levando à indisponibilidade do serviço para usuários legítimos.
Para proteger as APIs contra esses ataques, algumas medidas de segurança importantes incluem:
Implementar autenticação e autorização robustas, como o uso de tokens de autenticação, OAuth, controle de acesso baseado em funções (RBAC) e verificação de escopos adequados.
Validar e filtrar todas as entradas de dados para evitar injeção de código ou dados maliciosos.
Aplicar criptografia para proteger dados sensíveis em trânsito e em repouso.
Implementar limites de taxa (rate limiting) para evitar ataques de DoS.
Realizar testes de segurança regulares, como testes de penetração, para identificar e corrigir vulnerabilidades.
Manter as APIs atualizadas com patches e atualizações de segurança fornecidos pelos fornecedores e desenvolvedores.
É importante estar atualizado sobre as práticas recomendadas de segurança em APIs e adotar uma abordagem de segurança em camadas para proteger a integridade, a confidencialidade e a disponibilidade dos sistemas que dependem das APIs.

bottom of page