OWASP API Security Top 10: 0x11 t10

# OWASP Top 10 Riscos de Segurança de API – 2019

| Risco | Descrição |
| ---- | ----------- |
| 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. |