O que é a lista Top 10 de Segurança para APIs do OWASP?
O Open Web Application Security Project (OWASP) é uma organização sem fins lucrativos cujo objetivo é promover segurança de aplicativos web. O OWASP oferece muitos recursos gratuitos para qualquer pessoa que queira construir um aplicativo web seguro.
Um de seus recursos mais amplamente referenciados é o Top 10 do OWASP, que lista as 10 maiores preocupações de segurança para aplicativos web.
O OWASP também mantém uma lista separada e semelhante para interfaces de programação de aplicativos (APIs), que são a base essencial para a maioria dos aplicativos web. Esta lista é a Top 10 de segurança para APIs do OWASP.
Desde de 2019*, o Top 10 de segurança para APIs do OWASP inclui:
- Falha de autorização em nível de objeto: refere-se à manipulação de identificadores de objeto em uma solicitação para obter acesso não autorizado a dados sensíveis. Os invasores acessam objetos (dados) aos quais não deveriam ter acesso, apenas alterando os identificadores.
- Falha de autenticação de usuário: se a autenticação for implementada incorretamente, os invasores poderão se passar por usuários da API, permitindo que eles acessem dados confidenciais.
- Exposição de dados excessiva: muitas APIs erram ao expor dados e contam com o usuário da API para filtrar os dados corretamente. Isso pode permitir que pessoas não autorizadas visualizem os dados.
- Falta de recursos e limitação de taxa: por padrão, muitas APIs não limitam o número ou o tamanho das solicitações que podem receber em um determinado momento. Isso as deixa abertas a ataques de negação de serviço (DoS).
- Falha de autorização de nível de função: esse risco tem a ver com autorização. Os usuários da API podem ser autorizados a fazer muito, levando à exposição de dados.
- Atribuição em massa: a API aplica automaticamente as entradas do usuário a várias propriedades. Um invasor pode usar essa vulnerabilidade para, por exemplo, se tornar um administrador enquanto atualiza alguma outra propriedade inócua de seu perfil de usuário.
- Configuração incorreta de segurança: isso abrange uma variedade de erros na configuração da API, incluindo cabeçalhos HTTP mal configurados, métodos HTTP desnecessários e o que o OWASP chama de "mensagens de erro detalhadas contendo informações confidenciais".
- Injeção: em um ataque de injeção, o invasor envia comandos especializados para a API que a enganam para revelar dados ou executar alguma outra ação inesperada. Saiba mais sobre injeção de SQL.
- Gerenciamento inadequado de ativos: Isto ocorre quando não há rastreamento das APIs atuais em produção e das que não estão mais sendo usadas, levando a APIs de sombra. As APIs são vulneráveis a este risco porque tendem a disponibilizar muitos endpoints.
- Registro e monitoramento insuficientes: o OWASP observa que estudos mostram que normalmente são necessários mais de 200 dias para se detectar uma violação. O registro detalhado de eventos e o monitoramento próximo podem permitir que os desenvolvedores de APIs detectem e parem as violações muito mais cedo.
*Até dezembro de 2021, a lista não tinha sido atualizada desde 2019.
Para ler mais sobre esses 10 riscos de segurança, consulte a página oficial do OWASP.
Há algum cruzamento entre a lista dos Top 10 do OWASP (lista completa aqui) e a lista Top 10 de segurança para APIs do OWASP. Por exemplo, injeção, falha de autenticação e registro e monitoramento insuficientes aparecem em ambas. No entanto, as APIs apresentam riscos ligeiramente diferentes em comparação com os aplicativos web. Os desenvolvedores devem levar ambas as listas em consideração.
Como o Cloudflare API Shield ajuda a combater esses 10 riscos de segurança?
O API Shield da Cloudflare usa defesas de APIs em camadas para proteger contra uma variedade de ataques direcionados a APIs. Entre os recursos incluídos estão Data Loss Prevention (neutraliza os riscos nº 1 e 3), mutual TLS (risco nº 2) e Rate Limiting (risco nº 4). Veja a lista completa de recursos na página do Cloudflare API Gateway.
Para saber mais sobre segurança para APIs, leia O que é segurança para APIs?