Skip to content

Commit 3406dee

Browse files
committed
fixed rules
1 parent b5c8a72 commit 3406dee

File tree

1 file changed

+25
-30
lines changed

1 file changed

+25
-30
lines changed

docs/src/components/CodeViewer.astro

+25-30
Original file line numberDiff line numberDiff line change
@@ -11,59 +11,54 @@ export const ruleContent = new Map([
1111
'/pathfinder-rules/java/InsecureRandom.cql',
1212
`FROM method_invocation AS mi
1313
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."`
1615
],
1716
[
1817
'/pathfinder-rules/java/BlowfishUsage.cql',
19-
`
20-
FROM method_invocation AS mi
18+
`FROM method_invocation AS mi
2119
WHERE mi.getName() == "Cipher.getInstance"
2220
&& "Blowfish" in mi.getArgumentName()
2321
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."`
2524
],
2625
[
2726
'/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."`
3330
],
3431
[
3532
'/pathfinder-rules/java/RC4Usage.cql',
36-
`
37-
FROM method_invocation AS mi
33+
`FROM method_invocation AS mi
3834
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."`
4237
],
4338
[
4439
'/pathfinder-rules/java/SHA1Usage.cql',
45-
`
46-
FROM method_invocation AS mi
40+
`FROM method_invocation AS mi
4741
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"`
5144
],
5245
[
5346
'/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"`
5950
],
6051
[
6152
'/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"`
6762
]
6863
]);
6964

0 commit comments

Comments
 (0)