Header Ads

Como se defender contra ataques de API

Imagentle / Shutterstock. com

Estratégias de nuvem modernas fazem uso intenso de APIs para acesso controlado e interativo a serviços hospedados. Mas o acesso só é controlado se as APIs forem implementadas com segurança e não forem suscetíveis a abusos.

APIs da web

Uma interface de programação de aplicativo (API) permite que o software converse com outro software. Isso requer um conjunto de especificações. Deve haver um conjunto documentado de funções que o terminal da API fornece e regras sobre o que o cliente da API deve fazer para usar essas funções. O tipo e o formato dos dados retornados pela API devem ser definidos para cada função. Normalmente, você deseja restringir quem tem acesso à API, portanto, os clientes da API devem se autenticar de alguma forma. Em uma API restrita, as solicitações devem ser atendidas apenas quando o endpoint da API tiver verificado que a solicitação é legítima.

RELACIONADOO que é uma "API" e como você a usa?

Como com todo desenvolvimento de software, uma metodologia de segurança por design é muito melhor do que construir primeiro e proteger depois. O desastre da API do Peloton ilustra isso perfeitamente. Uma implementação de API com falha — que agora foi corrigida — permitia que chamadas de API não autenticadas fossem atendidas.

Qualquer pessoa pode recuperar dados pessoais de qualquer cliente do Peloton. A primeira “ correção ” simplesmente restringiu a API aos proprietários do Peloton. Isso era apenas um pouco melhor. Com a correção final implementada, os dados de um usuário do Peloton são finalmente privados, a menos que eles decidam explicitamente compartilhá-los.

Existem muitos outros exemplos de APIs fracas ou mal projetadas. O Facebook expôs os dados pessoais de 533 milhões de seus usuários porque uma API permitia que qualquer pessoa pesquisasse um banco de dados usando números de telefone — a uma taxa de até 1000 por minuto.

Publicidade

Mais de 80 por cento de todo o tráfego da Internet é tráfego de API. São muitas APIs. Em meados de 2021, os 10 principais riscos à segurança do Open Web Application Security Project (OWASP) não mudaram em vários anos. Infelizmente, os mesmos erros que levam às mesmas vulnerabilidades estão se repetindo continuamente. E isso é muito atraente para os cibercriminosos ignorarem.

Partes interessadas de desenvolvimento

APIs geralmente são menos protegidas do que sites e aplicativos móveis. Os requisitos de desempenho podem forçar a equipe de desenvolvimento a se concentrar em torná-los enxutos e médios. Tão enxutos que contenham muito pouco — se houver — código dedicado à proteção da API e dos dados que eles protegem. Uma API mal projetada ou mal implementada terá pontos fracos que podem ser explorados. A remediação adequada não é colocar um band-aid sobre ele e tentar tampar os orifícios. Você precisa corrigir o código ou possivelmente a lógica de negócios que foi modelada na API.

RELACIONADOComo proteger sua organização contra ataques de dicionário de senhas

Quando você tem muitos componentes de software conversando entre si por meio de chamadas de API — como microsserviços —, torna-se muito difícil detectar erros de processo da camada de negócios. Seu código pode passar na unidade, regressão e outros testes. Você pode não ter travamentos. Todos os seus logs estão limpos. Mas isso não significa que a lógica está correta, nem que todas as vulnerabilidades possíveis foram consideradas. Reunir sua equipe de segurança e sua equipe de desenvolvimento pode gerar percepções surpreendentes.

A equipe de desenvolvimento é responsável por escrever as APIs que fornecem a funcionalidade necessária. A equipe de segurança é responsável por proteger os dados que estão sendo atendidos por meio da API. Ambos são partes interessadas no sucesso do processo de desenvolvimento. Os desenvolvedores nunca vão pensar sobre segurança, ameaças e ataques como a equipe de segurança. Por que não trazer os dois conjuntos de conhecimentos para resolver o problema?

Tipos de ataques

Os tipos de ataque comuns que você encontrará podem ser agrupados de acordo com sua técnica de ataque.

  • Enchimento de credenciais: é semelhante a ataques de força bruta de senha, mas usa credenciais de API em vez de senhas de contas de usuário.
  • Ataques de injeção: Em um ataque de injeção, o cibercriminoso adiciona instruções de computador às suas solicitações de API, de forma que as instruções incorporadas atuem no endpoint da API. A injeção de SQL é um ataque que explora bancos de dados SQL. Freqüentemente, é fácil descobrir quais elementos de texto em uma chamada de API serão incluídos nas instruções SQL. Anexar instruções SQL a essas chamadas de função de API pode fazer com que esses fragmentos de SQL sejam acionados pelos servidores SQL de endpoint da API. Cross-site scripting é um ataque semelhante em que as instruções incorporadas estão em uma linguagem de script, normalmente JavaScript.
  • Negação de serviço distribuída (DDoS): esses ataques são muito semelhantes aos ataques DDoS que inundam um site com tráfego, impedindo-o de atender a solicitações genuínas. Ataques DDoS direcionados a endpoints de API estão crescendo em popularidade entre os agentes de ameaças.
  • Man-in-the-Middle (MitM) Esses ataques dependem da interceptação de tráfego entre um cliente de API genuíno e inocente e o endpoint de API . Se as credenciais de autenticação da API forem capturadas, elas podem ser usadas para reconectar, mascarando-se como o cliente API genuíno. Às vezes, as chamadas de API feitas do cliente genuíno são modificadas para que o endpoint da API faça o que os invasores desejam, não o que o cliente real deseja.

