API1:2019 - Broken Object Level Authorization |
As APIs tendem a expor mais endpoints que manipulam identificadores de objetos, tornando as falhas no controlo de acessos mais suscetíveis a ataques. A verificação da autorização para acesso aos objetos deve ser tida em consideração em todas as funções que acedem a dados com base em informação fornecida pelo utilizador. |
API2:2019 - Broken User Authentication |
Com frequência os mecanismos de autenticação são implementados de forma incorreta, permitindo aos atacantes comprometer os tokens de autenticação ou abusar das falhas na implementação por forma a assumir a identidade de outros utilizadores de forma temporária ou permanente. |
API3:2019 - Excessive Data Exposure |
Na tentativa de fazer implementações genéricas os programadores tendem a expor todas as propriedades dum objeto sem ter em consideração quão sensível é cada uma delas, delegando nos clientes a filtragem daquelas que devem ser apresentadas ao utilizador. |
API4:2019 - Lack of Resources & Rate Limiting |
Com frequência as APIs não impõem quaisquer restrições no tamanho ou número de recursos que um cliente/utilizador pode solicitar. Não só isto pode ter impacto no desempenho do servidor da API, conduzindo à negação do serviço (DoS), mas também deixa a porta aberta para problemas de autenticação tais como ataques de força bruta. |
API5:2019 - Broken Function Level Authorization |
Política de controlo de acesso complexas com diferentes níveis hierárquicos, grupos e perfis e uma não tão clara separação entre o que são ou não funcionalidades administrativas tendem a conduzir a falhas de autorização. Abusando destas falhas os atacantes podem ganhar acesso a recursos doutros utilizadores e/ou a funcionalidades administrativas. |
API6:2019 - Mass Assignment |
Atribuir a informação fornecida pelo cliente (e.g., JSON) aos modelos de dados sem a devida filtragem das propriedades com base em whitelists, conduzem tipicamente a problemas de atribuição em massa (Mass Assignment). Quer seja através da adivinhação das propriedades do objeto, explorando outros endpoints da API ou consulta da documentação, fornecendo propriedades adicionais no conteúdo dos pedidos permite aos atacantes modificar propriedades dos objetos que não eram supostos. |
API7:2019 - Security Misconfiguration |
Tipicamente as más configurações de segurança resultam de configurações por omissão, incompletas ou que se destinam a um fim específico, armazenamento na nuvem aberto, falha na configuração dos cabeçalhos HTTP de segurança, métodos HTTP não utilizados, política permissiva de Partilha de Recursos Entre Origens (CORS) e mensagens de erro contendo informação sensível. |
API8:2019 - Injection |
Falhas de injeção tais como SQL, NoSQL, injeção de comandos, etc., ocorrem quando dados não confiáveis são enviados a um interpretador como parte dum comando ou consulta. Desta forma o interpretador acaba por executar comandos que não era expectável executar ou aceder a dados sem a devida autorização. |
API9:2019 - Improper Assets Management |
As APIs tendem a expor mais endpoints do que as aplicações web tradicionais, fazendo com que a documentação se torne ainda mais importante. Um inventário dos hosts e APIs em execução também têm um papel importante na mitigação de falhas tais como versões de APIs descontinuadas e exposição de endpoints para análise de problemas. |
API10:2019 - Insufficient Logging & Monitoring |
A insuficiência no registo de eventos e monitorização, em conjugação com a falta ou ineficácia da integração com a resposta a incidentes, permite aos atacantes continuar a sua prática, persistir os seus ataques, alcançar outros sistemas, extrair ou destruir dados. A maioria dos estudos demonstra que o tempo de deteção duma quebra de segurança vai além dos 200 dias, sendo tipicamente detetada por entidades externas, ao invés de processo internos ou monitorização. |