Ensure That DNSSEC Is Enabled for Cloud DNS

Cloud Domain Name System (DNS) is a fast, reliable and cost-effective domain name system that powers millions of domains on the internet. Domain Name System Security Extensions (DNSSEC) in Cloud DNS enables domain owners to take easy steps to protect their domains against DNS hijacking and man-in-the-middle and other attacks. Domain Name System Security Extensions (DNSSEC) adds security to the DNS protocol by enabling DNS responses to be validated. Having a trustworthy DNS that translates a domain name like www.example.com into its associated IP address is an increasingly important building block of today's web-based applications. Attackers can hijack this process of domain/IP lookup and redirect users to a malicious site through DNS hijacking and man-in-the-middle attacks. DNSSEC helps mitigate the risk of such attacks by cryptographically signing DNS records. As a result, it prevents attackers from issuing fake DNS responses that may misdirect browsers to nefarious websites.

Risk Level: High
Cloud Entity: GCP DNS Managed Zone
CloudGuard Rule ID: D9.GCP.NET.26
Covered by Spectral: No
Category: Networking & Content Delivery

GSL LOGIC

DnsManagedZone where visibility='public' should have dnssecConfig.state='on'

REMEDIATION

From Portal

  1. Go to Cloud DNS by visiting https://console.cloud.google.com/net-services/dns/zones.
  2. For each zone of Type 'Public', ensure that 'DNSSEC' is set to 'On'.

From Command Line

  1. To list all managed public zone:
gcloud dns managed-zones list --filter="visibility=public"
  1. Enable DNSSEC for Cloud DNS Zone ZONE_NAME.
gcloud dns managed-zones update ZONE_NAME --dnssec-state on

From TF
For the resource google_dns_managed_zone, Set dnssec_config.state = "on" in your template.
See below example;

resource "google_dns_managed_zone" "example-zone" {
	name        = "example-zone"
	dns_name    = "example.com."
	visibility  = "public"
	...
	dnssec_config {
		state = "on"
	}
	...
}

References

  1. https://workbench.cisecurity.org/sections/507171/recommendations/827573
  2. https://cloud.google.com/dns/docs/zones#update_public_zones
  3. https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/dns_managed_zone#state

GCP DNS Managed Zone

A zone is a subtree of the DNS namespace under one administrative responsibility. A ManagedZone is a resource that represents a DNS zone hosted by the Cloud DNS service.

Compliance Frameworks

  • CloudGuard GCP All Rules Ruleset
  • GCP CIS Controls V 8
  • GCP CIS Foundations v. 1.0.0
  • GCP CIS Foundations v. 1.1.0
  • GCP CIS Foundations v. 1.2.0
  • GCP CIS Foundations v. 1.3.0
  • GCP CIS Foundations v. 2.0
  • GCP CloudGuard Best Practices
  • GCP MITRE ATT&CK Framework v12.1
  • GCP NIST 800-53 Rev 5