This repo includes sample implementations of security control profiles from the Canadian Centre for Cyber Security (CCCS), expressed using the Open Security Controls Assessment Language (OSCAL).
For an introduction to key OSCAL concepts, please see the documentation.
CCCS' security guidance has been expressed in the following OSCAL files:
cccs-control-catalog.json
— This OSCAL catalog describes security controls that are not part of NIST 800-53.cccs-mods-profile.json
— This OSCAL profile imports controls from the NIST 800-53 and CCCS1 catalogs and makes CCCS-specific modifications.cccs-medium-profile.json
— This OSCAL profile imports controls from thecccs-mods
profile and sets parameters in accordance with the CCCS Medium security control profile.cccs-pbhva-overlay-profile.json
— This OSCAL profile imports controls from thecccs-mods
profile and sets parameters in accordance with the CCCS Protected B High Value Assets (PBHVA) security control overlay.cccs-medium+pbhva-profile.json
- This OSCAL profile imports controls from thecccs-mods
profile and sets parameters in accordance with both the CCCS Medium security control profile and the PBHVA overlay.
This repo also incorporates NIST's oscal-content
repo as a submodule, which includes the NIST 800-53 catalog in OSCAL form.
The scripts
folder includes a shell script, resolve.sh
, which completes the following steps for each of the included profiles:
- Calls
oscal-cli
to resovle the profile to an OSCAL catalog (see NIST's documentation for more information on profile resolution). - Calls
oscal-cli
to validate the resolved catalog. - Calls
catalog-to-csv.py
, which converts the catalog into a human-readable CSV format, including mapping specified parameter values into control statements.
The outputs generated by resolve.sh
are included in the repo, and are named as follows:
cccs-{profile}-resolved.json
cccs-{profile}-resolved.csv
- Install prerequisites as required for your OS:
- Python 3
- Java Runtime Environment
oscal-cli
: https://github.com/metaschema-framework/oscal-cli
- Clone this repo locally, using
git clone
with the--recurse-submodules
flag. - Make changes to the files listed under OSCAL Files above.
- From the root directory of the repo, run
scripts/resolve.sh
, which will generate and overwrite the*-resolved.json
and*-resolved.csv
files.
See CONTRIBUTING for more information.
This library is licensed under the MIT-0 License. See the LICENSE file.
Footnotes
-
CCCS controls are not currently imported due to https://github.com/aws-samples/cccs-oscal-samples/issues/1 ↩