ds-analysis-lib 6.3.0__tar.gz → 6.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/PKG-INFO +8 -8
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/pyproject.toml +9 -8
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/config.py +37 -1
- ds_analysis_lib-6.3.2/src/analysis_lib/data/__init__.py +1 -0
- ds_analysis_lib-6.3.2/src/analysis_lib/data/cyclonedx/bom-1.4.schema.json +1697 -0
- ds_analysis_lib-6.3.2/src/analysis_lib/data/cyclonedx/bom-1.5.schema.json +3799 -0
- ds_analysis_lib-6.3.2/src/analysis_lib/data/cyclonedx/bom-1.6.schema.json +5699 -0
- ds_analysis_lib-6.3.2/src/analysis_lib/data/cyclonedx/bom-1.7.schema.json +6700 -0
- ds_analysis_lib-6.3.2/src/analysis_lib/data/cyclonedx/cryptography-defs.schema.json +592 -0
- ds_analysis_lib-6.3.2/src/analysis_lib/data/cyclonedx/jsf-0.82.schema.json +240 -0
- ds_analysis_lib-6.3.2/src/analysis_lib/data/cyclonedx/spdx.schema.json +1632 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/golem_slices.py +81 -10
- ds_analysis_lib-6.3.2/src/analysis_lib/helpers.py +54 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/normalize.py +22 -20
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/output.py +125 -58
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/reachability.py +2 -2
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/utils.py +126 -62
- ds_analysis_lib-6.3.2/src/analysis_lib/validation.py +151 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vdr.py +8 -2
- ds_analysis_lib-6.3.2/src/analysis_lib/vex/dates.py +87 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/emit.py +31 -6
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/models.py +1 -1
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/product_tree.py +2 -1
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/refs.py +57 -4
- ds_analysis_lib-6.3.2/src/analysis_lib/vex/semantic.py +557 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/tracking.py +4 -15
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/vulnerabilities.py +67 -17
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/ds_analysis_lib.egg-info/PKG-INFO +8 -8
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/ds_analysis_lib.egg-info/SOURCES.txt +16 -0
- ds_analysis_lib-6.3.2/src/ds_analysis_lib.egg-info/requires.txt +7 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_analysis.py +2 -1
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_dosai_runner.py +7 -7
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_golem_runner.py +7 -7
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_golem_slices.py +166 -10
- ds_analysis_lib-6.3.2/tests/test_imports.py +57 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_norm.py +64 -0
- ds_analysis_lib-6.3.2/tests/test_output.py +328 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_reachability.py +24 -24
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_rusi_runner.py +7 -7
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_rusi_slices.py +5 -11
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_search.py +5 -14
- ds_analysis_lib-6.3.2/tests/test_utils.py +804 -0
- ds_analysis_lib-6.3.2/tests/test_validation.py +110 -0
- ds_analysis_lib-6.3.2/tests/test_vdr.py +527 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_vex.py +344 -6
- ds_analysis_lib-6.3.0/src/ds_analysis_lib.egg-info/requires.txt +0 -7
- ds_analysis_lib-6.3.0/tests/test_utils.py +0 -328
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/README.md +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/setup.cfg +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/__init__.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/dosai_slices.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/rusi_slices.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/search.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/__init__.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/csaf.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/cvss.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/data/csaf_2.0_json_schema.json +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/data/csaf_2.1_json_schema.json +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/data/cvss/cvss-v2.0.json +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/data/cvss/cvss-v3.0.json +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/data/cvss/cvss-v3.1.json +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/data/cvss/cvss-v4.0.json +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/analysis_lib/vex/reachability.py +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/ds_analysis_lib.egg-info/dependency_links.txt +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/src/ds_analysis_lib.egg-info/top_level.txt +0 -0
- {ds_analysis_lib-6.3.0 → ds_analysis_lib-6.3.2}/tests/test_dosai_slices.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ds-analysis-lib
|
|
3
|
-
Version: 6.3.
|
|
3
|
+
Version: 6.3.2
|
|
4
4
|
Summary: Analysis library for owasp depscan
|
|
5
5
|
Author-email: Team AppThreat <cloud@appthreat.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -20,10 +20,10 @@ Classifier: Topic :: Security
|
|
|
20
20
|
Classifier: Topic :: Utilities
|
|
21
21
|
Requires-Python: >=3.10
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
|
-
Requires-Dist: appthreat-vulnerability-db[oras]~=6.7.
|
|
24
|
-
Requires-Dist: custom-json-diff
|
|
25
|
-
Requires-Dist: cvss
|
|
26
|
-
Requires-Dist: jsonschema
|
|
27
|
-
Requires-Dist: referencing
|
|
28
|
-
Requires-Dist: rich
|
|
29
|
-
Requires-Dist: toml
|
|
23
|
+
Requires-Dist: appthreat-vulnerability-db[oras]~=6.7.7
|
|
24
|
+
Requires-Dist: custom-json-diff~=2.1.6
|
|
25
|
+
Requires-Dist: cvss~=3.6
|
|
26
|
+
Requires-Dist: jsonschema~=4.26.0
|
|
27
|
+
Requires-Dist: referencing~=0.37.0
|
|
28
|
+
Requires-Dist: rich~=15.0.0
|
|
29
|
+
Requires-Dist: toml~=0.10.2
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ds-analysis-lib"
|
|
3
|
-
version = "6.3.
|
|
3
|
+
version = "6.3.2"
|
|
4
4
|
description = "Analysis library for owasp depscan"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Team AppThreat", email = "cloud@appthreat.com"},
|
|
7
7
|
]
|
|
8
8
|
dependencies = [
|
|
9
|
-
"appthreat-vulnerability-db[oras]~=6.7.
|
|
10
|
-
"custom-json-diff
|
|
11
|
-
"cvss
|
|
12
|
-
"jsonschema
|
|
13
|
-
"referencing
|
|
14
|
-
"rich
|
|
15
|
-
"toml
|
|
9
|
+
"appthreat-vulnerability-db[oras]~=6.7.7",
|
|
10
|
+
"custom-json-diff~=2.1.6",
|
|
11
|
+
"cvss~=3.6",
|
|
12
|
+
"jsonschema~=4.26.0",
|
|
13
|
+
"referencing~=0.37.0",
|
|
14
|
+
"rich~=15.0.0",
|
|
15
|
+
"toml~=0.10.2"
|
|
16
16
|
]
|
|
17
17
|
|
|
18
18
|
requires-python = ">=3.10"
|
|
@@ -44,6 +44,7 @@ build-backend = "setuptools.build_meta"
|
|
|
44
44
|
|
|
45
45
|
[tool.setuptools.package-data]
|
|
46
46
|
"analysis_lib.vex.data" = ["*.json", "cvss/*.json"]
|
|
47
|
+
"analysis_lib.data" = ["cyclonedx/*.json"]
|
|
47
48
|
|
|
48
49
|
[tool.pytest.ini_options]
|
|
49
50
|
minversion = "6.0"
|
|
@@ -22,6 +22,24 @@ def get_int_from_env(name, default):
|
|
|
22
22
|
return value
|
|
23
23
|
|
|
24
24
|
|
|
25
|
+
# BOM generation profiles understood by cdxgen. This is the single source of
|
|
26
|
+
# truth shared by the CLI (`--profile`) and the server (`/scan?profile=`): the
|
|
27
|
+
# value is forwarded to cdxgen as a command line argument, so any caller
|
|
28
|
+
# supplying it must constrain it to this set.
|
|
29
|
+
SUPPORTED_BOM_PROFILES = (
|
|
30
|
+
"appsec",
|
|
31
|
+
"research",
|
|
32
|
+
"operational",
|
|
33
|
+
"threat-modeling",
|
|
34
|
+
"license-compliance",
|
|
35
|
+
"generic",
|
|
36
|
+
"machine-learning",
|
|
37
|
+
"ml",
|
|
38
|
+
"deep-learning",
|
|
39
|
+
"ml-deep",
|
|
40
|
+
"ml-tiny",
|
|
41
|
+
)
|
|
42
|
+
|
|
25
43
|
# CPE Full Regex including unused parameters
|
|
26
44
|
CPE_FULL_REGEX = re.compile(
|
|
27
45
|
"cpe:?:[^:]+:(?P<cve_type>[^:]+):(?P<vendor>[^:]+):(?P<package>[^:]+):(?P<version>[^:]+):(?P<update>[^:]+):(?P<edition>[^:]+):(?P<lang>[^:]+):(?P<sw_edition>[^:]+):(?P<target_sw>[^:]+):(?P<target_hw>[^:]+):(?P<other>[^:]+)"
|
|
@@ -307,7 +325,10 @@ TIME_FMT = "%Y-%m-%dT%H:%M:%S"
|
|
|
307
325
|
CWE_SPLITTER = re.compile(r"(?<=CWE-)[0-9]\d{0,5}", re.IGNORECASE)
|
|
308
326
|
JFROG_ADVISORY = re.compile(r"(?P<id>jfsa\S+)", re.IGNORECASE)
|
|
309
327
|
ADVISORY = re.compile(
|
|
310
|
-
|
|
328
|
+
# A dot is part of the id only before a digit, so version numbers in a
|
|
329
|
+
# slug survive (vulncheck's node-forge-through-1.4.0-rsa-...) while a
|
|
330
|
+
# file extension does not (intel-sa-00123.html -> intel-sa-00123).
|
|
331
|
+
r"(?P<org>[^\s./]+).(?:com|org)/(?:[\S]+)?/(?P<id>(?:(?:ghsa|ntap|rhsa|rhba|zdi|dsa|cisco|intel|usn)-)?[\w\d\-:]{5,}(?:\.\d[\w\d\-:]*)*)",
|
|
311
332
|
re.IGNORECASE,
|
|
312
333
|
)
|
|
313
334
|
|
|
@@ -1461,4 +1482,19 @@ SAFE_ENDPOINT_REACHABLE_PURLS = (
|
|
|
1461
1482
|
"pkg:npm/bootstrap",
|
|
1462
1483
|
)
|
|
1463
1484
|
|
|
1485
|
+
# Rubygems version strings may carry a platform suffix (e.g. the x86_64-linux
|
|
1486
|
+
# build of a gem with native extensions). create_pkg_variations adds an alias
|
|
1487
|
+
# that strips the suffix so the platform-independent advisory still matches.
|
|
1488
|
+
RUBY_PLATFORM_MARKERS = [
|
|
1489
|
+
"-x86_64",
|
|
1490
|
+
"-x86",
|
|
1491
|
+
"-x64",
|
|
1492
|
+
"-aarch",
|
|
1493
|
+
"-arm",
|
|
1494
|
+
"-ruby",
|
|
1495
|
+
"-universal",
|
|
1496
|
+
"-java",
|
|
1497
|
+
"-truffle",
|
|
1498
|
+
]
|
|
1499
|
+
|
|
1464
1500
|
MIN_POSTBUILD_CONFIDENCE = 0.5
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Bundled JSON schemas used by :mod:`analysis_lib.validation`."""
|