BLOG

Como as APIs funcionam e por que elas são um potencial problema de segurança

Miniatura de Frank Kyei-Manu
Frank Kyei-Manu
Publicado em 25 de outubro de 2022

Muitos de nós já ouvimos o termo interface de programação de aplicativos (API) , mas, a menos que sejamos desenvolvedores de aplicativos ou ocupemos funções técnicas, podemos não ter certeza do que uma API realmente é (ou o que ela faz). O significado certamente não é intuitivo.

Uma API facilita um canal para um aplicativo acessar as informações e recursos de outro. No entanto, pode ser necessário contexto adicional, então vamos começar com uma analogia básica.

APIs explicadas

Suponha que você sofra um acidente de carro e precise consertar seu carro. Você encontra uma oficina de reparos confiável e trabalha com um representante de serviço para discutir o trabalho que precisa ser feito, tirar suas dúvidas, obter um orçamento e agendar um horário.

Não cabe a você contratar um mecânico, encomendar peças, fornecer as ferramentas e equipamentos necessários, executar testes de diagnóstico e assim por diante. Se o para-brisa precisar ser substituído, a carroceria precisar ser repintada ou as rodas precisarem ser realinhadas, seu representante de serviço também providenciará a execução desses serviços externos.

Você pode pensar no representante de serviço como a interface entre você e a oficina — o mensageiro e intérprete que lida com sua solicitação de serviços e, ao mesmo tempo, poupa você de ter que saber sobre todos os detalhes e complexidades dos bastidores envolvidos no reparo do seu carro.

O representante de serviço trabalha em seu nome, recebendo sua solicitação, interpretando e traduzindo corretamente, providenciando todos os serviços necessários para atender sua solicitação e, por fim, respondendo a você devolvendo seu carro em condições de funcionamento.

Os termos e conceitos importantes aos quais se deve prestar atenção neste cenário são a interface como mensageiro e intérprete/tradutor, o processo de solicitação-resposta e a noção de proteger você, o solicitante, dos detalhes de como os reparos são feitos. Todos esses conceitos são essenciais para o funcionamento das APIs.

Vamos agora aplicar alguns desses conceitos a um aplicativo típico que você pode usar todos os dias, como um aplicativo de viagem típico no seu telefone. O aplicativo provavelmente fornece informações atualizadas sobre voos, hotéis, cruzeiros, transporte terrestre, passeios e muito mais. É improvável que a empresa que cria este aplicativo tenha todas essas informações armazenadas em seus próprios bancos de dados ou todo o conhecimento interno. Em vez disso, esses dados são entregues por meio de um aplicativo usando APIs disponibilizadas por fornecedores parceiros, como hotéis, companhias aéreas, linhas de cruzeiros, etc. As APIs são como aqueles representantes de serviço na oficina, servindo o que é necessário ao cliente solicitante (nesse caso, seu aplicativo de viagens) e minimizando a complexidade desnecessária.

Os blocos de construção dos aplicativos modernos

Hoje, as APIs se tornaram os blocos de construção de aplicativos modernos. E como descrevemos em nosso blog anterior desta série, Como os aplicativos modernos são criados e implantados , os contêineres também são essenciais para aplicativos modernos, dividindo o aplicativo em componentes distintos para que seja mais fácil gerenciar o desenvolvimento e atualizações futuras.

As APIs são efetivamente os canais de comunicação entre esses clusters de contêineres e os serviços de aplicativos que eles compartilham. Além disso, eles facilitam trocas de dados com servidores e bancos de dados externos. (Veja a Figura 1 abaixo.)

A desvantagem é que as APIs podem expor dados a terceiros. Isso torna as APIs de uma organização extremamente atraentes para invasores, não apenas para acesso a dados, mas como potenciais pontos de entrada para outros sistemas críticos dentro da infraestrutura de uma organização. Se as devidas precauções e controles de segurança não forem implementados, as APIs podem representar sérios riscos para as organizações.

Figura 1: Clusters de contêineres e os serviços de aplicativos que eles compartilham se comunicam por meio de APIs

APIs expandem a superfície de ataque

À medida que as APIs se tornam fundamentais para o desenvolvimento de aplicativos modernos, a superfície de ataque continua a se expandir. Infelizmente, muitas organizações não conseguiram manter um inventário adequado das APIs que se conectam aos seus aplicativos. Eles também precisam garantir que as APIs sejam mantidas e atualizadas regularmente para evitar novas vulnerabilidades.

Ao explorar vulnerabilidades de API, os invasores podem obter acesso à rede e potencialmente comprometer os dados mais confidenciais de uma organização, incluindo informações de identificação pessoal (PII) ou propriedade intelectual (IP). Isso pode prejudicar a marca e a reputação de uma empresa, resultar em perda de receita e incorrer em multas significativas.

As APIs são suscetíveis a muitos dos mesmos tipos de ataques que têm como alvo aplicativos da web e móveis, incluindo:

  • Inserir código malicioso em um programa de API, geralmente onde um usuário comum insere seu nome de usuário e senha, conhecido como injeção.
  • Inundar APIs com mais tráfego do que elas podem suportar, tornando os aplicativos com os quais elas se comunicam indisponíveis para os usuários pretendidos — geralmente chamado de ataque de negação de serviço distribuído (DDoS).
  • Usar credenciais roubadas para tentar obter acesso não autorizado a APIs, geralmente conhecido como credential stuffing.

Compreendendo os riscos potenciais

As APIs se tornaram o método preferido para criar aplicativos modernos. E embora o conceito de extrair informações de uma fonte externa para um aplicativo não seja novo, os métodos de desenvolvimento de aplicativos em constante evolução e a pressão para inovar significam que as organizações podem ainda não ter compreendido os riscos potenciais envolvidos em tornar suas APIs publicamente disponíveis antes de protegê-las adequadamente.

A boa notícia é que não há nenhum grande mistério envolvido na proteção de APIs. A maioria das organizações já possui medidas para combater ataques conhecidos, como injeção, ameaças DDoS, preenchimento de credenciais e outros tipos de ataques que também têm como alvo APIs.

Assista ao vídeo abaixo para saber como a F5 está ajudando organizações a proteger as APIs que potencializam suas experiências digitais.
 

Não deixe de conferir as outras postagens do blog em nossa série de quatro partes para o Mês de Conscientização sobre Segurança Cibernética: Como os aplicativos modernos são criados e implantados , como criminosos exploram aplicativos com ataques e como contas online são invadidas por criminosos cibernéticos .