@@ -11,59 +11,54 @@ export const ruleContent = new Map([
11
11
' /pathfinder-rules/java/InsecureRandom.cql' ,
12
12
` FROM method_invocation AS mi
13
13
WHERE mi.getName() == "Math.random"
14
- SELECT mi.getName(), "Usage of Math.random() detected. Use SecureRandom.nextBytes() instead
15
- which is cryptographically secure." `
14
+ SELECT mi.getName(), "Math.random() is not cryptographically secure. Use SecureRandom instead." `
16
15
],
17
16
[
18
17
' /pathfinder-rules/java/BlowfishUsage.cql' ,
19
- `
20
- FROM method_invocation AS mi
18
+ ` FROM method_invocation AS mi
21
19
WHERE mi.getName() == "Cipher.getInstance"
22
20
&& "Blowfish" in mi.getArgumentName()
23
21
SELECT mi.getName(), "Use of Blowfish was detected. Blowfish uses a 64-bit block size
24
- that makes it vulnerable to birthday attacks." `
22
+ that makes it vulnerable to birthday attacks, and is therefore considered
23
+ non-compliant." `
25
24
],
26
25
[
27
26
' /pathfinder-rules/java/DefaultHttpClient.cql' ,
28
- `
29
- FROM class_instance_creation AS cic
30
- WHERE cic.getType().getName() == "DefaultHttpClient"
31
- SELECT cic, "Usage of DefaultHttpClient detected. Use HttpClientBuilder instead
32
- which provides better security features and certificate validation." `
27
+ ` FROM ClassInstanceExpr AS cie
28
+ WHERE cie.getClassInstanceExpr().GetClassName() == "DefaultHttpClient"
29
+ SELECT cie.getName(), "The DefaultHttpClient is deprecated. Use HttpClientBuilder instead." `
33
30
],
34
31
[
35
32
' /pathfinder-rules/java/RC4Usage.cql' ,
36
- `
37
- FROM method_invocation AS mi
33
+ ` FROM method_invocation AS mi
38
34
WHERE mi.getName() == "Cipher.getInstance"
39
- && "RC4" in mi.getArgumentName()
40
- SELECT mi, "Use of RC4 encryption detected. RC4 is cryptographically broken
41
- and should not be used in new applications." `
35
+ && ("RC4" in mi.getArgumentName() || "RC2" in mi.getArgumentName())
36
+ SELECT mi.getName(), "RC4/RC2 is insecure. Use an alternative cipher suite." `
42
37
],
43
38
[
44
39
' /pathfinder-rules/java/SHA1Usage.cql' ,
45
- `
46
- FROM method_invocation AS mi
40
+ ` FROM method_invocation AS mi
47
41
WHERE mi.getName() == "MessageDigest.getInstance"
48
- && "SHA-1" in mi.getArgumentName()
49
- SELECT mi, "Use of SHA-1 hash function detected. SHA-1 is cryptographically broken
50
- and should not be used for security-critical operations." `
42
+ && ("SHA1" in mi.getArgumentName() || "SHA-1" in mi.getArgumentName())
43
+ SELECT mi.getName(), "SHA1 is not collision resistant and is therefore not suitable as a cryptographic signature" `
51
44
],
52
45
[
53
46
' /pathfinder-rules/java/UnencryptedSocket.cql' ,
54
- `
55
- FROM class_instance_creation AS cic
56
- WHERE cic.getType().getName() == "Socket"
57
- SELECT cic, "Use of unencrypted Socket detected. Consider using SSLSocket
58
- for encrypted communication." `
47
+ ` FROM ClassInstanceExpr AS cie
48
+ WHERE cie.getClassInstanceExpr().GetClassName() == "Socket" || cie.getClassInstanceExpr().GetClassName() == "ServerSocket"
49
+ SELECT cie.getName(), "This socket is not encrypted. Use an SSLSocket created by SSLSocketFactory or SSLServerSocketFactory instead" `
59
50
],
60
51
[
61
52
' /pathfinder-rules/java/XXE.cql' ,
62
- `
63
- FROM method_invocation AS mi
64
- WHERE mi.getName() == "DocumentBuilderFactory.newInstance"
65
- SELECT mi, "XML parsing may be vulnerable to XXE attacks. Set feature 'http://apache.org/xml/features/disallow-doctype-decl'
66
- to true and disable external entity processing to prevent XXE attacks." `
53
+ ` FROM method_invocation AS mi
54
+ WHERE mi.getName() == "setFeature" &&
55
+ ("http://xml.org/sax/features/external-parameter-entities" in mi.getArgumentName() &&
56
+ "true" in mi.getArgumentName()) ||
57
+ ("http://xml.org/sax/features/external-general-entities" in mi.getArgumentName() &&
58
+ "true" in mi.getArgumentName()) ||
59
+ ("http://apache.org/xml/features/disallow-doctype-decl" in mi.getArgumentName() &&
60
+ "false" in mi.getArgumentName())
61
+ SELECT mi.getName(), "XML External Entity (XXE) attack vulnerability" `
67
62
]
68
63
]);
69
64
0 commit comments