twitter.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package rules
  2. import (
  3. "github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
  4. "github.com/zricethezav/gitleaks/v8/config"
  5. )
  6. func TwitterAPIKey() *config.Rule {
  7. // define rule
  8. r := config.Rule{
  9. Description: "Identified a Twitter API Key, which may compromise Twitter application integrations and user data security.",
  10. RuleID: "twitter-api-key",
  11. Regex: generateSemiGenericRegex([]string{"twitter"}, alphaNumeric("25"), true),
  12. Keywords: []string{"twitter"},
  13. }
  14. // validate
  15. tps := []string{
  16. generateSampleSecret("twitter", secrets.NewSecret(alphaNumeric("25"))),
  17. }
  18. return validate(r, tps, nil)
  19. }
  20. func TwitterAPISecret() *config.Rule {
  21. // define rule
  22. r := config.Rule{
  23. Description: "Found a Twitter API Secret, risking the security of Twitter app integrations and sensitive data access.",
  24. RuleID: "twitter-api-secret",
  25. Regex: generateSemiGenericRegex([]string{"twitter"}, alphaNumeric("50"), true),
  26. Keywords: []string{"twitter"},
  27. }
  28. // validate
  29. tps := []string{
  30. generateSampleSecret("twitter", secrets.NewSecret(alphaNumeric("50"))),
  31. }
  32. return validate(r, tps, nil)
  33. }
  34. func TwitterBearerToken() *config.Rule {
  35. // define rule
  36. r := config.Rule{
  37. Description: "Discovered a Twitter Bearer Token, potentially compromising API access and data retrieval from Twitter.",
  38. RuleID: "twitter-bearer-token",
  39. Regex: generateSemiGenericRegex([]string{"twitter"}, "A{22}[a-zA-Z0-9%]{80,100}", true),
  40. Keywords: []string{"twitter"},
  41. }
  42. // validate
  43. tps := []string{
  44. generateSampleSecret("twitter", secrets.NewSecret("A{22}[a-zA-Z0-9%]{80,100}")),
  45. }
  46. return validate(r, tps, nil)
  47. }
  48. func TwitterAccessToken() *config.Rule {
  49. // define rule
  50. r := config.Rule{
  51. Description: "Detected a Twitter Access Token, posing a risk of unauthorized account operations and social media data exposure.",
  52. RuleID: "twitter-access-token",
  53. Regex: generateSemiGenericRegex([]string{"twitter"}, "[0-9]{15,25}-[a-zA-Z0-9]{20,40}", true),
  54. Keywords: []string{"twitter"},
  55. }
  56. // validate
  57. tps := []string{
  58. generateSampleSecret("twitter", secrets.NewSecret("[0-9]{15,25}-[a-zA-Z0-9]{20,40}")),
  59. }
  60. return validate(r, tps, nil)
  61. }
  62. func TwitterAccessSecret() *config.Rule {
  63. // define rule
  64. r := config.Rule{
  65. Description: "Uncovered a Twitter Access Secret, potentially risking unauthorized Twitter integrations and data breaches.",
  66. RuleID: "twitter-access-secret",
  67. Regex: generateSemiGenericRegex([]string{"twitter"}, alphaNumeric("45"), true),
  68. Keywords: []string{"twitter"},
  69. }
  70. // validate
  71. tps := []string{
  72. generateSampleSecret("twitter", secrets.NewSecret(alphaNumeric("45"))),
  73. }
  74. return validate(r, tps, nil)
  75. }