APIs e Microsserviços

29 dez, 2023

Segurança das APIs: como proteger seu ecossistema de microsserviços

Publicidade

Nos últimos anos, muitos fornecedores de SaaS (Software as a Service) adotaram a arquitetura de microsserviços como uma abordagem eficaz para desenvolver, escalar e manter seus aplicativos. No entanto, embora ela tenha muitos benefícios, também traz desafios. Nesse cenário, as APIs (Application Programming Interface, ou, em português, Interface de Programação de Aplicativos) desempenham um papel crucial nessa arquitetura.

Gerenciamento de complexidade, coordenação entre microsserviços e garantia de consistência de dados em sistemas distribuídos são algumas das adversidades que a incorporação bem-sucedida dessa arquitetura oferece. O uso de APIs nesse contexto permite que esses componentes modulares se comuniquem entre si de forma padronizada e segura, evitando que sejam isolados.

Isso facilita a troca de dados e informações, mesmo quando são desenvolvidos em diferentes tecnologias ou linguagens de programação. Além disso, em um ambiente SaaS, é comum que os clientes desejem integrar o serviço com outras ferramentas que eles utilizam e, nesses casos, as interfaces de programação permitem que os parceiros integrem facilmente os softwares com seus sistemas existentes.

Mas, há um questionamento: como manter todo esse conjunto seguro?

Segurança das APIs

Implantação segura: a proteção de microsserviços e APIs

Para além desses benefícios, um grande detalhe é que as APIs também podem ser projetadas com medidas de segurança, como autenticação, verificação da identidade de um usuário, e autorização de acesso a um usuário a determinados recursos de uma API. Todos esses fatores garantem que apenas as partes autorizadas tenham acesso aos dados e funcionalidades dos microsserviços.

A combinação adequada desses métodos contribui para a segurança dos processos, prevenindo invasões e controlando o acesso de forma granular. Entretanto, o sistema de API também pode ser vulnerável a ataques, como injeção de código ou exploração de vulnerabilidades de segurança, além de ser usado para fraudar usuários ou cometer outros crimes, o que também demanda proteção.

Nesses casos, a validação rigorosa dos payloads e sanitização de dados, o uso de mecanismos de proteção contra Cross-Site Request Forgery (CSRF) e Cross-Site Scripting (XSS), a implementação de filtros de entrada e saída, o uso de WAFs, a limitação de taxa (throttling) e controle e serviços de proteção contra DDoS, de criptografia, sistemas de monitoramento e análise de logs, são formas de mitigar ataques e garantir o compartilhamento e troca de dados seguros entre as APIs e os clientes.

Além disso, é importante manter todos os componentes da interface de aplicação atualizados com as últimas correções de segurança e patches, realizar os testes regulares de segurança, como Pentest, e proteger a infraestrutura subjacente dos microsserviços, incluindo servidores, contêineres e serviços de orquestração, para garantir que as APIs estejam sendo executadas em um ambiente seguro.

Nesse contexto, também existem ferramentas e tecnologias disponíveis para monitorar e detectar atividades suspeitas nas aplicações e nos microsserviços. Os SIEMs (Security Information and Event Management) são sistemas que coletam e analisam dados de segurança de várias fontes, incluindo logs, eventos de segurança e dados de rede. Já os  IDSs (Intrusion Detection Systems) são sistemas que monitoram o tráfego de rede em busca de atividades maliciosas. Nesses casos, ambos podem ser usados para detectar ataques.

Por sua vez, os SOARs (Security Orchestration, Automation and Response) são sistemas que ajudam as organizações a automatizar as tarefas de segurança, como a investigação e a resposta a incidentes, e podem ser usados para acelerar a resposta a ataques e reduzir o impacto dos incidentes.

Para mais, manter a segurança de um sistema não depende apenas de softwares de proteção, mas também da aplicação de uma cultura em toda a equipe de desenvolvimento e operações. Isso envolve a conscientização sobre práticas seguras, treinamento, colaboração e responsabilidade compartilhada. A promoção do apoio contínuo entre as equipes de desenvolvimento e operações e o feedback regular sobre problemas de segurança identificados permitem melhorias contínuas.

Desmentindo mitos

Já foi discutido que as APIs oferecem uma variedade de vantagens em um ambiente de microsserviços. No entanto, é importante reconhecer que também existem equívocos comuns que estão presentes nesse contexto.

O primeiro é partir do pressuposto de que as APIs são automaticamente seguras porque são usadas para comunicação interna. Embora sejam ferramentas poderosas para interação entre microsserviços, elas não garantem proteção por si só, e isso deve ser projetado, implementado e monitorado de maneira proativa para evitar vulnerabilidades e ataques.

Contudo, a ideia de que ambientes de microsserviços são mais seguros, pois os componentes são isolados, também está equivocada, pois, embora o isolamento possa limitar o impacto de alguns ataques, isso não garante uma defesa completa. Um serviço comprometido ainda pode ter acesso a dados sensíveis e ser usado como ponto de entrada para ataques.

Além disso, muitos acreditam que a proteção de perímetro é suficiente, mas ela não garante a segurança das APIs. Diversos ataques ocorrem dentro do perímetro de rede, e as ameaças podem se originar tanto de fora quanto de dentro. A criptografia também não certifica a segurança completa, embora o SSL/TLS seja essencial para proteger os dados em trânsito, ele não aborda todas as preocupações de segurança.

Para mais, admitir que testes de segurança são desnecessários no uso de microsserviços pode ser um ato autodestrutivo, já que ambientes distribuídos podem introduzir novas vulnerabilidades e pontos de falha que precisam ser identificados e mitigados por meio de testes regulares. Assim como implementar autenticação não é suficiente para a segurança da API, pois se trata de apenas uma parte do quebra-cabeça de proteção.

Em última análise, a segurança em um ambiente de microsserviços com APIs nunca deve ser subestimada, pois a crescente complexidade e distribuição dos microsserviços, juntamente com a exposição contínua das interfaces, gera uma necessidade de medidas rigorosas.

A integridade dos dados, a confidencialidade das informações e a disponibilidade dos serviços são fundamentais para a operação bem-sucedida de uma arquitetura de microsserviços. Portanto, investir em estratégias de proteção sólida é essencial para mitigar riscos e garantir que o ambiente permaneça seguro diante de ameaças cibernéticas em constante evolução.

Andre Seolin é Senior Development da Engineering Brasil. Formado em Ciência da Computação, o consultor já passou pela IBM e há seis anos atua à frente de soluções de API na multinacional de Tecnologia da Informação e Transformação Digital.