GSA / fedramp-automation

FedRAMP Automation
https://www.fedramp.gov/using-the-fedramp-oscal-resources-and-templates/
Other
293 stars 89 forks source link

Clarification on Granularity of implementation-status #215

Closed telosBA closed 1 year ago

telosBA commented 2 years ago

NOTE: For feedback related to the OSCAL syntax itself, please create or add to an issue in the NIST OSCAL Repository.

FedRAMP SSP Guide p.38

What is the granularity of Implementation Status? I.e. if assessors review at the part level, it should be inherited up to the control parent level. Is that acceptable in the reverse?

david-waltermire commented 2 years ago

The intent here from an OSCAL perspective is that definition of implementation-status at the control level would apply to all statements, while implementation-status at the statement level would apply to only that statement. This means that implementation-status at the statement level would override the inherited value at the control level for a given component.

This means that for a given component, all effective statement level implementation-status values would need to be the same for the control to have that value. Otherwise, the individual statement level effective values should be used.

telosBA commented 2 years ago

@david-waltermire-nist Is this acceptable?

<implemented-requirement control-id="AC-7.1.a" uuid="eee8697a-bc39-45aa-accc-d3e534932efb">
    <prop name="control-origination" value="organization"/>
    <prop name="control-origination" value="customer-configured"/>
    <link href="same as href from backmatter(FilePath)" rel="artifact"/>       
    <set-parameter param-id="AC01AccConPol1">
      <value>$parameter.answer</value>
    </set-parameter>
    <responsible-role role-id="fedramp-pmo">
      <party-uuid>77e0e2c8-2560-4fe9-ac78-c3ff4ffc9f6d</party-uuid>
    </responsible-role>
    <statement statement-id="ac-7.1.a-private" uuid="240fa015-01df-4741-bff5-6958c7fb85e5">
        <by-component component-uuid="60f92bcf-f353-4236-9803-2a5d417555f4" uuid="d9d1ce66-ff47-474d-8596-5fdf2af60179">
          <description>
            <p>Text from the system implementation details - system, since control is shared</p>
          </description>  
          <implementation-status state="implemented"></implementation-status>
        </by-component> 
        <by-component component-uuid="60f92bcf-f353-4236-9803-2a5d417555f5" uuid="d9d1ce66-ff47-474d-8596-5fdf2af60179">
          <description>
            <p>Text from the system implementation details - provider project</p>
          </description>  
          <implementation-status state="planned"></implementation-status>
        </by-component> 
    </statement> 
    <statement statement-id="ac-7.1.a-public" uuid="240fa015-01df-4741-bff5-6958c7fb85e5">
        <by-component component-uuid="60f92bcf-f353-4236-9803-2a5d417555f4" uuid="d9d1ce66-ff47-474d-8596-5fdf2af60179">
          <description>
            <p>Text from the system implementation details - system, since control is shared</p>
          </description>  
          <implementation-status state="implemented"></implementation-status>
        </by-component> 
        <by-component component-uuid="60f92bcf-f353-4236-9803-2a5d417555f5" uuid="d9d1ce66-ff47-474d-8596-5fdf2af60179">
          <description>
            <p>Text from the system implementation details - provider project</p>
          </description>  
          <implementation-status state="planned"></implementation-status>
        </by-component> 
    </statement>   
</implemented-requirement>
telosBA commented 2 years ago

The intent here from an OSCAL perspective is that definition of implementation-status at the control level would apply to all statements, while implementation-status at the statement level would apply to only that statement. This means that implementation-status at the statement level would override the inherited value at the control level for a given component.

This means that for a given component, all effective statement level implementation-status values would need to be the same for the control to have that value. Otherwise, the individual statement level effective values should be used.

@david-waltermire-nist please see comment with sample XML to confirm acceptability.