Skip to content

Commit cbb4b5c

Browse files
authored
Remap the rule ID numbers (#92)
Signed-off-by: Eric Brown <eric.brown@securesauce.dev>
1 parent c9f25a4 commit cbb4b5c

13 files changed

Lines changed: 130 additions & 130 deletions

setup.cfg

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,79 +31,79 @@ precli.parsers =
3131

3232
precli.rules.python =
3333
# precli/rules/python/stdlib/assert/assert.py
34-
PRE001 = precli.rules.python.stdlib.assert.assert:Assert
34+
PRE0001 = precli.rules.python.stdlib.assert.assert:Assert
3535

3636
# precli/rules/python/stdlib/crypt/crypt_weak_hash.py
37-
PRE002 = precli.rules.python.stdlib.crypt.crypt_weak_hash:CryptWeakHash
37+
PRE0002 = precli.rules.python.stdlib.crypt.crypt_weak_hash:CryptWeakHash
3838

3939
# precli/rules/python/stdlib/ftplib/ftp_cleartext.py
40-
PRE003 = precli.rules.python.stdlib.ftplib.ftp_cleartext:FtpCleartext
40+
PRE0003 = precli.rules.python.stdlib.ftplib.ftp_cleartext:FtpCleartext
4141

4242
# precli/rules/python/stdlib/hashlib/hashlib_weak_hash.py
43-
PRE004 = precli.rules.python.stdlib.hashlib.hashlib_weak_hash:HashlibWeakHash
43+
PRE0004 = precli.rules.python.stdlib.hashlib.hashlib_weak_hash:HashlibWeakHash
4444

4545
# precli/rules/python/stdlib/hmac/hmac_weak_hash.py
46-
PRE005 = precli.rules.python.stdlib.hmac.hmac_weak_hash:HmacWeakHash
46+
PRE0005 = precli.rules.python.stdlib.hmac.hmac_weak_hash:HmacWeakHash
4747

4848
# precli/rules/python/stdlib/json/json_load.py
49-
PRE006 = precli.rules.python.stdlib.json.json_load:JsonLoad
49+
PRE0006 = precli.rules.python.stdlib.json.json_load:JsonLoad
5050

5151
# precli/rules/python/stdlib/logging/insecure_listen_config.py
52-
PRE007 = precli.rules.python.stdlib.logging.insecure_listen_config:InsecureListenConfig
52+
PRE0007 = precli.rules.python.stdlib.logging.insecure_listen_config:InsecureListenConfig
5353

5454
# precli/rules/python/stdlib/marshal/marshal_load.py
55-
PRE008 = precli.rules.python.stdlib.marshal.marshal_load:MarshalLoad
55+
PRE0008 = precli.rules.python.stdlib.marshal.marshal_load:MarshalLoad
5656

5757
# precli/rules/python/stdlib/pickle/pickle_load.py
58-
PRE009 = precli.rules.python.stdlib.pickle.pickle_load:PickleLoad
58+
PRE0009 = precli.rules.python.stdlib.pickle.pickle_load:PickleLoad
5959

6060
# precli/rules/python/stdlib/shelve/shelve_open.py
61-
PRE010 = precli.rules.python.stdlib.shelve.shelve_open:ShelveOpen
61+
PRE0010 = precli.rules.python.stdlib.shelve.shelve_open:ShelveOpen
6262

6363
# precli/rules/python/stdlib/ssl/create_unverified_context.py
64-
PRE011 = precli.rules.python.stdlib.ssl.create_unverified_context:CreateUnverifiedContext
64+
PRE0011 = precli.rules.python.stdlib.ssl.create_unverified_context:CreateUnverifiedContext
6565

6666
# precli/rules/python/stdlib/ssl/insecure_tls_version.py
67-
PRE012 = precli.rules.python.stdlib.ssl.insecure_tls_version:InsecureTlsVersion
67+
PRE0012 = precli.rules.python.stdlib.ssl.insecure_tls_version:InsecureTlsVersion
6868

6969
# precli/rules/python/stdlib/telnetlib/telnetlib_cleartext.py
70-
PRE013 = precli.rules.python.stdlib.telnetlib.telnetlib_cleartext:TelnetlibCleartext
70+
PRE0013 = precli.rules.python.stdlib.telnetlib.telnetlib_cleartext:TelnetlibCleartext
7171

7272
# precli/rules/python/third_party/cryptography/cryptography_weak_hash.py
73-
PRE301 = precli.rules.python.third_party.cryptography.cryptography_weak_hash:CryptographyWeakHash
73+
PRE0014 = precli.rules.python.third_party.cryptography.cryptography_weak_hash:CryptographyWeakHash
7474

7575
# precli/rules/python/third_party/dill/dill_load.py
76-
PRE302 = precli.rules.python.third_party.dill.dill_load:DillLoad
76+
PRE0015 = precli.rules.python.third_party.dill.dill_load:DillLoad
7777

7878
# precli/rules/python/third_party/httpx/no_certificate_verify.py
79-
PRE303 = precli.rules.python.third_party.httpx.no_certificate_verify:NoCertificateVerify
79+
PRE0016 = precli.rules.python.third_party.httpx.no_certificate_verify:NoCertificateVerify
8080

8181
# precli/rules/python/third_party/jsonpickle/jsonpickle_decode.py
82-
PRE304 = precli.rules.python.third_party.jsonpickle.jsonpickle_decode:JsonpickleDecode
82+
PRE0017 = precli.rules.python.third_party.jsonpickle.jsonpickle_decode:JsonpickleDecode
8383

8484
# precli/rules/python/third_party/pandas/pandas_read_pickle.py
85-
PRE305 = precli.rules.python.third_party.pandas.pandas_read_pickle:PandasReadPickle
85+
PRE0018 = precli.rules.python.third_party.pandas.pandas_read_pickle:PandasReadPickle
8686

8787
# precli/rules/python/third_party/paramiko/paramiko_no_host_key_verify.py
88-
PRE306 = precli.rules.python.third_party.paramiko.paramiko_no_host_key_verify:ParamikoNoHostKeyVerify
88+
PRE0019 = precli.rules.python.third_party.paramiko.paramiko_no_host_key_verify:ParamikoNoHostKeyVerify
8989

9090
# precli/rules/python/third_party/pyghmi/pyghmi_cleartext.py
91-
PRE307 = precli.rules.python.third_party.pyghmi.pyghmi_cleartext:PyghmiCleartext
91+
PRE0020 = precli.rules.python.third_party.pyghmi.pyghmi_cleartext:PyghmiCleartext
9292

9393
# precli/rules/python/third_party/pycrypto/pycrypto_weak_hash.py
94-
PRE308 = precli.rules.python.third_party.pycrypto.pycrypto_weak_hash:PycryptoWeakHash
94+
PRE0021 = precli.rules.python.third_party.pycrypto.pycrypto_weak_hash:PycryptoWeakHash
9595

9696
# precli/rules/python/third_party/pycryptodomex/pycryptodomex_weak_hash.py
97-
PRE309 = precli.rules.python.third_party.pycryptodomex.pycryptodomex_weak_hash:PycryptodomexWeakHash
97+
PRE0022 = precli.rules.python.third_party.pycryptodomex.pycryptodomex_weak_hash:PycryptodomexWeakHash
9898

9999
# precli/rules/python/third_party/pyopenssl/insecure_tls_method.py
100-
PRE310 = precli.rules.python.third_party.pyopenssl.insecure_tls_method:InsecureTlsMethod
100+
PRE0023 = precli.rules.python.third_party.pyopenssl.insecure_tls_method:InsecureTlsMethod
101101

102102
# precli/rules/python/third_party/PyYAML/yaml_load.py
103-
PRE311 = precli.rules.python.third_party.PyYAML.yaml_load:YamlLoad
103+
PRE0024 = precli.rules.python.third_party.PyYAML.yaml_load:YamlLoad
104104

105105
# precli/rules/python/third_party/requests/no_certificate_verify.py
106-
PRE312 = precli.rules.python.third_party.requests.no_certificate_verify:NoCertificateVerify
106+
PRE0025 = precli.rules.python.third_party.requests.no_certificate_verify:NoCertificateVerify
107107

108108
[build_sphinx]
109109
all_files = 1

tests/unit/rules/python/stdlib/ftplib/test_ftp_cleartext.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def setUp(self):
2121
)
2222

