Por que e como proteger o endpoint da API?

Como você está protegendo sua API?

É a era da explosão da economia digital, e grandes cargas de dados estão sendo canalizadas por meio de APIs. Negócios, jogos, educação, clima, ciência, artes. . . O que você disser; tudo funciona em APIs. Para um mundo tão fundamentalmente dependente de APIs, há surpreendentemente pouco foco na segurança.

Para desenvolvedores, os padrões de seus frameworks são suficientes; ou pior ainda, quando nenhuma estrutura está sendo usada, eles pensam que estão seguindo as práticas de segurança. Para administradores de sistema, a segurança padrão oferecida por sua infraestrutura ou provedor de serviços é o que eles confiam.

Não é uma visão bonita, se você me perguntar.

Fonte: developer.ibm.com

Escusado será dizer que há muito em jogo, que só percebemos quando algo verdadeiramente terrível acontece.

Mas as primeiras coisas primeiro. 🙂

Por que proteger endpoints de API?

Isso tem que ser um acéfalo, certo?

Precisamos proteger os endpoints porque, bem, é disso que o negócio depende.

Embora esse seja um argumento suficientemente forte por si só, quero ampliar um pouco o ponto de vista e destacar outras consequências relacionadas, mas igualmente mortais.

Perda de negócios 📉

Este é o óbvio. Se alguém conseguir mexer com seus endpoints de API, isso interromperá tudo. As violações de segurança também podem levar muito tempo para se recuperar, o que se traduz em suicídio em termos de negócios. Embora seja verdade que a maioria das empresas provavelmente não será afetada por uma ou duas horas de inatividade, para alguns, isso não é permitido.

Imagine uma casa de câmbio inoperante por alguns minutos!

Problemas de conformidade

Não proteger suas APIs corretamente pode causar sérios problemas, dependendo de quais regiões ou setores você está lidando. Por exemplo, se você estiver atendendo ao setor bancário (especialmente na UE), o custo de ser descoberto servindo com APIs inseguras resultará em enormes problemas legais e de conformidade. Tanto que pode até significar o fim do seu negócio.

Perda de reputação

Ser hackeado é doloroso o suficiente por si só, mas se as notícias forem divulgadas, haverá uma perda irrecuperável para a imagem da sua marca. Por exemplo, a Sony foi hackeada algumas vezes até agora e, nos círculos de segurança, a empresa é uma chacota Do tipo.

Mesmo que não ocorra perda real de dados ou dinheiro, boa sorte tentando convencer seus clientes fugitivos. 🙂

Contas de infraestrutura infladas 💰

Quando sua API é executada em infraestrutura, ela consome recursos (largura de banda, CPU e memória, principalmente). Por exemplo, onde a API não está protegida adequadamente e pessoas de fora mal-intencionadas conseguem interagir com ela, é possível forçar a API a continuar fazendo muito trabalho inútil (executando consultas pesadas ao banco de dados, por exemplo), o que pode disparar até suas contas por razões.

Em plataformas em que o dimensionamento automático de recursos está habilitado (como AWS), os resultados podem ser chocantes (fora do tópico, mas se você for pego em uma sopa como essa na AWS, eles entenderão bem a situação e desistirão imediatamente a conta inflada – até o momento, pelo menos!).

  O que são os códigos do Google Meet?

Moral da equipe

Então, você pode estar pensando, que a equipe que deixou esses compromissos acontecerem perderá o moral sobre eles. Bem, não exatamente. É possível que os comprometimentos tenham ocorrido devido à fraca segurança da infraestrutura, o que desanimará os desenvolvedores ou vice-versa.

Se isso acontecer tempo suficiente, você terá uma cultura em suas mãos que você vai se arrepender de deixar desenvolver.

Ganhos do concorrente

Então, digamos que houve uma violação, mas não houve perda real. No entanto, seus concorrentes usarão o incidente para criar sua própria API e afirmar o quanto a deles é mais segura (mesmo que não seja!). Mais uma vez, boa sorte tentando convencer o mercado. 🙂

Em suma, há consequências para as violações de segurança que vão além da perda de dinheiro.

Práticas recomendadas para proteger endpoints de API

Felizmente, existem certas práticas fáceis de implementar e bem compreendidas que você pode aplicar aos seus endpoints de API para protegê-los. Aqui está o que a maioria dos especialistas em segurança recomenda.

HTTPS sempre 🔒