Protegendo suas APIs

Quando você está procurando proteger um subconjunto de sua infraestrutura de TI, pode ser tentador procurar soluções específicas ou novas. Mas não se esqueça dos conceitos básicos de segurança cibernética.

Quantifique o que você está lidando

Se você não sabe o que tem, não pode gerenciá-lo. Você deve identificar e caracterizar todas as APIs que usa, quer você as tenha criado ou não. Os resultados de sua auditoria de API podem revelar oportunidades para simplificar ou racionalizar seu uso de APIs. Ele também destacará quaisquer APIs antigas ou órfãs que precisam ser atualizadas ou desativadas.

Publicidade

Depois de saber quais APIs você possui, o que fazem e como são protegidos e resilientes, você pode documentar sua estratégia de segurança de API. Use a oportunidade para definir regras básicas para o desenvolvimento orientado à segurança e planeje seu roteiro de API.

Quais dados podem ser acessados ​​por meio das chamadas de API? São informações de identificação pessoal ou confidenciais de alguma outra forma? Qual é a sua classificação de dados? Se suas políticas de proteção de dados foram implementadas corretamente, elas já conterão essas informações. Revise criticamente o acesso aos dados. Você está revelando mais dados do que o necessário?

Torne suas APIs concisas

Querer tornar sua API uma experiência rica para o consumidor de dados pode levar a relatórios excessivos e fornecer detalhes desnecessários do próprio endpoint da API. Informações sobre assuntos de dados, chaves de criptografia e tokens de autenticação vazaram por APIs excessivamente verbosas. Uma abordagem mais considerada e segura é retornar a quantidade mínima de dados que o cliente da API precisa para cumprir a função solicitada.

Isso volta ao princípio da menor permissão, um elemento básico da segurança cibernética. Você só deve conceder aos usuários, processos, dispositivos IoT ou qualquer outra coisa que interaja com sua TI os privilégios mínimos necessários para que sua função ou função seja cumprida. Faça o mesmo com suas APIs.

Use criptografia

Criptografe o tráfego da API usando TSL, o sucessor do SSL. Não se guie pelo valor dos dados. Lembre-se de que você também está protegendo os tokens de autenticação do cliente API. Os invasores podem não se importar com os dados. Mas, se eles adquirirem tokens de autenticação, eles poderão usar a API para extrair mais pistas sobre seus sistemas para que possam montar ataques diferentes.

Autenticação e valores de entrada

Obviamente, você precisa de um sistema de autenticação forte. Não reinvente a roda. Sempre que possível, use uma solução reconhecida, como OAuth2.0. Você pode achar que as APIs internas não precisam ser autenticadas. Mas você pode garantir que uma API interna não se tornará pública por engano, talvez porque esteja sendo reutilizada em outro projeto?

Publicidade

Nunca aceite cegamente a entrada de uma API sem validá-la primeiro. Faça uma varredura em busca de conteúdo malformado, scripts incorporados e ataques de invasão.

Esteja ciente da frequência das solicitações de conexão e aplique medidas razoáveis ​​de limitação de taxa. Um visitante de alta frequência é alguém que está tentando entrar com força bruta ou está tentando extrair dados do seu banco de dados, solicitação a solicitação?

Allied Technologies

Firewalls de aplicativos da Web (WAFs) ajudam a proteger sites, aplicativos hospedados e APIs ao filtrar e monitorar o tráfego de e para o recurso protegido. Eles podem detectar ataques como script entre sites e injeção de SQL, entre outros. Um WAF é uma tecnologia de proteção de camada de aplicativo (nível 7 no modelo ISO), não uma solução "encaixar e esquecer" para todos os seus sites ou segurança de API. Eles são mais bem implantados como um elemento em um conjunto de defesas em camadas.

Um gateway de API fica entre o terminal da API e os clientes da API. Eles agenciam solicitações de API entre os clientes e o endpoint da API, às vezes dividindo uma solicitação em partes menores que são atendidas por diferentes microsserviços de backend. as respostas são agrupadas e enviadas de volta ao cliente API. Os gateways de API podem se integrar ou fornecer autenticação e recursos de limitação de taxa. Gateways de API de software como serviço estão disponíveis, fornecendo alta disponibilidade e escalonamento automático.

APIs estão na linha de frente

Com o crescimento implacável da nuvem e dos microsserviços, as APIs se encontram na linha de frente dos ataques cibernéticos. Os cibercriminosos gostam de probabilidades quando estão a seu favor. com tantas APIs por aí, é inevitável que muitas delas sejam mal protegidas ou mesmo desprotegidas. Não deixe que sejam seus.

Nenhum comentário