Top 10 OWASP – Vulnerabilidades de Segurança da API

As APIs expõem a funcionalidade do aplicativo, bem como dados confidenciais, como informações de identificação pessoal (Personally Identifiable Information – PII), tornando-as um alvo para invasores. As APIs fornecem um contrato, mas não possuem as salvaguardas necessárias para garantir que o contrato seja cumprido, oferecendo um risco de segurança significativo para os serviços de back-end aos quais se conectam.

O aumento de ameaças de segurança relacionadas à API nos últimos anos levou o Open Web Application Security Project (OWASP) a lançar o API Security Top 10, que ajuda a aumentar a conscientização sobre os problemas de segurança de API mais sérios que afetam as organizações.

API1: BROKEN OBJECT-LEVEL AUTHORIZATION

As APIs geralmente fornecem endpoints que envolvem identificadores de objetos, expondo assim uma grande superfície de ataque. Qualquer função que receba a entrada do usuário e a utilize para acessar uma fonte de dados pode causar um problema de controle de acesso, expondo o sistema a novos ataques. Para todas essas funções, você deve fazer verificações de autorização em nível de objeto para evitar infiltração.

API2: BROKEN AUTHENTICATION

A autenticação de API é um assunto difícil e complexo. Os invasores geralmente aproveitam os mecanismos de autenticação aplicados incorretamente. Os mecanismos de autenticação tornam-se alvos fáceis para os invasores, especialmente se forem totalmente abertos ou acessíveis ao público. Os invasores podem comprometer um token de autenticação ou usar defeitos de implementação para se passar por outro usuário, temporária ou permanentemente. Se a capacidade do sistema de identificar o cliente/usuário estiver comprometida, a segurança geral da API também estará.

API3: EXCESSIVE DATA EXPOSURE

Antes de mostrar os dados ao usuário, os desenvolvedores frequentemente utilizam filtros do lado do cliente. Essa técnica pode levar a grandes riscos de segurança ao expor muitos dados, que podem ser facilmente abusados ​​pela detecção de tráfego e pela análise das respostas da API em busca de informações confidenciais que não devem ser transmitidas ao usuário. Como resultado, os dados devem ser filtrados constantemente no lado do servidor, com apenas dados relevantes sendo enviados ao cliente.

API4: LACK OF RESOURCES & RATE LIMITING

A quantidade e o tamanho dos recursos que um cliente/usuário pode solicitar é frequentemente irrestrito pelas APIs. As consultas de API usam recursos de rede, CPU, memória e armazenamento, que podem degradar o desempenho do servidor de API, resultando em ataques DoS, expondo fraquezas de autenticação e permitindo ataques de força bruta.

API5: BROKEN FUNCTION-LEVEL AUTHORIZATION

Políticas de controle de acesso excessivamente complicadas ou falta de demarcação clara entre operações normais e administrativas são causas comuns de problemas de autorização. Usuários sem privilégios podem ver alguns endpoints de API, tornando-os mais vulneráveis ​​a invasores. Os invasores podem utilizar essas falhas para obter acesso aos recursos de um usuário ou para realizar tarefas administrativas.

API6: MASS ASSIGNMENT

Os dados fornecidos pelo cliente (ou seja, JSON) são frequentemente vinculados a um modelo de dados com base em uma lista de permissões sem filtragem de propriedade suficiente, resultando em atribuição em massa. Os invasores podem alterar os atributos do objeto usando uma variedade de métodos, incluindo explorar endpoints de API, ler documentação, adivinhar valores de objetos e fornecer propriedades extras por meio de cargas úteis de solicitação.

API7: SECURITY MISCONFIGURATION

Configurações padrão inadequadas, configurações ad-hoc ou incompletas, cabeçalhos HTTP mal configurados ou métodos HTTP inadequados, compartilhamento de recursos de origem cruzada (CORS) insuficientemente restritivo, armazenamento em nuvem aberta ou mensagens de erro contendo informações confidenciais são causas comuns de configuração incorreta de segurança.

API8: INJECTION

As APIs online são vulneráveis ​​a problemas de injeção, que são frequentes em aplicações web. Problemas de injeção (como injeção de SQL, injeção de NoSQL e injeção de comando) afetam os dados fornecidos a um intérprete por um comando ou consulta de uma fonte não confiável. Os invasores podem enviar dados maliciosos para enganar o intérprete e fazê-lo executar instruções prejudiciais ou obter acesso não autorizado aos dados.

API9: IMPROPER ASSET MANAGEMENT

Compreender a possível exposição e risco requer manter um inventário de API atualizado com documentação adequada. As APIs geralmente expõem mais endpoints do que os aplicativos da Web padrão, exigindo documentação completa e atualizada. A superfície de ataque pode ser ampliada por problemas como endpoints de depuração expostos e versões de API desatualizadas. É fundamental acompanhar as versões da API que foram entregues e os hosts que foram configurados corretamente.

API10: INSUFFICIENT LOGGING & MONITORING

Registro e monitoramento inadequados, bem como integração de resposta a incidentes ruim ou inadequada, podem ser explorados por invasores. Essas lacunas permitem que eles permaneçam ativos em um sistema por mais tempo, fortaleçam sua aderência e extraiam ou excluam mais dados. Um ataque persistente pode levar até 200 dias para ser identificado, e a maioria das violações é detectada por terceiros, destacando a necessidade crucial de monitoramento adequado da API.