github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/rules/cloud/policies/azure/database/secure_tls_policy.go (about) 1 package database 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/internal/rules" 5 "github.com/khulnasoft-lab/defsec/pkg/providers" 6 "github.com/khulnasoft-lab/defsec/pkg/scan" 7 "github.com/khulnasoft-lab/defsec/pkg/severity" 8 "github.com/khulnasoft-lab/defsec/pkg/state" 9 ) 10 11 var CheckSecureTlsPolicy = rules.Register( 12 scan.Rule{ 13 AVDID: "AVD-AZU-0026", 14 Provider: providers.AzureProvider, 15 Service: "database", 16 ShortCode: "secure-tls-policy", 17 Summary: "Databases should have the minimum TLS set for connections", 18 Impact: "Outdated TLS policies increase exposure to known issues", 19 Resolution: "Use the most modern TLS policies available", 20 Explanation: `You should not use outdated/insecure TLS versions for encryption. You should be using TLS v1.2+.`, 21 Links: []string{}, 22 Terraform: &scan.EngineMetadata{ 23 GoodExamples: terraformSecureTlsPolicyGoodExamples, 24 BadExamples: terraformSecureTlsPolicyBadExamples, 25 Links: terraformSecureTlsPolicyLinks, 26 RemediationMarkdown: terraformSecureTlsPolicyRemediationMarkdown, 27 }, 28 Severity: severity.Medium, 29 }, 30 func(s *state.State) (results scan.Results) { 31 for _, server := range s.Azure.Database.MSSQLServers { 32 if server.Metadata.IsUnmanaged() { 33 continue 34 } 35 if server.MinimumTLSVersion.NotEqualTo("1.2") { 36 results.Add( 37 "Database server does not require a secure TLS version.", 38 server.MinimumTLSVersion, 39 ) 40 } else { 41 results.AddPassed(&server) 42 } 43 } 44 for _, server := range s.Azure.Database.MySQLServers { 45 if server.Metadata.IsUnmanaged() { 46 continue 47 } 48 if server.MinimumTLSVersion.NotEqualTo("TLS1_2") { 49 results.Add( 50 "Database server does not require a secure TLS version.", 51 server.MinimumTLSVersion, 52 ) 53 } else { 54 results.AddPassed(&server) 55 } 56 } 57 for _, server := range s.Azure.Database.PostgreSQLServers { 58 if server.Metadata.IsUnmanaged() { 59 continue 60 } 61 if server.MinimumTLSVersion.NotEqualTo("TLS1_2") { 62 results.Add( 63 "Database server does not require a secure TLS version.", 64 server.MinimumTLSVersion, 65 ) 66 } else { 67 results.AddPassed(&server) 68 } 69 } 70 return 71 }, 72 )