sumologic.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package rules
  2. import (
  3. "regexp"
  4. "github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
  5. "github.com/zricethezav/gitleaks/v8/config"
  6. )
  7. func SumoLogicAccessID() *config.Rule {
  8. // define rule
  9. r := config.Rule{
  10. RuleID: "sumologic-access-id",
  11. Description: "SumoLogic Access ID",
  12. // TODO: Make 'su' case-sensitive.
  13. Regex: generateSemiGenericRegex([]string{"sumo"},
  14. "su[a-zA-Z0-9]{12}"),
  15. SecretGroup: 1,
  16. Entropy: 3,
  17. Keywords: []string{
  18. "sumo",
  19. },
  20. Allowlist: config.Allowlist{
  21. RegexTarget: "line",
  22. Regexes: []*regexp.Regexp{
  23. regexp.MustCompile(`sumOf`),
  24. },
  25. },
  26. }
  27. // validate
  28. tps := []string{
  29. `sumologic.accessId = "su9OL59biWiJu7"`, // gitleaks:allow
  30. `sumologic_access_id = "sug5XpdpaoxtOH"`, // gitleaks:allow
  31. `export SUMOLOGIC_ACCESSID="suDbJw97o9WVo0"`, // gitleaks:allow
  32. `SUMO_ACCESS_ID = "suGyI5imvADdvU"`, // gitleaks:allow
  33. generateSampleSecret("sumo", "su"+secrets.NewSecret(alphaNumeric("12"))),
  34. }
  35. fps := []string{
  36. `- (NSNumber *)sumOfProperty:(NSString *)property;`,
  37. `- (NSInteger)sumOfValuesInRange:(NSRange)range;`,
  38. `+ (unsigned char)byteChecksumOfData:(id)arg1;`,
  39. `sumOfExposures = sumOfExposures;`, // gitleaks:allow
  40. `.si-sumologic.si--color::before { color: #000099; }`,
  41. `/// Based on the SumoLogic keyword syntax:`,
  42. `sumologic_access_id = ""`,
  43. `SUMOLOGIC_ACCESSID: ${SUMOLOGIC_ACCESSID}`,
  44. `export SUMOLOGIC_ACCESSID=XXXXXXXXXXXXXX`, // gitleaks:allow
  45. }
  46. return validate(r, tps, fps)
  47. }
  48. func SumoLogicAccessToken() *config.Rule {
  49. // define rule
  50. r := config.Rule{
  51. RuleID: "sumologic-access-token",
  52. Description: "SumoLogic Access Token",
  53. Regex: generateSemiGenericRegex([]string{"sumo"},
  54. alphaNumeric("64")),
  55. SecretGroup: 1,
  56. Entropy: 3,
  57. Keywords: []string{
  58. "sumo",
  59. },
  60. }
  61. // validate
  62. tps := []string{
  63. `export SUMOLOGIC_ACCESSKEY="3HSa1hQfz6BYzlxf7Yb1WKG3Hyovm56LMFChV2y9LgkRipsXCujcLb5ej3oQUJlx"`, // gitleaks:allow
  64. `SUMO_ACCESS_KEY: gxq3rJQkS6qovOg9UY2Q70iH1jFZx0WBrrsiAYv4XHodogAwTKyLzvFK4neRN8Dk`, // gitleaks:allow
  65. `SUMOLOGIC_ACCESSKEY: 9RITWb3I3kAnSyUolcVJq4gwM17JRnQK8ugRaixFfxkdSl8ys17ZtEL3LotESKB7`, // gitleaks:allow
  66. `sumo_access_key = "3Kof2VffNQ0QgYIhXUPJosVlCaQKm2hfpWE6F1fT9YGY74blQBIPsrkCcf1TwKE5"`, // gitleaks:allow
  67. generateSampleSecret("sumo", secrets.NewSecret(alphaNumeric("64"))),
  68. }
  69. fps := []string{
  70. `# SUMO_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`, // gitleaks:allow
  71. "-e SUMO_ACCESS_KEY=`etcdctl get /sumologic_secret`",
  72. `SUMO_ACCESS_KEY={SumoAccessKey}`,
  73. `SUMO_ACCESS_KEY=${SUMO_ACCESS_KEY:=$2}`,
  74. `sumo_access_key = "<SUMOLOGIC ACCESS KEY>"`,
  75. `SUMO_ACCESS_KEY: AbCeFG123`,
  76. }
  77. return validate(r, tps, fps)
  78. }