aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGeogeFI2023-02-09 18:58:25 +0100
committerGeogeFI2023-02-09 18:58:25 +0100
commit0448df8db628f5ae73dc96e4ed80223023bd7ddd (patch)
treebe8f8c796e2581e486d0312a18ffea620d4c0048
parentf0d27cbec6979c8785e4ca9cae1a162661e4ad10 (diff)
downloadsec-certs-0448df8db628f5ae73dc96e4ed80223023bd7ddd.tar.gz
sec-certs-0448df8db628f5ae73dc96e4ed80223023bd7ddd.tar.zst
sec-certs-0448df8db628f5ae73dc96e4ed80223023bd7ddd.zip
test: Added tests for FIPS
-rw-r--r--tests/fips/test_fips_analysis.py58
1 files changed, 54 insertions, 4 deletions
diff --git a/tests/fips/test_fips_analysis.py b/tests/fips/test_fips_analysis.py
index 14ec1579..6cc77cda 100644
--- a/tests/fips/test_fips_analysis.py
+++ b/tests/fips/test_fips_analysis.py
@@ -7,7 +7,7 @@ import pytest
import tests.data.fips.dataset
from sec_certs.dataset import CPEDataset, CVEDataset
from sec_certs.dataset.fips import FIPSDataset
-from sec_certs.sample.cpe import CPE
+from sec_certs.sample.cpe import CPE, CPEConfiguration
from sec_certs.sample.cve import CVE
@@ -52,9 +52,48 @@ def some_other_cve(some_random_cpe: CPE) -> CVE:
{"CVE-611"},
)
+@pytest.fixture(scope="module")
+def ibm_cpe_configurations() -> CPEConfiguration:
+ return CPEConfiguration(
+ "cpe:2.3:o:ibm:zos:*:*:*:*:*:*:*:*",
+ {
+ "cpe:2.3:a:ibm:websphere_application_server:7.0:*:*:*:*:*:*:*",
+ "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:*:*:*:*:*:*:*:*",
+ },
+ )
+
+
+@pytest.fixture(scope="module")
+def cpes_ibm_websphere_app_with_platform() -> set[CPE]:
+ return {
+ CPE("cpe:2.3:o:ibm:zos:*:*:*:*:*:*:*:*", "IBM zOS"),
+ CPE("cpe:2.3:a:ibm:websphere_application_server:*:*:*:*:*:*:*:*", "IBM WebSphere Application Server"),
+ }
+
+
+@pytest.fixture(scope="module")
+def ibm_xss_cve(ibm_cpe_configurations) -> CVE:
+ return CVE(
+ "CVE-2010-2325",
+ set(),
+ {ibm_cpe_configurations},
+ CVE.Impact(4.3, "MEDIUM", 2.9, 8.6),
+ "2000-06-18T04:15Z",
+ {"CWE-79"},
+ )
+
@pytest.fixture(scope="module")
-def cpe_dataset(vulnerable_cpe: CPE, some_random_cpe: CPE) -> CPEDataset:
+def cpe_dataset(vulnerable_cpe: CPE, some_random_cpe: CPE, cpes_ibm_websphere_app_with_platform: set[CPE]) -> CPEDataset:
cpes = {
vulnerable_cpe,
some_random_cpe,
@@ -66,13 +105,15 @@ def cpe_dataset(vulnerable_cpe: CPE, some_random_cpe: CPE) -> CPEDataset:
"cpe:2.3:a:tracker-software:pdf-xchange_lite_printer:6.0.320.0:*:*:*:*:*:*:*",
"Tracker Software PDF-XChange Lite Printer 6.0.320.0",
),
+ *cpes_ibm_websphere_app_with_platform,
}
+
return CPEDataset(False, {x.uri: x for x in cpes})
@pytest.fixture(scope="module")
-def cve_dataset(cve: CVE, some_other_cve: CVE) -> CVEDataset:
- cves = {cve, some_other_cve}
+def cve_dataset(cve: CVE, some_other_cve: CVE, ibm_xss_cve: CVE) -> CVEDataset:
+ cves = {cve, some_other_cve, ibm_xss_cve}
cve_dset = CVEDataset({x.cve_id: x for x in cves})
cve_dset.build_lookup_dict(use_nist_mapping=False)
return cve_dset
@@ -218,6 +259,15 @@ def test_find_related_cves(processed_dataset: FIPSDataset, cve: CVE, some_other_
assert some_other_cve not in processed_dataset["2441"].heuristics.related_cves
+def test_find_related_cves_for_cpe_configuration(processed_dataset: FIPSDataset, cpes_ibm_websphere_app_with_platform: set[CPE]):
+ cert = processed_dataset["2441"]
+ cert.heuristics.cpe_matches = {cve.uri for cve in cpes_ibm_websphere_app_with_platform}
+ processed_dataset.compute_related_cves()
+ assert {ibm_xss_cve.cve_id} == random_config_certificate.heuristics.related_cves
+
+
+
+
def test_keywords_heuristics(processed_dataset: FIPSDataset):
keywords = processed_dataset["2441"].pdf_data.keywords
assert keywords