Merge pull request #687 from brodjieski/dev_2.0

Fix handling of supplementals in SCAP processing
This commit is contained in:
Bob Gendler
2026-05-19 16:23:17 -04:00
committed by GitHub
4 changed files with 11 additions and 5 deletions

View File

@@ -4,6 +4,9 @@ discussion: |
The ability for the user to roll back Background Security Improvements _MUST_ be disabled.
references:
nist:
cce:
macos_26:
- 'CCE-123456-7'
800-53r5:
- SI-2
- SI-2(5)

View File

@@ -113,6 +113,7 @@ platforms:
odv:
hint:
description: Maximum Days of Deferral (e.g. 30d)
datatype: string
recommended: 30d
cis_lvl1: 30d
cis_lvl2: 30d

View File

@@ -139,7 +139,7 @@ def generate_guidance(sp: Yaspin, args: argparse.Namespace) -> None:
else:
logo_path = Path(
config["images_dir"],
f"mscp_banner_{baseline.platform['os']}_{'dark' if args.dark else 'light'}.png",
f"mscp_banner_{baseline.platform['os'].lower()}_{'dark' if args.dark else 'light'}.png",
).absolute()
if not logo_path.exists():

View File

@@ -19,7 +19,7 @@ from xml.dom import minidom
# Additional python modules
from ..common_utils import conditional_inject_spinner
from ..common_utils import conditional_inject_spinner, create_file
from yaspin.core import Yaspin
from yaspin.spinners import Spinners
@@ -213,6 +213,8 @@ def generate_scap(sp: Yaspin, args: argparse.Namespace) -> None:
xccdfProfiles = xccdfProfiles + "</Profile>"
for rule in all_rules:
if "supplemental" in rule.tags:
continue
if args.baseline != "all_rules":
if (
not rule_has_benchmark_for_version(
@@ -502,6 +504,7 @@ def generate_scap(sp: Yaspin, args: argparse.Namespace) -> None:
if rule.result_value == 0:
check_existence = "none_exist"
xccdfrules = (
xccdfrules
+ """<Rule id="xccdf_gov.nist.mscp.content_rule_{0}_{1}" selected="false" role="full" severity="{2}" weight="1.0"><title>{3}</title><description>{4}
@@ -733,9 +736,8 @@ def generate_scap(sp: Yaspin, args: argparse.Namespace) -> None:
sp.text = "Writing output files"
time.sleep(1)
with open(output_file, "w") as rite:
rite.write(totaloutput)
rite.close()
create_file(output_file, totaloutput)
sp.text = f"Generated new SCAP file: {output_file}"
sp.ok("")