rules:
- id: gcp-dns-key-specs-rsasha1
  patterns:
  - pattern: resource
  - pattern-inside: |
      resource "google_dns_managed_zone" "..." {
      ...
      dnssec_config {
          ...
          default_key_specs {
              ...
              algorithm  = "rsasha1"
              key_type   = "zoneSigning"
              ...
          }
          ...
      }
      ...
      }
  - pattern-inside: |
      resource "google_dns_managed_zone" "..." {
      ...
      dnssec_config {
          ...
          default_key_specs {
              ...
              algorithm  = "rsasha1"
              key_type   = "keySigning"
              ...
          }
          ...
      }
      ...
      }
  message: >-
    Ensure that RSASHA1 is not used for the zone-signing and key-signing keys in Cloud DNS DNSSEC	
  metadata:
    owasp:
    - A03:2017 - Sensitive Data Exposure
    - A02:2021 - Cryptographic Failures
    cwe:
    - 'CWE-326: Inadequate Encryption Strength'
    category: security
    technology:
    - terraform
    - gcp
    references:
    - https://owasp.org/Top10/A02_2021-Cryptographic_Failures
    subcategory:
    - vuln
    likelihood: LOW
    impact: MEDIUM
    confidence: MEDIUM
  languages: [hcl]
  severity: WARNING
