Fala pessoal, tudo bem com vocês? Mais uma vez eu venho aqui trazer uma parte do conhecimento obtido durante a minha minha experiência com o Google Cloud Platform (GCP) e a bola da vez aqui é o firewall de aplicação web (WAF) chamado Cloud Armor. Não irei entrar em detalhes sobre o que é um WAF e para que é utilizado, mas deixarei alguns links ao final da página.
Minha ideia aqui é demonstrar os principais passos para você configurar esse tipo de proteção por meio de explicações e prints de tela, e se precisarem de ajuda ou queiram contribuir com críticas / elogios / sugestões, podem me contactar nos canais citados na página principal, combinado?
Antes de começar a falar sobre as configurações necessárias para utilização do Cloud Armor, é importante deixar claro que as configurações no GCP estão todas “amarradas” e você precisa fazer o link com os seguintes recursos:
1.-> Machine Image 2.-> Instance Template 3.-> Instance Group 4.-> Load Balance 5.-> Cloud Armor
1. Criação de uma imagem de máquina
A primeira ação a ser realizada é a criação de uma imagem do compute a ser utilizado pelo Load Balance. Para isso, vá até a opção “Compute Engine” localizada na parte esquerda
Feito isso, agora clique na opção superior “Create Machine Image” para criação de uma imagem.
Feito isso, agora você pode criar uma imagem com base em uma instância. No exemplo abaixo, consideramos uma VM com wordpress, disponível em múltiplas localidades e criptografada com a chave gerenciada pelo Google.
Depois de feito as alterações, não esqueça de clicar no botão “Save” disponível no canto inferior esquerdo.
2. Criação de um template para instância
Uma vez criado a imagem que será utilizada pelo Load Balance, você deverá criar um template para que novas instâncias sejam provisionadas, se necessário.
Para isso, clique na opção “Instance templates” na parte superior da tela.
Na próxima tela você deverá escolher as configurações da sua máquina para ser utilizada (Ex: processamento, memória, regra de firewall, entre outros). No caso de você ter gerado uma imagem, vá até a opção “Boot disk” e troque para sua imagem através da opção “Custom images”. Mais informações sobre imagens customizadas podem ser encontradas aqui. Ao final clique no botão “Create”.
3. Criação de um grupo de instância
Como próximo passo será necessário criar um grupo de instâncias para ser utilizado no Load Balance. Para isso, clique na opção Instance Groups dentro do menu Compute Engine. Depois, clique na opção “Create Instance Group” na parte superior da tela.
Preencha as informações solicitadas como nome, descrição, localização (se será utilizado apenas uma zona ou múltiplas) e associe o template criado anteriormente na opção “Instance template”.
Obrigatoriamente você deve criar uma rotina de checagem (health check) para fazer o uso do seu Load Balance de forma segura. Clique na opção “Health check” para criação desse item.
Coloque as informações para criação do health check. Para efeitos dos testes, podemos manter as configurações destacadas abaixo.
Depois de ter inserido essas informações, clique no botão inferior “Create” para finalizar a criação do grupo de instância.
4. Criação do Load Balance
Depois dessas ações agora é a hora de criar o Load Balance (vocês devem estar se perguntando qual a relação de Load Balance x WAF, mas no GCP você só consegue o uso das políticas e regras do WAF vinculadas com esse produto).
Para criar um Load Balance, você deve acessar a opção “Networking”, “Network services” e “Load balancing”.
Clique na opção “Create Load Balancer” na parte superior.
Você terá algumas opções para definir qual tipo de load balancer você poderá criar. Nesse caso, vamos seguir com a criação do tipo “HTTP(S) Load Balancing”.
Selecione as opções destacadas abaixo:
5. Liberação de Firewall – Health Check
Para que o Load Balancer funcione corretamente, será necessário configurar uma regra de firewall liberando que probes vindo do Google sejam permitidos. Para facilitar a configuração, deixei aqui uma imagem que contém o tipo de produto, range de endereço IP a ser configurado e link com exemplo para criação de regra de firewall.
Detalhes da configuração do Health Check pode ser encontrado nessa página. Além disso, você também encontra aqui o processo para criação de uma regra de firewall.
6. Criação da Política e Regras – Cloud Armor
As configurações de bloqueio são aplicadas por meio de uma política. Para criação de uma nova, você deve acessar o menu no canto superior direito e navegar na opção Network Security e depois Cloud Armor. Depois disso, você deve criar na opção create policy para uma nova política.
Feito isso, você poderá adicionar novas regras na opção Add rule e você poderá fazer a criação da regra usando o modo básico (via endereço IP único ou range) ou modo avançado (através de condições customizadas). O Google disponibiliza um conjunto de regras pré-configuradas por meio do ModSecurity Core Rule Set e você poderá encontrar os valores a serem configurados no link aqui.
Depois de criado as regras, elas poderão ser visualizadas na página principal como demonstrado no exemplo abaixo.
7. Validação das requisições bloqueadas via Logs Explorer
Depois da criação das regras de bloqueio, você poderá consultar os logs gerados por meio da opção logs, clicando no item view policy logs.
Você será direcionado para a função log explorer na qual contém a string de busca: “resource.type:(http_load_balancer) AND jsonPayload.enforcedSecurityPolicy.name:(policy-name)”.
Você irá ver que a o nome policy-name será o nome da política criada por você.
Informações sobre o autor
Dennis Silva é Líder Técnico de Segurança da Informação com +12 anos trabalhando na área e iniciou sua carreira em uma das 4 maiores empresas de auditoria (também conhecida como Big Four) como auditor de sistemas.
Trabalhou também como Coordenador de Segurança da Informação na maior empresa de desenvolvimento de software da América Latina. Anteriormente, atuou como consultor de Segurança da Informação e seu objetivo principal era identificar e avaliar os riscos de Segurança da Informação inerentes ao negócio e identificar os controles existentes através de testes de invasão na infraestrutura interna/externa, aplicações Web e ERPs com SAP e TOTVS.
Responsável pela implementação dos controles de segurança necessários para obter a certificação ISO/EIC 27001:2013 na maior empresa de desenvolvimento de software da América Latina, potencializando a principal oferta de comercialização do software em nuvem como serviço (SaaS) em datacenter próprio.