Cisco NX-OS Switch L2S Security Technical Implementation Guide
Version 1 Release 1 |
2020-05-08 |
U_Cisco_NX-OS_Switch_L2S_STIG_V1R1_Manual-xccdf.xml |
This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: disa.stig_spt@mail.mil. |
Vulnerabilities (23)
The Cisco switch must be configured to disable non-essential capabilities.
Discussion
A compromised switch introduces risk to the entire network infrastructure as well as data resources that are accessible via the network. The perimeter defense has no oversight or control of attacks by malicious users within the network. Preventing network breaches from within is dependent on implementing a comprehensive defense-in-depth strategy, including securing each device connected to the network. This is accomplished by following and implementing all security guidance applicable for each node type. A fundamental step in securing each switch is to enable only the capabilities required for operation.
Fix Text
Disable features that should not be enabled unless required for operations. SW2(config)# no feature telnet SW2(config)# no feature wccp SW2(config)# no feature nxapi SW2(config)# no feature imp Note: Telnet must always be disabled.
Check Content
Verify that the switch does not have any unnecessary or non-secure ports, protocols, and services enabled. For example, the following features such as telnet should never be enabled, while other features should only be enabled if required for operations. feature telnet feature wccp feature nxapi feature imp If any unnecessary or non-secure ports, protocols, or services are enabled, this is a finding.
The Cisco switch must uniquely identify all network-connected endpoint devices before establishing any connection.
Discussion
Controlling LAN access via 802.1x authentication can assist in preventing a malicious user from connecting an unauthorized PC to a switch port to inject or receive data from the network without detection.
Fix Text
Configure 802.1 x authentications on all host-facing access switch ports. To authenticate those devices that do not support 802.1x, MAC Authentication Bypass must be configured. Step 1: Configure the radius servers as shown in the example below: SW1(config)# radius-server host 10.1.1.1 key xxxx SW1(config)# radius-server host 10.2.1.1 key xxxx Step 2: Enable 802.1x authentication on the switch. SW1(config)# aaa group server radius RADIUS_GROUP SW1(config-radius)# server 10.1.1.1 SW1(config-radius)# server 10.2.1.1 SW1(config-radius)# exit SW1(config)# aaa authentication dot1x default group RADIUS_GROUP SW1(config)# exit Step 3: Enable 802.1x on all host-facing interfaces as shown in the example below: SW1(config)# int e1/1 - 80 SW1(config-if-range)# dot1x port-control auto SW1(config-if-range)# dot1x host-mode single-host SW1(config-if-range)# end Note: Host-mode must be set to single-host, multi-domain (for VoIP phone + PC), or multi-auth (multiple PCs connected to a hub). Host-mode multi-host is not compliant with this requirement.
Check Content
Verify if the switch configuration has 802.1x authentication implemented for all access switch ports connecting to LAN outlets (i.e., RJ-45 wall plates) or devices not located in the telecom room, wiring closets, or equipment rooms. MAC Authentication Bypass (MAB) must be configured on those switch ports connected to devices that do not support an 802.1x supplicant. Step 1: Verify that 802.1x is configured on all host-facing interfaces as shown in the example below: interface Ethernet1/1 dot1x pae authenticator dot1x port-control auto dot1x host-mode single-host switchport access vlan 10 interface Ethernet1/2 dot1x pae authenticator dot1x port-control auto dot1x host-mode single-host switchport access vlan 10 interface Ethernet1/3 dot1x pae authenticator dot1x port-control auto dot1x host-mode single-host switchport access vlan 10 Note: Host-mode must be set to single-host, multi-domain (for VoIP phone + PC), or multi-auth (multiple PCs connected to a hub). Host-mode multi-host is not compliant with this requirement. Step 2: Verify that 802.1x authentication is configured on the switch as shown in the example below: aaa group server radius RADIUS_GROUP server 1.1.1.1 server 1.2.1.1 … … … aaa authentication dot1x default group RADIUS_GROUP Step 3: Verify that the radius servers have been defined. radius-server host 10.1.1.1 key 7 "xxxxxxxxxxx" authentication accounting timeout 5 retransmit 1 radius-server host 10.2.1.1 key 7 " xxxxxxxxxxx" authentication accounting timeout 5 retransmit 1 If 802.1x authentication or MAB is not configured on all access switch ports connecting to LAN outlets or devices not located in the telecom room, wiring closets, or equipment rooms, this is a finding.
The Cisco switch must authenticate all VLAN Trunk Protocol (VTP) messages with a hash function using the most secured cryptographic algorithm available.
Discussion
VLAN Trunk Protocol (VTP) provides central management of VLAN domains, thus reducing administration in a switched network. When configuring a new VLAN on a VTP server, the VLAN is distributed through all switches in the domain. This reduces the need to configure the same VLAN everywhere. VTP pruning preserves bandwidth by preventing VLAN traffic (unknown MAC, broadcast, multicast) from being sent down trunk links when not needed, that is, there are no access switch ports in neighboring switches belonging to such VLANs. An attack can force a digest change for the VTP domain enabling a rogue device to become the VTP server, which could allow unauthorized access to previously blocked VLANs or allow the addition of unauthorized switches into the domain. Authenticating VTP messages with a cryptographic hash function can reduce the risk of the VTP domain's being compromised.
Fix Text
Configure the switch to authenticate all VLAN Trunk Protocol (VTP) messages with a hash function using a configured password as shown in the example below: SW1(config)# vtp password xxxxxxxxx
Check Content
Review the switch configuration to verify if VTP is enabled. Step 1: Enter the show feature command to determine if vtp is enabled. Step 2: Enter the show vtp status command to determine operating mode. SW1# show vtp status VTP Status Information ---------------------- VTP Version : 2 (capable) Configuration Revision : 0 Maximum VLANs supported locally : 1005 Number of existing VLANs : 5 VTP Operating Mode : Transparent VTP Domain Name : XXXXX VTP Pruning Mode : Disabled (Operationally Disabled) VTP V2 Mode : Disabled VTP Traps Generation : Disabled MD5 Digest : 0x0C 0x5E 0xC3 0x74 0x3F 0xB0 0x2F 0x49 If mode is set to anything other than off or transparent, verify that a password has been configured using the show vtp password command. Note: VTP authenticates all messages using an MD5 hash that consists of the VTP version + The VTP Password + VTP Domain + VTP Configuration Revision. If VTP is enabled on the switch and is not authenticating VTP messages with a hash function using a configured password, this is a finding.
The Cisco switch must be configured for authorized users to select a user session to capture.
Discussion
Without the capability to select a user session to capture/record or view/hear, investigations into suspicious or harmful events would be hampered by the volume of information captured. The volume of information captured may also adversely impact the operation for the network. Session audits may include port mirroring, tracking websites visited, and recording information and/or file transfers.
Fix Text
Enable the feature or configure the switch so that it is capable of capturing ingress and egress packets from any designated switch port for the purpose of monitoring a specific user session. The example configuration below will capture packets from interface Ethernet1/66 and replicate the packets to Ethernet1/68. SW1(config)# monitor session 1 SW1(config-monitor)# source interface ethernet 1/66 SW1(config-monitor)# destination interface ethernet 1/68 SW1(config-monitor)# end
Check Content
Verify that the switch is capable of capturing ingress and egress packets from any designated switch port for the purpose of monitoring a specific user session. The example configuration below will capture packets from interface Ethernet1/66 and replicate the packets to interface Ethernet1/68. monitor session 1 source interface Ethernet1/66 both destination interface Ethernet1/68 If the switch is not capable of capturing ingress and egress packets from a designated switch port, this is a finding.
The Cisco switch must be configured for authorized users to remotely view, in real time, all content related to an established user session from a component separate from The Cisco switch.
Discussion
Without the capability to remotely view/hear all content related to a user session, investigations into suspicious user activity would be hampered. Real-time monitoring allows authorized personnel to take action before additional damage is done. The ability to observe user sessions as they are happening allows for interceding in ongoing events that after-the-fact review of captured content would not allow.
Fix Text
Enable the feature or configure the switch so that it is capable of capturing ingress and egress packets from any designated switch port for the purpose of monitoring a specific user session. The example configuration below will capture packets from interface Ethernet1/66 and replicate the packets to Ethernet1/68. SW1(config)# monitor session 1 SW1(config-monitor)# source interface ethernet 1/66 SW1(config-monitor)# destination interface ethernet 1/68 SW1(config-monitor)# end
Check Content
Verify that the switch is capable of capturing ingress and egress packets from any designated switch port for the purpose of remotely monitoring a specific user session. The example configuration below will capture packets from interface Ethernet1/66 and replicate the packets to interface Ethernet1/68. monitor session 1 source interface Ethernet1/66 both destination interface Ethernet1/68 If the switch is not capable of capturing ingress and egress packets from a designated switch port for the purpose of remotely monitoring a specific user session, this is a finding.
The Cisco switch must authenticate all endpoint devices before establishing any connection.
Discussion
Without authenticating devices, unidentified or unknown devices may be introduced, thereby facilitating malicious activity. For distributed architectures (e.g., service-oriented architectures), the decisions regarding the validation of authentication claims may be made by services separate from the services acting on those decisions. In such situations, it is necessary to provide authentication decisions (as opposed to the actual authenticators) to the services that need to act on those decisions. This requirement applies to applications that connect either locally, remotely, or through a network to an endpoint device (including, but not limited to, workstations, printers, servers (outside a datacenter), VoIP Phones, and VTC CODECs). Gateways and SOA applications are examples of where this requirement would apply. Device authentication is a solution enabling an organization to manage devices. It is an additional layer of authentication ensuring only specific pre-authorized devices can access the system.
Fix Text
Configure 802.1 x authentications on all host-facing access switch ports. To authenticate those devices that do not support 802.1x, MAC Authentication Bypass must be configured. Step 1: Configure the radius servers as shown in the example below: SW1(config)# radius-server host 10.1.1.1 key xxxx SW1(config)# radius-server host 10.2.1.1 key xxxx Step 2: Enable 802.1x authentication on the switch. SW1(config)# aaa group server radius RADIUS_GROUP SW1(config-radius)# server 10.1.1.1 SW1(config-radius)# server 10.2.1.1 SW1(config-radius)# exit SW1(config)# aaa authentication dot1x default group RADIUS_GROUP SW1(config)# exit Step 3: Enable 802.1x on all host-facing interfaces as shown in the example below: SW1(config)# int e1/1 - 80 SW1(config-if-range)# dot1x port-control auto SW1(config-if-range)# dot1x host-mode single-host SW1(config-if-range)# end Note: Host-mode must be set to single-host, multi-domain (for VoIP phone + PC), or multi-auth (multiple PCs connected to a hub). Host-mode multi-host is not compliant with this requirement.
Check Content
Verify if the switch configuration has 802.1x authentication implemented for all access switch ports connecting to LAN outlets (i.e., RJ-45 wall plates) or devices not located in the telecom room, wiring closets, or equipment rooms. MAC Authentication Bypass (MAB) must be configured on those switch ports connected to devices that do not provide an 802.1x supplicant. Step 1: Verify that 802.1x is configured on all host-facing interfaces as shown in the example below: interface Ethernet1/1 dot1x pae authenticator dot1x port-control auto dot1x host-mode single-host switchport access vlan 10 interface Ethernet1/2 dot1x pae authenticator dot1x port-control auto dot1x host-mode single-host switchport access vlan 10 interface Ethernet1/3 dot1x pae authenticator dot1x port-control auto dot1x host-mode single-host switchport access vlan 10 Note: Host-mode must be set to single-host, multi-domain (for VoIP phone + PC), or multi-auth (multiple PCs connected to a hub). Host-mode multi-host is not compliant with this requirement. Step 2: Verify that 802.1x authentication is configured on the switch as shown in the example below: aaa group server radius RADIUS_GROUP server 1.1.1.1 server 1.2.1.1 … … … aaa authentication dot1x default group RADIUS_GROUP Step 3: Verify that the radius servers have been defined. radius-server host 10.1.1.1 key 7 "xxxxxxxxxxx" authentication accounting timeout 5 retransmit 1 radius-server host 10.2.1.1 key 7 " xxxxxxxxxxx" authentication accounting timeout 5 retransmit 1 If 802.1x authentication or MAB is not on configured on all access switch ports connecting to LAN outlets or devices not located in the telecom room, wiring closets, or equipment rooms, this is a finding.
The Cisco switch must have Root Guard enabled on all switch ports connecting to access layer switches and hosts.
Discussion
Spanning Tree Protocol (STP) does not provide any means for the network administrator to securely enforce the topology of the switched network. Any switch can be the root bridge in a network. However, a more optimal forwarding topology places the root bridge at a specific predetermined location. With the standard STP, any bridge in the network with a lower bridge ID takes the role of the root bridge. The administrator cannot enforce the position of the root bridge but can set the root bridge priority to 0 in an effort to secure the root bridge position. The root guard feature provides a way to enforce the root bridge placement in the network. If the bridge receives superior STP Bridge Protocol Data Units (BPDUs) on a root guard-enabled port, root guard moves this port to a root-inconsistent STP state and no traffic can be forwarded across this port while it is in this state. To enforce the position of the root bridge it is imperative that root guard is enabled on all ports where the root bridge should never appear.
Fix Text
Configure the switch to have Root Guard enabled on all ports connecting to access layer switches and hosts. SW1(config)# int e1/1 – 44 SW1(config-if-range)# spanning-tree guard root SW1(config-if-range)# end
Check Content
Review the switch topology as well as the configuration to verify that Root Guard is enabled on all switch ports connecting to access layer switches and hosts. interface Ethernet1/1 … … … spanning-tree guard root interface Ethernet1/2 … … … spanning-tree guard root interface Ethernet1/3 … … … spanning-tree guard root If the switch has not enabled Root Guard on all switch ports connecting to access layer switches and hosts, this is a finding.
The Cisco switch must have BPDU Guard enabled on all user-facing or untrusted access switch ports.
Discussion
If a rogue switch is introduced into the topology and transmits a Bridge Protocol Data Unit (BPDU) with a lower bridge priority than the existing root bridge, it will become the new root bridge and cause a topology change, rendering the network in a suboptimal state. The STP PortFast BPDU guard enhancement allows network designers to enforce the STP domain borders and keep the active topology predictable. The devices behind the ports that have STP PortFast enabled are not able to influence the STP topology. At the reception of BPDUs, the BPDU guard operation disables the port that has PortFast configured. The BPDU guard transitions the port into errdisable state and sends a log message.
Fix Text
Configure the switch to have BPDU Guard enabled on all user-facing or untrusted access switch ports as shown in the configuration example below: SW1(config)# int e1/1 -44 SW1(config-if-range)# spanning-tree bpduguard enable Note: BPDU guard can also be enabled globally on all edge ports via the following command: spanning-tree port type edge bpduguard default
Check Content
Review the switch configuration to verify that BPDU Guard is enabled on all user-facing or untrusted access switch ports as shown in the configuration example below: interface Ethernet1/1 … … … spanning-tree bpduguard enable interface Ethernet1/2 … … … spanning-tree bpduguard enable If the switch has not enabled BPDU Guard, this is a finding.
The Cisco switch must have STP Loop Guard enabled.
Discussion
The Spanning Tree Protocol (STP) loop guard feature provides additional protection against STP loops. An STP loop is created when an STP blocking port in a redundant topology erroneously transitions to the forwarding state. In its operation, STP relies on continuous reception and transmission of BPDUs based on the port role. The designated port transmits BPDUs, and the non-designated port receives BPDUs. When one of the ports in a physically redundant topology no longer receives BPDUs, the STP conceives that the topology is loop free. Eventually, the blocking port from the alternate or backup port becomes a designated port and moves to a forwarding state. This situation creates a loop. The loop guard feature makes additional checks. If BPDUs are not received on a non-designated port and loop guard is enabled, that port is moved into the STP loop-inconsistent blocking state.
Fix Text
Configure the switch to have STP Loop Guard enabled via the spanning-tree loopguard default global command.
Check Content
Review the switch configuration to verify that STP Loop Guard is enabled as shown in the configuration example below: hostname SW1 … … … spanning-tree loopguard default If STP Loop Guard is not enabled, this is a finding.
The Cisco switch must have Unknown Unicast Flood Blocking (UUFB) enabled.
Discussion
Access layer switches use the Content Addressable Memory (CAM) table to direct traffic to specific ports based on the VLAN number and the destination MAC address of the frame. When a router has an Address Resolution Protocol (ARP) entry for a destination host and forwards it to the access layer switch and there is no entry corresponding to the frame's destination MAC address in the incoming VLAN, the frame will be sent to all forwarding ports within the respective VLAN, which causes flooding. Large amounts of flooded traffic can saturate low-bandwidth links, causing network performance issues or complete connectivity outage to the connected devices. Unknown unicast flooding has been a nagging problem in networks that have asymmetric routing and default timers. To mitigate the risk of a connectivity outage, the Unknown Unicast Flood Blocking (UUFB) feature must be implemented on all access layer switches. The UUFB feature will block unknown unicast traffic flooding and only permit egress traffic with MAC addresses that are known to exit on the port.
Fix Text
Configure the switch to have Unknown Unicast Flood Blocking (UUFB) enabled as shown in the configuration example below: SW1(config)# int e1/1-32 SW1(config-if-range)# switchport block unicast SW1(config-if-range)# end
Check Content
Review the switch configuration to verify that UUFB is enabled on all access switch ports as shown in the configuration example below: interface Ethernet1/1 switchport block unicast interface Ethernet1/2 switchport block unicast … … … interface Ethernet1/32 switchport block unicast If any access switch ports do not have UUFB enabled, this is a finding.
The Cisco switch must have DHCP snooping for all user VLANs to validate DHCP messages from untrusted sources.
Discussion
In an enterprise network, devices under administrative control are trusted sources. These devices include the switches, routers, and servers in the network. Host ports and unknown DHCP servers are considered untrusted sources. An unknown DHCP server on the network on an untrusted port is called a spurious DHCP server, any device (PC, Wireless Access Point) that is loaded with DHCP server enabled. The DHCP snooping feature determines whether traffic sources are trusted or untrusted. The potential exists for a spurious DHCP server to respond to DHCPDISCOVER messages before the real server has time to respond. DHCP snooping allows switches on the network to trust the port a DHCP server is connected to and not trust the other ports. The DHCP snooping feature validates DHCP messages received from untrusted sources and filters out invalid messages as well as rate-limits DHCP traffic from trusted and untrusted sources. DHCP snooping feature builds and maintains a binding database, which contains information about untrusted hosts with leased IP addresses, and it utilizes the database to validate subsequent requests from untrusted hosts. Other security features, such as IP Source Guard and Dynamic Address Resolution Protocol (ARP) Inspection (DAI), also use information stored in the DHCP snooping binding database. Hence, it is imperative that the DHCP snooping feature is enabled on all VLANs.
Fix Text
Step 1: Enable the DHCP feature. SW1(config)# feature dhcp Step 2: Configure the switch to have DHCP snooping for all user VLANs to validate DHCP messages from untrusted sources as shown in the example below: SW1(config)# ip dhcp snooping SW1(config)# ip dhcp snooping vlan 4,6-10
Check Content
Step 1: Review the switch configuration and verify that DHCP snooping is enabled on a per-VLAN basis as shown in the example below: vlan 1,4,6-10 ip dhcp snooping … … … ip dhcp snooping vlan 4,6-10 Note: Switchports assigned to a user VLAN would have drops in the area where the user community would reside; hence, the "untrusted" term is used. Server and printer VLANs would not be applicable. By default, DHCP snooping is disabled on all VLANs. If the switch does not have DHCP snooping enabled for all user VLANs to validate DHCP messages from untrusted sources, this is a finding.
The Cisco switch must have IP Source Guard enabled on all user-facing or untrusted access switch ports.
Discussion
IP Source Guard provides source IP address filtering on a Layer 2 port to prevent a malicious host from impersonating a legitimate host by assuming the legitimate host's IP address. The feature uses dynamic DHCP snooping and static IP source binding to match IP addresses to hosts on untrusted Layer 2 access ports. Initially, all IP traffic on the protected port is blocked except for DHCP packets. After a client receives an IP address from the DHCP server, or after static IP source binding is configured by the administrator, all traffic with that IP source address is permitted from that client. Traffic from other hosts is denied. This filtering limits a host's ability to attack the network by claiming a neighbor host's IP address.
Fix Text
Configure the switch to have IP Source Guard enabled on all user-facing or untrusted access switch ports. SW1(config)# int e1/1-32 SW1(config-if-range)# ip verify source dhcp-snooping-vlan
Check Content
Review the switch configuration to verify that IP Source Guard is enabled on all user-facing or untrusted access switch ports as shown in the example below: interface Ethernet1/1 ip verify source dhcp-snooping-vlan interface Ethernet1/2 ip verify source dhcp-snooping-vlan … … … interface Ethernet1/32 ip verify source dhcp-snooping-vlan Note: the IP Source Guard feature depends on the entries in the DHCP snooping database or static IP-MAC-VLAN configuration commands to verify IP-to-MAC address bindings. If the switch does not have IP Source Guard enabled on all untrusted access switch ports, this is a finding.
The Cisco switch must have Dynamic Address Resolution Protocol (ARP) Inspection (DAI) enabled on all user VLANs.
Discussion
DAI intercepts Address Resolution Protocol (ARP) requests and verifies that each of these packets has a valid IP-to-MAC address binding before updating the local ARP cache and before forwarding the packet to the appropriate destination. Invalid ARP packets are dropped and logged. DAI determines the validity of an ARP packet based on valid IP-to-MAC address bindings stored in the DHCP snooping binding database. If the ARP packet is received on a trusted interface, the switch forwards the packet without any checks. On untrusted interfaces, the switch forwards the packet only if it is valid.
Fix Text
Configure the switch to have Dynamic Address Resolution Protocol (ARP) Inspection (DAI) enabled on all user VLANs as shown in the example below: SW1(config)# ip arp inspection vlan 2,4-8,11
Check Content
Review the switch configuration to verify that Dynamic Address Resolution Protocol (ARP) Inspection (DAI) feature is enabled on all user VLANs. hostname SW2 … … … ip arp inspection vlan 2,4-8,11 Note: DAI depends on the entries in the DHCP snooping binding database to verify IP-to-MAC address bindings in incoming ARP requests and ARP responses. If DAI is not enabled on all user VLANs, this is a finding.
The Cisco switch must have Storm Control configured on all host-facing switchports.
Discussion
A traffic storm occurs when packets flood a LAN, creating excessive traffic and degrading network performance. Traffic storm control prevents network disruption by suppressing ingress traffic when the number of packets reaches a configured threshold levels. Traffic storm control monitors ingress traffic levels on a port and drops traffic when the number of packets reaches the configured threshold level during any one-second interval.
Fix Text
Configure storm control for each host-facing interface as shown in the example below: SW1(config)#int range e0/2 – 8 SW1(config-if-range)# storm-control unicast level 50 SW1(config-if-range)# storm-control broadcast level 40
Check Content
Review the switch configuration to verify that storm control is enabled on all host-facing interfaces as shown in the example below: interface GigabitEthernet0/3 switchport access vlan 12 storm-control unicast unicast level 50.00 storm-control broadcast broadcast level 40 If storm control is not enabled at a minimum for broadcast traffic, this is a finding.
The Cisco switch must have IGMP or MLD Snooping configured on all VLANs.
Discussion
IGMP and MLD snooping provides a way to constrain multicast traffic at Layer 2. By monitoring the IGMP or MLD membership reports sent by hosts within a VLAN, the snooping application can set up Layer 2 multicast forwarding tables to deliver specific multicast traffic only to interfaces connected to hosts interested in receiving the traffic, thereby significantly reducing the volume of multicast traffic that would otherwise flood the VLAN.
Fix Text
Configure IGMP or MLD snooping for IPv4 and IPv6 multicast traffic respectively globally. SW1(config)# ip igmp snooping
Check Content
Review the switch configuration to verify that IGMP or MLD snooping has been configured for IPv4 and IPv6 multicast traffic respectively. The example below are the steps to verify that IGMP snooping is enabled for each VLAN. Step 1: Verify that IGMP or MLD snooping is enabled globally. By default, IGMP snooping is enabled globally; hence, the following command should not be in the switch configuration: no ip igmp snooping Step 2: Verify that IGMP snooping is not disabled for any VLAN as shown in the example below: no ip igmp snooping vlan 11 Note: When globally enabled, it is also enabled by default on all VLANs, but can be disabled on a per-VLAN basis. If global snooping is disabled, VLAN snooping cannot be enabled. If global snooping is enabled, VLAN snooping cannot be enabled or disabled. If the switch is not configured to implement IGMP or MLD snooping for each VLAN, this is a finding.
The Cisco switch must enable Unidirectional Link Detection (UDLD) to protect against one-way connections.
Discussion
In topologies where fiber optic interconnections are used, physical misconnections can occur that allow a link to appear to be up when there is a mismatched set of transmit/receive pairs. When such a physical misconfiguration occurs, protocols such as STP can cause network instability. UDLD is a layer 2 protocol that can detect these physical misconfigurations by verifying that traffic is flowing bidirectionally between neighbors. Ports with UDLD enabled periodically transmit packets to neighbor devices. If the packets are not echoed back within a specific time frame, the link is flagged as unidirectional and the interface is shut down.
Fix Text
Configure the switch to enable Unidirectional Link Detection (UDLD) to protect against one-way connections. SW1(config)# feature udld
Check Content
If any of the switch ports have fiber optic interconnections with neighbors, review the switch configuration to verify that UDLD is enabled globally or on a per interface basis as shown in the examples below. Step 1: Verify that the UDLD feature has been enabled as shown in the example below: hostname SW1 … … … feature udld Step 2: Verify that UDLD has not been disabled on any fiber optic interfaces as shown in the example below: interface GigabitEthernet0/3 udld disabled Note: By default, UDLD is enabled on all interfaces with fiber optic connections. An alternative implementation when UDLD is not supported by connected device is to deploy a single member Link Aggregation Group (LAG) via IEEE 802.3ad Link Aggregation Control Protocol (LACP). If the switch has fiber optic interconnections with neighbors and UDLD is not enabled, this is a finding.
The Cisco switch must have all disabled switch ports assigned to an unused VLAN.
Discussion
It is possible that a disabled port that is assigned to a user or management VLAN becomes enabled by accident or by an attacker and as a result gains access to that VLAN as a member.
Fix Text
Assign all switch ports not in use to an inactive VLAN. Step 1: Assign the disabled interfaces to an inactive VLAN. SW1(config)# int e1/81-128 SW1(config-if-range)# switchport access vlan 999 SW1(config-if-range)# end Step 2: Configure trunk links to not allow traffic from the inactive VLAN. SW1(config-if)# switchport trunk allowed vlan except 999 SW1(config-if)# end
Check Content
Step 1: Review the switch configurations and examine all access switch ports. Each access switch port not in use should have membership to an inactive VLAN. interface Ethernet1/81 shutdown switchport access vlan 999 interface Ethernet1/82 shutdown switchport access vlan 999 interface Ethernet1/83 shutdown switchport access vlan 999 Step 2: Verify that traffic from the inactive VLAN is not allowed on any trunk links as shown in the example below: interface Ethernet1/1 switchport mode trunk switchport trunk allowed vlan 1-998,1000-4094 Note: Switch ports configured for 802.1x are exempt from this requirement. If there are any access switch ports not in use and not in an inactive VLAN, this is a finding.
The Cisco switch must not have the default VLAN assigned to any host-facing switch ports.
Discussion
In a VLAN-based network, switches use the default VLAN (i.e., VLAN 1) for in-band management and to communicate with other networking devices using Spanning-Tree Protocol (STP), Dynamic Trunking Protocol (DTP), VLAN Trunking Protocol (VTP), and Port Aggregation Protocol (PAgP)—all untagged traffic. As a consequence, the default VLAN may unwisely span the entire network if not appropriately pruned. If its scope is large enough, the risk of compromise can increase significantly.
Fix Text
Remove the assignment of the default VLAN from all access switch ports.
Check Content
Review the switch configurations and verify that no access switch ports have been assigned membership to the default VLAN (i.e., VLAN 1). VLAN assignments can be verified via the show vlan command. In the example below, interfaces 1/1 and 1/2 are trunk links. SW1# show vlan VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Eth1/1, Eth1/2 10 VLAN0010 active Eth1/1, Eth1/2, Eth1/3, Eth1/4 Eth1/5, Eth1/6, Eth1/7, Eth1/8 Eth1/9, Eth1/10, Eth1/11 Eth1/12, Eth1/13, Eth1/14 Eth1/15, Eth1/16, Eth1/17 Eth1/18, Eth1/19, Eth1/20 Eth1/21, Eth1/22, Eth1/23 Eth1/24, Eth1/25, Eth1/26 Eth1/27, Eth1/28, Eth1/29 Eth1/30 11 VLAN0011 active Eth1/1, Eth1/2, Eth1/31 Eth1/32, Eth1/33, Eth1/34 Eth1/35, Eth1/36, Eth1/37 Eth1/38, Eth1/39, Eth1/40 If there are access switch ports assigned to the default VLAN, this is a finding.
The Cisco switch must have the default VLAN pruned from all trunk ports that do not require it.
Discussion
The default VLAN (i.e., VLAN 1) is a special VLAN used for control plane traffic such as Spanning-Tree Protocol (STP), Dynamic Trunking Protocol (DTP), VLAN Trunking Protocol (VTP), and Port Aggregation Protocol (PAgP). VLAN 1 is enabled on all trunks and ports by default. With larger campus networks, care needs to be taken about the diameter of the STP domain for the default VLAN. Instability in one part of the network could affect the default VLAN, thereby influencing control-plane stability and therefore STP stability for all other VLANs.
Fix Text
Step 1: Prune VLAN 1 from any trunk links as necessary. SW1(config)# int e1/2 SW1(config-if)# switchport trunk allowed vlan except 1, 999 SW1(config-if)# end Step 2: Verify VLAN 1 is not allowed on the trunk link. SW1# show interface trunk -------------------------------------------------------------------------------- Port Native Status Port Vlan Channel -------------------------------------------------------------------------------- Eth1/1 1 trunking -- Eth1/2 1 trunking -- -------------------------------------------------------------------------------- Port Vlans Allowed on Trunk -------------------------------------------------------------------------------- Eth1/1 1-998,1000-4094 Eth1/2 2-998,1000-4094
Check Content
Review the switch configuration and verify that the default VLAN is pruned from trunk links that do not require it. SW1# show interface trunk -------------------------------------------------------------------------------- Port Native Status Port Vlan Channel -------------------------------------------------------------------------------- Eth1/1 1 trunking -- Eth1/2 1 trunking -- -------------------------------------------------------------------------------- Port Vlans Allowed on Trunk -------------------------------------------------------------------------------- Eth1/1 1-998,1000-4094 Eth1/2 1-998,1000-4094 If the default VLAN is not pruned from trunk links that should not be transporting frames for the VLAN, this is a finding.
The Cisco switch must not use the default VLAN for management traffic.
Discussion
Switches use the default VLAN (i.e., VLAN 1) for in-band management and to communicate with directly connected switches using Spanning-Tree Protocol (STP), Dynamic Trunking Protocol (DTP), VLAN Trunking Protocol (VTP), and Port Aggregation Protocol (PAgP)—all untagged traffic. As a consequence, the default VLAN may unwisely span the entire network if not appropriately pruned. If its scope is large enough, the risk of compromise can increase significantly.
Fix Text
Configure the switch for management access to use a VLAN other than the default VLAN. SW1(config)# interface vlan 44 SW1(config-if)# ip add 10.1.12.1/24 SW1(config-if)# end
Check Content
Review the switch configuration and verify that the default VLAN is not used to access the switch for management. interface Vlan1 interface Vlan44 description Management VLAN ip address 10.1.12.1/24 If the default VLAN is being used for management access to the switch, this is a finding.
The Cisco switch must have all user-facing or untrusted ports configured as access switch ports.
Discussion
Double encapsulation can be initiated by an attacker who has access to a switch port belonging to the native VLAN of the trunk port. Knowing the victim's MAC address and with the victim attached to a different switch belonging to the same trunk group, thereby requiring the trunk link and frame tagging, the malicious user can begin the attack by sending frames with two sets of tags. The outer tag that will have the attacker's VLAN ID (probably the well-known and omnipresent default VLAN) is stripped off by the switch, and the inner tag that will have the victim's VLAN ID is used by the switch as the next hop and sent out the trunk port.
Fix Text
Disable trunking on all user-facing or untrusted switch ports. SW1(config)# int e1/3-128 SW1(config-if)# switchport mode access SW1(config-if)# end
Check Content
Review the switch configurations and examine all user-facing or untrusted switchports. The example below depicts both access and trunk ports. interface Ethernet1/1 switchport switchport mode trunk switchport trunk allowed vlan 1-998,1000-4094 interface Ethernet1/2 switchport switchport mode trunk switchport trunk allowed vlan 2-998,1000-4094 interface Ethernet1/3 interface Ethernet1/4 switchport access vlan 10 Note: switchport mode access is the default and hence will not be shown in the configuration. If any of the user-facing switch ports are configured as a trunk, this is a finding.
The Cisco switch must have the native VLAN assigned to an ID other than the default VLAN for all 802.1q trunk links.
Discussion
VLAN hopping can be initiated by an attacker who has access to a switch port belonging to the same VLAN as the native VLAN of the trunk link connecting to another switch that the victim is connected to. If the attacker knows the victim’s MAC address, it can forge a frame with two 802.1q tags and a layer 2 header with the destination address of the victim. Since the frame will ingress the switch from a port belonging to its native VLAN, the trunk port connecting to the victim’s switch will simply remove the outer tag because native VLAN traffic is to be untagged. The switch will forward the frame on to the trunk link unaware of the inner tag with a VLAN ID of which the victim’s switch port is a member.
Fix Text
To ensure the integrity of the trunk link and prevent unauthorized access, the ID of the native VLAN of the trunk port must be changed from the default VLAN (i.e., VLAN 1) to its own unique VLAN ID. SW1(config)#int e0/1 SW1(config-if)#switchport trunk native vlan 44 Note: The native VLAN ID must be the same on both ends of the trunk link; otherwise, traffic could accidentally leak between broadcast domains.
Check Content
Review the switch configurations and examine all trunk links. Verify the native VLAN has been configured to a VLAN ID other than the ID of the default VLAN (i.e. VLAN 1) as shown in the example below: interface Ethernet0/1 switchport switchport mode trunk switchport trunk native vlan 44 Note: An alternative to configuring a dedicated native VLAN is to ensure that all native VLAN traffic is tagged. This will mitigate the risk of VLAN hopping since there will always be an outer tag for native traffic as it traverses an 802.1q trunk link. If the native VLAN has the same VLAN ID as the default VLAN, this is a finding.
The Cisco switch must not have any switchports assigned to the native VLAN.
Discussion
Double encapsulation can be initiated by an attacker who has access to a switch port belonging to the native VLAN of the trunk port. Knowing the victim’s MAC address and with the victim attached to a different switch belonging to the same trunk group, thereby requiring the trunk link and frame tagging, the malicious user can begin the attack by sending frames with two sets of tags. The outer tag that will have the attacker’s VLAN ID (probably the well-known and omnipresent default VLAN) is stripped off by the switch, and the inner tag that will have the victim’s VLAN ID is used by the switch as the next hop and sent out the trunk port.
Fix Text
Configure all access switch ports to a VLAN other than the native VLAN.
Check Content
Review the switch configurations and examine all access switch ports. Verify that they do not belong to the native VLAN as shown in the example below: interface Ethernet0/1 switchport switchport mode trunk switchport trunk native vlan 44 interface Ethernet0/2 switchport switchport access vlan 11 interface Ethernet0/3 switchport switchport access vlan 12 If any access switch ports have been assigned to the same VLAN ID as the native VLAN, this is a finding.