2323
def test_ftp_cleartext_rule_meta(self):
24-
rule = Rule.get_by_id("PRE003")
25-
self.assertEqual("PRE003", rule.id)
24+
rule = Rule.get_by_id("PRE0003")
25+
self.assertEqual("PRE0003", rule.id)
2626
self.assertEqual("cleartext_transmission", rule.name)
2727
self.assertEqual("", rule.help_url)
2828
self.assertEqual(True, rule.default_config.enabled)
@@ -34,7 +34,7 @@ def test_ftp(self):
3434
results = self.parser.parse(os.path.join(self.base_path, "ftp.py"))
3535
self.assertEqual(1, len(results))
3636
result = results[0]
37-
self.assertEqual("PRE003", result.rule_id)
37+
self.assertEqual("PRE0003", result.rule_id)
3838
self.assertEqual(4, result.location.start_line)
3939
self.assertEqual(4, result.location.end_line)
4040
self.assertEqual(6, result.location.start_column)
@@ -48,15 +48,15 @@ def test_ftp_login(self):
4848
)
4949
self.assertEqual(2, len(results))
5050
result = results[0]
51-
self.assertEqual("PRE003", result.rule_id)
51+
self.assertEqual("PRE0003", result.rule_id)
5252
self.assertEqual(4, result.location.start_line)
5353
self.assertEqual(4, result.location.end_line)
5454
self.assertEqual(6, result.location.start_column)
5555
self.assertEqual(9, result.location.end_column)
5656
self.assertEqual(Level.WARNING, result.level)
5757
self.assertEqual(-1.0, result.rank)
5858
result = results[1]
59-
self.assertEqual("PRE003", result.rule_id)
59+
self.assertEqual("PRE0003", result.rule_id)
6060
self.assertEqual(5, result.location.start_line)
6161
self.assertEqual(5, result.location.end_line)
6262
self.assertEqual(4, result.location.start_column)
@@ -74,7 +74,7 @@ def test_ftplib_ftp(self):
7474
)
7575
self.assertEqual(1, len(results))
7676
result = results[0]
77-
self.assertEqual("PRE003", result.rule_id)
77+
self.assertEqual("PRE0003", result.rule_id)
7878
self.assertEqual(4, result.location.start_line)
7979
self.assertEqual(4, result.location.end_line)
8080
self.assertEqual(6, result.location.start_column)
@@ -88,7 +88,7 @@ def test_ftplib_ftp_context_mgr(self):
8888
)
8989
self.assertEqual(1, len(results))
9090
result = results[0]
91-
self.assertEqual("PRE003", result.rule_id)
91+
self.assertEqual("PRE0003", result.rule_id)
9292
self.assertEqual(4, result.location.start_line)
9393
self.assertEqual(4, result.location.end_line)
9494
self.assertEqual(5, result.location.start_column)
@@ -102,15 +102,15 @@ def test_ftplib_ftp_login(self):
102102
)
103103
self.assertEqual(2, len(results))
104104
result = results[0]
105-
self.assertEqual("PRE003", result.rule_id)
105+
self.assertEqual("PRE0003", result.rule_id)
106106
self.assertEqual(4, result.location.start_line)
107107
self.assertEqual(4, result.location.end_line)
108108
self.assertEqual(6, result.location.start_column)
109109
self.assertEqual(16, result.location.end_column)
110110
self.assertEqual(Level.WARNING, result.level)
111111
self.assertEqual(-1.0, result.rank)
112112
result = results[1]
113-
self.assertEqual("PRE003", result.rule_id)
113+
self.assertEqual("PRE0003", result.rule_id)
114114
self.assertEqual(5, result.location.start_line)
115115
self.assertEqual(5, result.location.end_line)
116116
self.assertEqual(4, result.location.start_column)
@@ -126,15 +126,15 @@ def test_ftplib_ftp_login_single_statement(self):
126126
)
127127
self.assertEqual(2, len(results))
128128
result = results[0]
129-
self.assertEqual("PRE003", result.rule_id)
129+
self.assertEqual("PRE0003", result.rule_id)
130130
self.assertEqual(4, result.location.start_line)
131131
self.assertEqual(4, result.location.end_line)
132132
self.assertEqual(32, result.location.start_column)
133133
self.assertEqual(37, result.location.end_column)
134134
self.assertEqual(Level.ERROR, result.level)
135135
self.assertEqual(-1.0, result.rank)
136136
result = results[1]
137-
self.assertEqual("PRE003", result.rule_id)
137+
self.assertEqual("PRE0003", result.rule_id)
138138
self.assertEqual(4, result.location.start_line)
139139
self.assertEqual(4, result.location.end_line)
140140
self.assertEqual(0, result.location.start_column)
@@ -154,7 +154,7 @@ def test_ftplib_ftp_user_password(self):
154154
)
155155
self.assertEqual(1, len(results))
156156
result = results[0]
157-
self.assertEqual("PRE003", result.rule_id)
157+
self.assertEqual("PRE0003", result.rule_id)
158158
self.assertEqual(4, result.location.start_line)
159159
self.assertEqual(4, result.location.end_line)
160160
self.assertEqual(6, result.location.start_column)

