aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGeogeFI2023-01-31 00:02:31 +0100
committerGeogeFI2023-01-31 00:02:31 +0100
commit65a3b18b09c4608da73565cf50978b53a8126c47 (patch)
treed32a06401dd4360bbb2ba2e3a50ee22b6dda5280
parent5e2f4aea83e6d1f2d30b7ea46dcc744d6ceb221a (diff)
downloadsec-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.py36
-rw-r--r--tests/data/cc/analysis/auxillary_datasets/cve_dataset.json41
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