From 0c41ca1ca9736f24517737578ac3debb981e4e5b Mon Sep 17 00:00:00 2001
From: Jan Lieskovsky <jlieskov@redhat.com>
Date: Thu, 12 Sep 2013 17:19:45 +0200
Subject: [PATCH 3/8] Add Fedora-19 basic guide XML (and corresponding XSLT)
 files.


Signed-off-by: Jan Lieskovsky <jlieskov@redhat.com>
---
 FEDORA/input/guide.xml  |  40 +++++++++++++
 FEDORA/input/guide.xslt | 148 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 188 insertions(+)
 create mode 100644 FEDORA/input/guide.xml
 create mode 100644 FEDORA/input/guide.xslt

diff --git a/FEDORA/input/guide.xml b/FEDORA/input/guide.xml
new file mode 100644
index 0000000..0b92540
--- /dev/null
+++ b/FEDORA/input/guide.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<Benchmark xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/" id="FEDORA-19" xsi:schemaLocation="http://checklists.nist.gov/xccdf/1.1 xccdf-1.1.4.xsd" resolved="false" xml:lang="en-US" >
+
+<status date="2011-12-20">draft</status>
+<title>Guide to the Secure Configuration of Fedora release 19 (Schrödinger's Cat)</title>
+<description>This guide presents a catalog of security-relevant
+configuration settings for Fedora release 19 (Schrödinger's Cat) formatted in the
+eXtensible Configuration Checklist Description Format (XCCDF).
+<br/>
+<br/>
+Providing system administrators with such guidance informs them how to securely
+configure systems under their control in a variety of network roles.  Policy
+makers and baseline creators can use this catalog of settings, with its
+associated references to higher-level security control catalogs, in order to
+assist them in security baseline creation.  This guide is a <i>catalog, not a
+checklist,</i> and satisfaction of every item is not likely to be possible or
+sensible in many operational scenarios.  However, the XCCDF format enables
+granular selection and adjustment of settings, and their association with OVAL
+and OCIL content provides an automated checking capability.  Transformations of
+this document, and its associated automated checking content, are capable of
+providing baselines that meet a diverse set of policy objectives.  Some example
+XCCDF <i>Profiles</i>, which are selections of items that form checklists and
+can be used as baselines, are available with this guide.  They can be
+processed, in an automated fashion, with tools that support the Security
+Content Automation Protocol (SCAP).
+</description>
+<notice id="terms_of_use">Do not attempt to implement any of the settings in
+this guide without first testing them in a non-operational environment. The
+creators of this guidance assume no responsibility whatsoever for its use by
+other parties, and makes no guarantees, expressed or implied, about its
+quality, reliability, or any other characteristic.</notice>
+
+<front-matter>The SCAP Security Guide Project<br/>https://fedorahosted.org/scap-security-guide</front-matter>
+<rear-matter>Red Hat and Fedora are either registered
+trademarks or trademarks of Red Hat, Inc. in the United States and other
+countries. All other names are registered trademarks or trademarks of their
+respective companies.</rear-matter>
+<platform idref="cpe:/o:fedoraproject:fedora:19" />
+<version>0.0.1</version>
+</Benchmark>
diff --git a/FEDORA/input/guide.xslt b/FEDORA/input/guide.xslt
new file mode 100644
index 0000000..3ac59e9
--- /dev/null
+++ b/FEDORA/input/guide.xslt
@@ -0,0 +1,148 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xccdf="http://checklists.nist.gov/xccdf/1.1" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:dc="http://purl.org/dc/elements/1.1/">
+
+<!-- This transform assembles all fragments into one "shorthand" XCCDF document -->
+
+  <xsl:template match="Benchmark">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+
+       <!-- adding profiles here -->
+       <!-- Relevant (currently commented-out) document files below to be included
+            later once there is a requirement them to be included (in order to the final
+            XCCDF / OVAL files generation to work properly). For now only those, included
+            below are sufficient. -->
+		<xsl:apply-templates select="document('profiles/test.xml')" />
+		<!--
+		<xsl:apply-templates select="document('profiles/CS2.xml')" />
+		<xsl:apply-templates select="document('profiles/common.xml')" />
+		<xsl:apply-templates select="document('profiles/desktop.xml')" />
+		<xsl:apply-templates select="document('profiles/server.xml')" />
+		<xsl:apply-templates select="document('profiles/ftp.xml')" />
+		<xsl:apply-templates select="document('profiles/stig-rhel6-server.xml')" />
+		-->
+
+
+       <Value id="conditional_clause" type="string" operator="equals">
+                 <title>A conditional clause for check statements.</title>
+                 <description>A conditional clause for check statements.</description>
+                 <value>This is a placeholder.</value>
+       </Value>
+      <xsl:apply-templates select="document('intro/intro.xml')" />
+      <xsl:apply-templates select="document('system/system.xml')" />
+	<!--
+      <xsl:apply-templates select="document('services/services.xml')" />
+	-->
+      <!-- the auxiliary Groups here will be removed prior to some outputs -->
+	<!--
+      <xsl:apply-templates select="document('auxiliary/srg_support.xml')" />
+	-->
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="Group[@id='system']">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+      <xsl:apply-templates select="document('system/software/software.xml')" />
+	<!--
+      <xsl:apply-templates select="document('system/permissions/permissions.xml')" />
+      <xsl:apply-templates select="document('system/selinux.xml')" />
+      <xsl:apply-templates select="document('system/accounts/accounts.xml')" />
+      <xsl:apply-templates select="document('system/network/network.xml')" />
+      <xsl:apply-templates select="document('system/logging.xml')" />
+      <xsl:apply-templates select="document('system/auditing.xml')" />
+	-->
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="Group[@id='software']">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+	<!--
+      <xsl:apply-templates select="document('system/software/disk_partitioning.xml')" />
+	-->
+      <xsl:apply-templates select="document('system/software/updating.xml')" />
+	<!--
+      <xsl:apply-templates select="document('system/software/integrity.xml')" />
+	-->
+    </xsl:copy>
+  </xsl:template>
+
+<!--
+  <xsl:template match="Group[@id='accounts']">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+      <xsl:apply-templates select="document('system/accounts/restrictions/restrictions.xml')" />
+      <xsl:apply-templates select="document('system/accounts/pam.xml')" />
+      <xsl:apply-templates select="document('system/accounts/session.xml')" />
+      <xsl:apply-templates select="document('system/accounts/physical.xml')" />
+      <xsl:apply-templates select="document('system/accounts/banners.xml')" />
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="Group[@id='accounts-restrictions']">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+      <xsl:apply-templates select="document('system/accounts/restrictions/root_logins.xml')" />
+      <xsl:apply-templates select="document('system/accounts/restrictions/password_storage.xml')" />
+      <xsl:apply-templates select="document('system/accounts/restrictions/password_expiration.xml')" />
+      <xsl:apply-templates select="document('system/accounts/restrictions/account_expiration.xml')" />
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="Group[@id='permissions']">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+      <xsl:apply-templates select="document('system/permissions/partitions.xml')" />
+      <xsl:apply-templates select="document('system/permissions/mounting.xml')" />
+      <xsl:apply-templates select="document('system/permissions/files.xml')" />
+      <xsl:apply-templates select="document('system/permissions/execution.xml')" />
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="Group[@id='network']">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+      <xsl:apply-templates select="document('system/network/kernel.xml')" />
+      <xsl:apply-templates select="document('system/network/wireless.xml')" />
+      <xsl:apply-templates select="document('system/network/ipv6.xml')" />
+      <xsl:apply-templates select="document('system/network/iptables.xml')" />
+      <xsl:apply-templates select="document('system/network/ssl.xml')" />
+      <xsl:apply-templates select="document('system/network/uncommon.xml')" />
+      <xsl:apply-templates select="document('system/network/ipsec.xml')" />
+    </xsl:copy>
+  </xsl:template>
+
+  <xsl:template match="Group[@id='services']">
+    <xsl:copy>
+      <xsl:copy-of select="@*|node()" />
+      <xsl:apply-templates select="document('services/obsolete.xml')" />
+      <xsl:apply-templates select="document('services/base.xml')" />
+      <xsl:apply-templates select="document('services/cron.xml')" />
+      <xsl:apply-templates select="document('services/ssh.xml')" />
+      <xsl:apply-templates select="document('services/xorg.xml')" />
+      <xsl:apply-templates select="document('services/avahi.xml')" />
+      <xsl:apply-templates select="document('services/printing.xml')" />
+      <xsl:apply-templates select="document('services/dhcp.xml')" />
+      <xsl:apply-templates select="document('services/ntp.xml')" />
+      <xsl:apply-templates select="document('services/mail.xml')" />
+      <xsl:apply-templates select="document('services/ldap.xml')" />
+      <xsl:apply-templates select="document('services/nfs.xml')" />
+      <xsl:apply-templates select="document('services/dns.xml')" />
+      <xsl:apply-templates select="document('services/ftp.xml')" />
+      <xsl:apply-templates select="document('services/http.xml')" />
+      <xsl:apply-templates select="document('services/imap.xml')" />
+      <xsl:apply-templates select="document('services/smb.xml')" />
+      <xsl:apply-templates select="document('services/squid.xml')" />
+      <xsl:apply-templates select="document('services/snmp.xml')" />
+    </xsl:copy>
+  </xsl:template>
+-->
+
+  <!-- copy everything else through to final output -->
+  <xsl:template match="@*|node()">
+    <xsl:copy>
+      <xsl:apply-templates select="@*|node()" />
+    </xsl:copy>
+  </xsl:template>
+</xsl:stylesheet>
-- 
1.7.11.7

