Principais vulnerabilidades da API OATH

Principais vulnerabilidades da API OATH

Principais vulnerabilidades da API OATH: introdução

Quando se trata de exploits, as APIs são o melhor lugar para começar. API acesso geralmente consiste em três partes. Os clientes recebem tokens emitidos por um servidor de autorização, que é executado junto com as APIs. A API recebe tokens de acesso do cliente e aplica regras de autorização específicas do domínio com base neles. 

Os aplicativos de software modernos são vulneráveis ​​a uma variedade de perigos. Mantenha-se atualizado sobre as explorações e falhas de segurança mais recentes; ter benchmarks para essas vulnerabilidades é essencial para garantir a segurança do aplicativo antes que um ataque aconteça. Aplicativos de terceiros dependem cada vez mais do protocolo OAuth. Os usuários terão uma melhor experiência geral do usuário, bem como login e autorização mais rápidos, graças a essa tecnologia. Pode ser mais seguro do que a autorização convencional, pois os usuários não precisam divulgar suas credenciais com o aplicativo de terceiros para acessar um determinado recurso. Embora o protocolo em si seja seguro e protegido, a maneira como ele é implementado pode deixá-lo vulnerável a ataques.

Ao projetar e hospedar APIs, este artigo se concentra nas vulnerabilidades típicas do OAuth, bem como em várias mitigações de segurança.

Autorização de nível de objeto quebrado

Existe uma vasta superfície de ataque se a autorização for violada, pois as APIs fornecem acesso aos objetos. Como os itens acessíveis pela API devem ser autenticados, isso é necessário. Implemente verificações de autorização em nível de objeto usando um gateway de API. Somente aqueles com as credenciais de permissão apropriadas devem ter permissão de acesso.

Autenticação de usuário quebrada

Tokens não autorizados são outra forma frequente de invasores obterem acesso a APIs. Os sistemas de autenticação podem ser invadidos ou uma chave de API pode ser exposta por engano. Os tokens de autenticação podem ser usado por hackers para adquirir o acesso. Autentique as pessoas somente se elas forem confiáveis ​​e use senhas fortes. Com o OAuth, você pode ir além de meras chaves de API e obter acesso aos seus dados. Você deve sempre pensar em como entrará e sairá de um lugar. Tokens restritos de remetente OAuth MTLS podem ser usados ​​em conjunto com TLS mútuo para garantir que os clientes não se comportem mal e passem tokens para a parte incorreta ao acessar outras máquinas.

Promoção da API:

Exposição excessiva de dados

Não há restrições quanto ao número de endpoints que podem ser publicados. Na maioria das vezes, nem todos os recursos estão disponíveis para todos os usuários. Ao expor mais dados do que o absolutamente necessário, você coloca a si mesmo e aos outros em perigo. Evite divulgar informações confidenciais INFORMAÇÕES até que seja absolutamente necessário. Os desenvolvedores podem especificar quem tem acesso a quê, utilizando escopos e declarações OAuth. As declarações podem especificar a quais seções dos dados um usuário tem acesso. O controle de acesso pode ser simplificado e fácil de gerenciar usando uma estrutura padrão em todas as APIs.

Falta de recursos e limitação de taxas

Os chapéus negros geralmente usam ataques de negação de serviço (DoS) como uma forma de força bruta de sobrecarregar um servidor e, assim, reduzir seu tempo de atividade a zero. Sem restrições quanto aos recursos que podem ser chamados, uma API é vulnerável a um ataque debilitante. 'Usando um gateway de API ou ferramenta de gerenciamento, você pode definir restrições de taxa para APIs. Filtragem e paginação devem ser incluídas, assim como respostas restritas.

Configuração incorreta do sistema de segurança

Diretrizes de configuração de segurança diferentes são bastante abrangentes, devido à probabilidade significativa de configuração incorreta de segurança. Uma série de pequenas coisas podem comprometer a segurança da sua plataforma. É possível que black hats com propósitos ocultos descubram informações sigilosas enviadas em resposta a consultas malformadas, por exemplo.

Atribuição em massa

O fato de um endpoint não ser definido publicamente não significa que ele não possa ser acessado pelos desenvolvedores. Uma API secreta pode ser facilmente interceptada e submetida a engenharia reversa por hackers. Dê uma olhada neste exemplo básico, que usa um Bearer Token aberto em uma API “privada”. Por outro lado, pode existir documentação pública para algo que se destina exclusivamente a uso pessoal. As informações expostas podem ser usadas por chapéus pretos não apenas para ler, mas também para manipular as características do objeto. Considere-se um hacker enquanto procura possíveis pontos fracos em suas defesas. Permitir apenas aqueles com direitos apropriados acesso ao que foi retornado. Para minimizar a vulnerabilidade, limite o pacote de resposta da API. Os respondentes não devem adicionar links que não sejam absolutamente obrigatórios.

API promovida:

Gestão inadequada de ativos

Além de aumentar a produtividade do desenvolvedor, as versões e documentações atuais são essenciais para sua própria segurança. Prepare-se para a introdução de novas versões e a descontinuação de APIs antigas com bastante antecedência. Use APIs mais recentes em vez de permitir que as mais antigas permaneçam em uso. Uma especificação de API pode ser usada como fonte primária de verdade para documentação.

Injeção

As APIs são vulneráveis ​​à injeção, mas também os aplicativos de desenvolvedores de terceiros. O código malicioso pode ser usado para excluir dados ou roubar informações confidenciais, como senhas e números de cartão de crédito. A lição mais importante a ser tirada disso é não depender das configurações padrão. Seu fornecedor de gerenciamento ou gateway deve ser capaz de acomodar suas necessidades exclusivas de aplicativos. As mensagens de erro não devem incluir informações confidenciais. Para evitar que dados de identidade vazem para fora do sistema, pseudônimos emparelhados devem ser usados ​​em tokens. Isso garante que nenhum cliente possa trabalhar em conjunto para identificar um usuário.

Registro e monitoramento insuficientes

Quando ocorre um ataque, as equipes precisam de uma estratégia de reação bem pensada. Os desenvolvedores continuarão a explorar as vulnerabilidades sem serem detectados se não houver um sistema confiável de registro e monitoramento, o que aumentará as perdas e prejudicará a percepção do público sobre a empresa. Adote uma estrita estratégia de monitoramento de API e teste de endpoint de produção. Os testadores de chapéu branco que encontram vulnerabilidades no início devem ser recompensados ​​com um esquema de recompensas. A trilha de log pode ser aprimorada incluindo a identidade do usuário nas transações da API. Certifique-se de que todas as camadas de sua arquitetura de API sejam auditadas usando dados de token de acesso.

Conclusão

Os arquitetos de plataforma podem equipar seus sistemas para se manterem um passo à frente dos invasores seguindo critérios de vulnerabilidade estabelecidos. Como as APIs podem fornecer acessibilidade a informações de identificação pessoal (PII), manter a segurança de tais serviços é fundamental para a estabilidade da empresa e a conformidade com a legislação, como o GDPR. Nunca envie tokens OAuth diretamente por uma API sem usar um gateway de API e a abordagem de token fantasma.

API promovida: