jfrog.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package rules
  2. import (
  3. "fmt"
  4. "github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
  5. "github.com/zricethezav/gitleaks/v8/config"
  6. )
  7. func JFrogAPIKey() *config.Rule {
  8. keywords := []string{"jfrog", "artifactory", "bintray", "xray"}
  9. // Define Rule
  10. r := config.Rule{
  11. // Human readable description of the rule
  12. Description: "Found a JFrog API Key, posing a risk of unauthorized access to software artifact repositories and build pipelines.",
  13. // Unique ID for the rule
  14. RuleID: "jfrog-api-key",
  15. // Regex capture group for the actual secret
  16. // Regex used for detecting secrets. See regex section below for more details
  17. Regex: generateSemiGenericRegex(keywords, alphaNumeric("73"), true),
  18. // Keywords used for string matching on fragments (think of this as a prefilter)
  19. Keywords: keywords,
  20. }
  21. // validate
  22. tps := []string{
  23. fmt.Sprintf("--set imagePullSecretJfrog.password=%s", secrets.NewSecret(alphaNumeric("73"))),
  24. }
  25. return validate(r, tps, nil)
  26. }
  27. func JFrogIdentityToken() *config.Rule {
  28. keywords := []string{"jfrog", "artifactory", "bintray", "xray"}
  29. // Define Rule
  30. r := config.Rule{
  31. // Human readable description of the rule
  32. Description: "Discovered a JFrog Identity Token, potentially compromising access to JFrog services and sensitive software artifacts.",
  33. // Unique ID for the rule
  34. RuleID: "jfrog-identity-token",
  35. // Regex capture group for the actual secret
  36. // Regex used for detecting secrets. See regex section below for more details
  37. Regex: generateSemiGenericRegex(keywords, alphaNumeric("64"), true),
  38. // Keywords used for string matching on fragments (think of this as a prefilter)
  39. Keywords: keywords,
  40. }
  41. // validate
  42. tps := []string{
  43. generateSampleSecret("jfrog", secrets.NewSecret(alphaNumeric("64"))),
  44. generateSampleSecret("artifactory", secrets.NewSecret(alphaNumeric("64"))),
  45. generateSampleSecret("bintray", secrets.NewSecret(alphaNumeric("64"))),
  46. generateSampleSecret("xray", secrets.NewSecret(alphaNumeric("64"))),
  47. }
  48. return validate(r, tps, nil)
  49. }