Skip to main content

Segurança de microsserviços: 6 boas práticas

Escrito por
blog hero snyk apps

10 de fevereiro de 2022

0 minutos de leitura

Com a adoção de implantações em contêineres, muitas equipes de desenvolvimento também têm migrado para uma arquitetura de microsserviços. Os microsserviços permitem que as equipes criem e implantem aplicações com mais agilidade e lancem funcionalidades de forma independente, encurtando os ciclos de desenvolvimento, dando mais liberdade na escolha das tecnologias e aumentando a resiliência do software.

Embora os microsserviços sejam uma ótima maneira de modernizar aplicações monolíticas, essa abordagem também pode trazer riscos de segurança. Vamos analisar a fundo a segurança de microsserviços e algumas boas práticas que vale a pena adotar.

O que é segurança de microsserviços?

Segurança de microsserviços é a estratégia que as equipes de desenvolvimento e segurança usam para minimizar os riscos associados à arquitetura de aplicações baseada em microsserviços. Esse esforço inclui criar microsserviços seguros e garantir que eles se comuniquem entre si com segurança.

Microsserviços — componentes de software independentes que podem ser implantados separadamente — facilitam e tornam mais eficiente o dimensionamento de aplicações grandes. Isso porque esses serviços independentes podem ser atualizados com muito mais facilidade, e os desenvolvedores podem escolher a pilha de tecnologia ideal para cada componente. Como os microsserviços podem ser implantados de forma independente, as organizações também podem dimensionar partes específicas da aplicação sem precisar dimensioná-la por completo, reduzindo o uso de recursos e os custos.

Ao mesmo tempo, essa capacidade de criar e implantar microsserviços com rapidez e de forma independente traz riscos de segurança. Se as equipes de desenvolvimento não adotarem boas práticas de codificação segura, cada nova implantação de microsserviço poderá introduzir riscos para a aplicação como um todo.

6 boas práticas de segurança para microsserviços

Como vimos, a segurança de microsserviços é uma abordagem para melhorar a postura de segurança geral de uma aplicação. Confira seis boas práticas a considerar ao implementar a segurança de microsserviços.

  1. Priorize a segurança desde o projeto

  2. Adote uma cultura DevSecOps

  3. Integre ferramentas de segurança de aplicações

  4. Faça a análise de dependências

  5. Use contêineres seguros

  6. Crie gateways de API

1. Priorize a segurança desde o projeto

A maioria das aplicações baseadas em microsserviços é implantada durante a modernização de sistemas monolíticos pelas organizações. Por isso, a fase de projeto é uma oportunidade ideal para melhorar a segurança de aplicações legadas. As equipes de desenvolvimento e segurança devem priorizar a segurança de aplicações ao projetar uma arquitetura de microsserviços, garantindo que a aplicação tenha uma base sólida para continuar segura à medida que cresce e evolui.

Projetar software seguro exige considerar a segurança em todas as camadas da aplicação, começando pela arquitetura. A modelagem de ameaças é um processo que analisa o projeto das operações do sistema e o fluxo de dados entre subsistemas ou microsserviços. Isso permite que as equipes identifiquem possíveis pontos fracos e os mitiguem ainda na fase de projeto.

Em uma arquitetura baseada em microsserviços, é fundamental proteger contra ameaças o código e os componentes de código aberto da aplicação, além dos contêineres e da infraestrutura que executam os microsserviços. Também é importante garantir que os microsserviços possam se comunicar entre si sem riscos de segurança.

2. Adote uma cultura DevSecOps

Um dos principais benefícios dos microsserviços é permitir que as equipes de desenvolvimento implantem componentes de software individuais com mais rapidez, sem precisar reimplantar a aplicação inteira. Embora isso ajude as equipes de DevOps a criar aplicações mais rapidamente, também pode trazer riscos de segurança. Por isso, é fundamental mudar a mentalidade e incluir testes de segurança no próprio processo de desenvolvimento.

Por isso, uma abordagem DevSecOps — que integra medidas de segurança diretamente ao processo de desenvolvimento e aos ambientes de build e integração contínua — é fundamental para reduzir riscos. DevSecOps promove a automação e estabelece a responsabilidade compartilhada pela entrega de software seguro, sem comprometer a velocidade de desenvolvimento. Na verdade, essa abordagem pode até reduzir o custo e o tempo necessários para entregar software seguro, pois os desenvolvedores não precisam mais adaptar os controles de segurança depois da implantação.

3. Integre ferramentas de segurança de aplicações