Se seus endpoints de API permitirem que os consumidores de API conversem por meio de http ou outros protocolos não seguros, você os estará colocando em grande risco. Senhas, chaves secretas e informações de cartão de crédito podem ser facilmente roubadas como qualquer ataque man-in-the-middleou a ferramenta packet sniffer pode lê-los como texto simples.

Portanto, sempre faça do https a única opção disponível. Não importa o quão trivial um endpoint possa parecer, conectar-se por http não deve ser uma opção. O certificado TLS não custa muito; você pode comprar por tão baixo quanto $ 20 do Armazenamento SSL.

Hash de senha unidirecional

As senhas nunca devem ser armazenadas como texto simples, pois no caso de ocorrer uma violação de segurança, todas as contas de usuário serão comprometidas. Ao mesmo tempo, a criptografia simétrica deve ser estritamente evitada, pois qualquer invasor engenhoso e persistente o suficiente poderá quebrá-la.

A única opção sugerida são algoritmos de criptografia assimétrica (ou “unidirecional”) para armazenar senhas. Dessa forma, nem um invasor, nem qualquer desenvolvedor ou administrador de sistema dentro da empresa conseguirá ler as senhas dos clientes.

Autenticação forte 💪

Agora, quase toda API tem uma forma de autenticação, mas na minha opinião, o sistema OAuth2 funciona melhor. Ao contrário de outros métodos de autenticação, ele divide sua conta em recursos e permite apenas acesso limitado ao portador do token de autenticação.

Ao mesmo tempo, outra prática muito boa é definir tokens para expirar a cada, digamos, 24 horas, para que eles precisem ser atualizados. Dessa forma, mesmo que seu token vaze, há uma chance de que o prazo de 24 horas reduza o impacto da violação.

Aplicar limite de taxa

A menos que você tenha uma API que é usada por milhões de pessoas a cada minuto, é uma boa ideia impor um limite de quantas chamadas um cliente pode fazer para a API em uma determinada janela de tempo.

Isso é principalmente para desencorajar os bots, que podem continuar enviando centenas de solicitações simultâneas a cada segundo e fazer com que sua API consuma recursos do sistema sem um bom motivo. Todas as estruturas de desenvolvimento da Web vêm com um middleware de limitação de taxa (e, se não, é bastante fácil adicioná-lo por meio de uma biblioteca) que leva apenas um minuto para configurar.

  Como combinar caminhos de movimento no Microsoft PowerPoint

Validar entrada

Isso soa como um acéfalo, mas você ficará surpreso com quantas APIs caem nessa. Validar a entrada não significa apenas verificar se os dados recebidos estão em um formato correto, mas também se não são possíveis surpresas. Um exemplo simples é a injeção de SQL, que pode acabar com seus bancos de dados se você deixar as strings de consulta passarem com pouca ou nenhuma verificação.

Outro exemplo é validar o tamanho da solicitação POST e retornar um código de erro e uma mensagem adequados ao cliente. Tentar aceitar e analisar entradas ridiculamente grandes só servirá para explodir a API.

Impor filtragem de endereço IP, se aplicável

Se você gosta de serviços B2B e suas APIs são usadas por empresas de locais definidos, considere adicionar uma camada extra de segurança que restringe os endereços IP que podem acessar sua API. Para cada novo local e novo cliente, o endereço IP precisará ser verificado em relação à solicitação recebida.

Sim, ele adiciona incômodo à integração, mas o resultado final é uma segurança muito mais rígida do que pode ser alcançado de outra forma.

Ferramentas para aumentar a proteção da API

Existem ferramentas que podem nos ajudar a verificar vulnerabilidades ou, melhor ainda, oferecer a primeira linha de defesa quando se trata de proteger APIs?

Felizmente, sim. Existem várias ferramentas que você pode usar, mas lembre-se de que, no final das contas, nenhuma estratégia de segurança é perfeita. Dito isso, essas ferramentas podem aumentar muitas vezes a segurança da sua API, por isso são recomendadas.

Metasploit é uma estrutura de código aberto extremamente popular para testes de penetração de aplicativos da Web e APIs. Ele pode verificar sua API em vários parâmetros diferentes e fazer uma auditoria de segurança exaustiva para diferentes níveis de vulnerabilidades presentes.

Por exemplo, a verificação de segurança conduzida pelo Metasploit pode informar se suas assinaturas de API fornecem ou não as tecnologias subjacentes e o sistema operacional; ocultar isso geralmente é metade da batalha vencida na segurança da API.

