Blame SOURCES/scap-security-guide-0.1.58-update_stig_mapping_table-PR_7327.patch

362bfa
From ea1bab197a17dd944e41a583c82c3cc757bb566b Mon Sep 17 00:00:00 2001
362bfa
From: Gabriel Becker <ggasparb@redhat.com>
362bfa
Date: Wed, 4 Aug 2021 12:23:05 +0200
362bfa
Subject: [PATCH] Update STIG mapping table to reflect statistics of coverage.
362bfa
362bfa
---
362bfa
 .../shared_xccdf-apply-overlay-stig.xslt      | 59 +++++++++++++------
362bfa
 .../transforms/shared_xccdf2table-stig.xslt   | 28 +++++++++
362bfa
 2 files changed, 68 insertions(+), 19 deletions(-)
362bfa
362bfa
diff --git a/shared/transforms/shared_xccdf-apply-overlay-stig.xslt b/shared/transforms/shared_xccdf-apply-overlay-stig.xslt
362bfa
index 945f709b95..b7c000608c 100644
362bfa
--- a/shared/transforms/shared_xccdf-apply-overlay-stig.xslt
362bfa
+++ b/shared/transforms/shared_xccdf-apply-overlay-stig.xslt
362bfa
@@ -28,26 +28,47 @@
362bfa
       <xsl:variable name="overlay_ref" select="@disa"/>
362bfa
       <xsl:variable name="overlay_title" select="xccdf:title/@text"/>
362bfa
 
362bfa
-      <xsl:for-each select="$rules">
362bfa
-        <xsl:if test="@id=$overlay_rule">
362bfa
-		  <Group id="V-{$overlay_id}">
362bfa
-		    <title>SRG-OS-ID</title>
362bfa
-		    <description></description>
362bfa
-            <Rule id="{$overlay_rule}" severity="{$overlay_severity}" >
362bfa
-			<version><xsl:value-of select="$overlay_version"/></version>
362bfa
-          	<title><xsl:value-of select="$overlay_title"/></title>
362bfa
-          	<description><xsl:copy-of select="xccdf:rationale/node()" /></description>
362bfa
-          	<check system="C-{$overlay_id}_chk">
362bfa
-              <check-content>
362bfa
-					      <xsl:apply-templates select="xccdf:check[@system='http://scap.nist.gov/schema/ocil/2']"/>
362bfa
-              </check-content>
362bfa
-          	</check>
362bfa
-		  	<ident system="https://public.cyber.mil/stigs/cci"><xsl:value-of select="$overlay_ref" /></ident>
362bfa
-          	<fixtext><xsl:copy-of select="xccdf:description/node()" /></fixtext>
362bfa
-          </Rule> 
362bfa
+      <xsl:choose>
362bfa
+        <xsl:when test="$overlay_rule='XXXX'">
362bfa
+          <Group id="V-{$overlay_id}">
362bfa
+            <title>SRG-OS-ID</title>
362bfa
+            <description></description>
362bfa
+                <Rule id="Missing Rule" severity="{$overlay_severity}" >
362bfa
+          <version><xsl:value-of select="$overlay_version"/></version>
362bfa
+                <title><xsl:value-of select="$overlay_title"/></title>
362bfa
+                <description></description>
362bfa
+                <check system="C-{$overlay_id}_chk">
362bfa
+                  <check-content>
362bfa
+                  </check-content>
362bfa
+                </check>
362bfa
+                <ident></ident>
362bfa
+                <fixtext></fixtext>
362bfa
+              </Rule>
362bfa
           </Group>
362bfa
-        </xsl:if>
362bfa
-      </xsl:for-each> 
362bfa
+        </xsl:when>
362bfa
+        <xsl:otherwise>
362bfa
+          <xsl:for-each select="$rules">
362bfa
+            <xsl:if test="@id=$overlay_rule">
362bfa
+          <Group id="V-{$overlay_id}">
362bfa
+            <title>SRG-OS-ID</title>
362bfa
+            <description></description>
362bfa
+                <Rule id="{$overlay_rule}" severity="{$overlay_severity}" >
362bfa
+          <version><xsl:value-of select="$overlay_version"/></version>
362bfa
+                <title><xsl:value-of select="$overlay_title"/></title>
362bfa
+                <description><xsl:copy-of select="xccdf:rationale/node()" /></description>
362bfa
+                <check system="C-{$overlay_id}_chk">
362bfa
+                  <check-content>
362bfa
+                    <xsl:apply-templates select="xccdf:check[@system='http://scap.nist.gov/schema/ocil/2']"/>
362bfa
+                  </check-content>
362bfa
+                </check>
362bfa
+            <ident system="https://public.cyber.mil/stigs/cci"><xsl:value-of select="$overlay_ref" /></ident>
362bfa
+                <fixtext><xsl:copy-of select="xccdf:description/node()" /></fixtext>
362bfa
+              </Rule>
362bfa
+              </Group>
362bfa
+            </xsl:if>
362bfa
+          </xsl:for-each>
362bfa
+        </xsl:otherwise>
362bfa
+    </xsl:choose>
362bfa
 
362bfa
     </xsl:for-each> 
362bfa
     </xsl:copy>
362bfa
diff --git a/shared/transforms/shared_xccdf2table-stig.xslt b/shared/transforms/shared_xccdf2table-stig.xslt
362bfa
index 3746c386c0..4c477542f4 100644
362bfa
--- a/shared/transforms/shared_xccdf2table-stig.xslt
362bfa
+++ b/shared/transforms/shared_xccdf2table-stig.xslt
362bfa
@@ -20,6 +20,34 @@
362bfa
 			
362bfa
 			
362bfa
 			
362bfa
+
362bfa
+			
362bfa
+			
362bfa
+				
362bfa
+				  
362bfa
+					Total
362bfa
+					Missing
362bfa
+					Implemented
362bfa
+					Coverage
362bfa
+					STIG ids missing rule
362bfa
+				  
362bfa
+				
362bfa
+				
362bfa
+				  
362bfa
+					<xsl:value-of select="number(count(/cdf:Benchmark/cdf:Group/cdf:Rule))"/>
362bfa
+					<xsl:value-of select="number(count(/cdf:Benchmark/cdf:Group/cdf:Rule[@id='Missing Rule']))"/>
362bfa
+					<xsl:value-of select="number(count(/cdf:Benchmark/cdf:Group/cdf:Rule[@id!='Missing Rule']))"/>
362bfa
+					<xsl:value-of select="format-number(count(/cdf:Benchmark/cdf:Group/cdf:Rule[@id!='Missing Rule']) div count(/cdf:Benchmark/cdf:Group/cdf:Rule)*100, '#.00')"/>%
362bfa
+					
362bfa
+						<xsl:for-each select="/cdf:Benchmark/cdf:Group/cdf:Rule[@id='Missing Rule']">
362bfa
+							<xsl:value-of select="cdf:version/node()"/><xsl:text>
</xsl:text>
362bfa
+						</xsl:for-each>
362bfa
+					
362bfa
+				  
362bfa
+				
362bfa
+				
362bfa
+			
362bfa
+
362bfa
 			<xsl:apply-templates select="cdf:Benchmark"/>
362bfa
 		</body>
362bfa
 		</html>