diff options
| author | GeogeFI | 2023-01-31 00:02:31 +0100 |
|---|---|---|
| committer | GeogeFI | 2023-01-31 00:02:31 +0100 |
| commit | 65a3b18b09c4608da73565cf50978b53a8126c47 (patch) | |
| tree | d32a06401dd4360bbb2ba2e3a50ee22b6dda5280 | |
| parent | 5e2f4aea83e6d1f2d30b7ea46dcc744d6ceb221a (diff) | |
| download | sec-certs-65a3b18b09c4608da73565cf50978b53a8126c47.tar.gz sec-certs-65a3b18b09c4608da73565cf50978b53a8126c47.tar.zst sec-certs-65a3b18b09c4608da73565cf50978b53a8126c47.zip | |
test: Added test for CPE configurations
| -rw-r--r-- | tests/cc/test_cc_analysis.py | 36 | ||||
| -rw-r--r-- | tests/data/cc/analysis/auxillary_datasets/cve_dataset.json | 41 |
2 files changed, 72 insertions, 5 deletions
diff --git a/tests/cc/test_cc_analysis.py b/tests/cc/test_cc_analysis.py index da922208..a61c7e67 100644 --- a/tests/cc/test_cc_analysis.py +++ b/tests/cc/test_cc_analysis.py @@ -93,9 +93,30 @@ def cc_dset(data_dir: Path, cve_dset: CVEDataset, tmp_path_factory) -> CCDataset cc_dset.extract_data() cc_dset.auxillary_datasets.cve_dset = cve_dset cc_dset._compute_heuristics() + return cc_dset +@pytest.fixture(scope="module") +def cc_config_dset(data_dir: Path, cve_config_dset: CVEDataset, tmp_path_factory) -> CCDataset: + tmp_dir = tmp_path_factory.mktemp("cc_config_dset") + shutil.copytree(data_dir, tmp_dir, dirs_exist_ok=True) + cc_config_dset = CCDataset.from_json(tmp_dir / "vulnerable_dataset.json") + cc_config_dset.process_protection_profiles() + cc_config_dset.extract_data() + cc_config_dset.auxillary_datasets.cve_dset = cve_config_dset + cc_config_dset._compute_heuristics() + + return cc_config_dset + + +@pytest.fixture(scope="module") +def cve_config_dset(ibm_xss_cve): + cve_dset = CVEDataset({ibm_xss_cve.cve_id: ibm_xss_cve}) + cve_dset.build_lookup_dict(use_nist_mapping=False) + return cve_dset + + @pytest.fixture def reference_dataset(data_dir) -> CCDataset: return CCDataset.from_json(data_dir / "reference_dataset.json") @@ -147,14 +168,14 @@ def cpes_ibm_websphere_app_with_platform() -> set[CPE]: def test_find_related_cves_for_cpe_configuration( - cc_dset: CCDataset, + cc_config_dset: CCDataset, cpes_ibm_websphere_app_with_platform: set[CPE], ibm_xss_cve: CVE, - random_certificate: CCCertificate, + random_config_certificate: CCCertificate, ): - random_certificate.heuristics.cpe_matches = {cve.uri for cve in cpes_ibm_websphere_app_with_platform} - cc_dset.compute_related_cves() - assert ibm_xss_cve.cve_id == random_certificate.heuristics.related_cves + random_config_certificate.heuristics.cpe_matches = {cve.uri for cve in cpes_ibm_websphere_app_with_platform} + cc_config_dset.compute_related_cves() + assert {ibm_xss_cve.cve_id} == random_config_certificate.heuristics.related_cves @pytest.fixture @@ -162,6 +183,11 @@ def random_certificate(cc_dset: CCDataset) -> CCCertificate: return cc_dset["ebd276cca70fd723"] +@pytest.fixture +def random_config_certificate(cc_config_dset: CCDataset) -> CCCertificate: + return cc_config_dset["ebd276cca70fd723"] + + def test_match_cpe(cpe_single_sign_on: CPE, random_certificate: CCCertificate): assert {cpe_single_sign_on.uri} == random_certificate.heuristics.cpe_matches diff --git a/tests/data/cc/analysis/auxillary_datasets/cve_dataset.json b/tests/data/cc/analysis/auxillary_datasets/cve_dataset.json index 5fd4e8ca..4caf45d1 100644 --- a/tests/data/cc/analysis/auxillary_datasets/cve_dataset.json +++ b/tests/data/cc/analysis/auxillary_datasets/cve_dataset.json @@ -56,6 +56,47 @@ "CWE-611" ] } + }, + "CVE-2010-2325": { + "_type": "sec_certs.sample.cve.CVE", + "cve_id": "CVE-2010-2325", + "vulnerable_cpes": [], + "vulnerable_cpe_configurations": [ + { + "_type": "sec_certs.sample.cpe.CPEConfiguration", + "platform": "cpe:2.3:o:ibm:zos:*:*:*:*:*:*:*:*", + "cpes": { + "_type": "Set", + "elements": [ + "cpe:2.3:a:ibm:websphere_application_server:*:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.1:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.2:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.3:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.4:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.5:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.6:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.7:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.8:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0.0.9:*:*:*:*:*:*:*", + "cpe:2.3:a:ibm:websphere_application_server:7.0:*:*:*:*:*:*:*" + ] + } + } + ], + "impact": { + "_type": "sec_certs.sample.cve.CVE.Impact", + "base_score": 4.3, + "severity": "MEDIUM", + "exploitability_score": 8.6, + "impact_score": 2.9 + }, + "published_date": "2010-06-18T18:30:00+00:00", + "cwe_ids": { + "_type": "Set", + "elements": [ + "CWE-79" + ] + } } } }
\ No newline at end of file |