Embora a estrutura principal de código aberto geralmente seja suficiente, existem excelentes produtos pagos construídos em cima do Metasploit que valem a pena dar uma olhada. O plano pro é ótimo se você deseja suporte premium e usará a estrutura em profundidade, mas geralmente não é necessário se sua equipe tiver experiência suficiente.

AppTranaGenericName

Proteção de API dedicada do AppTrana Os recursos oferecem uma solução abrangente baseada em risco para proteção contra uma ampla gama de ameaças de API, incluindo OWASP API top 10, ataques DDoS e bot baseados em API, ameaças incorporadas, vazamento de dados etc. testes, ele monitora continuamente sua pontuação de risco para fortalecer a postura de segurança.

A proteção de API do AppTrana garante a solução mais abrangente com a combinação de detecção de risco, detecção de ameaças de API, políticas de segurança positiva de API, políticas DDoS específicas de API, módulos de bot específicos de API e recursos de descoberta de API.

  Como baixar todas as fotos de uma conversa do Messenger

Sua descoberta de API garante visibilidade completa das chamadas de API, incluindo APIs não documentadas e de sombra, para entender sua superfície de ataque de API. Essa proteção de API dedicada coleta informações sobre detalhes do usuário, comportamento de uso da API, atividade de ameaças, mapas de chamadas de API e muito mais para mostrar o status da proteção com análises em tempo real.

Usando o Indusface AppTrana, você pode gerar políticas específicas de API personalizadas para bloquear o abuso focado em API em tempo real.

Cloudflare

Não apenas CDN, mas Cloudflare oferecem muitos recursos de segurança, como WAF, limitação de taxa, proteção contra DDoS, que serão essenciais para proteger sua API contra ameaças online.

Invicti

Invicti vem com uma USP de “digitalização baseada em prova”. Em termos mais simples, muitas vezes é possível que condições de rede irregulares ou alguns comportamentos de API menos conhecidos sejam interpretados como brechas de segurança, que mais tarde se descobrem erradas.

Isso desperdiça recursos, pois todas as vulnerabilidades relatadas precisam ser verificadas novamente manualmente para confirmar que não são falsos positivos. Invicti diz que a ferramenta é capaz de fornecer uma prova de conceito forte o suficiente para os relatórios, tirando dúvidas sobre os elos fracos encontrados.

Com empresas como Sony, Religare, Coca-Cola, Huawei, etc., em sua lista de clientes, você pode ter certeza de que essas pessoas estão fazendo algo certo. 🙂

SoapUI Pro

Construído por SmartBear, SoapUI Pro é uma maneira intuitiva e fácil de criar testes de API e obter relatórios precisos e orientados por dados sobre eles. Ele também se integra perfeitamente ao pipeline de CI/CD, garantindo que nenhuma nova adição de código comprometa a segurança de sua API.

SoapUI é capaz de trabalhar com Swagger, OAS e outros padrões de API populares, reduzindo significativamente o tempo para começar. Com clientes como Microsoft, Cisco, MasterCard, Oracle, etc., e planos a partir de $ 659 por ano, esta é uma ferramenta valiosa para APIs mais seguras.

Okta

Tentar Okta para permitir que seus desenvolvedores se concentrem em aprimorar a experiência do usuário e proteger seus dados corporativos com eficiência. Ele oferece autorização OAuth 2.0 e foi desenvolvido para aplicativos móveis e da web. Também é compatível com serviços de gerenciamento de API de terceiros.

Use o Okta para criar, auditar e manter todas as políticas de acesso à API por meio de consoles amigáveis ​​e personalizados, sem a necessidade de códigos personalizados. Ele oferece flexibilidade extra para que você não precise proteger suas APIs usando instâncias de gateway extras.

Okta engloba política orientada por identidade para controlar diferentes tipos de usuários e serviços sob o mesmo teto. Defina o acesso dependendo dos perfis de usuário, redes, grupos, consentimento e clientes. Estenda os tokens usando dados dinâmicos de seus sistemas internos para aproveitar uma integração mais rápida e uma migração perfeita.

Ele facilita a administração centralizada de APIs e permite proteger recursos de API. O Okta se concentra na segurança, permitindo que você proteja o acesso entre diferentes microsserviços.

Conclusão

Não falta das ferramentas de segurança de APIs disponíveis no mercado, sejam elas de código aberto, gratuitas ou comerciais, ou qualquer combinação destas.

Experimente alguns deles da lista e veja o que funciona melhor para sua necessidade.