Compare commits

..

4 Commits

Author SHA1 Message Date
Dustin Decker 443175c71d fix detector 2023-02-21 15:30:39 -08:00
raju-bs a2e2174a12 fixing browserstack regex username detection 2023-02-20 20:54:14 +05:30
raju-bs 69c4bdd427 fixing browserstack regex username detection 2023-02-20 20:27:40 +05:30
raju-bs 4be186581a fixing browserstack regex username detection 2023-02-20 20:22:32 +05:30
4 changed files with 5 additions and 39 deletions
+2 -7
View File
@@ -20,8 +20,8 @@ var (
client = common.SaneHttpClient()
// Make sure that your group is surrounded in boundary characters such as below to reduce false positives.
keyPat = regexp.MustCompile(detectors.PrefixRegex([]string{"browserstack", "key", "automate", "local"}) + `\b([0-9a-zA-Z]{20})\b`)
userPat = regexp.MustCompile(detectors.PrefixRegex([]string{"browserstack", "user", "automate", "local"}) + `\b(^[a-zA-Z\d]+([._-]?[a-zA-Z\d]+)*[a-zA-Z\d]+$)\b`)
keyPat = regexp.MustCompile(detectors.PrefixRegex([]string{"browserstack", "key", "automate", "local"}) + `\b([0-9a-zA-Z_]{20})\b`)
userPat = regexp.MustCompile(detectors.PrefixRegex([]string{"browserstack", "user", "automate", "local"}) + `\b([a-zA-Z\d]{3,18}[._-]+[a-zA-Z\d]{6})\b`)
)
// Keywords are used for efficiently pre-filtering chunks.
@@ -67,11 +67,6 @@ func (s Scanner) FromData(ctx context.Context, verify bool, data []byte) (result
defer res.Body.Close()
if res.StatusCode >= 200 && res.StatusCode < 300 {
s1.Verified = true
} else {
// This function will check false positives for common test words, but also it will make sure the key appears 'random' enough to be a real key.
if detectors.IsKnownFalsePositive(resMatch, detectors.DefaultFalsePositives, true) {
continue
}
}
}
}
@@ -51,6 +51,7 @@ func TestBrowserStack_FromChunk(t *testing.T) {
{
DetectorType: detectorspb.DetectorType_BrowserStack,
Verified: true,
RawV2: []byte(fmt.Sprintf("%s%s", secret, secretUser)),
},
},
wantErr: false,
@@ -67,6 +68,7 @@ func TestBrowserStack_FromChunk(t *testing.T) {
{
DetectorType: detectorspb.DetectorType_BrowserStack,
Verified: false,
RawV2: []byte(fmt.Sprintf("%s%s", inactiveSecret, secretUser)),
},
},
wantErr: false,
-31
View File
@@ -115,37 +115,6 @@ func (c1 *Commit) Equal(c2 *Commit) bool {
}
func (c *Parser) BeepBoop(commitHash string) (chan Commit, error) {
dummy := make(chan Commit)
cocmd := exec.Command("git", "checkout", commitHash)
cocmd.Dir = "/home/hrich/go/src/github.com/trufflesecurity/thog"
cocmd.Run()
go func() {
defer close(dummy)
args := []string{"-C", "/home/hrich/go/src/github.com/trufflesecurity/thog", "log", "-p", "-U5", "-2", "--date=format:%a %b %d %H:%M:%S %Y %z"}
cmd := exec.Command("git", args...)
commitChan, err := c.executeCommand(context.Background(), cmd)
if err != nil {
fmt.Println(err)
}
for commit := range commitChan {
if commit.Hash == commitHash {
continue
}
coolchan, _ := c.BeepBoop(commit.Hash)
for commit2 := range coolchan {
dummy <- commit2
}
}
}()
return dummy, nil
}
// RepoPath parses the output of the `git log` command for the `source` path.
func (c *Parser) RepoPath(ctx context.Context, source string, head string, abbreviatedLog bool) (chan Commit, error) {
args := []string{"-C", source, "log", "-p", "-U5", "--full-history", "--date=format:%a %b %d %H:%M:%S %Y %z"}
+1 -1
View File
@@ -339,7 +339,7 @@ func (s *Git) ScanCommits(ctx context.Context, repo *git.Repository, path string
return err
}
commitChan, err := gitparse.NewParser().BeepBoop("main")
commitChan, err := gitparse.NewParser().RepoPath(ctx, path, scanOptions.HeadHash, scanOptions.BaseHash == "")
if err != nil {
return err
}