GCP - VPC & Networking

Reading time: 5 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Rede de Computação GCP em Resumo

VPCs contém regras de Firewall para permitir tráfego de entrada para a VPC. VPCs também contêm sub-redes onde máquinas virtuais vão estar conectadas.
Comparando com AWS, Firewall seria a coisa mais próxima de AWS Security Groups e NACLs, mas neste caso estas são definidas na VPC e não em cada instância.

VPC, Sub-redes & Firewalls no GCP

Instâncias de Computação estão conectadas a sub-redes que são parte das VPCs (Virtual Private Clouds). No GCP não existem grupos de segurança, existem firewalls VPC com regras definidas neste nível de rede, mas aplicadas a cada Instância de VM.

Sub-redes

Uma VPC pode ter várias sub-redes. Cada sub-rede está em 1 região.

Firewalls

Por padrão, toda rede tem duas regras de firewall implícitas: permitir saída e negar entrada.

Quando um projeto GCP é criado, uma VPC chamada default também é criada, com as seguintes regras de firewall:

  • default-allow-internal: permite todo tráfego de outras instâncias na rede default
  • default-allow-ssh: permite 22 de qualquer lugar
  • default-allow-rdp: permite 3389 de qualquer lugar
  • default-allow-icmp: permite ping de qualquer lugar

warning

Como você pode ver, as regras de firewall tendem a ser mais permissivas para endereços IP internos. A VPC padrão permite todo tráfego entre Instâncias de Computação.

Mais regras de Firewall podem ser criadas para a VPC padrão ou para novas VPCs. Regras de Firewall podem ser aplicadas a instâncias através dos seguintes métodos:

Infelizmente, não existe um comando gcloud simples para listar todas as Instâncias de Computação com portas abertas na internet. Você precisa conectar os pontos entre regras de firewall, tags de rede, contas de serviço e instâncias.

Esse processo foi automatizado usando este script python que exportará o seguinte:

  • Arquivo CSV mostrando instância, IP público, TCP permitido, UDP permitido
  • Escaneamento nmap para direcionar todas as instâncias nas portas de entrada permitidas da internet pública (0.0.0.0/0)
  • masscan para direcionar toda a faixa TCP daquelas instâncias que permitem TODAS as portas TCP da internet pública (0.0.0.0/0)

Políticas de Firewall Hierárquicas

As políticas de firewall hierárquicas permitem que você crie e aplique uma política de firewall consistente em toda a sua organização. Você pode atribuir políticas de firewall hierárquicas à organização como um todo ou a pastas individuais. Essas políticas contêm regras que podem explicitamente negar ou permitir conexões.

Você cria e aplica políticas de firewall como etapas separadas. Você pode criar e aplicar políticas de firewall nos nós de organização ou pasta da hierarquia de recursos. Uma regra de política de firewall pode bloquear conexões, permitir conexões ou adiar a avaliação da regra de firewall para pastas de nível inferior ou regras de firewall VPC definidas em redes VPC.

Por padrão, todas as regras de política de firewall hierárquica se aplicam a todas as VMs em todos os projetos sob a organização ou pasta onde a política está associada. No entanto, você pode restringir quais VMs recebem uma determinada regra especificando redes-alvo ou contas de serviço-alvo.

Você pode ler aqui como criar uma Política de Firewall Hierárquica.

Avaliação de Regras de Firewall

  1. Org: Políticas de firewall atribuídas à Organização
  2. Pasta: Políticas de firewall atribuídas à Pasta
  3. VPC: Regras de firewall atribuídas à VPC
  4. Global: Outro tipo de regras de firewall que podem ser atribuídas a VPCs
  5. Regional: Regras de firewall associadas à rede VPC do NIC da VM e região da VM.

Peering de Rede VPC

Permite conectar duas redes de Nuvem Privada Virtual (VPC) para que recursos em cada rede possam se comunicar entre si.
Redes VPC conectadas podem estar no mesmo projeto, em projetos diferentes da mesma organização, ou projetos diferentes de organizações diferentes.

Estas são as permissões necessárias:

  • compute.networks.addPeering
  • compute.networks.updatePeering
  • compute.networks.removePeering
  • compute.networks.listPeeringRoutes

Mais na documentação.

Referências

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks