A Segurança da sua API: Uma Necessidade Crítica
Vivemos na era da economia digital, onde um imenso volume de dados flui através de APIs. Desde negócios e jogos até educação, clima, ciência e artes, tudo opera com base em APIs. Diante de um mundo tão dependente, surpreende a pouca atenção dedicada à segurança.
Desenvolvedores muitas vezes se limitam aos padrões dos seus frameworks, ou, pior, em projetos sem framework, acreditam estar seguindo boas práticas de segurança. Administradores de sistema, por sua vez, confiam na segurança padrão oferecida pela infraestrutura ou provedor de serviços.
Essa falta de atenção é preocupante.
Fonte: developer.ibm.com
É crucial reconhecer a importância da segurança, especialmente quando nos deparamos com incidentes graves.
Mas vamos por partes. 🙂
Por Que Proteger os Endpoints da API?
A resposta parece óbvia, não é?
Precisamos proteger os endpoints porque são a base do funcionamento dos negócios.
Além disso, a falta de segurança acarreta outras consequências igualmente graves.
Perdas Financeiras 📉
Este é o impacto mais direto. Se houver uma brecha nos endpoints da API, a operação é interrompida. A recuperação de ataques pode levar tempo, o que resulta em prejuízos significativos. Embora algumas empresas possam tolerar algumas horas de inatividade, para outras isso é inaceitável.
Pense em uma casa de câmbio que fica fora do ar por alguns minutos!
Problemas de Conformidade
A segurança inadequada das APIs pode gerar sérios problemas legais, dependendo da área ou setor em que sua empresa opera. Por exemplo, no setor bancário, especialmente na União Europeia, as consequências de usar APIs inseguras podem ser desastrosas, levando até mesmo ao fim do negócio.
Danos à Reputação
Ser alvo de ataques é ruim o suficiente, mas quando a notícia vaza, a imagem da sua marca sofre um dano irreparável. A Sony, por exemplo, já foi invadida várias vezes e é vista com descrédito em círculos de segurança. Veja o caso.
Mesmo sem perda de dados ou dinheiro, será difícil convencer seus clientes a confiar novamente em sua empresa. 🙂
Custos de Infraestrutura Inflacionados 💰
Quando uma API é executada na infraestrutura, ela consome recursos (largura de banda, CPU e memória). APIs desprotegidas podem ser exploradas por pessoas mal-intencionadas, que podem forçar a API a realizar tarefas inúteis, como consultas pesadas ao banco de dados, elevando os custos da sua conta.
Em plataformas com escalonamento automático (como a AWS), o problema pode ser ainda maior. (Vale ressaltar que, em casos como esse, a AWS tende a entender a situação e ajustar as contas – pelo menos por enquanto!).
Desmotivação da Equipe
Pode-se pensar que a equipe responsável pelas falhas de segurança perderá a motivação. No entanto, as falhas podem ser resultado de uma infraestrutura mal protegida, o que também desmotiva os desenvolvedores. Caso isso se repita, a cultura da sua empresa será prejudicada.
Vantagem da Concorrência
Mesmo que não haja perdas significativas após uma falha de segurança, seus concorrentes podem usar o incidente para promover suas próprias APIs como mais seguras. Mais uma vez, será difícil convencer o mercado da sua segurança. 🙂
Em resumo, as consequências de falhas de segurança vão além das perdas financeiras.
Boas Práticas para Proteger Endpoints de API
Felizmente, existem práticas bem estabelecidas e fáceis de implementar para proteger os endpoints da API. Veja as recomendações dos especialistas:
HTTPS Sempre 🔒
Permitir que os consumidores da API se comuniquem via HTTP ou outros protocolos não seguros é um grande risco. Senhas, chaves secretas e informações de cartão de crédito podem ser facilmente roubadas por ataques man-in-the-middle ou ferramentas de rastreamento de pacotes.
HTTPS deve ser a única opção. Mesmo que o endpoint pareça trivial, conectar via HTTP não é aceitável. Certificados TLS são acessíveis, com preços a partir de US$ 20 no SSL Store.
Hash de Senha Unidirecional
Senhas nunca devem ser armazenadas em texto simples, pois, em caso de violação de segurança, todas as contas de usuário serão comprometidas. Evite também a criptografia simétrica, pois um invasor persistente pode quebrá-la. O ideal é usar algoritmos de criptografia assimétrica para armazenar senhas. Desta forma, nem invasores, nem desenvolvedores ou administradores poderão ler as senhas dos clientes.
Autenticação Forte 💪
Quase toda API utiliza alguma forma de autenticação. O sistema OAuth2 é uma boa escolha. Ele divide sua conta em recursos e permite acesso limitado ao portador do token de autenticação. Além disso, defina prazos de expiração para os tokens, como 24 horas, para que precisem ser atualizados. Desta forma, mesmo que um token vaze, as chances de o impacto do ataque serem reduzidas são maiores.
Limitação de Taxa
A menos que sua API seja utilizada por milhões de pessoas a cada minuto, é recomendável limitar o número de chamadas que um cliente pode fazer em um determinado período. Isso desencoraja bots que enviam centenas de solicitações simultâneas, consumindo recursos do sistema sem justificativa. A maioria dos frameworks de desenvolvimento web oferece um middleware de limitação de taxa.
Validação de Entrada
Pode parecer óbvio, mas muitas APIs pecam nisso. Validar a entrada significa verificar se os dados recebidos estão em formato correto e também se não há dados inesperados. A injeção de SQL, por exemplo, pode causar danos nos seus bancos de dados. Valide também o tamanho das requisições POST, retornando códigos de erro e mensagens adequadas ao cliente. Tentar aceitar e analisar entradas muito grandes pode prejudicar o desempenho da API.
Filtragem de Endereços IP (se Aplicável)
Se sua API é usada em serviços B2B por empresas em locais específicos, restrinja o acesso com base nos endereços IP. Para cada novo cliente, o endereço IP precisará ser verificado. Isso dificulta a integração, mas aumenta a segurança da API.
Ferramentas para Aumentar a Proteção da API
Existem ferramentas que podem ajudar a verificar vulnerabilidades ou a fornecer uma primeira linha de defesa para proteger as APIs?
Sim. Embora nenhuma estratégia de segurança seja perfeita, estas ferramentas podem aumentar a proteção de sua API.
Metasploit é um framework de código aberto popular para testes de penetração em aplicativos web e APIs. Ele verifica a API em vários parâmetros, identificando vulnerabilidades em diferentes níveis.
Por exemplo, o Metasploit pode verificar se suas assinaturas de API revelam as tecnologias subjacentes e o sistema operacional. Ocultar essas informações é crucial para a segurança.
Existem produtos pagos baseados no Metasploit que valem a pena considerar, como o plano Pro, que oferece suporte premium. No entanto, se sua equipe tiver experiência suficiente, a versão gratuita geralmente é suficiente.
AppTrana
AppTrana oferece uma solução abrangente para proteger APIs contra diversas ameaças, incluindo OWASP API Top 10, ataques DDoS e bots baseados em API, vazamento de dados e outros. Ele também monitora continuamente sua pontuação de risco para fortalecer a postura de segurança.
A proteção de API do AppTrana combina detecção de riscos, detecção de ameaças, políticas de segurança positiva de API, políticas DDoS específicas de API, módulos de bot e recursos de descoberta de API.
Sua descoberta de API garante visibilidade das chamadas de API, incluindo APIs não documentadas e de sombra, para entender a área de ataque. Esta ferramenta 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.
Com o Indusface AppTrana, é possível criar políticas de API personalizadas para bloquear ataques em tempo real.
Cloudflare
Além de CDN, a Cloudflare oferece recursos de segurança como WAF, limitação de taxa e proteção contra DDoS, que são essenciais para proteger sua API de ameaças online.
Invicti
Invicti possui a proposta de “digitalização baseada em provas”. Muitas vezes, condições irregulares na rede ou comportamentos menos conhecidos de APIs podem ser interpretados como brechas de segurança, que depois se mostram falsos positivos.
Isso desperdiça recursos, pois todas as vulnerabilidades relatadas precisam ser verificadas manualmente. Invicti afirma ser capaz de fornecer provas de conceito para os relatórios, eliminando dúvidas sobre os elos fracos encontrados.
Com empresas como Sony, Religare, Coca-Cola e Huawei como clientes, você pode ter certeza de que eles estão fazendo um bom trabalho. 🙂
SoapUI Pro
Desenvolvido pela SmartBear, SoapUI Pro facilita a criação de testes de API e fornece relatórios precisos. Ele também se integra com o pipeline CI/CD, garantindo que nenhuma adição de código comprometa a segurança da API.
SoapUI funciona com Swagger, OAS e outros padrões de API populares, economizando tempo. Com clientes como Microsoft, Cisco e MasterCard, e planos a partir de US$ 659 por ano, esta é uma ferramenta valiosa para APIs mais seguras.
Okta
Use Okta para que seus desenvolvedores se concentrem em melhorar a experiência do usuário e proteger os dados corporativos com eficiência. Ele oferece autorização OAuth 2.0 e é compatível com aplicativos móveis e web, além de serviços de gerenciamento de API de terceiros.
Com Okta, é possível criar, auditar e manter políticas de acesso à API por meio de consoles intuitivos, sem a necessidade de código personalizado. Ele também permite proteger suas APIs sem a necessidade de gateways adicionais.
Okta utiliza políticas baseadas em identidade para controlar diferentes tipos de usuários e serviços, com acesso definido por perfis, redes, grupos, consentimento e clientes. É possível usar dados dinâmicos de sistemas internos para integração e migração mais rápidas.
A ferramenta facilita a administração centralizada de APIs e permite proteger recursos de API, com foco na segurança e proteção do acesso entre microsserviços.
Conclusão
Existe uma grande variedade de ferramentas de segurança de APIs disponíveis, de código aberto, gratuitas ou comerciais.
Experimente algumas delas e veja qual funciona melhor para você.