tests/unit/rules/python/stdlib/logging/test_insecure_listen_config.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def setUp(self):
2121
)
2222

2323
def test_insecure_listen_config_rule_meta(self):
24-
rule = Rule.get_by_id("PRE007")
25-
self.assertEqual("PRE007", rule.id)
24+
rule = Rule.get_by_id("PRE0007")
25+
self.assertEqual("PRE0007", rule.id)
2626
self.assertEqual("code_injection", rule.name)
2727
self.assertEqual("", rule.help_url)
2828
self.assertEqual(True, rule.default_config.enabled)
@@ -38,7 +38,7 @@ def test_insecure_listen_config_empty_args(self):
3838
)
3939
self.assertEqual(1, len(results))
4040
result = results[0]
41-
self.assertEqual("PRE007", result.rule_id)
41+
self.assertEqual("PRE0007", result.rule_id)
4242
self.assertEqual(4, result.location.start_line)
4343
self.assertEqual(4, result.location.end_line)
4444
self.assertEqual(9, result.location.start_column)
@@ -54,7 +54,7 @@ def test_insecure_listen_config_port_verify_as_var(self):
5454
)
5555
self.assertEqual(1, len(results))
5656
result = results[0]
57-
self.assertEqual("PRE007", result.rule_id)
57+
self.assertEqual("PRE0007", result.rule_id)
5858
self.assertEqual(5, result.location.start_line)
5959
self.assertEqual(5, result.location.end_line)
6060
self.assertEqual(9, result.location.start_column)
@@ -70,7 +70,7 @@ def test_insecure_listen_config_port_verify_none(self):
7070
)
7171
self.assertEqual(1, len(results))
7272
result = results[0]
73-
self.assertEqual("PRE007", result.rule_id)
73+
self.assertEqual("PRE0007", result.rule_id)
7474
self.assertEqual(4, result.location.start_line)
7575
self.assertEqual(4, result.location.end_line)
7676
self.assertEqual(9, result.location.start_column)
@@ -84,7 +84,7 @@ def test_insecure_listen_config_port(self):
8484
)
8585
self.assertEqual(1, len(results))
8686
result = results[0]
87-
self.assertEqual("PRE007", result.rule_id)
87+
self.assertEqual("PRE0007", result.rule_id)
8888
self.assertEqual(4, result.location.start_line)
8989
self.assertEqual(4, result.location.end_line)
9090
self.assertEqual(9, result.location.start_column)
@@ -100,7 +100,7 @@ def test_insecure_listen_config_verify_none_port(self):
100100
)
101101
self.assertEqual(1, len(results))
102102
result = results[0]
103-
self.assertEqual("PRE007", result.rule_id)
103+
self.assertEqual("PRE0007", result.rule_id)
104104
self.assertEqual(4, result.location.start_line)
105105
self.assertEqual(4, result.location.end_line)
106106
self.assertEqual(9, result.location.start_column)
@@ -116,7 +116,7 @@ def test_insecure_listen_config_verify_none(self):
116116
)
117117
self.assertEqual(1, len(results))
118118
result = results[0]
119-
self.assertEqual("PRE007", result.rule_id)
119+
self.assertEqual("PRE0007", result.rule_id)
120120
self.assertEqual(4, result.location.start_line)
121121
self.assertEqual(4, result.location.end_line)
122122
self.assertEqual(9, result.location.start_column)

