IaC pode trazer uma série de benefícios de segurança para as empresas, mas, elas trazem também alguns problemas. Saiba mais sobre os impactos mais críticos da IaC.

A Infrastructure as Code – IaC, é uma abordagem relativamente nova em cybersecurity, que pode mitigar alguns riscos, mas pode ser a fonte de uma série de outros, principalmente se for adotada de forma displicente.

Para começarmos, é importante entender o conceito de IaC e as implicações em cybersecurity.

 

Entendendo a IaC – Infrastructure as Code

A IaC é um tipo de configuração onde os desenvolvedores, ou equipes de operação automaticamente gerenciam o provisionamento de tecnologia para uma aplicação por meio de uso de software, ao invés de fazer uso de processo manual para configurar dispositivos de hardware e sistemas operacionais. IaC em alguns casos também é chamado de Software-Defined Infrastructure.

O conceito de infrastructure as code é semelhante a scritps de programação, que são usados para automatizar processos de TI. Contudo, os scripts são primariamente usado para automatizar uma série de passos estáticos, que precisam ser repetidos diversas vezes em múltiplos servidores. A IaC usa código de alto nível ou linguagem descritiva para realizar os processos de provisionamento e deployment. Por exemplo, um código de IaC pode instalar um servidor MySQL, verificar se o MySQL está rodando corretamente, criar uma conta de usuário e senha, subir uma nova base de dados e remover bases de dados sem uso.

O processo de automação da IaC lembra as práticas de design de software nas quais os desenvolvedores controlam as versões do código, testam iterações e limitam o deployment até que o software esteja aprovado para produção.

Na prática

No passado, as empresas tinham data centers físicos e a infraestrutura era de fato uma série de componentes de hardware físicos. Hoje, grande parte da infraestrutura que as empresas implementam não são hardware físico, mas deploys de Sistemas Operacionais que tomam forma de instâncias virtuais de OS, workloads em nuvem e containers.

Subir uma imagem de Sistema Operacional pode ser feita de duas formas. Primeiro, existe o modelo antigo, que envolve individualmente instalar e configurar cada uma delas. Isso se torna um desafio, criar 1.000, ou 50.000 manualmente pode levar meses.

A segunda, mais viável, envolve definir a configuração de antemão que especifique exatamente o que é requerido e usar uma ferramenta para fazer o trabalho pesado de subir as VMs, instalar o OS e implementá-lo. Por exemplo, as empresas podem criar um arquivo de configuração ou script que percorra a configuração e então usar a ferramenta para provisionar e implementar o que foi determinado pelo script. Essa segunda abordagem é o resumo do IaC.

Benefícios da IaC

A IaC é vantajosa porque a configuração é definida em um único arquivo, tornando-se assim muito mais um software propriamente dito. Isso permite que o arquivo de configuração seja compartilhado com outros e atualizado de acordo com a necessidade. Ele pode ser colocado sob controle para se ter um comparativo de versões.

Adicionalmente, a IaC permite às empresas minimizar as dificuldades entre as configurações. Sabemos que os servidores acabam ganhando uma personalidade própria à medida em que o OS e as aplicações recebem updates e a configuração é afinada ao longo do tempo. A IaC permite às equipes de TI construir rapidamente, reconstruir e colocar em produção novos servidores de forma consistente e previsível. FInalmente, IaC funciona bem num modelo de DevOps.

 

Conceitos de segurança para IaC e impactos

Depois de entendermos o que é IaC e alguns dos benefícios envolvidos, é importante olhar para a segurança e riscos. É importante explorar a IaC de forma ampla porque existe uma série de ferramentas que suportam isso, o que inclui ferramentas de provisionamento, orquestração, configuração e automação.

Por isso, vamos listar a seguir três conceitos de segurança básicos de IaC que os líderes de TI devem considerar antes de implementar essa abordagem em sua empresa.

 

1 Consistência em Hardening

Uma das vantagens significativas de IaC é a habilidade de garantir consistência ao longos dos workloads. Uma vez que é usado em todos os lugares, as configurações definidas podem ser ajustadas para se encontrar uma configuração de segurança que seja aprovada pela empresa. Como isso é automatizado, os workloads são confiáveis, e qualquer configuração de segurança usada estará sendo usada em todos os locais.

Essa feature introduz um potencial risco de segurança, um erro de configuração vai fazer com que o erro seja replicado. Assim como existem bugs no software, é possível cometer erros ao definir configurações. Assim como alguns problemas de código podem levar a problemas de segurança, configurações de IaC também podem. Para evitar isso, as equipes devem garantir que as configurações estão corretas e revisadas, assim como o processo de revisão esteja bem implementado.

Incorporar uma solução de escaneamento automático também pode ajudar a mostrar onde potenciais erros de configuração estão, assim como outras vulnerabilidades.

 

2 – Resolve problemas de erro humano com Automação

Outra vantagem de segurança do IaC é a redução de potencial erro humano, que em geral leva a culpa por problemas de configuração e outras questões de segurança. Porque a implementação passa a ser automatizada, sem intervenção humana, existe menos oportunidade para fazer mudanças na configuração e introduzir erros e problemas de segurança.

O problema da automação é que ela gera o potencial de “sprawl”. Isso ocorre quando as instâncias são colocadas em produção sem o devido plano de descomissionamento. Uma abordagem automatizada para o deploy significa mais superfície de exposição advinda de instâncias sem uso. Para mitigar esse problema, é preciso haver um inventório robusto, e, se possível, também automatizado.

 

3 – Reduz a necessidade de contas com privilégio

Outra vantagem do IaC é como reduz a quantidade de pessoas que necessitam de credenciais com privilégio. Uma vez que a implementação e a configuração são automatizadas, existe menos necessidade de contas com privilégio, já que a intervenção humana passa a ser bem reduzida.

Assim como em outras tecnologias, determinar a segurança de IaC e suas implicações dependerá de como a tecnologia está sendo usada. O desafio das equipes de segurança é maximizar os pontos positivos e minimizar os negativos. Entender esse balanço é o primeiro passo na jornada de usar o IaC como ferramenta em uma toolbox de segurança.