Um aspecto essencial do DevSecOps é integrar ferramentas de AppSec a um pipeline automatizado de integração e entrega contínuas (CI/CD). A integração dessas ferramentas aos pipelines de CI/CD permite que as organizações incorporem a segurança desde o início do desenvolvimento, reduzindo o tempo e o esforço necessários para melhorar a postura de segurança de uma aplicação. Isso porque é mais fácil para os desenvolvedores corrigirem problemas de segurança diretamente no IDE enquanto escrevem o código do que depois.

Por exemplo, o teste estático de segurança de aplicações (SAST) permite que as equipes de desenvolvimento encontrem e corrijam problemas de segurança no código-fonte de uma aplicação mais cedo no ciclo de vida de desenvolvimento de software (SDLC). Assim, as organizações podem avaliar cada nova alteração em um microsserviço antes que o código chegue à produção.

Comece a participar de desafios de Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.

4. Faça a análise de dependências

Além dos microsserviços, os softwares modernos costumam usar muitos componentes de código aberto. Na maioria dos casos, a quantidade de código aberto de que uma aplicação depende é muito maior do que a de código personalizado escrito pelas equipes de desenvolvimento. No entanto, essas dependências de terceiros podem conter vulnerabilidades que afetam o perfil de risco da aplicação.

Como cada microsserviço costuma usar uma pilha de tecnologia diferente, é difícil para os desenvolvedores acompanhar os componentes de terceiros e garantir que sejam seguros. Com uma ferramenta de gerenciamento da segurança de código aberto, as equipes de desenvolvimento conseguem encontrar e corrigir com mais facilidade possíveis vulnerabilidades no código aberto que utilizam.

Comece a resolver desafios de capture the flag

Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.

5. Use contêineres seguros

Como as aplicações baseadas em microsserviços podem ter dezenas ou até centenas de componentes diferentes, as equipes de desenvolvimento costumam usar contêineres para facilitar as implantações. Por isso, a segurança de contêineres é essencial para manter os microsserviços seguros e implementar a segurança cloud native.

A segurança de contêineres vai muito além das imagens usadas como base. Ela também inclui o registro de contêineres onde as imagens são armazenadas e as ferramentas de orquestração. Analisar o registro de contêineres em busca de imagens vulneráveis é essencial para reduzir o risco de vários microsserviços usarem a mesma imagem-base. Outra forma de garantir a implantação segura dos microsserviços é eliminar configurações incorretas e outros riscos associados a ferramentas de orquestração de contêineres, como o Kubernetes.

6. Crie gateways de API

Em uma arquitetura de microsserviços, as APIs são o principal meio de comunicação entre componentes de software independentes, o que as torna uma das áreas mais vulneráveis de uma aplicação.

Um gateway de API é uma ferramenta que fica entre um cliente e um conjunto de serviços de back-end. Essa ferramenta de gerenciamento de APIs cuida da autenticação, do limite de requisições e de outras tarefas para proteger a API contra abusos. Assim, os gateways de API podem proteger uma aplicação baseada em microsserviços contra acessos indesejados de terceiros e contra o grande volume de tráfego associado a um ataque de negação de serviço (DoS).

Perguntas frequentes sobre segurança de microsserviços

Microsserviços são mais seguros?

Embora o tamanho e a complexidade de uma aplicação determinem seu perfil de risco, muitas vezes uma arquitetura de microsserviços é mais segura do que uma aplicação monolítica. Como os microsserviços são desacoplados, as vulnerabilidades costumam ficar restritas a um componente específico, em vez de afetar a aplicação como um todo.

Com a autenticação adequada na comunicação entre serviços, aplicações baseadas em microsserviços também podem ter mais verificações de segurança do que aplicações monolíticas. Além disso, quando uma vulnerabilidade é descoberta, é muito mais fácil corrigir o problema e implantar novamente o microsserviço para reduzir rapidamente o risco de segurança.

Como proteger microsserviços?

Proteger microsserviços exige uma arquitetura de aplicações eficaz desde o início. Como os componentes de software são desenvolvidos e implantados com rapidez, é fundamental integrar a segurança de aplicações diretamente ao processo de desenvolvimento para entregar uma aplicação segura baseada em microsserviços. O cenário de ameaças está sempre mudando, por isso é essencial usar ferramentas automatizadas de segurança de aplicações para encontrar e corrigir continuamente vulnerabilidades que possam colocar uma aplicação em risco.

Saiba como a Coveo integrou a Snyk ao pipeline de implantação de microsserviços para ampliar as práticas de DevSecOps em toda a empresa.