# Component Provided Controls vs Implemented Controls ## Problem Statement In the SSP/Statements/By Component structure, there are some inconsistencies across docs. If one looks at the schema page: https://pages.nist.gov/OSCAL/reference/latest/system-security-plan/json-reference/#/system-security-plan/control-implementation/implemented-requirements/statements/by-components …it references that here you *“Define how the referenced component implements a set of controls.”* If the system has a Firewall Appliance component, then the SSP/Statements/By Component->”this system” will have the SC-7 implemented by the respective component Firewall and can document so, and then the SSP/Statements/By Component->”firewall appliance” component of the same SSP will describe the controls the appliance implements, like AC-3 needed to secure the appliance. In this scenario, how can the information regarding the SC-7 and AC-3 be represented in a Component Definition, so a GRC tool understands the difference and how to process the controls when populating the SSP. It is also important to be able to indicate or link in a way the SC-7 control's assessment to the assessment of all controls like AC-3 implemented by the component “Firewall appliance” because if the appliance is not secured properly, the fact that the system used a Firewal appliance does not automatically warants the satisfaction of SC-7. The SC-7 control can be perceived as an _exported_ as in _provided-to_ "this system" component but different than an _inherited_ control (see leverage authorization concept where a control implemented by an infrastructure, like Physical Security control, is inherited by all SaaS services). ![](https://i.imgur.com/urlSGkZ.png) # Related (Known) OSCAL Issues - WIP ## Provide Link Relations for by-component links in SSP #1022 https://github.com/usnistgov/OSCAL/issues/1022#event-8185208099 The issue would address the representation in the SSP of the above information above : ``` system-security-plan control-implementation - implemented-requirements - control[@id="SC-7"] - by-component[@component-uuid="#this-system-uuid"] - link[@rel="provided-by", @href="#firewall-appliance-uuid"] - description: narrative describing how this system has the Firewall appliance that protects the system's boundaries - control[@id="AC-3"] - by-component[@component-uuid="firewall-appliance-uuid"] - description: narrative describing hoe the access to the firewall appliance is implemented ``` # Component Definition Outline The challenge remains when trying to represent in the Componentent Definition of the Firewall appliance both the SC-7 for the system's boundary protection and the controls satisfied/implemented by the appliance to secure its operations and the traffic rules. The CDef Outline follows: ``` component-definition [1]: { uuid [1]: uuid, metadata [1]: { … }, import-component-definitions [0 or 1]: [ … ], components [0 or 1]: [ An array of component objects [1 to ∞] { uuid [1]: uuid, type [1]: string, title [1]: markup-line, description [1]: markup-multiline, purpose [0 or 1]: markup-line, props [0 or 1]: [ … ], links [0 or 1]: [ … ], responsible-roles [0 or 1]: [ … ], protocols [0 or 1]: [ … ], control-implementations [0 or 1]: [ An array of control-implementation objects [1 to ∞] { uuid [1]: uuid, source [1]: uri-reference, description [1]: markup-multiline, props [0 or 1]: [ … ], links [0 or 1]: [ … ], set-parameters [0 or 1]: [ … ], implemented-requirements [1]: [ An array of implemented-requirement objects [1 to ∞] { uuid [1]: uuid, control-id [1]: token, description [1]: markup-multiline, props [0 or 1]: [ … ], links [0 or 1]: [ … ], set-parameters [0 or 1]: [ … ], responsible-roles [0 or 1]: [ … ], statements [0 or 1]: [ … ], remarks [0 or 1]: markup-multiline, } ], } ], remarks [0 or 1]: markup-multiline, } ], capabilities [0 or 1]: [ … ], back-matter [0 or 1]: { … }, ```