Morte por mil vazamentos de dados: como as APIs sobrecarregam a segurança

Publicados: 2022-06-14

As superfícies de ataque de hoje são mais amplas do que nunca, vulnerabilidades saindo de aplicativos e habitando as interfaces de programação de aplicativos flexíveis que mantêm o mundo da tecnologia girando.

Infelizmente, embora a maioria esteja ciente das ameaças tradicionais de aplicativos da Web, as APIs continuam sendo uma área obscura de segurança. O gigantesco cenário de ameaças de hoje exige um WAF de nuvem competente e até mesmo investimento em WAAP.

O que é uma API?

As APIs são a cola que mantém a experiência de navegação moderna unida. As APIs simplificam o uso e o desenvolvimento de software, permitindo que aplicativos da Web individuais troquem dados. Fazer uma solicitação a um servidor por meio de um aplicativo hoje em dia é tratado por uma API relevante, graças ao fato de que as APIs implementadas corretamente são muito seguras.

Em vez de o servidor ser exposto diretamente às suas informações, seu dispositivo e a API relevante devem compartilhar pequenos pacotes de dados, comunicando apenas o necessário.

Ágil e API: problema duplo de segurança

Ágil é a palavra de ordem dos negócios do passado – descreve uma forma de produção que amplifica a ideia empreendedora de 'produto mínimo viável'. O objetivo do Agile é impulsionar o produto mínimo em cada estágio; em vez de chamar um produto de 'concluído', ele é meramente inserido em mais uma rodada de correção de bugs e melhorias.

Embora esse patch perpétuo pareça fantástico para a segurança (suporte de software constante? Legal!) A realidade econômica da produção de software significa que a quantidade de APIs rapidamente se torna pesada.

À medida que as equipes de desenvolvimento se movem rapidamente, as APIs raramente são documentadas de forma abrangente. Isso torna incrivelmente difícil analisar os mecanismos internos de um aplicativo e entender quais APIs fazem o quê. Também torna a segurança infinitamente mais difícil, pois as próprias equipes de desenvolvimento não sabem o tamanho real de seu inventário de APIs. Isso coloca a segurança cibernética como uma prioridade baixa; sempre reativo e nunca proativo.

APIs negligenciadas

Quando a segurança do aplicativo é mencionada, a primeira coisa que vem à mente são os pesos pesados ​​da segurança. Ataques como scripts entre sites; Injeção de SQL e ataques DDoS são incrivelmente conhecidos. Os próprios aplicativos geralmente são bem protegidos por soluções plug-and-play, como firewalls de aplicativos da Web de patrulhamento de perímetro.

Pouca atenção é dada às APIs, muito em detrimento da organização alheia e seus clientes. Veja o exemplo de uma vulnerabilidade de API que surgiu no sistema da Uber.

Quando um motorista da Uber entra na Uber por meio de um link de referência, ele inicializa o aplicativo e insere o código de referência. Ao pressionar o botão enter, o navegador do aplicativo se comunica com o host da API “bonjour.uber.com”. A partir daí, o bonjour.uber recebe o parâmetro User ID e retorna detalhes sobre o motorista de volta ao aplicativo do usuário, prontos para serem inseridos na tela de consentimento a seguir.

No entanto, esta API foi considerada culpada de duas grandes violações de segurança. A primeira foi a autorização de nível de objeto quebrado (BOLA). A API não verificou se o ID do usuário correspondia ao parâmetro de ID; foi, portanto, possível acessar os dados de outros usuários simplesmente alterando o ID do usuário.

A segunda questão foi a exposição excessiva de dados. A resposta da API – para retornar detalhes do usuário – juntou todas essas informações em um lote, contendo cada um dos detalhes do usuário. Isso significava que a API retornava informações que o cliente não precisava explicitamente, violando um dos principais pilares das melhores práticas de segurança cibernética.

Agora considere que a organização média depende de mais de 15.500 APIs, e a escala de risco começa a aparecer. Felizmente, a API do Uber foi conectada antes que qualquer dano maior ocorresse; a seguinte empresa não teve a mesma sorte.

O Problema do Pelotão

A marca de fitness em casa da Peloton é apreciada por mais de 3 milhões de assinantes. As aulas de fitness ao vivo são um grande ponto de venda, mas se você não estiver disposto a compartilhar seus dados médicos com outros participantes da aula, é possível definir sua conta do pelotão como privada.

Infelizmente, várias vulnerabilidades da API viram a exposição desses dados a usuários não autorizados. As informações dos participantes da aula podem ser extraídas em grande escala, pois um endpoint da API falhou ao validar um usuário solicitante. Isso permitiu que invasores não autorizados obtivessem o nome de usuário, localização, ID do treino, sexo e idade dos usuários do Peloton.

As APIs têm sido a causa de vazamentos de dados de alto perfil há anos. Os constantes escândalos de dados do Facebook ao longo de 2018 e 2019 viram uma violação após a outra, principalmente por meio de APIs de desenvolvedores de terceiros. Um exemplo foi a API de Grupos; os desenvolvedores que trabalham em um aplicativo de gerenciamento de mídia social B2B podem acessar livremente os nomes e mais informações pessoais dos membros do grupo. Embora esse aplicativo de gerenciamento de mídia social tenha como objetivo ajudar os administradores de grupo a gerenciar seus grupos com mais eficiência, o Facebook teve que removê-lo e sua API.

Esses escândalos de dados culminaram em 2021, quando um banco de dados do mercado negro de mais de 533 milhões de usuários do Facebook teve seus nomes, números de telefone e IDs de usuários do Facebook vazados.

Prevenção de vazamento de API

O Open Web Application Security Project (OWASP) publica regularmente as vulnerabilidades de aplicativos da Web mais graves e difundidas para ficar de olho. A crescente ameaça à segurança representada pelas APIs é grave o suficiente para garantir sua própria lista dos dez principais OWASP, que é consistentemente encabeçada pela Autorização em nível de objeto quebrado.

Felizmente, proteger suas APIs – além de exigir um ciclo de desenvolvimento mais lento – acompanha de perto a proteção de sua organização como um todo. Seu primeiro ponto de chamada seria um firewall de aplicativos da Web (WAF) decente. Esta solução monitora os perímetros de seus aplicativos, evitando que gateways de API sejam explorados por grandes vulnerabilidades.

Aplicação Web e Proteção de API (WAAP) leva as coisas um passo adiante. Ele fica inteiramente no limite de um aplicativo voltado para o público, analisando todo o tráfego de entrada. Ao monitorar padrões de tráfego e solicitações legítimos, os WAAPs são ferramentas de segurança altamente especializadas, projetadas especificamente para proteger APIs.

Enquanto o WAAP é um sistema defensivo em nível de endpoint, as soluções Runtime Application Self Protection (RASP) envolvem aplicativos Web específicos. Uma solução RASP – distinta do WAF – também tem insights sobre o funcionamento interno e os comportamentos de sua aplicação. Dessa forma, se uma API for usada como ponto de apoio em um ataque e consultada para obter mais informações do que deveria, um RASP pode encerrar um ataque proativamente.

Com uma infinidade de opções de proteção de API disponíveis, proteger seus aplicativos e sua organização nunca foi tão fácil.