65 lines
2.3 KiB
Go
65 lines
2.3 KiB
Go
package rules
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/zricethezav/gitleaks/v8/cmd/generate/config/utils"
|
|
"github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
|
|
"github.com/zricethezav/gitleaks/v8/config"
|
|
)
|
|
|
|
func JFrogAPIKey() *config.Rule {
|
|
keywords := []string{"jfrog", "artifactory", "bintray", "xray"}
|
|
|
|
// Define Rule
|
|
r := config.Rule{
|
|
// Human readable description of the rule
|
|
Description: "Found a JFrog API Key, posing a risk of unauthorized access to software artifact repositories and build pipelines.",
|
|
|
|
// Unique ID for the rule
|
|
RuleID: "jfrog-api-key",
|
|
|
|
// Regex capture group for the actual secret
|
|
|
|
// Regex used for detecting secrets. See regex section below for more details
|
|
Regex: utils.GenerateSemiGenericRegex(keywords, utils.AlphaNumeric("73"), true),
|
|
|
|
// Keywords used for string matching on fragments (think of this as a prefilter)
|
|
Keywords: keywords,
|
|
}
|
|
// validate
|
|
tps := []string{
|
|
fmt.Sprintf("--set imagePullSecretJfrog.password=%s", secrets.NewSecret(utils.AlphaNumeric("73"))),
|
|
}
|
|
return utils.Validate(r, tps, nil)
|
|
}
|
|
|
|
func JFrogIdentityToken() *config.Rule {
|
|
keywords := []string{"jfrog", "artifactory", "bintray", "xray"}
|
|
|
|
// Define Rule
|
|
r := config.Rule{
|
|
// Human readable description of the rule
|
|
Description: "Discovered a JFrog Identity Token, potentially compromising access to JFrog services and sensitive software artifacts.",
|
|
|
|
// Unique ID for the rule
|
|
RuleID: "jfrog-identity-token",
|
|
|
|
// Regex capture group for the actual secret
|
|
|
|
// Regex used for detecting secrets. See regex section below for more details
|
|
Regex: utils.GenerateSemiGenericRegex(keywords, utils.AlphaNumeric("64"), true),
|
|
|
|
// Keywords used for string matching on fragments (think of this as a prefilter)
|
|
Keywords: keywords,
|
|
}
|
|
|
|
// validate
|
|
tps := utils.GenerateSampleSecrets("jfrog", secrets.NewSecret(utils.AlphaNumeric("64")))
|
|
tps = append(tps, utils.GenerateSampleSecrets("artifactory", secrets.NewSecret(utils.AlphaNumeric("64")))...)
|
|
tps = append(tps, utils.GenerateSampleSecrets("bintray", secrets.NewSecret(utils.AlphaNumeric("64")))...)
|
|
tps = append(tps, utils.GenerateSampleSecrets("xray", secrets.NewSecret(utils.AlphaNumeric("64")))...)
|
|
tps = append(tps, fmt.Sprintf("\"artifactory\", \"%s\"", secrets.NewSecret(utils.AlphaNumeric("64"))))
|
|
return utils.Validate(r, tps, nil)
|
|
}
|