Melhores Práticas de Segurança para APIs
A segurança da API nunca deve ser tomada como garantida. Com a crescente demanda por projetos centrados em dados, as empresas se abriram rapidamente para o seu ecossistema por meio de APIs SOAP ou REST.
As Interfaces de Programação de Aplicativos (ou APIs, para abreviar) são as portas para os dados bem guardados de uma empresa. Elas são extremamente úteis porque permitem que dois aplicativos diferentes se comuniquem.
Superficialmente, isso é ótimo porque torna a vida muito mais fácil para os desenvolvedores, mas, ao mesmo tempo, cria o seguinte desafio: como podemos manter as portas abertas para o ecossistema da API e fechadas para hackers ao mesmo tempo?
Existem maneiras de fazer isso e estratégias que você pode empregar para colher os benefícios que as APIs oferecem, mantendo todos os seus dados seguros. Então, vamos examinar algumas práticas recomendadas para a segurança das API. Aqui estão 12 dicas simples para evitar riscos de segurança e proteger as suas APIs.
1. Criptografia
Seja enigmático. Nada deve ficar claro para comunicações internas ou externas. A criptografia converterá suas informações em código. Isso tornará muito mais difícil que dados confidenciais acabem nas mãos erradas.
Você e seus parceiros devem codificar todas as trocas com TLS (o sucessor do SSL), seja criptografia unidirecional (TLS unidirecional padrão) ou, melhor ainda, criptografia mútua (TLS bidirecional).
Use as versões mais recentes do TLS para bloquear o uso dos conjuntos de cifras mais fracos.
2. Autenticação
Não fale com estranhos. Em termos simples, a autenticidade é real. Significa que algo (ou alguém) é quem diz ser. No mundo digital, a autenticação é o processo de verificação da identidade de um usuário. Ela essencialmente tira a máscara de qualquer pessoa que queira ver as suas informações.
Portanto, você sempre deve saber quem está chamando as suas APIs. Existem vários métodos para autenticar:
Autenticação básica HTTP, em que um usuário precisa fornecer ID de usuário e senha
Chave de API, em que um usuário precisa de um identificador exclusivo configurado para cada API e conhecido pelo API Gateway
Um token que é gerado por um servidor IdP (Provedor de Identidade). OAuth 2 é o protocolo mais popular que oferece suporte a esse método.
No mínimo você deve usar uma chave API (chave assimétrica) ou autenticação básica de acesso (usuário/senha) para aumentar a dificuldade para invadir o seu sistema. Mas você deve considerar o uso do OAuth 2 como seu protocolo de escolha para uma segurança robusta das suas APIs.
3. Conexão OAuth e OpenID
Delegue todas as responsabilidades. Um bom gerente delega responsabilidades e uma ótima API também. Você deve delegar autorização e/ou autenticação das suas APIs a provedores de identidade (IdP) terceirizados.
O que é OAuth 2? É um mecanismo mágico que evita que você tenha que se lembrar de dez mil senhas. Em vez de criar uma conta em cada site, você pode se conectar por meio das credenciais de outro provedor, por exemplo, Facebook ou Google.
Funciona da mesma forma para APIs: o provedor de API depende de um servidor terceirizado para gerenciar as autorizações. O consumidor não insere suas credenciais, mas fornece um token fornecido pelo servidor de terceiros. Ele protege o consumidor, pois ele não divulga suas credenciais, e o provedor da API não precisa se preocupar em proteger os dados de autorização, pois recebe apenas tokens.
OAuth é um protocolo de delegação comumente usado para transmitir autorizações. Para proteger ainda mais suas APIs e adicionar autenticação, você pode adicionar uma camada de identidade sobre ela: este é o padrão Open Id Connect, estendendo o OAuth 2.0 com tokens ID.
4. Chame especialistas em segurança
Não tenha medo de pedir (ou usar) alguma ajuda. Chame alguns especialistas em segurança. Use sistemas antivírus experientes ou servidores ICAP (Internet Content Adaptation Protocol) para ajudá-lo na verificação da carga útil das suas APIs. Isso o ajudará a evitar que qualquer código ou dados maliciosos afetem seus sistemas.
Existem várias APIs de segurança que você pode usar para proteger os seus dados. Elas podem fazer coisas como:
Integrar a autenticação de dois fatores
Criar login sem senha ou senhas únicas baseadas em tempo
Enviar alertas push se houver uma violação
Proteger contra vírus e malware
Evitar fraudes
Informar se uma senha é uma senha conhecida usada por hackers
Adicionar inteligência de ameaças
Fornecer monitoramento de segurança
A melhor parte é que alguns desses sistemas antivírus são gratuitos. Outros oferecem planos mensais. Os planos premium fornecem mais proteção, mas você pode decidir por si mesmo o tipo de segurança de que precisa.
5. Monitoramento: auditoria, log e versão
Seja um stalker. Monitorar continuamente sua API e o que ela faz pode compensar. Seja vigilante como aquele pai superprotetor que quer saber tudo sobre as pessoas ao redor de seu filho ou filha.
Como você faz isso? Você precisa estar pronto para solucionar problemas em caso de erro. Você precisará auditar e registrar informações relevantes no servidor — e manter esse histórico enquanto for razoável em termos de capacidade para seus servidores de produção.
Transforme seus logs em recursos para depuração em caso de incidentes. Manter um registro completo ajudará você a acompanhar e tornar qualquer coisa suspeita mais perceptível.
Além disso, painéis de monitoramento são ferramentas altamente recomendadas para rastrear o seu consumo de API.
Não se esqueça de adicionar a versão em todas as APIs, de preferência no caminho da API, para oferecer várias APIs de versões diferentes funcionando e para retirar e depreciar uma versão em detrimento da outra.
6. Compartilhe o mínimo possível
Seja paranoico. Tudo bem ser excessivamente cauteloso. Lembre-se, é vital proteger seus dados.
Exiba o mínimo de informações possível em suas respostas, especialmente em mensagens de erro. Bloqueie assuntos e conteúdo de e-mail para mensagens predefinidas que não podem ser personalizadas. Como os endereços IP podem fornecer locais, guarde-os para você.
Use IP Whitelist e IP Blacklist, se possível, para restringir o acesso aos seus recursos. Limite o número de administradores, separe o acesso em diferentes funções e oculte informações confidenciais em todas as suas interfaces.
7. Proteção do sistema com limitação e cotas
Acelere-se. Você deve restringir o acesso ao seu sistema a um número limitado de mensagens por segundo para proteger a largura de banda do seu sistema de back-end de acordo com a capacidade de seus servidores. Menos é mais.
Você também deve restringir o acesso pela API e pelo usuário (ou aplicativo) para garantir que ninguém irá abusar do sistema ou de qualquer API em particular.
Limites e cotas de estrangulamento – quando bem definidos – são cruciais para evitar que ataques vindos de diferentes fontes inundem seu sistema com várias solicitações (DDOS – Distributed Denial of Service Attack). Um DDOS pode bloquear usuários legítimos de seus próprios recursos de rede.
8. Validação de dados
Seja exigente e recuse presentes surpresa, especialmente se forem muito grandes. Você deve verificar tudo o que seu servidor aceita. Tenha cuidado para rejeitar qualquer conteúdo adicionado ou dados que sejam muito grandes e sempre verifique o conteúdo que os consumidores estão enviando para você. Use a validação de esquema JSON ou XML e verifique se seus parâmetros são o que deveriam ser (string, integer…) para evitar qualquer injeção SQL ou bomba XML.
9. Infraestrutura
Rede e estar atualizada. Uma boa API deve se apoiar em uma boa rede de segurança, infraestrutura e software atualizados (para servidores, balanceadores de carga), para ser sólida e sempre se beneficiar das últimas correções de segurança.
10. OWASP Top 10
Evite vespas. O Top 10 do OWASP (Open Web Application Security Project) é uma lista das dez piores vulnerabilidades, classificadas de acordo com sua capacidade de exploração e impacto. Além dos pontos acima, para revisar seu sistema, verifique se você protegeu todas as vulnerabilidades OWASP.
11. Firewall API
Construa uma parede. Para algumas pessoas, construir um muro pode resolver todos os problemas da imigração. Este é o caso, pelo menos para as APIs! Sua segurança de API deve ser organizada em duas camadas:
A primeira camada está na DMZ, com um firewall de API para executar mecanismos básicos de segurança, como verificação do tamanho da mensagem, injeções de SQL e qualquer segurança baseada na camada HTTP, bloqueando intrusos antecipadamente. Em seguida, encaminhe a mensagem para a segunda camada.
A segunda camada está em LAN com mecanismos avançados de segurança no conteúdo dos dados.
Quanto mais desafiador for para os invasores cibernéticos obterem suas informações, melhor.
12. API Gateway (Gerenciamento de API)
Porta de entrada para o céu. Todos os mecanismos acima são longos para implementar e manter. Em vez de reinventar a roda, você deve optar por uma solução de gerenciamento de API madura e de alto desempenho com todas essas opções para economizar seu dinheiro, tempo e recursos e aumentar seu tempo de lançamento no mercado. Um API Gateway ajudará você a proteger, controlar e monitorar seu tráfego.
Além de ajudá-lo a proteger facilmente suas APIs, uma solução de gerenciamento de API ajudará você a entender seus dados de API para tomar decisões técnicas e de negócios: a chave para o sucesso!
Agora você sabe mais sobre os mecanismos básicos para proteger suas APIs! Divirta-se protegendo-as, esperançosamente com uma ótima solução de gerenciamento de API.
Não subestime a segurança da API
É lamentável, mas as ameaças da Internet são abundantes e os hackers são implacáveis. Implementar um sólido plano de segurança de API é fundamental para proteger suas informações. Crucialmente, a prática final recomendada é incorporar a segurança da API na mentalidade geral e no processo de como as APIs são projetadas e desenvolvidas.
A Amplify API Management Platform da Axway torna mais fácil do que nunca proteger suas experiências digitais. Ela não apenas monitora e protege sua API, mas você também terá todas as informações necessárias em um só lugar. É visível e fácil de ler. Você nunca ficará vulnerável a ataques cibernéticos, permitindo que você se concentre no que precisa ser feito.
E se você combinar a tecnologia certa com um processo mais deliberado, incorporando segurança ao processo de design desde o início, poderá descobrir e lidar com as ameaças à segurança antes que elas surjam.