gitlab.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package rules
  2. import (
  3. "github.com/zricethezav/gitleaks/v8/cmd/generate/config/utils"
  4. "regexp"
  5. "github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
  6. "github.com/zricethezav/gitleaks/v8/config"
  7. )
  8. func GitlabPat() *config.Rule {
  9. // define rule
  10. r := config.Rule{
  11. RuleID: "gitlab-pat",
  12. Description: "Identified a GitLab Personal Access Token, risking unauthorized access to GitLab repositories and codebase exposure.",
  13. Regex: regexp.MustCompile(`glpat-[\w-]{20}`),
  14. Entropy: 3,
  15. Keywords: []string{"glpat-"},
  16. }
  17. // validate
  18. tps := []string{
  19. utils.GenerateSampleSecret("gitlab", "glpat-"+secrets.NewSecret(utils.AlphaNumeric("20"))),
  20. }
  21. fps := []string{
  22. "glpat-XXXXXXXXXXX-XXXXXXXX",
  23. }
  24. return utils.Validate(r, tps, fps)
  25. }
  26. func GitlabPipelineTriggerToken() *config.Rule {
  27. // define rule
  28. r := config.Rule{
  29. RuleID: "gitlab-ptt",
  30. Description: "Found a GitLab Pipeline Trigger Token, potentially compromising continuous integration workflows and project security.",
  31. Regex: regexp.MustCompile(`glptt-[0-9a-f]{40}`),
  32. Entropy: 3,
  33. Keywords: []string{"glptt-"},
  34. }
  35. // validate
  36. tps := []string{
  37. utils.GenerateSampleSecret("gitlab", "glptt-"+secrets.NewSecret(utils.Hex("40"))),
  38. }
  39. fps := []string{
  40. "glptt-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  41. }
  42. return utils.Validate(r, tps, fps)
  43. }
  44. func GitlabRunnerRegistrationToken() *config.Rule {
  45. // define rule
  46. r := config.Rule{
  47. RuleID: "gitlab-rrt",
  48. Description: "Discovered a GitLab Runner Registration Token, posing a risk to CI/CD pipeline integrity and unauthorized access.",
  49. Regex: regexp.MustCompile(`GR1348941[\w-]{20}`),
  50. Entropy: 3,
  51. Keywords: []string{"GR1348941"},
  52. }
  53. // validate
  54. tps := []string{
  55. utils.GenerateSampleSecret("gitlab", "GR1348941"+secrets.NewSecret(utils.AlphaNumeric("20"))),
  56. }
  57. fps := []string{
  58. "GR134894112312312312312312312",
  59. "GR1348941XXXXXXXXXXXXXXXXXXXX",
  60. }
  61. return utils.Validate(r, tps, fps)
  62. }