|
15 | 15 | import pytest |
16 | 16 |
|
17 | 17 | from vulnerabilities.models import AdvisoryAlias |
18 | | -from vulnerabilities.models import AdvisoryDetectionRule |
19 | 18 | from vulnerabilities.models import AdvisoryV2 |
20 | | -from vulnerabilities.pipelines.v2_improvers.clamv_rules import ClamVRulesImproverPipeline |
| 19 | +from vulnerabilities.models import DetectionRule |
| 20 | +from vulnerabilities.pipelines.v2_improvers.clamav_rules import ClamVRulesImproverPipeline |
21 | 21 |
|
22 | 22 | BASE_DIR = Path(__file__).resolve().parent |
23 | | -TEST_REPO_DIR = (BASE_DIR / "../../test_data/clamv").resolve() |
| 23 | +TEST_REPO_DIR = (BASE_DIR / "../../test_data/clamav").resolve() |
24 | 24 |
|
25 | 25 |
|
26 | 26 | @pytest.mark.django_db |
27 | | -@mock.patch("vulnerabilities.pipelines.v2_improvers.clamv_rules.extract_cvd") |
28 | | -@mock.patch("vulnerabilities.pipelines.v2_improvers.clamv_rules.requests.get") |
29 | | -def test_clamv_rules_db_improver(mock_requests_get, mock_extract_cvd): |
| 27 | +@mock.patch("vulnerabilities.pipelines.v2_improvers.clamav_rules.extract_cvd") |
| 28 | +@mock.patch("vulnerabilities.pipelines.v2_improvers.clamav_rules.requests.get") |
| 29 | +def test_clamav_rules_db_improver(mock_requests_get, mock_extract_cvd): |
30 | 30 | mock_resp = MagicMock() |
31 | 31 | mock_resp.iter_content.return_value = [b"fake data"] |
32 | 32 | mock_resp.raise_for_status.return_value = None |
@@ -70,6 +70,82 @@ def test_clamv_rules_db_improver(mock_requests_get, mock_extract_cvd): |
70 | 70 | improver = ClamVRulesImproverPipeline() |
71 | 71 | improver.execute() |
72 | 72 |
|
73 | | - assert AdvisoryDetectionRule.objects.count() == 3 |
74 | | - first_rule = AdvisoryDetectionRule.objects.first() |
75 | | - assert first_rule.rule_type == "clamav" |
| 73 | + assert DetectionRule.objects.count() == 14 |
| 74 | + assert DetectionRule.objects.get(advisory=adv1) |
| 75 | + assert DetectionRule.objects.get(advisory=adv2) |
| 76 | + assert DetectionRule.objects.get(advisory=adv3) |
| 77 | + assert [ |
| 78 | + (detection_rule.rule_type, detection_rule.rule_text, detection_rule.source_url) |
| 79 | + for detection_rule in DetectionRule.objects.all() |
| 80 | + ] == [ |
| 81 | + ( |
| 82 | + "clamav", |
| 83 | + "{'hash': 'af9a2ce339b3a314cd8ce31f4e2489a5', 'file_size': '149420', 'name': 'Archive.Malware.Agent-7116646-0', 'line_num': 1}", |
| 84 | + "https://database.clamav.net/main.cvd", |
| 85 | + ), |
| 86 | + ( |
| 87 | + "clamav", |
| 88 | + "{'hash': 'ab51de8588946f1332d53dd53bac8056', 'file_size': '48580', 'name': 'Html.Malware.Agent-7116647-0', 'line_num': 2}", |
| 89 | + "https://database.clamav.net/main.cvd", |
| 90 | + ), |
| 91 | + ( |
| 92 | + "clamav", |
| 93 | + "{'hash': '3f70569ac131833698c3d1c20e0123ca', 'file_size': '676', 'name': 'Html.Malware.Agent-7116648-0', 'line_num': 3}", |
| 94 | + "https://database.clamav.net/main.cvd", |
| 95 | + ), |
| 96 | + ( |
| 97 | + "clamav", |
| 98 | + "{'hash': 'df6634d021a6df4d17f005e507beac88', 'file_size': '6268', 'name': 'Win.Exploit.CVE_2019_1199-7116649-2', 'line_num': 4}", |
| 99 | + "https://database.clamav.net/main.cvd", |
| 100 | + ), |
| 101 | + ( |
| 102 | + "clamav", |
| 103 | + "{'hash': '27ebcd8c72e6e3c7f4a64dc68b95dd8a', 'file_size': '173248', 'name': 'Html.Malware.Agent-7116650-0', 'line_num': 5}", |
| 104 | + "https://database.clamav.net/main.cvd", |
| 105 | + ), |
| 106 | + ( |
| 107 | + "clamav", |
| 108 | + "{'hash': '8745d432f7027e65178e92b2239bef25', 'file_size': '384634', 'name': 'Archive.Malware.Agent-7116651-0', 'line_num': 6}", |
| 109 | + "https://database.clamav.net/main.cvd", |
| 110 | + ), |
| 111 | + ( |
| 112 | + "clamav", |
| 113 | + "{'hash': '63d1a25066c121253febc907850b1852', 'file_size': '50185', 'name': 'Html.Malware.Agent-7116652-0', 'line_num': 7}", |
| 114 | + "https://database.clamav.net/main.cvd", |
| 115 | + ), |
| 116 | + ( |
| 117 | + "clamav", |
| 118 | + "{'hash': '92233ed6889cd0ba7bf632e3f45fc950', 'file_size': '97134', 'name': 'Html.Malware.Agent-7116653-0', 'line_num': 8}", |
| 119 | + "https://database.clamav.net/main.cvd", |
| 120 | + ), |
| 121 | + ( |
| 122 | + "clamav", |
| 123 | + "{'name': 'Win.Exploit.CVE_2020_0720-7578647-1', 'target_type': '1', 'offset': '*', 'hex_signature': '240C1400000068E8214000660F1344241C897C2414C744241805000000E80EFEFFFF83C4048D44240C50FF1544204000', 'line_num': 1}", |
| 124 | + "https://database.clamav.net/main.cvd", |
| 125 | + ), |
| 126 | + ( |
| 127 | + "clamav", |
| 128 | + "{'name': 'Win.Exploit.CVE_2020_0731-7583553-0', 'target_type': '1', 'offset': '*', 'hex_signature': '83C4088B55F0526AF48B45FC50FF15D4C146008945E46A006A006A108B4D', 'line_num': 2}", |
| 129 | + "https://database.clamav.net/main.cvd", |
| 130 | + ), |
| 131 | + ( |
| 132 | + "clamav", |
| 133 | + "{'name': 'Win.Exploit.CVE_2020_0722-7583689-1', 'target_type': '1', 'offset': '*', 'hex_signature': '488B555033C9FF15A1F100004889057AB10000488B0D73B10000FF1575F10000EB86', 'line_num': 3}", |
| 134 | + "https://database.clamav.net/main.cvd", |
| 135 | + ), |
| 136 | + ( |
| 137 | + "clamav", |
| 138 | + "{'name': 'Win.Ransomware.MailTo-7586723-0', 'target_type': '1', 'offset': '*', 'hex_signature': '496e746572666163345c7b62313936623238372d626162342d313031612d623639632d3030616130303334316430377d*4c616d616e74696e652e537469636b7950617373776f7264', 'line_num': 4}", |
| 139 | + "https://database.clamav.net/main.cvd", |
| 140 | + ), |
| 141 | + ( |
| 142 | + "clamav", |
| 143 | + "{'name': 'Win.Trojan.Emotet-7587729-1', 'target_type': '1', 'offset': '*', 'hex_signature': '565053e801000000cc5889c3402d00e016002dacb00b1005a3b00b10803bcc7519c60300bb00100000682ece177a680f9067565350e80a00000083c000894424085b58c35589e5505351568b75088b4d0cc1e9028b45108b5d1485c9740a3106011e83c60449ebf25e595b58c9c21000', 'line_num': 5}", |
| 144 | + "https://database.clamav.net/main.cvd", |
| 145 | + ), |
| 146 | + ( |
| 147 | + "clamav", |
| 148 | + "{'name': 'Win.Trojan.Hoplight-7587747-0', 'target_type': '1', 'offset': '*', 'hex_signature': '4e6574776f726b20554450205472616365204d616e6167656d656e742053657276696365*6d646e6574757365*554450547263537663', 'line_num': 6}", |
| 149 | + "https://database.clamav.net/main.cvd", |
| 150 | + ), |
| 151 | + ] |
0 commit comments