tests/unit/rules/python/stdlib/ssl/test_get_server_certificate.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def setUp(self):
2121
)
2222

2323
def test_get_server_certificate_rule_meta(self):
24-
rule = Rule.get_by_id("PRE012")
25-
self.assertEqual("PRE012", rule.id)
24+
rule = Rule.get_by_id("PRE0012")
25+
self.assertEqual("PRE0012", rule.id)
2626
self.assertEqual("inadequate_encryption_strength", rule.name)
2727
self.assertEqual("", rule.help_url)
2828
self.assertEqual(True, rule.default_config.enabled)
@@ -36,7 +36,7 @@ def test_get_server_certificate_sslv2(self):
3636
)
3737
self.assertEqual(1, len(results))
3838
result = results[0]
39-
self.assertEqual("PRE012", result.rule_id)
39+
self.assertEqual("PRE0012", result.rule_id)
4040
self.assertEqual(4, result.location.start_line)
4141
self.assertEqual(4, result.location.end_line)
4242
self.assertEqual(63, result.location.start_column)
@@ -56,7 +56,7 @@ def test_get_server_certificate_sslv3(self):
5656
)
5757
self.assertEqual(1, len(results))
5858
result = results[0]
59-
self.assertEqual("PRE012", result.rule_id)
59+
self.assertEqual("PRE0012", result.rule_id)
6060
self.assertEqual(4, result.location.start_line)
6161
self.assertEqual(4, result.location.end_line)
6262
self.assertEqual(63, result.location.start_column)
@@ -70,7 +70,7 @@ def test_get_server_certificate_tlsv1(self):
7070
)
7171
self.assertEqual(1, len(results))
7272
result = results[0]
73-
self.assertEqual("PRE012", result.rule_id)
73+
self.assertEqual("PRE0012", result.rule_id)
7474
self.assertEqual(4, result.location.start_line)
7575
self.assertEqual(4, result.location.end_line)
7676
self.assertEqual(63, result.location.start_column)
@@ -84,7 +84,7 @@ def test_get_server_certificate_tlsv11(self):
8484
)
8585
self.assertEqual(1, len(results))
8686
result = results[0]
87-
self.assertEqual("PRE012", result.rule_id)
87+
self.assertEqual("PRE0012", result.rule_id)
8888
self.assertEqual(5, result.location.start_line)
8989
self.assertEqual(5, result.location.end_line)
9090
self.assertEqual(40, result.location.start_column)

