API1:2019 - Broken Object Level Authorization |
APIs tendem a expor endpoints para manipulação de objetos internos criando uma ampla camada de ataque ao controle de nível de acesso. O controle de autorização deve ser verificado em toda função que tenha acesso à fontes de dados que utilizem dados enviados pelo usuário. |
API2:2019 - Broken User Authentication |
Mecanismos de autorização não raramente são implementados incorretamente, permitindo que atacantes comprometam tokens de autenticação ou explorem falhas na implementação para assumir identidades temporária ou permanentemente. Isto compromete a habilidade dos sistemas em identificar o usuário/cliente comprometendo a segurança da API. |
API3:2019 - Excessive Data Exposure |
Implementações rápidas e de maneira genérica podem fazer que desenvolvedores exponham todas as propriedades dos objetos sem considerar que determinadas informações podem ser sensíveis ao indivíduo e deixando ao cliente as atividades de filtrar as informações antes de exibi-las ao usuário. |
API4:2019 - Lack of Resources & Rate Limiting |
Não raramente APIs não impõem restrições ao tamanho ou à quantidade de recursos que podem ser requisitados pelo cliente/usuário. O impacto vai além do desempenho de servidores de API, resultado em Denial of Service (DoS), mas também, podem deixar portas abertas para falhas de autenticação por força bruta. |
API5:2019 - Broken Function Level Authorization |
Políticas complexas no controle de acesso, com diferentes hierarquias, grupos, papéis e uma falta de clareza na separação entre papéis comuns e de administração podem levar a falhas de autenticação. Explorando esta condição, atacantes podem ganhar acesso à recursos de terceiros ou à funções administrativas. |
API6:2019 - Mass Assignment |
Conectar dados entregues pelo cliente (ex. JSON) diretamente em modelos de dados sem filtrar apropriadamente propriedades em whitelist podem eventualmente levar a atribuição em massa. Mesmo buscando adivinhar propriedades, explorando outros endpoints, consultando documentação e enviando propriedades adicionais em payload os atacantes podem modificar propriedades de objetos os quais não deveria. |
API7:2019 - Security Misconfiguration |
Configurações de segurança incorretas, de maneira geral, é resultado de configurações padrão ou configurações incompletas. Armazenamento em nuvem abertas, configurações incorretas em cabeçalhos HTTP, métodos HTTP desnecessários, CORS permissivos e divulgação de mensagens de erro com informações sensíveis. |
API8:2019 - Injection |
Injeção de falhas como SQL, NoSQL, injeção de comandos e etc, ocorrem quando informações não confiáveis são enviadas ao interpretador como parte de um comando ou consulta. A informação maliciosa do atacante pode enganar o interpretador a executar comandos não esperados ou acessar dados sem a autorização adequada. |
API9:2019 - Improper Assets Management |
APIs tendem a expor mais endpoints que uma aplicação web tradicional, de forma que documentação apropriada e atualizada é muito importante. Gestão de inventário de versões de API tem papel importante para mitigar problemas como versões antigas de API e endpoints de debug. |
API10:2019 - Insufficient Logging & Monitoring |
Falta de log e monitoramento, acoplado com falta ou ineficiente integração com respostas a incidentes, permite que atacantes consigam ter persistência e descobrir outros sistemas para explorar, extrair ou destruir informação. Muitos estudos demonstram que a descoberta de uma brecha leva mais de 200 dias para ser identificada, além de muitas vezes ser detectada mais por terceiros que por um processo interno. |