A adoção dos microserviços pode fazer toda a diferença na hora de as organizações pensarem numa solução de cibersegurança robusta para a cloud, como forma de proteger os seus serviços disponibilizados online
Por David Grave, Cybersecurity Consultant, Claranet Portugal . 26/02/2021
David Grave, Cybersecurity Consultant, Claranet Portugal
Com a complexidade crescente das aplicações que suportam os serviços online disponibilizados por empresas das mais diferentes áreas de atuação, torna-se cada vez mais importante a gestão dessa complexidade do ponto de vista do deploy, da atualização dos sistemas e, claro, da sua segurança.
Neste contexto, uma das abordagens que tem ganho relevância na agilização desses processos é a implementação de microserviços, recorrendo a containers e à metodologia SecDevOps, possíveis com a evolução de uma SOA (Service Oriented Architecture) suportada nos vários operadores de cloud.
Em termos práticos, ao dividirmos estas soluções complexas em conjuntos de microserviços que correm os seus próprios processos em containers isolados, mantendo a integridade dos seus dados e comunicando entre si por API's, podemos fazer o deploy e a atualização independente e automatizada de partes individuais das aplicações de suporte ao negócio.
Isto permite endereçar vários desafios que as empresas encontram de forma recorrente – concretamente implementar e atualizar aplicações cada vez mais complexas, responder rapidamente a funcionalidades requeridas pelo negócio mantendo elevados padrões de segurança, sem perder flexibilidade e capacidade de usar diferentes tecnologias. Adicionalmente, a divisão em microserviços possibilita da mesma forma escalar rapidamente a operação, através do deploy de várias destas instâncias de forma totalmente automatizada.
Mais transparência, maior segurança
Embora esta abordagem possa parecer complexa, a realidade é que, com a adoção que estas soluções estão a ter, assistimos a um desenvolvimento acelerado de ferramentas que permitem fazer uma gestão transparente para o cliente em modelos de Software-as-a-Service (SaaS), ou Containers-as-a-Service (CaaS). Tal é possível, por exemplo, recorrendo a Kubernetes, Containers e adotando metodologias SecDevOps, assentes nas melhores práticas de cibersegurança durante os processos de desenvolvimento e deployment.
A conjugação de todas estas soluções permite a adoção de políticas de segurança mais flexíveis e precisas, que podem ser atribuídas até o nível do workload. E esta granularidade garante que os cibercriminosos encontrarão potencialmente menos vulnerabilidades para explorar, apesar do aumento teórico da superfície de ataque.
Rebuild automático
Exclusivamente do ponto de vista da segurança, é enorme a diferença para os modelos legacy baseados nas aplicações cliente-servidor, assentes em máquinas dedicadas nos data centers. E isto porque falamos de máquinas que requerem constante atenção, processos permanentes de patching e em que, muitas vezes, qualquer intervenção implica um downtime para o negócio – e que são maioritariamente o alvo primário e persistente dos cibercriminosos.
Ao migrarmos para um modelo em que a sua flexibilidade e eficiência permitem fazer o rebuild diário automatizado, a partir de código de todo o footprint visível – por exemplo, eliminando a persistência de um ataque e limitando o mesmo à vida útil de um container – conseguimos um processo realmente disruptivo: não só do ponto de vista das operações e da cibersegurança, mas também do próprio negócio.
Deste modo, a conjugação de SecDevOps, containers e microserviços, associados ao poder da automação na cloud, garantem alta disponibilidade e um incremento significativo da resiliência, escalabilidade e segurança, permitindo que os objetivos do negócio sejam atingidos de forma mais eficiente.
Resta às organizações adotarem uma abordagem holística na escolha deste tipo de solução, bem como na escolha do Service Provider que fará a gestão da cloud a todos os níveis. Apenas com um olhar transversal sobre todo o workload de uma empresa será possível implementar as melhores soluções de compartimentação, de acordo com as necessidades de cada processo, em todas as fases de um projeto.