sumologic.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package rules
  2. import (
  3. "github.com/zricethezav/gitleaks/v8/cmd/generate/config/utils"
  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: utils.GenerateSemiGenericRegex([]string{"(?-i:[Ss]umo|SUMO)"}, "su[a-zA-Z0-9]{12}", false),
  14. Entropy: 3,
  15. Keywords: []string{
  16. "sumo",
  17. },
  18. }
  19. // validate
  20. tps := utils.GenerateSampleSecrets("sumo", secrets.NewSecret(`su[a-zA-Z0-9]{12}`))
  21. tps = append(tps,
  22. `sumologic.accessId = "su9OL59biWiJu7"`, // gitleaks:allow
  23. `sumologic_access_id = "sug5XpdpaoxtOH"`, // gitleaks:allow
  24. `export SUMOLOGIC_ACCESSID="suDbJw97o9WVo0"`, // gitleaks:allow
  25. `SUMO_ACCESS_ID = "suGyI5imvADdvU"`, // gitleaks:allow
  26. )
  27. fps := []string{
  28. `- (NSNumber *)sumOfProperty:(NSString *)property;`,
  29. `- (NSInteger)sumOfValuesInRange:(NSRange)range;`,
  30. `+ (unsigned char)byteChecksumOfData:(id)arg1;`,
  31. `sumOfExposures = sumOfExposures;`, // gitleaks:allow
  32. `.si-sumologic.si--color::before { color: #000099; }`,
  33. `/// Based on the SumoLogic keyword syntax:`,
  34. `sumologic_access_id = ""`,
  35. `SUMOLOGIC_ACCESSID: ${SUMOLOGIC_ACCESSID}`,
  36. `export SUMOLOGIC_ACCESSID=XXXXXXXXXXXXXX`, // gitleaks:allow
  37. `sumObj = suGyI5imvADdvU`,
  38. }
  39. return utils.Validate(r, tps, fps)
  40. }
  41. func SumoLogicAccessToken() *config.Rule {
  42. // define rule
  43. r := config.Rule{
  44. RuleID: "sumologic-access-token",
  45. Description: "Uncovered a SumoLogic Access Token, which could lead to unauthorized access to log data and analytics insights.",
  46. Regex: utils.GenerateSemiGenericRegex([]string{"(?-i:[Ss]umo|SUMO)"}, utils.AlphaNumeric("64"), true),
  47. Entropy: 3,
  48. Keywords: []string{
  49. "sumo",
  50. },
  51. }
  52. // validate
  53. tps := utils.GenerateSampleSecrets("sumo", secrets.NewSecret(utils.AlphaNumeric("64")))
  54. tps = append(tps,
  55. `export SUMOLOGIC_ACCESSKEY="3HSa1hQfz6BYzlxf7Yb1WKG3Hyovm56LMFChV2y9LgkRipsXCujcLb5ej3oQUJlx"`, // gitleaks:allow
  56. `SUMO_ACCESS_KEY: gxq3rJQkS6qovOg9UY2Q70iH1jFZx0WBrrsiAYv4XHodogAwTKyLzvFK4neRN8Dk`, // gitleaks:allow
  57. `SUMOLOGIC_ACCESSKEY: 9RITWb3I3kAnSyUolcVJq4gwM17JRnQK8ugRaixFfxkdSl8ys17ZtEL3LotESKB7`, // gitleaks:allow
  58. `sumo_access_key = "3Kof2VffNQ0QgYIhXUPJosVlCaQKm2hfpWE6F1fT9YGY74blQBIPsrkCcf1TwKE5"`, // gitleaks:allow
  59. )
  60. fps := []string{
  61. `# SUMO_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`, // gitleaks:allow
  62. "-e SUMO_ACCESS_KEY=`etcdctl get /sumologic_secret`",
  63. `SUMO_ACCESS_KEY={SumoAccessKey}`,
  64. `SUMO_ACCESS_KEY=${SUMO_ACCESS_KEY:=$2}`,
  65. `sumo_access_key = "<SUMOLOGIC ACCESS KEY>"`,
  66. `SUMO_ACCESS_KEY: AbCeFG123`,
  67. `sumOfExposures = 3Kof2VffNQ0QgYIhXUPJosVlCaQKm2hfpWE6F1fT9YGY74blQBIPsrkCcf1TwKE5;`,
  68. }
  69. return utils.Validate(r, tps, fps)
  70. }