@@ -21,4 +21,55 @@ void test(String password, String authToken, String username, String nullToken,
2121 logger .error ("Auth failed for: " + authToken .substring (1 ,5 ) + "..." ); // $ Alert
2222 logger .error ("Auth failed for: " + authToken .substring (0 ,8 ) + "..." ); // $ Alert
2323 }
24+
25+ // Tests for false positive exclusions: variables with "token" or "secret" in the name
26+ // that do not hold sensitive data.
27+ void testFalsePositiveExclusions (
28+ String nextToken , String pageToken , String continuationToken , String cursorToken ,
29+ String tokenType , String tokenEndpoint , String tokenCount , String tokenUrl ,
30+ String tokenIndex , String tokenLength , String tokenName , String tokenId ,
31+ String secretName , String secretId , String secretVersion , String secretArn ,
32+ String secretPath , String secretType ,
33+ String secretManager , String secretProperties
34+ ) {
35+ Logger logger = null ;
36+ // Pagination/iteration tokens (e.g., AWS SDK, GCP, Azure pagination cursors)
37+ logger .info ("cursor: " + nextToken ); // Safe
38+ logger .info ("cursor: " + pageToken ); // Safe
39+ logger .info ("cursor: " + continuationToken ); // Safe
40+ logger .info ("cursor: " + cursorToken ); // Safe
41+ // Token metadata (e.g., OAuth token type, OIDC discovery endpoint)
42+ logger .info ("type: " + tokenType ); // Safe
43+ logger .info ("endpoint: " + tokenEndpoint ); // Safe
44+ logger .info ("count: " + tokenCount ); // Safe
45+ logger .info ("url: " + tokenUrl ); // Safe
46+ logger .info ("index: " + tokenIndex ); // Safe
47+ logger .info ("length: " + tokenLength ); // Safe
48+ logger .info ("name: " + tokenName ); // Safe
49+ logger .info ("id: " + tokenId ); // Safe
50+ // Secret metadata (e.g., K8s secret name, AWS Secrets Manager identifiers)
51+ logger .info ("name: " + secretName ); // Safe
52+ logger .info ("id: " + secretId ); // Safe
53+ logger .info ("version: " + secretVersion ); // Safe
54+ logger .info ("arn: " + secretArn ); // Safe
55+ logger .info ("path: " + secretPath ); // Safe
56+ logger .info ("type: " + secretType ); // Safe
57+ logger .info ("manager: " + secretManager ); // Safe
58+ logger .info ("properties: " + secretProperties ); // Safe
59+ }
60+
61+ // These should still be flagged as sensitive
62+ void testTruePositives (String accessToken , String clientSecret , String apiSecret ,
63+ String sessionToken , String bearerToken , String secretKey ,
64+ String refreshToken , String secretValue ) {
65+ Logger logger = null ;
66+ logger .info ("token: " + accessToken ); // $ Alert
67+ logger .info ("secret: " + clientSecret ); // $ Alert
68+ logger .info ("secret: " + apiSecret ); // $ Alert
69+ logger .info ("token: " + sessionToken ); // $ Alert
70+ logger .info ("token: " + bearerToken ); // $ Alert
71+ logger .info ("key: " + secretKey ); // $ Alert
72+ logger .info ("token: " + refreshToken ); // $ Alert
73+ logger .info ("value: " + secretValue ); // $ Alert
74+ }
2475}
0 commit comments