<?xml version="1.0" ?>

<!-- added this processing instruction to test browser automatic XSLT -->
<?xml-stylesheet type="text/xsl" href="xccdf2xhtml-1.0.xsl" ?>

<cdf:Benchmark id="ios-test-5" resolved="1" xml:lang="en"
   xmlns:cdf="http://checklists.nist.gov/xccdf/1.0"
   xmlns:cdfp="http://www.cisecurity.org/xccdf/platform/0.2.3"
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:htm="http://www.w3.org/1999/xhtml"
   xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
   xsi:schemaLocation="http://checklists.nist.gov/xccdf/1.0 
                       xccdf-0.12.1.xsd 
                       http://www.cisecurity.org/xccdf/platform/0.2.3 
                       xccdf-platform-0.2.3.xsd">

   <cdf:status date="2004-10-07">draft</cdf:status>
   <cdf:title>XCCDF Sample for Cisco IOS</cdf:title>
   <cdf:description>
     This document defines a small set of rules for securing Cisco 
     IOS routers.  The set of rules constitute a <htm:i>benchmark</htm:i>. 
     A benchmark usually represents an industry consensus of best 
     practices.  It lists steps to be taken as well as rationale for 
     them.  This particular benchmark is merely a small subset of the
     rules that would be necessary for securing an IOS router.
   </cdf:description>

   <cdf:notice id="Sample-Terms-Of-Use">
     This sample may be freely copied and used, at least for now.
   </cdf:notice>
   <cdf:front-matter>
     <htm:p>
       This benchmark assumes that you are running IOS 11.3 or later.
     </htm:p>
   </cdf:front-matter>
   <cdf:reference href="http://www.nsa.gov/ia/">
     NSA Router Security Configuration Guide, Version 1.1b
   </cdf:reference>
   <cdf:reference>
     SANS Securing Cisco Routers Step-by-Step
   </cdf:reference>

   <cdfp:platform-definitions>
      <cdfp:os id="os-cisco-ios12">
        <cdfp:title>Cisco IOS 12.x</cdfp:title>
        <cdfp:vendor>Cisco Systems</cdfp:vendor>
        <cdfp:family>IOS</cdfp:family>
        <cdfp:level>12</cdfp:level>
        <cdfp:version-range>
           <cdfp:min-inclusive>12.0.0</cdfp:min-inclusive>
           <cdfp:max-inclusive>12.3.10</cdfp:max-inclusive>
        </cdfp:version-range>
      </cdfp:os>
      <cdfp:os id="os-cisco-ios11">
        <cdfp:title>Cisco IOS 11.3</cdfp:title>
        <cdfp:vendor>Cisco Systems</cdfp:vendor>
        <cdfp:family>IOS</cdfp:family>
        <cdfp:version-range>
           <cdfp:min-inclusive>11.3.0</cdfp:min-inclusive>
           <cdfp:max-inclusive>11.3.99</cdfp:max-inclusive>
        </cdfp:version-range>
      </cdfp:os>
      <cdfp:hardware id="hwr-routers">
         <cdfp:title>Cisco routers</cdfp:title>
         <cdfp:vendor>Cisco Systems</cdfp:vendor>
         <cdfp:family>router</cdfp:family>
      </cdfp:hardware>
      <cdfp:platform-definition id="cisco-ios-12-routers">
        <cdfp:title>Cisco IOS Routers version 12+</cdfp:title>
        <cdfp:logical-operator operator="and">
          <cdfp:product idref="os-cisco-ios12"/>
          <cdfp:product idref="hwr-routers"/>
        </cdfp:logical-operator>
      </cdfp:platform-definition>
      <cdfp:platform-definition id="cisco-ios-11-routers">
        <cdfp:title>Cisco IOS Routers version 11.x</cdfp:title>
        <cdfp:logical-operator operator="and">
          <cdfp:product idref="os-cisco-ios11"/>
          <cdfp:product idref="hwr-routers"/>
        </cdfp:logical-operator>
      </cdfp:platform-definition>
   </cdfp:platform-definitions>

   <cdf:platform idref="cisco-ios-11-routers"/>
   <cdf:platform idref="cisco-ios-12-routers"/>

   <cdf:version>0.12.1</cdf:version>

 <cdf:Value id="exec-timeout-time" type="number" 
            operator="less than or equal">
   <cdf:title>IOS - line exec timeout value</cdf:title>
   <cdf:description>
      The length of time that an interactive session should
      be allowed to stay idle before being terminated.  
      Expressed in minutes.
   </cdf:description>
   <cdf:question>Session exec timeout time (in minutes)</cdf:question>
   <cdf:value>10</cdf:value>
   <cdf:default selector="strict">10</cdf:default>
   <cdf:default selector="lenient">30</cdf:default>
   <cdf:lower-bound>1</cdf:lower-bound>
   <cdf:upper-bound>60</cdf:upper-bound>
 </cdf:Value>

   <cdf:Group id="mgmt-plane" selected="1" prohibitChanges="1">
     <cdf:title>Management Plane Rules</cdf:title>
     <cdf:description>
       Services, settings, and data streams related to\
       setting up and examining the static configuration of the router, and\
       the authentication and authorization of administrators/operators.
     </cdf:description>
     <cdf:requires idref="no-directed-broadcast"/>

     <cdf:Rule id="ios11-no-finger-service" 
               selected="0" prohibitChanges="1" 
               hidden="0" weight="5">
       <cdf:title>IOS 11 - no IP finger service</cdf:title>
       <cdf:description>
         Disable the finger service, it can reveal information
         about logged in users to unauthorized parties.
       </cdf:description>
       <cdf:question>Prohibit the finger service</cdf:question>
       <cdf:platform idref="cisco-ios-11-routers"/>
       <cdf:fix>no service finger</cdf:fix>
       <cdf:check system="http://oval.mitre.org/XMLSchema/oval">
         <cdf:check-content-ref href="iosDefinitions.xml" name="OVAL1002"/>
       </cdf:check>
     </cdf:Rule>

     <cdf:Rule id="ios12-no-finger-service" 
               selected="0" prohibitChanges="1" 
               weight="5" hidden="0">
       <cdf:title>IOS 12 - no IP finger service</cdf:title>
       <cdf:description>
         Disable the finger service, it can reveal information
         about logged in users to unauthorized parties.
       </cdf:description>
       <cdf:question>Prohibit the finger service</cdf:question>
       <cdf:platform idref="cisco-ios-12-routers"/>
       <cdf:fix>no ip finger</cdf:fix>
       <cdf:check system="http://oval.mitre.org/XMLSchema/oval">
         <cdf:check-content-ref href="iosDefinitions.xml" name="OVAL1002"/>
       </cdf:check>
     </cdf:Rule>

     <cdf:Rule id="req-exec-timeout" selected="1" weight="8">
       <cdf:title>Require exec session timeout on admin sessions</cdf:title>
       <cdf:description>
         Configure each administrative access line to terminate idle
         sessions after a fixed period of time (determined by local
         policy).
       </cdf:description>
       <cdf:question>Require administrative session idle timeout</cdf:question>
       <cdf:rationale>
          <htm:p>
          If an exec session is left unattended, an unauthorized
          party may join the session and execute commands with elevated 
          privileges.  A timeout helps to <htm:i>reduce</htm:i> the likelihood of this,
	  by shortening the window of opportunity for an attacker.
          </htm:p>
	  <htm:p>
	  In addition to setting a timeout, TCP keep-alives should be enabled
	  for incoming sessions using the command <tt>service tcp-keepalives in</tt>.
	  </htm:p>
       </cdf:rationale>
       <cdf:check system="http://oval.mitre.org/XMLSchema/oval">
         <cdf:check-export value-id="exec-timeout-time" export-name="var-2"/>
         <cdf:check-content-ref href="iosDefinitions.xml" name="OVAL1028"/>
       </cdf:check>
     </cdf:Rule>

   </cdf:Group>

   <cdf:Group id="control-plane" selected="1" prohibitChanges="1">
     <cdf:title>Control Plane Rules</cdf:title>
     <cdf:description>
          Services, settings, and data streams that support and
          document the operation, traffic handling, and dynamic status
          of the router.
     </cdf:description>
     <cdf:question>Check rules related to system control</cdf:question>
     
     <cdf:Value id="buffered-logging-level" type="string"
                operator="equals" prohibitChanges="0">
       <cdf:title>Logging level for buffered logging</cdf:title>
       <cdf:description>
          Logging level for buffered logging; this setting is
          a severity level.  Every audit message of this
          severity or more (worse) will be logged.
       </cdf:description>
       <cdf:question>Select a buffered logging level</cdf:question>
       <cdf:value selector="strict">informational</cdf:value>
       <cdf:value selector="lenient">warning</cdf:value>
       <cdf:value>notification</cdf:value>
       <cdf:choices mustMatch="1">
          <cdf:choice>warning</cdf:choice>
          <cdf:choice>notification</cdf:choice>
          <cdf:choice>informational</cdf:choice>
          <cdf:choice>debug</cdf:choice>
       </cdf:choices>
     </cdf:Value>

     <cdf:Rule id="no-tcp-small-servers" selected="1" 
               prohibitChanges="1" weight="7">
       <cdf:title>Disable tcp-small-servers</cdf:title>
       <cdf:description>
           Disable unnecessary services such as echo, chargen, etc.
       </cdf:description>
       <cdf:question>Prohibit TCP small services</cdf:question>
       <cdf:fixtext>Disable TCP small servers in IOS global config mode.</cdf:fixtext>
       <cdf:fix>no service tcp-small-servers</cdf:fix>
       <cdf:check system="http://oval.mitre.org/XMLSchema/oval">
          <cdf:check-content-ref href="iosDefinitions.xml" name="OVAL1000"/>
       </cdf:check>
     </cdf:Rule>

     <cdf:Rule id="no-udp-small-servers" selected="1" 
               prohibitChanges="1" weight="7">
       <cdf:title>Disable udp-small-servers</cdf:title>
       <cdf:description>
           Disable unnecessary datagram services such as echo, chargen, etc.
       </cdf:description>
       <cdf:question>Forbid UDP small services</cdf:question>
       <cdf:fixtext>Disable UDP small servers in IOS global config mode.</cdf:fixtext>
       <cdf:fix>no service udp-small-servers</cdf:fix>
       <cdf:check system="http://oval.mitre.org/XMLSchema/oval">
          <cdf:check-content-ref href="iosDefinitions.xml" name="OVAL1001"/>
       </cdf:check>
     </cdf:Rule> 

     <cdf:Rule id="set-buffered-logging-level" selected="1"
               prohibitChanges="0" weight="8.5">
       <cdf:title xml:lang="en">Set the buffered logging level</cdf:title>
       <cdf:description>
          Set the buffered logging level to one of the appropriate
          levels, Warning or higher.  The logging level should be
          set explicitly.
       </cdf:description>
       <cdf:question>Check the buffered logging level</cdf:question>
       <cdf:fix>
          logging buffered <cdf:sub idref="buffered-logging-level"/>
       </cdf:fix>
       <cdf:check system="http://oval.mitre.org/XMLSchema/oval">
          <cdf:check-export value-id="buffered-logging-level" 
                            export-name="var-4"/>
          <cdf:check-content-ref href="iosDefinitions.xml" name="OVAL1301"/>
       </cdf:check>
     </cdf:Rule>


   </cdf:Group>

   <cdf:Group id="data-plane" selected="1" prohibitChanges="1">
     <cdf:title>Data Plane Level 1</cdf:title>
     <cdf:description>
          Services and settings related to the data passing through
          the router (as opposed to directed to it). Basically, the
          data plane is for everything not in control or management planes. 
     </cdf:description>
     <cdf:question>Check rules and data related to data flow</cdf:question>
     
   <cdf:Group id="routing-rules" selected="1" prohibitChanges="1">
     <cdf:title>Routing Rules</cdf:title>
     <cdf:description>
        Rules in this group affect traffic forwarded through the
        router, including router actions taken on receipt of
        special data traffic.
     </cdf:description>
     <cdf:question>Apply standard forwarding protections</cdf:question>
     
   <cdf:Rule id="no-directed-broadcast" 
             selected="1" prohibitChanges="1"
             weight="7">
     <cdf:title>IOS - no directed broadcasts</cdf:title>
     <cdf:description>
         Disable IP directed broadcast on each interface.
     </cdf:description>
     <cdf:question>Forbid IP directed broadcast</cdf:question>
     <cdf:fixtext>
       Disable IP directed broadcast on each interface
       using IOS interface configuration mode.
     </cdf:fixtext>
     <cdf:fix>no ip directed-broadcast</cdf:fix>
     <cdf:check system="http://oval.mitre.org/XMLSchema/oval">
        <cdf:check-content-ref href="iosDefinitions.xml" name="OVAL1101"/>
     </cdf:check>
   </cdf:Rule>

 </cdf:Group>
 </cdf:Group>


 <cdf:Profile id="profile1" prohibitChanges="1">
    <cdf:title>Sample Profile No. 1</cdf:title>
    <cdf:select idref="mgmt-plane" selected="1"/>
    <cdf:set-value idref="exec-timeout-time">30</cdf:set-value>
    <cdf:refine-value idref="buffered-logging-level" 
                   selector="lenient"/>
 </cdf:Profile>
 <cdf:Profile id="profile2">
    <cdf:title>Sample Profile No. 2</cdf:title>
    <cdf:select idref="data-plane" selected="1"/>
    <cdf:select idref="mgmt-plane" selected="1"/>
    <cdf:select idref="control-plane" selected="1"/>
    <cdf:refine-value idref="buffered-logging-level" 
                   selector="strict"/>
    <cdf:set-value idref="exec-timeout-time">30</cdf:set-value>
 </cdf:Profile>

</cdf:Benchmark>
