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