planetscale.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package rules
  2. import (
  3. "github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
  4. "github.com/zricethezav/gitleaks/v8/config"
  5. )
  6. func PlanetScalePassword() *config.Rule {
  7. // define rule
  8. r := config.Rule{
  9. RuleID: "planetscale-password",
  10. Description: "Discovered a PlanetScale password, which could lead to unauthorized database operations and data breaches.",
  11. Regex: generateUniqueTokenRegex(`pscale_pw_(?i)[a-z0-9=\-_\.]{32,64}`, true),
  12. Keywords: []string{
  13. "pscale_pw_",
  14. },
  15. }
  16. // validate
  17. tps := []string{
  18. generateSampleSecret("planetScalePassword", "pscale_pw_"+secrets.NewSecret(alphaNumericExtended("32"))),
  19. generateSampleSecret("planetScalePassword", "pscale_pw_"+secrets.NewSecret(alphaNumericExtended("43"))),
  20. generateSampleSecret("planetScalePassword", "pscale_pw_"+secrets.NewSecret(alphaNumericExtended("64"))),
  21. }
  22. return validate(r, tps, nil)
  23. }
  24. func PlanetScaleAPIToken() *config.Rule {
  25. // define rule
  26. r := config.Rule{
  27. RuleID: "planetscale-api-token",
  28. Description: "Identified a PlanetScale API token, potentially compromising database management and operations.",
  29. Regex: generateUniqueTokenRegex(`pscale_tkn_(?i)[a-z0-9=\-_\.]{32,64}`, true),
  30. Keywords: []string{
  31. "pscale_tkn_",
  32. },
  33. }
  34. // validate
  35. tps := []string{
  36. generateSampleSecret("planetScalePassword", "pscale_tkn_"+secrets.NewSecret(alphaNumericExtended("32"))),
  37. generateSampleSecret("planetScalePassword", "pscale_tkn_"+secrets.NewSecret(alphaNumericExtended("43"))),
  38. generateSampleSecret("planetScalePassword", "pscale_tkn_"+secrets.NewSecret(alphaNumericExtended("64"))),
  39. }
  40. return validate(r, tps, nil)
  41. }
  42. func PlanetScaleOAuthToken() *config.Rule {
  43. // define rule
  44. r := config.Rule{
  45. RuleID: "planetscale-oauth-token",
  46. Description: "Found a PlanetScale OAuth token, posing a risk to database access control and sensitive data integrity.",
  47. Regex: generateUniqueTokenRegex(`pscale_oauth_(?i)[a-z0-9=\-_\.]{32,64}`, true),
  48. Keywords: []string{
  49. "pscale_oauth_",
  50. },
  51. }
  52. // validate
  53. tps := []string{
  54. generateSampleSecret("planetScalePassword", "pscale_oauth_"+secrets.NewSecret(alphaNumericExtended("32"))),
  55. generateSampleSecret("planetScalePassword", "pscale_oauth_"+secrets.NewSecret(alphaNumericExtended("43"))),
  56. generateSampleSecret("planetScalePassword", "pscale_oauth_"+secrets.NewSecret(alphaNumericExtended("64"))),
  57. }
  58. return validate(r, tps, nil)
  59. }