mirror of
https://github.com/usnistgov/macos_security.git
synced 2026-02-03 14:03:24 +00:00
Enhanced Unification of Documentation and Scripting - Dev_2.0 #20
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @tonyyo11 on GitHub.
Problem to solve
When building guidance with Dev 2.0, multiple issues occur.
--os_versionflag, it only supports a singular operating system version, and unable to pass14, 15, 26collectively../build/800-53r5_high/only including the macOS 15 being present.This becomes problematic from the perspective of no need to work out of a branch where one may create an instance of mSCP locally on device per branch. Attempting to search for
--os_version 26resulted in errors.Intended users
System Administrators/Engineers utilizing mSCP 2.0 via terminal.
Further details
Proposal
Any or all of the following:
<os_name>_<os_version>Testing
Risk: If
generate_guidance.pyis updated to support multiple OS versions, there could be an issue relating to the PLIST and Mobile Configuration Profiles if they too are not updated on a per-OS basis. Deploying a configuration profile that has keys only supported within macOS 26 to a system currently running macOS 14 will not have that key take affect if/when that system updates to macOS 26, potentially leading to failing the rule and requiring the profile to be redeploy or worse, recreated with a new UUID.What does success look like, and how can we measure that?
One of the benefits of a unified branch is the potential of being able to create guidance once for all versions of a particular platform (macOS, or iOS, or visionOS). It should assist in cutting down the amount of work to rebuild baselines, especially as those baselines receive revisions and updates from their respective makers, or from the mSCP team directly.
While mSCP 2.0 will be geared to be able to be taken advantage of by third-party developers who can integrate it into their tooling and applications, System Admins/Engineers will still require the ability to run the project locally without third party integration.
@brodjieski commented on GitHub:
I feel that the direction we should go is to have
generate_guidance.pyrely on the information contained within the provided baseline.yaml file. The baseline.yaml should contain everything it needs to know about OS version and platform, along with the targeted baseline/benchmark to then generate the various pieces (PDF/HTML, mobileconfigs, scripts, etc...). This will prevent the issue of generated documents being overwritten, so long as the provided baseline.yaml filenames are unique.The --os_name and --os_version flags should probably be removed from guidance and only apply to baseline/benchmark generation.
Including additional referencing in the PDF/HTML could be doable, I think, but we would have to figure out how to define it. We wouldn't necessarily want to make that default behavior, or decide what to include/exclude in the documentation.. should probably leave that up to the admin. The additional cross referencing already is generated in the XLS (1.0... 2.0 is still not implemented).