tests/unit/rules/python/stdlib/ssl/test_ssl_context.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def setUp(self):
2121
)
2222

2323
def test_ssl_context_rule_meta(self):
24-
rule = Rule.get_by_id("PRE012")
25-
self.assertEqual("PRE012", rule.id)
24+
rule = Rule.get_by_id("PRE0012")
25+
self.assertEqual("PRE0012", rule.id)
2626
self.assertEqual("inadequate_encryption_strength", rule.name)
2727
self.assertEqual("", rule.help_url)
2828
self.assertEqual(True, rule.default_config.enabled)
@@ -36,7 +36,7 @@ def test_ssl_context_sslv2(self):
3636
)
3737
self.assertEqual(1, len(results))
3838
result = results[0]
39-
self.assertEqual("PRE012", result.rule_id)
39+
self.assertEqual("PRE0012", result.rule_id)
4040
self.assertEqual(4, result.location.start_line)
4141
self.assertEqual(4, result.location.end_line)
4242
self.assertEqual(28, result.location.start_column)
@@ -56,7 +56,7 @@ def test_ssl_context_sslv3(self):
5656
)
5757
self.assertEqual(1, len(results))
5858
result = results[0]
59-
self.assertEqual("PRE012", result.rule_id)
59+
self.assertEqual("PRE0012", result.rule_id)
6060
self.assertEqual(4, result.location.start_line)
6161
self.assertEqual(4, result.location.end_line)
6262
self.assertEqual(28, result.location.start_column)
@@ -70,7 +70,7 @@ def test_ssl_context_tlsv1(self):
7070
)
7171
self.assertEqual(1, len(results))
7272
result = results[0]
73-
self.assertEqual("PRE012", result.rule_id)
73+
self.assertEqual("PRE0012", result.rule_id)
7474
self.assertEqual(4, result.location.start_line)
7575
self.assertEqual(4, result.location.end_line)
7676
self.assertEqual(28, result.location.start_column)
@@ -84,7 +84,7 @@ def test_ssl_context_tlsv11(self):
8484
)
8585
self.assertEqual(1, len(results))
8686
result = results[0]
87-
self.assertEqual("PRE012", result.rule_id)
87+
self.assertEqual("PRE0012", result.rule_id)
8888
self.assertEqual(4, result.location.start_line)
8989
self.assertEqual(4, result.location.end_line)
9090
self.assertEqual(28, result.location.start_column)

tests/unit/rules/python/stdlib/ssl/test_ssl_create_context.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def setUp(self):
2121
)
2222

2323
def test_unverified_context_rule_meta(self):
24-
rule = Rule.get_by_id("PRE011")
25-
self.assertEqual("PRE011", rule.id)
24+
rule = Rule.get_by_id("PRE0011")
25+
self.assertEqual("PRE0011", rule.id)
2626
self.assertEqual("improper_certificate_validation", rule.name)
2727
self.assertEqual("", rule.help_url)
2828
self.assertEqual(True, rule.default_config.enabled)
@@ -36,7 +36,7 @@ def test_create_unverified_context(self):
3636
)
3737
self.assertEqual(1, len(results))
3838
result = results[0]
39-
self.assertEqual("PRE011", result.rule_id)
39+
self.assertEqual("PRE0011", result.rule_id)
4040
self.assertEqual(4, result.location.start_line)
4141
self.assertEqual(4, result.location.end_line)
4242
self.assertEqual(10, result.location.start_column)

0 commit comments

Comments
 (0)