Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
Review the network device interface ACLs to verify all deny statements are logged. Either the syslog or log action command will satisfy this requirement. JUNOS Example: [edit firewall] family inet { filter NIPRNet-ingress { term first-accept { from { } then accept; } term last-accept { from { destination-address { 131.77.5.32/32; 131.77.5.61/32; } protocol tcp; destination-port http; } then accept; } term default-action { then { syslog; discard; } } } }
Configure interface ACLs to log all deny statements.
Have the SA display the configuration settings that enable this feature. Review the network topology diagram, and review VPN concentrators. Determine if tunnel mode is being used by reviewing the configuration. Examples: In CISCO Router(config)# crypto ipsec transform-set transform-set-name transform1 Router(cfg-crypto-tran)# mode tunnel OR in Junos edit security ipsec security-association sa-name] mode tunnel
Establish the VPN as a tunneled VPN. Terminate the tunneled VPN outside of the firewall. Ensure all host-to-host VPN are established between trusted known hosts.
Review the network devices configuration to determine if administrative access to the device requires some form of authentication--at a minimum a password is required. If passwords aren't used to administrative access to the device, this is a finding.
Configure the network devices so it will require a password to gain administrative access to the device.
Review the device configuration or request that the administrator logon to the device and observe the terminal. Verify either Option A or Option B (for systems with character limitations) of the Standard Mandatory DoD Notice and Consent Banner is displayed at logon. The required banner verbiage follows and must be displayed verbatim: Option A You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. Option B If the system is incapable of displaying the required banner verbiage due to its size, a smaller banner must be used. The mandatory verbiage follows: "I've read & consent to terms in IS user agreem't." If the device configuration does not have a logon banner as stated above, this is a finding.
Configure all management interfaces to the network device to display the DoD-mandated warning banner verbiage at logon regardless of the means of connection or communication. The required banner verbiage that must be displayed verbatim is as follows: Option A You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: -The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, penetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. -At any time, the USG may inspect and seize data stored on this IS. -Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. -This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. -Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, related to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. Option B If the system is incapable of displaying the required banner verbiage due to its size, a smaller banner must be used. The mandatory verbiage follows: "I've read & consent to terms in IS user agreem't."
With the exception of root, all user access privileges to a Juniper router are defined in a class. All users who log in to the router must be in a login class. Hence, user access to the router is via login class. The properties defined in a login class include user access privileges and the idle time permitted for a user login session. As shown in the example below, the idle time is specified with the idle-timeout specifying in minutes as to how long a session can be idle before it times out and the user is logged off. Check the classes that have been defined and examine the idle-timeout parameter. Following is an example: [edit system login] class superuser-local { idle-timeout 10; permissions all; } Note: There is no default idle-timeout; hence, without a timeout specified, a login session remains established until a user logs out of the router, even if that session is idle. Unlike IOS, to close idle sessions automatically, you must configure a time limit for each login class. When ssh is enabled, all users can use it to access the router---including the root account. This presents two problems: 1) The root account now be accessed using in-band management 2) Since the root account does not belong to a login class, there is no way to set the idle timeout. Access to the root account via ssh must be disabled via root-login deny command. Following is an example configuration: [edit system] services { ssh { root-login deny;
Configure the network devices to ensure the timeout for unattended administrative access connections is no longer than 10 minutes.
Review the active configuration to ensure that DNS servers have been defined similar to the following example: [edit system] name server { 192.168.1.253; 192.168.1.254; } Note: Since JUNOS will not send a DNS query to resolve names to IP addresses if a name server is not defined, this will never be a finding.
Configure the device to include DNS servers or disable domain lookup.
Review device configuration and verify that it is configured to only allow SNMP access from only addresses belonging to the management network as shown in the following example: snmp { interface ge-0/1/0.0; community xxxxxxxxx { authorization read-only; clients { default restrict; 7.7.7.5/32; } } } Note: if the clients statement is not present, then all clients are allowed.
Configure the network devices to only allow SNMP access from only addresses belonging to the management network.
Review the ingress filter and verify SNMP has been restricted. SNMP operates on the TCP/UDP port 161.
The administrator will change the router configuration to block SNMP traffic at the perimeter.
Interfaces peering with commercial ISPs or other non-DoD network sources: Review ACLs configured on external interfaces of network devices connected to untrusted networks (e.g., ISP and other non-DoD networks) are blocking inbound ICMP messages. The following are exceptions are allowed inbound. Exceptions: ICMP messages Echo Reply (type 0) ICMP Destination Unreachable – fragmentation needed (type 3 - code 4) Source Quench (type 4) Parameter Problem (type 12). External Interfaces peering with NIPRNet or SIPRNet: This rule is NA. If ICMP messages are not blocked inbound on external facing interfaces to an ISP and other non-DoD network, this is a finding. JunOS Example: [edit firewall] family inet { filter ingress-filter { term block-frags { from { is-fragment; protocol icmp; } then { syslog; discard; } } term icmp-in-good { from { destination-address { 199.36.92.0/30; } then { accept; } term icmp-PMTU-D { from { destination-address { 199.36.92.0/24; } protocol icmp; icmp-type [ unreachable ]; icmp-code [ fragmentation-needed ]; } then { accept; } } } term icmp-in-bad { from { protocol icmp; } then { syslog; discard; } } } }
Configure ACLs on external interfaces of network devices connected to untrusted networks (e.g., ISP and other non-DoD networks) to block inbound ICMP messages. Exceptions to this rule are listed below. Exceptions: ICMP messages Echo Reply (type 0) ICMP Destination Unreachable – fragmentation needed (type 3 - code 4) Source Quench (type 4) Parameter Problem (type 12)
Review ACLs configured on network devices connected to untrusted networks (e.g., ISP and other non-DoD networks) are blocking outbound ICMP messages. The following are exceptions are allowed outbound. Exceptions: ICMP messages Packet-too-Big (type 3, code 4) Source Quench (type 4) Echo Request (type 8) If ICMP messages are not blocked outbound, this is a finding. JUNOS Example: [edit interfaces] fe-2/0/10 { description "downstream link to our network”; unit 0 { family inet { filter { input egress-filter; } address 10.0.0.1/24; } } } } [edit firewall] family inet { filter egress-filter { term icmp-out-good { from { source-address { 10.0.0.0/24; } protocol icmp; icmp-type [ echo-request source-quench ]; } then { accept; } } term icmp-out-bad { from { protocol icmp; } then { syslog; discard; } } } }
Configure ACLs on network devices to block outbound ICMP messages. Exceptions to this rule are listed below. Exceptions: ICMP messages Packet-too-Big (type 3, code 4) Source Quench (type 4) Echo Request (type 8)
Review the device configuration to determine if ACLs block ICMP Type 11 - Time exceeded outbound to untrusted networks (e.g., ISP and other non-DoD networks). If ICMP Type 11 - Time Exceeded is not blocked outbound on the network device, this is a finding JUNOS Example: [edit interfaces] fe-2/0/10 { description "downstream link to our network”; unit 0 { family inet { filter { input egress-filter; } address 10.0.0.1/24; } } } [edit firewall] family inet { filter egress-filter { term icmp-out-bad { from { source-address { 10.0.0.0/24; } protocol icmp; icmp-type [ time exceeded ]; } then { syslog; discard; } } }
Configure an ACL on the network device to block ICMP Type 11 - Time Exceeded outbound to untrusted networks (e.g., ISP and other non-DoD networks).
Review the device configuration to determine if authentication is configured for all IGP peers. If authentication is not configured for all IGP peers, this is a finding.
Configure authentication for all IGP peers.
Review the router configuration and compare it against the network documentation (topology diagrams and peering agreements). Verify that each BGP peering session is configured with the correct IP address and remote Autonomous System Number (ASN). If any BGP peering session is not configured with the correct IP address and remote ASN, this is a finding.
Configure each BGP peering session to the specific IP address of the peer router and remote ASN assigned to the organization controlling that peer.
Review the SNMP configuration of all managed nodes to ensure different community names (V1/2) or groups/users (V3) are configured for read-only and read-write access. If unique community strings or accounts are not used for SNMP peers, this is a finding.
Configure the SNMP community strings on the network device and change them from the default values. SNMP community strings and user passwords must be unique and not match any other network device passwords. Different community strings (V1/2) or groups (V3) must be configured for various levels of read and write access.
Review the network device configuration and validate there are no group accounts configured for access. If a group account is configured on the device, this is a finding.
Configure individual user accounts for each authorized person then remove any group accounts.
Review the accounts authorized for access to the network device. Determine if the accounts are assigned the lowest privilege level necessary to perform assigned duties. User accounts must be set to a specific privilege level which can be mapped to specific commands or a group of commands. Authorized accounts should have the least privilege level unless deemed necessary for assigned duties. If it is determined that authorized accounts are assigned to greater privileges than necessary, this is a finding. Below is an example configuration with three levels of authorization followed by account templates. [edit system login] class tier1 { idle-timeout 15; permissions [configure interface network routing snmp system trace view firewall ]; } class tier2 { idle-timeout 15; permissions [admin clear configure interface network reset routing routing-control snmp snmp-control system system-control trace trace-control view maintenance firewall firewall-control secret rollback ]; } class tier3 { idle-timeout 15; permissions all; } /* This is our local superuser account with a local password. */ user admin { full-name Administrator; uid 2000; class tier3; authentication { encrypted-password xxxxxxx; } } /* TACACS templates */ user tier1 { uid 2001; class tier1; } user tier2 { uid 2002; class tier2; } user tier3 { uid 2003; class tier3; } Using the example JUNOS configuration above and TACACS configuration below, when a user is using a template account, the CLI username is the login name; however, the privileges, file ownership, and effective user ID are inherited from the template account. The CLI username is sent to the authentication server with the correct password. The server returns the local username (i.e., “tier2”) to the JUNOS software as specified in the authentication server (local-user-name for TACACS+, Juniper-Local-User for RADIUS). user = simon { . . . . service = junos-exec { local-user-name = tier2 allow-commands = "configure" deny-commands = "shutdown" } } 'allow-commands' and 'deny-commands' override permissions of the class of the template that the local-user-name is associated with.
Configure authorized accounts with the least privilege rule. Each user will have access to only the privileges they require to perform their assigned duties.
Review the organization's responsibilities list and reconcile the list of authorized accounts with those accounts defined for access to the network device. If an unauthorized account is configured for access to the device, this is a finding.
Remove any account configured for access to the network device that is not defined in the organization's responsibilities list.
For JUNOS, all passwords are always shown as encrypted. Hence, this would never be a finding.
For JUNOS, all passwords are always shown as encrypted. Hence, this would never be a finding.
Review the network device configuration to verify only secure protocols using FIPS 140-2 validated cryptographic modules are used for any administrative access. Some of the secure protocols used for administrative and management access are listed below. This list is not all inclusive and represents a sample selection of secure protocols. -SSHv2 -SCP -HTTPS -SSL -TLS JUNOS Example: [edit system services] ssh { root-login (allow | deny | deny-password); protocol-version [ v2 ]; macs [hmac-sha1 hmac-sha1-96]; ciphers [aes128-cbc aes192-cbc aes256-cbc]; } [edit interfaces] lo0 { unit 0 { family inet { filter { input protect-routing-engine; } address 192.168.1.2/32; } } } … [edit firewall] family inet { filter protect-routing-engine { term terminal-access { from { source-address { 192.168.1.10; 192.168.1.11; } protocol tcp; port ssh; } then { syslog; accept; } } … term default-action { then { syslog; discard; } } } } If management connections are established using protocols without FIPS 140-2 validated cryptographic modules, this is a finding.
Configure the network device to use secure protocols with FIPS 140-2 validated cryptographic modules.
Review the router configurations and verify that all ssh connection attempts are logged. The configuration should look similar to the following: [edit interfaces] lo0 { unit 0 { family inet { filter { input protect-routing-engine; } address 192.168.1.2/32; } } } [edit firewall] family inet { filter protect-routing-engine { term terminal-access { from { source-address { 192.168.1.10; 192.168.1.11; } protocol tcp; port [ssh]; } then { syslog; accept; } } term default-action { then { syslog; discard; } } } }
Configure the device to log all access attempts to the device to establish a management connection for administrative access.
Review all router configurations to ensure LLDPs are not included in the global configuration or LLDPs are not included for each active external interface. On Cisco routers ensure "no cdp run" is included in the global configuration or "no cdp enable" is included for each active external interface. If LLDPs are configured globally or on any external facing interfaces, this is a finding.
Configure the device so Link Layer Discovery Protocols are not included in the global configuration or Link Layer Discovery Protocols are not included for each active external interface.
Under the edit system services hierarchy, enter a show command to verify that the finger command is not present.
Configure the device to disable the Finger service.
Under the edit chassis hierarchy, enter a show command to verify that the no-source-route command is present.
Configure the router to disable IP source routing.
Review the device configuration to determine if controls have been defined to ensure the router does not send ICMP unreachables, redirects, and mask replies out to any external interfaces. If ICMP unreachables notifications, mask replies, and redirects are enabled on external interfaces, this is a finding.
Disable ICMP unreachable notifications, mask replies, and redirects on all external interfaces.
Under the edit system services hierarchy enter a show command to verify the web-management http command is not present (the web-management https command may be enabled for administrative access). If you are reviewing an entire configuration, verify the web-management http command is not present as shown in the example below: system { services { web-management { http { interface ge-0/0/0.0; } } } } If the HTTP server is enabled, this is a finding.
Configure the device to disable using HTTP (port 80) for administrative access.
Review the network devices configuration to determine if the vendor default password is active. If any vendor default passwords are used on the device, this is a finding.
Remove any vendor default passwords from the network devices configuration.
In operational mode, have the router administrator execute the show version brief command to verify the installed JUNOS version. This command will show the base OS as well as the kernel, packet forwarding engine, routing, and crypto. Validate that all software components are at the required level. J, M and T series should be 10.0 or later. E series should be 10.2 or later Verify that all IAVMs have been addressed.
Update operating system to a supported version that addresses all related IAVMs.
Step 1: Verify that uRPF check is enabled. The unicast-reverse-path statement must be included in the routing-options forwarding-table hierarchy level. The configuration should look similar to the following: routing-options { forwarding-table { unicast-reverse-path active-paths; } } Note: To consider all feasible paths during the uRPF check, include the feasible-paths option. Feasible is a superset of active path. For example, if you have a BGP session where you receive a route advertisement and you accept it (but it is not active, because there's some other route with better preference), that's considered a feasible path. Step 2: Verify that uRPF strict mode is enabled on all internal interfaces. The absence of the mode loose statement defaults to strict mode. The configuration should look similar to the following: interfaces { so-0/0/0 { unit 0 { family inet { rpf-check; } } } } Step 3: If the incoming packet fails the unicast RPF check, the packet is not accepted on the interface. However, when a packet is not accepted on an interface, unicast RPF counts the packet and may send it to an optional fail-filter. You can define the fail-filter to perform any operation, including accepting, rejecting, logging, sampling, or policing. Hence, if a fail-filter was defined as shown in the below, verify that it does not accept the packet. The configuration should look similar to the following: interfaces { so-0/0/0 { unit 0 { family inet { rpf-check fail-filter rpf-fail; } } } } firewall { filter rpf-fail { term 1 { then { log; reject; } } } } ACL Example: [edit interfaces] fe-2/0/10 { description "downstream link to our network”; unit 0 { family inet { filter { input egress-filter; } address 199.36.90.1/24; } } } } [edit firewall] family inet { filter egress-filter { term term-established { from { protocol tcp; tcp-established; } then accept; } term ext-DNS { from { source-address { 201.111.2.130/32; } protocol udp; source-port 53; } then accept; } } term http-ftp { from { source-address { 201.111.2.0/24; } protocol tcp; destination-port [20 21 80 443 ]; } then accept; } } . . . term default-action { then { syslog; discard; } } } }
Configure the network device from accepting any outbound IP packet that contains an illegitimate address in the source address field by enabling uRPF Strict mode or via egress ACL.
Review the device configuration to determine if TCP Intercept has been configured to mitigate TCP SYN Flood attacks. If TCP Intercept has not been implemented, this is a finding. CAVEAT: If the site has implemented SYN flood protection for the network using the perimeter firewall or IPS (or an IDS if it is configured to dynamically configure upstream router to block the attack), there is not an additional requirement to implement it on the router.
Configure the device to use TCP Intercept to protect against TCP SYN attacks from outside the network.
Review the network device configuration to verify all management connections for administrative access require authentication. With the exception of root, all user access privileges to a Juniper router are defined in a class. All users who log in to the router must be in a login class. Hence, user access to the router is via login class. Following is an example: [edit system] authentication-order [ radius password ]; radius-server { 192.168.6.5 { secret "xxxxxxx"; } } login { /* login classes */ class tier1 { idle-timeout 10; permissions all; } class tier2 { idle-timeout 10; permissions [ configure interface network routing snmp system trace view firewall ]; } /* local emgergency account */ user admin { full-name Administrator; uid 2000; class tier1; authentication { encrypted-password "xxxx"; # SECRET-DATA } } /* RADIUS templates */ user tier1 { uid 2001; class tier1; } user tier2 { uid 2002; class tier2; } } Note: When SSH is enabled, all users can use this service to access the router---including the root account. Access to the root account via SSH must be disabled via root-login deny command. Following is an example configuration: [edit system] services { ssh { root-login deny;
Configure authentication for all management connections.
Review the device configuration to verify it is configured to use SNMPv3 with both SHA authentication and privacy using AES encryption. Downgrades: If the site is using Version 1 or Version 2 with all of the appropriate patches and has developed a migration plan to implement the Version 3 Security Model, this finding can be downgraded to a Category II. If the targeted asset is running SNMPv3 and does not support SHA or AES, but the device is configured to use MD5 authentication and DES or 3DES encryption, then the finding can be downgraded to a Category III. If the site is using Version 1 or Version 2 and has installed all of the appropriate patches or upgrades to mitigate any known security vulnerabilities, this finding can be downgraded to a Category II. In addition, if the device does not support SNMPv3, this finding can be downgraded to a Category III provided all of the appropriate patches to mitigate any known security vulnerabilities have been applied and has developed a migration plan that includes the device upgrade to support Version 3 and the implementation of the Version 3 Security Model. If the device is configured to use to anything other than SNMPv3 with at least SHA-1 and AES, this is a finding. Downgrades can be determined based on the criteria above.
If SNMP is enabled, configure the network device to use SNMP Version 3 Security Model with FIPS 140-2 validated cryptography (i.e., SHA authentication and AES encryption).
Review the network devices configuration and verify if either of the SNMP community strings "public" or "private" is being used. If default or well-known community strings are used for SNMP, this is a finding.
Configure unique SNMP community strings replacing the default community strings.
Review the network device configuration to determine if an authentication server is defined for gaining administrative access. If so, there must be only one local account of last resort configured locally for an emergency. Example: [edit system] class tier3 { idle-timeout 15; permissions all; } user admin { full-name Administrator; uid 2000; class tier3; authentication { encrypted-password xxxxxxxxxxx; } } Verify the username and password for the local account of last resort is contained within a sealed envelope kept in a safe. If an authentication server is used and more than one local account exists, this is a finding.
Configure the device to only allow one local account of last resort for emergency access and store the credentials in a secure manner.
With the exception of root, all user access privileges to a Juniper router are defined in a class. All users who log in to the router must be in a login class. Hence, user access to the router is via login class. The properties defined in a login class include user access privileges and the idle time permitted for a user login session. As shown in the example below, the idle time is specified with the idle-timeout specifying in minutes as to how long a session can be idle before it times out and the user is logged off. Check the classes that have been defined and examine the idle-timeout parameter. Following is an example: [edit system login] class superuser-local { idle-timeout 10; permissions all; } Notes: 1. There is no default idle-timeout. Without a timeout specified, a login session remains established until a user logs out of the router, even if that session is idle. Unlike IOS, to close idle sessions automatically, you must configure a time limit for each login class. 2. Since the root account does not belong to a class and you can access root via console, disable the ability to login using the root account by making the console insecure as follows: [edit system] console { insecure; }
Configure the timeout for idle console connection to 10 minutes or less.
Base Procedure: The administrator will bind the ingress ACL filtering packets entering the network to the external interface in an inbound direction. Note: All filters must be applied to the appropriate interfaces on an inbound direction. Ingress filtering is applied to all traffic entering the enclave. The ingress filter would be bound to all external interfaces.
Bind the ingress ACL to the external interface (inbound) and the egress ACL to the internal interface (inbound).
Review the network device configuration and verify SNMP community strings are read-only when using SNMPv1, v2c, or basic v3 (no authentication or privacy). Write access may be used if authentication is configured when using SNMPv3. If write-access is used for SNMP versions 1, 2c, or 3-noAuthNoPriv mode and there is no documented approval by the IAO, this is a finding. The SNMP V1 configuration should look similar to the following: snmp { interface ge-0/1/0.0; community xxxxxxxxx { authorization read-only; clients { default restrict; 7.7.7.5/30; } } SNMPv3 access sets the SNMP access levels by context, group, and user. The context-name statement determines what management information is accessible by an SNMP entity. An SNMP entity can have access to many access contexts and therefore requires a name to identify each context. You must also associate a context with a specific access group and configure read and write views associated with each group. Specify the group-name variable to identify a collection of SNMP users that share the same access policy, in which object identifiers (OIDs) are read-accessible or write-accessible. Each group is the collection of users associated with the security model. You can only specify the model usm. The example below as a “router context” which is accessed by two groups: NOC and engineers. NOC is only allowed read access while engineers have read and write access. John and Sue are users that belong to the engineers group and have authentication configured. snmp { view all { oid .1.3.6.1 include; } engine-id { local "isp-routers-0001"; } access { user john { authentication-type md5; authentication-password "john-auth-password"; privacy-type des; privacy-password "john-privacy-password"; } user sue { authentication-type md5; authentication-password "sue-auth-password"; privacy-type des; privacy-password "sue-privacy-password"; } user hpov { authentication-type md5; authentication-password "hpov-auth-password"; privacy-type des; privacy-password "hpov-privacy-password"; } group engineers { model usm; user [john sue]; } group noc { model usm; user hpov; } context router { description “a router context”; group noc { model usm; security-level privacy; read-view all; } group engineers { model usm; security-level privacy; read-view all; write-view all; } } }
Configure the network device to allow for read-only SNMP access when using SNMPv1, v2c, or basic v3 (no authentication or privacy). Write access may be used if authentication is configured when using SNMPv3.
Review the network topology diagram, and review VPN concentrators. Verify that L2TP is not permitted into the enclave's private network. L2TP uses TCP and UDP ports 1701. See the PPS Vulnerability Assessment for additional protocol guidance and reference the Backbone Transport STIG for exceptions. If L2TP is not filtered outbound, this is a finding.
Terminate L2TP tunnels at the enclave perimeter, either in the DMZ or a service network for filtering and content inspection before passing traffic to the enclave's private network.
Review the network device's configuration and verify authentication is required for console access. With the exception of root, all user access privileges to a Juniper router are defined in a class. All users who log in to the router must be in a login class. Hence, user access to the router is via login class as shown in the following example: [edit system] authentication-order [ radius password ]; radius-server { 192.168.6.5 { secret "xxxxxxx"; } } login { /* login classes */ class tier1 { idle-timeout 10; permissions all; } class tier2 { idle-timeout 10; permissions [ configure interface network routing snmp system trace view firewall ]; } /* local emgergency account */ user admin { full-name Administrator; uid 2000; class tier1; authentication { encrypted-password "xxxx"; # SECRET-DATA } } /* RADIUS templates */ user tier1 { uid 2001; class tier1; } user tier2 { uid 2002; class tier2; } } Note: Since the root account does not belong to a class and you can access root via console, disable the ability to login at the console using the root account by making the console insecure as follows: [edit system] console { insecure; }
Configure authentication for console access on the network device.
IOS Procedure: N/A A Cisco router does not have a diagnostics port. JUNOS Procedure: Review the router configuration to ensure a password is required when gaining access to the diagnostics port similar to the following: [edit system] diag-port-authentication { encrypted-password "xxxxxxxxxxxxx"; # SECRET-DATA }
The router administrator will ensure that a password is required to access the routers diagnostic port.
Review the network element’s configuration to ensure that all messages up to and including severity level 6 (informational) are logged and sent to a syslog server as shown in the following example: [edit system syslog] syslog { host 192.168.1.22 { any info; facility-override local7; } } The table below lists the severity levels and message types for all log data. Severity Level Message Type 0 Emergencies 1 Alerts 2 Critical 3 Errors 4 Warning 5 Notifications 6 Informational 7 Debugging
Configure the network device to log all messages except debugging and send all log data to a syslog server.
Review the running config of the router that connects to an AG and verify that each permit statement of the ingress ACL is configured to only permit packets with destination addresses of the site’s NIPRNet address space or that belonging to the address block assigned by the AG network service provider. Note: An Approved Gateway (AG) is any external connection from a DoD NIPRNet enclave to an Internet Service Provider, or network owned by a contractor, or non-DoD federal agency that has been approved by either the DoD CIO or the DoD Component CIO. This AG requirement does not apply to commercial cloud connections when the Cloud Service Provider (CSP) network is connected via the NIPRNet Boundary Cloud Access Point (BCAP).
Insure the ingress ACL for any interface connected to an AAG is configured to only permit packets with a destination address belonging to the sites address block.
Review the configuration of the router connecting to the AG and verify that there are no BGP neighbors whose remote AS belongs to the AG service provider. Note: An Approved Gateway (AG) is any external connection from a DoD NIPRNet enclave to an Internet Service Provider, or network owned by a contractor, or non-DoD federal agency that has been approved by either the DoD CIO or the DoD Component CIO. This AG requirement does not apply to commercial cloud connections when the Cloud Service Provider (CSP) network is connected via the NIPRNet Boundary Cloud Access Point (BCAP).
The only method to be used to reach the AG will be through a static route.
Review the configuration of the router connecting to the AG and verify that there are no routes being redistributed into the enclave from the AG. Note: An Approved Gateway (AG) is any external connection from a DoD NIPRNet enclave to an Internet Service Provider, or network owned by a contractor, or non-DoD federal agency that has been approved by either the DoD CIO or the DoD Component CIO. This AG requirement does not apply to commercial cloud connections when the Cloud Service Provider (CSP) network is connected via the NIPRNet Boundary Cloud Access Point (BCAP).
Use distribute lists prefix lists to insure AG routes are not redistributed into the NIPRNet BGP or sites IGP (OSPF, EIGRP, RIP, etc).
Review the router configuration and verify that only authorized internal connections are allowed access to the routing engine via ssh. Access to the Juniper routing engine is via loopback interface. The configuration should look similar to the following: [edit interfaces] lo0 { unit 0 { family inet { filter { input protect-routing-engine; } address 192.168.1.2/32; } } } [edit firewall] family inet { filter protect-routing-engine { term terminal-access { from { source-address { 192.168.1.10; 192.168.1.11; } protocol tcp; port ssh; } then { syslog; accept; } } term default-action { then { log; discard; } } } }
Configure an ACL or filter to restrict management access to the device from only the management network.
Review the configuration and verify the timeout is set for 60 seconds or less. The SSH service terminates the connection if protocol negotiation (that includes user authentication) is not complete within this timeout period. system { login { retry-options { tries-before-disconnect 3; maximum-time 60; }
Configure the network devices so it will require a secure shell timeout of 60 seconds or less.
Review the configuration and verify the number of unsuccessful SSH login attempts is set at 3. system { login { retry-options { tries-before-disconnect 3; maximum-time 60; }
Configure the network device to require a maximum number of unsuccessful SSH logon attempts at 3.
Review the device configuration to validate threshold filters or timeout periods are set for dropping excessive half-open TCP connections. For timeout periods, the time should be set to 10 seconds or less. If the device can not be configured for 10 seconds or less, it should be set to the least amount of time allowable in the configuration. Threshold filters will need to be determined by the organization for optimal filtering. JUNOS Configuration Example: firewall { policer TCP-SYN-Policer { if-exceeding { bandwidth-limit 500k; burst-size-limit 15k; } then discard; } family inet { filter DOS-Protect { . . . /* Term tcp-syn-fin-limit: Rate limit TCP packets with SYN/FIN/RST flags. */ term tcp-syn-fin-limit { from { protocol tcp; port [bgp ldp snmp snmptrap telnet ftp ftp-data ssh]; tcp-flags “syn | fin | rst”; } then policer TCP-SYN-Policer; } . . }
Configure the device to drop half-open TCP connections through threshold filtering or timeout periods.
Identify the device or devices that make up the perimeter defense. Review the configuration of the premise routers and firewalls and verify that the filters are IAW DoD 8551. SA will review PPS Vulnerability Assessment of every port allowed into the enclave and apply all appropriate mitigations defined in the VA report. All ports and protocols allowed into the enclave must be registered in the PPSM database. Note: It is the responsibility of the enclave owner to have the applications the enclave uses registered in the PPSM database.
The SA will utilize ingress and egress ACLs to restrict traffic in accordance with the guidelines contained in DOD Instruction 8551.1 for all services and protocols required for operational commitments.
Review the configuration and verify that the auxiliary port is disabled unless a secured modem providing encryption and authentication is connected to it.If the following configuration statements are found than a secure modem should be in place. [edit system] ports { auxiliary { type vt100; } }
Disable the auxiliary port. If used for out-of-band administrative access, the port must be connected to a secured modem providing encryption and authentication.
The enclave perimeter requirement for filtering, to include JTF-GNO PPS filtering rules, and monitoring traffic will be enforced for any traffic from the AG. All traffic leaving the enclave, regardless of the destination--AG or NIPRNet addresses, will be filtered by the premise router's egress filter to verify that the source IP address belongs to the enclave. Note: An Approved Gateway (AG) is any external connection from a DoD NIPRNet enclave to an Internet Service Provider, or network owned by a contractor, or non-DoD federal agency that has been approved by either the DoD CIO or the DoD Component CIO. This AG requirement does not apply to commercial cloud connections when the Cloud Service Provider (CSP) network is connected via the NIPRNet Boundary Cloud Access Point (BCAP).
Ensure the perimeter is protected from this path. A deny by default policy is enforced at this connection and the site is in compliance with all PPS 13 and 14 boundaries.
Inspect the device configuration to validate IPv6 router advertisement suppression is enabled on all external-facing interfaces. This is applicable to all IPv6-enabled interfaces connected to an IP backbone (i.e. NIPRNet, SIPRNet, etc), backdoor link, or an alternate gateway (AG). By default, router advertisements are disabled by Junos. Verify that there are no external-facing interfaces defined under the hierarchy protocols > router-advertisement. protocols { router-advertisement { interface fe-0/1/0 { prefix 2001:1:123::/64; } } }
Configure the network device to enable route advertisement suppression on all external facing have IPv6 enabled on the interface.
Review the device configuration to determine if each eBGP peer is authenticated with a unique password. If a unique password is not configured for each eBGP peer, this is a finding.
Configure unique password for each eBGP neighbor.
Review device configuration for key expirations of 180 days or less. If rotating keys are not configured to expire at 180 days or less, this is a finding.
Configure the device so rotating keys expire at 180 days or less.
Review the device configuration to determine if the device has been setup to be an FTP server. If the device has been configured to be an FTP server, this is a finding.
Disable FTP server services on the device.
Under the edit system services hierarchy, enter a show command to verify that the rlogin command is not present.
Configure the device to disable BSDr command services.
Review the active configuration to determine if controls have been defined to ensure router has ICMPv6 unreachables or redirects disabled any external interfaces. ICMP Unreachable 1. Protocol Unreachable The filter used for the routing engine must be configured to silently discard any packets it does not recognize or want. Following would be an example: [edit interfaces] lo0 { unit 0 { family inet { filter { input protect-routing-engine; } address 192.168.1.2/32; } } } [edit firewall] family inet { filter protect-routing-engine { term 1 { . . . term default-action { then { syslog; discard; } } } } 2. Host Unreachable The only method to prevent a Juniper router from sending a Host Unreachable message back to the originator when it receives a packet with a destination address that is not found in its forwarding table, is t define a default route to the discard interface. The filter applied to this interface would then silently discard the packets. [edit interfaces] dsc { unit 0 { family inet { filter { input log-discard; } address 10.1.1.1/32 { destination 10.1.1.2; } } } } [edit firewall] family inet { filter log-discard { term one { then { syslog; discard; } } } } [edit routing-options] static { route 0.0.0.0/0 next-hop 10.1.1.2 ; } 3. Aggregate and black hole routes A Juniper router will also send ICMP unreachable messages for packets that have a destination address of an aggregate route as well as a black hole route. a. Checking aggregate routes By default, when aggregate routes are installed in a Juniper routing table, the next hop is configured as a reject route. Hence the packet is dropped and an ICMP unreachable message is sent to the packet’s originator if the aggregate route itself is the result of a routing table longest-match lookup or a packet with a more specific destination under the advertised summary route does not match a more specific route (contributing route). These packets can be quietly dropped by specifying discard for an individual route in the route part of the aggregate statement, or specifying reject when you configure the defaults for aggregate routes. [edit routing-options] aggregate { route 192.168.0.0/17 discard ; or [edit routing-options] aggregate { defaults { active; discard; community 2:333; } } Note: You can also issue the operational command show route protocol aggregate to determine if discard or reject option is used. b. Checking black hole routes [edit routing-options] static { route 0.0.0.0/8 discard; route 1.0.0.0/8 discard; route 5.0.0.0/8 discard; . ICMP Redirects Under the edit system hierarchy enter a show command to verify that the no-redirects command is present on all Juniper routers. This restriction can also be enforced by including the no-redirects statement under each active interface. [edit system] no-redirects; or [edit interfaces] fe-2/0/1 { description "NIPRNet link"; unit 0 { family inet { no-redirects; filter { input ingress-filter; } address 121.70.11.68/29; } } } } ICMP Mask Reply JUNOS has no option to not reply to an ICMP Mask Request message. Consequently, to ensure that the router does not send any ICMP Mask Reply messages in response to a mask request, include a term statement in the routing engine firewall to drop any masks requests sent to it. [edit interfaces] lo0 { unit 0 { family inet { filter { input protect-routing-engine; } address 192.168.1.2/32; } } } [edit firewall] family inet { filter protect-routing-engine { term icmp-mask-request { from { protocol icmp; icmp-type mask-request; } then { log; discard; } } } }
The network element configuration must be changed to ensure ICMPv6 unreachables and redirects are disabled at all external interfaces.
Review the network element configuration and verify that it is authenticating NTP messages received from the NTP server or peer using a FIPS-approved message authentication code algorithm. FIPS-approved algorithms for authentication are the cipher-based message authentication code (CMAC) and the keyed-hash message authentication code (HMAC). AES and 3DES are NIST-approved CMAC algorithms. The following are NIST-approved HMAC algorithms: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256. Downgrade: If the network device is not capable of authenticating the NTP server or peer using a FIPS-approved message authentication code algorithm, then MD5 can be utilized for NTP message authentication and the finding can be downgraded to a CAT III. If the network element is not configured to authenticate received NTP messages using a FIPS-approved message authentication code algorithm, this is a finding. A downgrade can be determined based on the criteria above.
Configure the device to authenticate all received NTP messages using a FIPS-approved message authentication code algorithm.
Review the configuration and verify the loopback interface address is used as the source address when originating TACACS+ or RADIUS traffic. If the device is managed from an OOB management network, the OOB interface must be used instead. Step 1: Verify that a loopback address has been configured with an IP address. The configuration should look similar to the following: interfaces { lo0 { unit 0 { family inet { address 10.10.2.1/32; } } } Note: Only one loopback interface can be configured on JUNOS routers; however, multiple addresses can be defined. Step 2: Verify that TACACS+ and RADIUS are configured to use the loopback address by comparing the source address defined for tacplus-server and radius-server with the address configured for the loopback interface. You should find a configuration similar to the examples below: TACACS+ system { tacplus-server { 10.10.2.11; source-address 10.10.2.1; } } RADIUS system { radius-server { 10.10.2.21; source-address 10.10.2.1; } } Note: If source-address is not specified, then the default-address-selection under system hierarchy must be configured. Configuring system default-address-selection will enable the router to use the loopback interface as the source address for most locally generated IP packets. This configuration would appear as follows: system { default-address-selection; … } }
Configure the device to use its loopback or OOB management interface address as the source address when originating authentication services traffic.
Review the configuration and verify the loopback interface address is used as the source address when originating syslog traffic. If the device is managed from an OOB management network, the OOB interface must be used instead Step 1: Verify that a loopback address has been configured with an IP address. The configuration should look similar to the following. interfaces { lo0 { unit 0 { family inet { address 10.10.2.1/32; } } } Note: Only one loopback interface can be configured on Juniper routers; however, multiple addresses can be defined. Step 2: Verify that syslog is configured to use the loopback address by comparing the source address defined for syslog with the address configured for the loopback interface. You should find a configuration similar to the examples below: system { syslog { host 192.168.1.100 { any info; } source-address 192.168.1.1; } } Note: If source-address is not specified, then the default-address-selection under system hierarchy must be configured. Configuring system default-address-selection will enable the router to use the loopback interface as the source address for most locally generated IP packets. This configuration would appear as follows: system { default-address-selection; … } }
Configure the device to use its loopback or OOB management interface address as the source address when originating syslog traffic.
Review the configuration and verify the loopback interface address is used as the source address when originating NTP traffic. If the device is managed from an OOB management network, the OOB interface must be used instead Step 1: Verify that a loopback address has been configured with an IP address. The configuration should look similar to the following. interfaces { lo0 { unit 0 { family inet { address 10.10.2.1/32; } } } Note: Only one loopback interface can be configured on Juniper routers; however, multiple addresses can be defined. Step 2: Verify that NTP is configured to use the loopback address by comparing the source address defined for NTP with the address configured for the loopback interface. You should find a configuration similar to the examples below: system { ntp { server 10.10.2.21; source-address 10.10.2.1; } } Note: If source-address is not specified, then the default-address-selection under system hierarchy must be configured. Configuring system default-address-selection will enable the router to use the loopback interface as the source address for most locally generated IP packets. This configuration would appear as follows: system { default-address-selection; … } }
Configure the device to use its loopback or OOB management interface address as the source address when originating NTP traffic.
Review the configuration and verify the loopback interface address is used as the source address when originating SNMP traffic. If the device is managed from an OOB management network, the OOB interface must be used instead Step 1: Verify that a loopback address has been configured with an IP address. The configuration should look similar to the following. interfaces { lo0 { unit 0 { family inet { address 10.10.2.1/32; } } } Note: Only one loopback interface can be configured on Juniper routers; however, multiple addresses can be defined. Step 2: Verify that SNMP is configured to use the loopback address by comparing the source address defined for SNMP with the address configured for the loopback interface. You should find a configuration similar to the examples below: snmp { clients { default restrict; 10.10.2.111/32; } trap-options { source-address 10.10.2.1; } } Note: If source-address is not specified, then the default-address-selection under system hierarchy must be configured. Configuring system default-address-selection will enable the router to use the loopback interface as the source address for most locally generated IP packets. This configuration would appear as follows: system { default-address-selection; … } }
Configure the device to use its loopback or OOB management interface address as the source address when originating SNMP traffic.
Review the configuration and verify the loopback interface address is used as the source address when originating Netflow traffic. If the device is managed from an OOB management network, the OOB interface must be used instead Step 1: Verify that a loopback address has been configured with an IP address. The configuration should look similar to the following. interfaces { lo0 { unit 0 { family inet { address 10.10.2.1/32; } } } Note: Only one loopback interface can be configured on Juniper routers; however, multiple addresses can be defined. Step 2: Juniper has adopted the Cisco PDU format for flow export; However, Juniper does not call it NetFlow but "cflowd" and uses the flow export concept as a means to export packet-sampling data. Juniper has a filtering mechanism which allows you to sample packets and log them to the local file system or they can be exported using the "cflowd" forwarding options. You should find a configuration similar to the example below depicting the source address for cflowd: forwarding-options { sampling { input { family inet { rate 100; run-length 4; max-packets-per-second 5000; } } output { cflowd 10.10.2.22 { port 9991; source-address 10.10.2.1; } } } Note: If source-address is not specified, then the default-address-selection under system hierarchy must be configured. Configuring system default-address-selection will enable the router to use the loopback interface as the source address for most locally generated IP packets. This configuration would appear as follows: system { default-address-selection; … } }
Configure the router to use its loopback or OOB management interface address as the source address when originating NetFlow traffic.
Review the configuration and verify a loopback interface address is used as the source address when originating TFTP or FTP traffic. Step 1: Verify that a loopback address has been configured with an IP address. The configuration should look similar to the following: interfaces { lo0 { unit 0 { family inet { address x.x.x.x/32; } } } Step 2: There is no method to override the source address default for TFTP and FTP. Hence, the router must be configured to use the loopback as the default source address for all locally generated traffic. This is accomplished by configuring the default-address-selection statement as shown in the following example: system { default-address-selection; … } } If the device is managed from an OOB management network, the OOB interface must be used instead. Note: Only one loopback interface can be configured on Juniper routers; however, multiple addresses can be defined.
Configure the network device to use a loopback or OOB management interface address as the source address when originating TFTP or FTP traffic.
Review the configuration and verify the loopback interface address is used as the source address for all iBGP peering. Step 1: Verify that a loopback address has been configured with an IP address. The configuration should look similar to the following: interfaces { lo0 { unit 0 { family inet { address 10.10.2.1/32; } } } Note: Only one loopback interface can be configured on Juniper routers; however, multiple addresses can be defined. Step 2: The vulnerability does not require eBGP peering to use the loopback address. Hence, the BGP router only requires that the loopback address is used to peer with its iBGP neighbors. You should find a configuration similar to the example below: protocols { bgp { group iBGP_111 { type internal; local-address 10.10.2.1; export next-hop-self; peer-as 111; neighbor 10.10.2.2; } } }
Configure the network device's loopback address as the source address for iBGP peering.
Review the firewall filter or have the SA provide the router filter mitigating the vulnerability. IOS Procedure: Verify that an ACL for IPv6 has been defined to deny packets with unknown or invalid payload, and log all violations. The ACL should be defined on the ingress and egress filters and should look as shown in the following example: ipv6 access-list inbound-to-enclave remark prohibit unknown protocols deny ipv6 any any undetermined-trans log …
Ensure the undetermined transport command is implemented.
The Routing Header is identified by a Next Header value of 43 (0x2B). To drop all types including type 2 Mobile IPv6 (MIPv6) a filter can be defined to drop the Routing Header 43 (0x2B). If MIPv6 is required a permit will be required for Routing Header 43 (0x2B) Type 2, and then drop the remaining Routing Headers 43 (0x2B). Verify that a filter for IPv6 traffic has been defined to deny packets that include a Routing Header of Type 0, Type 1, and Type 3-255 by all external router interfaces. The ACL should be defined on the ingress filters of the firewall or perimeter router. If a filter to deny packets with Routing Header of Type 0, Type 1, and Type 3-255 is not in place on the external router interfaces, this is a finding. IOS example filtering Type 0 only: ipv6 access-list inbound-to-enclave remark prohibit IPv6 routing header type0 deny ipv6 any any routing-type 0 log … IOS example filtering packets with a Next-Header Routing: ipv6 access-list inbound-to-enclave remark prohibit IPv6 routing header type0 deny ipv6 any any routing … JUNOS example filtering packets with a Next-Header Routing: firewall { family inet6 { filter inbound-to-enclave { term routing-header { from { next-header routing; } then { reject; }
IPv6 traffic with a Routing Header Type 0, 1, 3-255 must be dropped by all external router interfaces.
Review the configuration and ensure only approved ICMP types and codes are permitted into the enclave. Use source and destination filtering where appropriate. Apply the ICMP fragment filter to prevent DOS. [edit firewall] family inet { filter ingress-filter { term block-frags { from { is-fragment; protocol icmp; } then { syslog; discard; } } term icmp-in-good { from { destination-address { 199.36.92.0/30; } protocol icmp; icmp-type [echo-reply source quench time-exceeded parameter problem]; } then { accept; } term icmp-PMTU-D { from { destination-address { 199.36.92.0/24; } protocol icmp; icmp-type [ unreachable ]; icmp-code [ fragmentation-needed ]; } then { accept; } } } term icmp-in-bad { from { protocol icmp; } then { syslog; discard; } } } }
The network element must be configured to include controls to block inbound exploitable ICMP traffic message types.
Review the configuration and ensure only approved ICMP types are permitted to exit the enclave. Junos example [edit interfaces] fe-2/0/10 { description "link to our network”; unit 0 { family inet6 { filter { input egress-filter; } address 2001:db8:60::f15:60c2; } } } } [edit firewall] family inet6 { filter egress-filter { term icmp-out-good { from { source-address { 2001:db8:60::f15:60c2; } protocol icmp; icmp-type [ echo-request packet-too-big]; } then { accept; } } term icmp-out-bad { from { protocol icmp; } then { syslog; discard; } } } }
The network element must be configured to include controls to block outbound ICMP traffic message types.
Review the router configuration and verify that all internal interfaces have been configured with an ACL or filter on an inbound direction.
Bind the ingress ACL to the external interface (inbound) and the egress ACL to the internal interface (inbound).
Review the perimeter device configuration to ensure access control lists are configured to block, deny, or drop inbound IP addresses using the local host IP address space of 127.0.0.0/8. Depending on the security posture of the access control list, this requirement may be met explicitly or inexplicitly. Config Example: [edit interfaces] fe-2/0/10 { description "to NIPRNet core router"; speed 100m; link-mode full-duplex; unit 0 { family inet { filter { input ingress-filter; } address 199.36.92.1/30; } } } [edit firewall] family inet { filter ingress-filter { term term-1 { from { source-address { 127.0.0.0; } } then discard; } } }
Configure the perimeter device to ensure access control lists are configured to block, deny, or drop inbound IP addresses using the local host IP address space of 127.0.0.0/8. Depending on the security posture of the access control list, this requirement may be met explicitly or inexplicitly.
Review the perimeter device configuration to ensure access control lists are configured to block, deny, or drop inbound IP addresses using the link-local IP address space of 169.254.0.0/16. Depending on the security posture of the access control list, this requirement may be met explicitly or inexplicitly. [edit interfaces] fe-2/0/10 { description "to NIPRNet core router"; speed 100m; link-mode full-duplex; unit 0 { family inet { filter { input ingress-filter; } address 199.36.92.1/30; } } } [edit firewall] family inet { filter ingress-filter { term term-1 { from { source-address { 169.254.0.0/16; } } then discard; } } }
Configure the perimeter device to ensure access control lists are configured to block, deny, or drop inbound IP addresses using the local host IP address space of 169.254.0.0/16. Depending on the security posture of the access control list, this requirement may be met explicitly or inexplicitly.
External Interfaces peering with NIPRNet or SIPRNet: Review the inbound ACLs on external facing interfaces of perimeter devices attached to the NIPR or SIPR to validate access control lists are configured to block, deny, or drop inbound IP addresses using RFC5735 and RFC6598. Examples of address space specified in RFC5735 and RFC6598: 0.0.0.0 255.0.0.0 100.64.0.0 255.192.0.0 192.0.0.0 255.255.255.0 192.0.2.0 255.255.255.0 198.18.0.0 255.254.0.0 198.51.100.0 255.255.255.0 203.0.113.0 255.255.255.0 224.0.0.0 240.0.0.0 240.0.0.0 240.0.0.0 External Interfaces peering with commercial ISPs or other non-DoD network sources: Review the inbound ACLs on external facing interfaces of perimeter devices to validate access control lists are configured to block, deny, or drop inbound IP addresses specified in both RFC5735 and RFC6598. Along with network address space specified in RFC5735 and RFC6598, perimeter devices connected to commercial ISPs for Internet or other non-DoD network sources will need to be reviewed for a full bogon list that includes IP space that has been allocated to the RIRs but not assigned by the RIR to an ISP or other end-user can be obtained at the link below, as it is updated regularly. If RFC5735 and RFC 6598 address space isn't blocked on the external interface, this is a finding.
Configure inbound ACLs on external facing interfaces of perimeter devices peering with NIPRNet or SIPRNet to block, deny, or drop inbound IP addresses specified in RFC5735 and RFC6598. Configure inbound ACLs on external facing interfaces of perimeter devices peering with commercial ISPs or other non-DoD networks to block, deny, or drop inbound IP addresses specified in RFC5735 and RFC6598. Along with network address space specified in RFC5735 and RFC6598, perimeter devices connected to commercial ISPs for Internet or other non-DoD network sources will need to be reviewed for a fullbogon list that includes IP space that has been allocated to the RIRs but not assigned by the RIR to an ISP or other end-user can be obtained at the link below, as it is updated regularly. http://www.team-cymru.org/Services/Bogons/fullbogons-ipv4.txt
Review the perimeter device configuration to ensure access control lists are configured to block, deny, or drop inbound IP addresses using the RFC1918 IP address space of 10.0.0.0/8, 172.16.0.0 /12, and 192.168.0 /16. Depending on the security posture of the access control list, this requirement may be met explicitly or inexplicitly.
Configure the perimeter device to ensure access control lists are configured to block, deny, or drop inbound IP addresses using the RFC1918 IP address space of 10.0.0.0/8, 172.16.0.0 /12, and 192.168.0 /16. Depending on the security posture of the access control list, this requirement may be met explicitly or inexplicitly.
Review the device configuration to ensure FEC0::/10 IP addresses are not defined. If FEC0::/10 IP addresses are defined, this is a finding.
Configure the device using authorized IP addresses.
Base Procedure: Review the premise router configuration to ensure filters are in place to restrict the IP addresses explicitly, or implicitly. If ingress and egress ACLs for IPv6 have not been defined to deny Site Local Unicast Addresses and log all violations, this is a finding.
The administrator will configure the router ACLs to restrict IP addresses that contain any Site Local Unicast addresses.
Review the device configuration to ensure filters are in place to restrict inbound IP addresses explicitly, or inexplicitly. Verify that an ingress ACL for IPv6 has been defined to deny IPv6 Loopback, and log all violations. If the appropriate filters are not configured and applied, this is a finding.
Configure and apply the filters to restrict IP addresses that contain any loopback addresses.
Review the premise router configuration to ensure filters are in place to restrict the IP addresses explicitly, or implicitly. Verify that ingress and egress ACLs for IPv6 have been defined to deny the Unspecified Address and log all violations. If the appropriate filters are not configured and applied, this is a finding.
The administrator will configure the router ACLs to restrict IP addresses that contain any Unspecified Address.
Review the perimeter router configuration to ensure filters are in place to restrict the IP addresses. Verify that ingress and egress ACLs for IPv6 have been defined to deny the multicast source addresses and log all violations.
Configure the perimeter router access control lists to deny any IPv6 multicast address used as a source address.
Base Procedure: Review the premise router configuration to ensure filters are in place to restrict the IP addresses explicitly, or inexplicitly. Verify that ingress and egress ACLs for IPv6 have been defined to deny the embedded IPv4-compatible IPv6 addresses and log all violations.
The administrator will configure the router ACLs to restrict IP addresses that contain any embedded IPv4-compatible IPv6 addresses.
Base Procedure: Review the premise router configuration to ensure filters are in place to restrict the IP addresses explicitly, or inexplicitly. Verify that ingress and egress ACLs for IPv6 have been defined to deny the embedded IPv4-mapped IPv6 addresses and log all violations.
The administrator will configure the router ACLs to restrict IP addresses that contain any embedded IPv4-mapped IPv6 addresses.
Base Procedure: Review the premise router configuration to ensure filters are in place to restrict the IP addresses explicitly, or inexplicitly. Verify that ingress and egress ACLs for IPv6 have been defined to deny the Unique Local Unicast addresses and log all violations.
The administrator will configure the router ACLs to restrict IP addresses that contain any Unique Local Unicast addresses.
Unicast Strict mode: Review the router configuration to ensure uRPF has been configured on all internal interfaces.
The network element must be configured to ensure that an ACL is configured to restrict the router from accepting any outbound IP packet that contains an external IP address in the source field.
If SSH is used for administrative access, then Version 2 must be configured as shown in the following example: system { services { ssh { protocol-version v2; } } }
Configure the network device to use SSH version 2.
Verify ISATAP tunnels are terminated on the infrastructure routers or L3 switches within the enclave.
Terminate ISATAP tunnels at the infrastructure router to prohibit tunneled traffic from exiting the enclave perimeter prior to inspection by the IDS, IPS, or firewall.
Base Procedure: Specifying the IPv4 address of the 6to4 relay on the 6to4 router can mitigate these vulnerabilities.
Define a filter that allows 6to4 tunneling from trusted 6to4 relays.
Inspect the network device configuration to validate Teredo packets, UDP port 3544 is blocked both inbound to the enclave and outbound from the enclave. This requirement must be administered on either the perimeter router or firewall. If Teredo is not blocked one of these devices, this is a finding.
Configure either the perimeter router or firewall to block UDP port 3544 traffic inbound and outbound.
Base Procedure:Review network diagram in the STIG and ensure the architecture is designed correctly. The interface adjacent to the IPv4 LAN interface must not deploy IPv6 over IPv4. The techniques include using manually configured tunnels, generic routing encapsulation (GRE) tunnels, semiautomatic tunnel mechanisms such as tunnel broker services, and fully automatic tunnel mechanisms such as 6to4 for the WAN and intra-site automatic tunnel addressing protocol (ISATAP).
If NAT/PT is required the tunnel needs to be removed.
Review network diagram in the STIG and ensure the architecture is designed correctly. The interface facing the IPv4 LAN network must not receive IPv6 traffic. This can be accomplished by not having IPv6 on the interface supporting the IPv4 network. In addition a filter can be added to deny IPv6 at this interface. If interfaces supporting IPv4 in NAT-PT receive IPv6 traffic, this is a finding.
This can be accomplished by not having IPv6 enabled on the interface supporting the IPv4 network. In addition a filter can be added to deny IPv6 at the interface.
Verify an authentication server is required to access the device and that there are two or more authentication servers defined. If the device is not configured for two separate authentication servers, this is a finding.
Configure the device to use two separate authentication servers.
Review the emergency administration account configured on the network devices and verify that it has been assigned to a privilege level that will enable the administrator to perform necessary administrative functions when the authentication server is not online. If the emergency administration account is configured for more access than needed to troubleshoot issues, this is a finding.
Assign a privilege level to the emergency administration account to allow the administrator to perform necessary administrative functions when the authentication server is not online.
Review the device configuration to determine if IPSec tunnels used in transiting management traffic are filtered to only accept authorized traffic based on source and destination IP addresses of the management network. If filters are not restricting only authorized management traffic into the IPSec tunnel, this is a finding.
Configure filters based on source and destination IP address to restrict only authorized management traffic into IPSec tunnels used for transiting management data.
Verify the configuration at the remote VPN end-point is a mirror configuration as that reviewed for the local end-point.
Configure he crypto access-list used to identify the traffic to be protected so that it is a mirror (both IP source and destination address) of the crypto access list configured at the remote VPN peer.
Verify that the OOBM interface is an adjacency only in the IGP routing domain for the management network. The following would be an example where RIP is run on the management network 10.0.0.0 and OSPF in the managed network 172.20.0.0. The network 10.1.20.0/24 is the OOBM backbone and 10.1.1.0 is the local management LAN connecting to the OOBM interfaces of the managed network (i.e., the private and service network) elements. interfaces { fe-0/0/0 { description “link to our Private Net” unit 0 { family inet { address 172.20.4.2/24; } } } fe-0/0/1 { description “link to our Service Net” unit 0 { family inet { address 172.20.5.2/24; } } } fe-0/0/2 { description “Enclave Management LAN” unit 0 { family inet { address 10.1.1.1/24; } } } t3-3/0/3 { description “link to OOBM Backbone” unit 0 { family inet { address 10.1.20.3/24; } } } } protocols { ospf { area 0.0.0.0 { interface fe-0/0/0.0; interface fe-0/0/1.0; interface lo0.0; } } rip { group rip-neighbor { neighbor t3-3/0/3.0; export rip-advertisements; } } } policy-options { policy-statement rip-advertisements { from protocol rip; then accept; } } policy-statement direct-management-LAN { from { protocol direct; interface [ lo0.0 t3-3/0/3.0 fe-0/0/2 ]; } then accept; } } Note: When you enable RIP, the default JUNOS behavior is to accept all learned RIP routes but export no routes to RIP neighbors. To have RIP send routing information to its neighbors, you need to configure a routing policy that has RIP export routes to its neighbors. In the example above, the OOBM gateway router will only have a RIP neighbor adjacency with its upstream OOB backbone router. However, it will advertise to the RIP domain the local management address prefix and the loopback address which also belongs to the management network.
Ensure that multiple IGP instances configured on the OOBM gateway router peer only with their appropriate routing domain. Verify that the all interfaces are configured for the appropriate IGP instance.
Verify that the IGP instance used for the managed network does not redistribute routes into the IGP instance used for the management network and vice versa. There is no equivalent redistribute command in JUNOS. All redistribution of routes between protocols is done through the creation of a routing policy through the use of import and export statements. Verify that there are no export and policy-statement commands configured that would distribute routes from the IGP routing domain for the management network into the IGP routing domain of the managed network, or vice-versa. The following example illustrates how RIP routes would be redistributing into OSPF. policy-options { policy-statement rip-to-ospf { from protocol rip; then accept; } } } protocols { ospf { export rip-to-ospf; area 0.0.0.0 { interface fe-0/0/0.0; interface fe-0/0/1.0; } } As an alternative, static routes can be used to forward management traffic to the OOBM interface; however, this method may not scale well. If static routes are used to forward management traffic to the OOB backbone network, verify that the OOBM interface is not an IGP adjacency and that the correct destination prefix has been configured to forward the management traffic to the correct next-hop and interface for the static route. In the following configuration examples, 10.1.1.0/24 is the management network and 10.1.20.4 is the interface address of the OOB backbone router that the OOB gateway router connects to. The network 10.1.20.0/24 is the OOBM backbone. interfaces { fe-0/0/0 { description “link to our Private Net” unit 0 { family inet { address 172.20.4.2/24; } } } fe-0/0/1 { description “link to our Service Net” unit 0 { family inet { address 172.20.5.2/24; } } } t3-3/0/3 { description “link to OOBM Backbone” unit 0 { family inet { address 10.1.20.3/24; } } } protocols { ospf { area 0.0.0.0 { interface fe-0/0/0.0; interface fe-0/0/1.0; interface lo0.0; } } routing-options { static { route 10.1.1.0/24 { next-hop 10.1.20.4; } } }
Ensure that the IGP instance used for the managed network does not redistribute routes into the IGP instance used for the management network and vice versa.
Review the ACL or filters for the router’s receive path and verify that only traffic sourced from the management network is allowed to access the router. This would include both management and control plane traffic. Step 1: Verify that an inbound filter has been applied to loopback interface. This filter is used to restrict all traffic to the router engine. The interface configuration should look similar to the following: interfaces { lo0 { unit 0 { family inet { no-redirects; filter { input router-protect-filter; } address 10.1.3.41/32; } } } } Note: the address block used for loopback addresses should be independent of the address space used for the management backbone, the NOC, or the local management subnet. Loopback address should be configured with /32 prefixes to enable proper route advertisements and optimum path reachability for both control plane and management plane traffic within the global management network. Step 2: Determine the address block of the management network at the NOC. In the example configuration below, the 10.2.2.0/24 is the management network at the NOC. Step 3: Verify that the ACL referenced by the ip receive acl statement restricts all management plane traffic to the validated network management address block at the NOC. Management traffic can include telnet, SSH, SNMP, TACACS, RADIUS, TFTP, TFTP, FTP, and ICMP. Control plane traffic from OOBM backbone neighbors should also be allowed to access the router. The filter configuration should look similar to the following: firewall { filter router-protect-filter { term ospf-neighbors { from { source-address { 10.2.2.0/24; } protocol ospf; } then { syslog; accept; } } term ssh-access { from { source-address { 10.2.2.0/24; } protocol tcp; destination-port ssh; } then { syslog; accept; } } term snmp-access { from { source-address { 10.2.2.24/32; 10.2.2.25/32; } protocol udp; destination-port snmp; } then { syslog; accept; } } term tacacs-access { from { source-address { 10.2.2.30/32; } protocol tcp; port tacacs-ds; } then { syslog; accept; } } term ftp-access { from { source-address { 10.2.2.77/32; } protocol tcp; port [ftp ftp-data]; } then { syslog; accept; } } term allow-ICMP { from { source-address { 10.2.2.0/24; } protocol icmp; } then accept; } term default-action { then { syslog; discard; } } } }
Ensure that traffic from the managed network is not able to access the OOBM gateway router using either receive path or interface ingress ACLs.
Examine the egress filter on the OOBM interface of the gateway router to verify that only traffic sourced from the management address space is allowed to transit the OOBM backbone. In the example configurations below, the 10.1.1.0/24 is the management network address space at the enclave or managed network and 10.2.2.0/24 is the management network address space at the NOC. interfaces { fe-0/0/0 { description “link to our Private Net” unit 0 { family inet { address 172.20.4.2/24; } } } fe-0/0/1 { description “link to our Service Net” unit 0 { family inet { address 172.20.5.2/24; } } } t3-3/0/3 { description “link to OOBM Backbone” unit 0 { family inet { filter { output OOBM-egress-filter; } address 10.1.20.3/24; } } } } firewall { filter OOBM-egress-filter { term allow-mgmt { from { source-address { 10.1.1.0/24; } destination-address { 10.2.2.0/24; } } then { accept; } } … … … term default-action { then { syslog; discard; } } } }
Configure the OOBM gateway router interface ACLs to ensure traffic from the managed network does not leak into the management network.
Examine the ingress filter on the OOBM interface of the gateway router to verify that traffic is only destined to the local management address space. In the example configurations below, the 10.1.1.0/24 is the local management network address space at the enclave or managed network and 10.2.2.0/24 is the management network address space at the NOC. interfaces { fe-0/0/0 { description “link to our Private Net” unit 0 { family inet { address 172.20.4.2/24; } } } fe-0/0/1 { description “link to our Service Net” unit 0 { family inet { address 172.20.5.2/24; } } } fe-0/0/2 { description “link to our Management LAN” unit 0 { family inet { address 10.1.1.2/24; } } } t3-3/0/3 { description “link to OOBM Backbone” unit 0 { family inet { filter { input OOBM-ingress-filter; output OOBM-egress-filter; } address 10.1.20.3/24; } } } firewall { filter OOBM-ingress-filter { term allow-mgmt { from { source-address { 10.2.2.0/24; } destination-address { 10.1.1.0/24; } } then { accept; } } … … term default-action { then { syslog; discard; } } } }
Configure access control lists or filters to block any traffic from the management network destined for the managed network's production address spaces.
After determining which interface is connected to the OOBM access switch, review the managed device configuration and verify that the interface has been assigned an address from the local management address block. In this example, that is 10.1.1.0/24. interfaces { fxp0 { description “link to OOBM access switch” unit 0 { family inet { address 10.1.1.22/24; } } }
Configure the OOB management interface with an IP address from the address space belonging to the OOBM network.
Step 1: Verify that the managed interface has an inbound and outbound filter configured as shown in the following example: interfaces { fe-0/0/2 { description “link to our Management LAN” unit 0 { family inet { filter { input OOBM-ingress-filter; output OOBM-egress-filter; } address 10.1.1.22/24; } } } Step 2: Verify that the ingress filter blocks all transit traffic—that is, any traffic not destined to the router itself. In addition, traffic accessing the managed elements should be originated at the NOC. In the example the management network at the NOC is 10.2.2.0/24. firewall { filter OOBM-ingress-filter { term allow-mgmt { from { source-address { 10.2.2.0/24; } destination-address { 10.1.1.22/32; } } then { accept; } } … … … term default-action { then { syslog; discard; } } } } Step 3: Verify that the egress filter blocks any traffic exiting the management interface that was not originated by the managed elements . Verify that the destination address is the NOC address space. firewall { filter OOBM-egress-filter { term allow-mgmt { from { source-address { 10.1.1.22/32; } destination-address { 10.2.2.0/24; } } then { accept; } } … … … term default-action { then { syslog; discard; } } } }
If the management interface is a routed interface, it must be configured with both an ingress and egress ACL. The ingress ACL should block any transit traffic, while the egress ACL should block any traffic that was not originated by the managed network device.
If the managed network element is a layer 3 device, review the configuration to verify the management interface is configured as passive for the IGP instance for the managed network. With JUNOS, routing protocols are enabled on the interfaces by specifying the interface under the routing protocol hierarchy. The following configuration would be an example where OSPF is only enabled on all interfaces except the management interface: interfaces { fe-0/0/0 { description “link to our Private Net” unit 0 { family inet { address 172.20.4.2/24; } } } fe-0/0/1 { description “link to our Service Net” unit 0 { family inet { address 172.20.5.2/24; } } } fe-0/0/2 { description “link to our Management LAN” unit 0 { family inet { filter { input OOBM-ingress-filter; output OOBM-egress-filter; } address 10.1.1.22/24; } } } } protocols { ospf { area 0.0.0.0 { interface fe-0/0/0.0; interface fe-0/0/1.0; } } }
Configure the management interface as passive for the IGP instance configured for the managed network. Depending on the platform and routing protocol, this may simply require that the interface or its IP address is not included in the IGP configuration.
The gateway router of the managed network must be configured with an ACL or filter on the egress interface to block all outbound management traffic. Review router configuration to verify that any traffic destined to the management network is blocked. The configuration example below is blocking all traffic with a destination address from the 10/8 prefix which is being used as the address block for the management network. interfaces { fe-0/0/0 { description “link to our Private Net” unit 0 { family inet { address 192.168.1.1/24; } } } t3-3/0/3 { description “link to NIPRNet” unit 0 { family inet { filter { input OOBM-ingress-filter; output OOBM-egress-filter; } address 188.1.20.3/24; } } } firewall { filter OOBM-ingress-filter { term block-mgmt { from { destination-address { 10.0.0.0/8; } } then { accept; } } … … … term default-action { then { syslog; discard; } } } }
Configure the gateway router of the managed network with an ACL or filter on the egress interface to block all outbound management traffic.
Review the router configuration and verify that an inbound ACL has been configured for the management network sub-interface as illustrated in the following example configuration: interfaces fe-1/1/1 { vlan-tagging; unit 10 { family inet { filter { input ingress-mgmt-vlan-filter; } address 10.1.1.1/24; } } } firewall { filter ingress-mgmt-vlan-filter { term …
If a router is used to provide inter-VLAN routing, configure an inbound ACL for the management network sub-interface for the trunk link to block non-management traffic.
Verify that all traffic from the managed network to the management network and vice-versa is secured via IPSec encapsulation. In the configuration examples, 10.2.2.0/24 is the management network at the NOC and 192.168.1.0/24 is address space used at the network being managed (i.e., the enclave). Example from a show services command with Juniper M or T series router with Adaptive Services PIC using next-hop style is as follows: service-set vpn-to-NOC { next-hop-service { inside-service-interface sp-0/0/0.1; outside-service-interface sp-0/0/0.2; } ipsec-vpn-options { local-gateway 19.16.1.1; } ipsec-vpn-rules site-to-NOC; } ipsec-vpn { rule site-to-NOC { term mgmt-traffic { } destination-address { 10.2.2.0/24; } } then remote-gateway 19.16.2.1; dynamic { ike-policy main_mode_ike_policy; ipsec-policy dynamic_ipsec_policy; } } } match-direction input; } ipsec { proposal esp_sha1_ipsec_prop { protocol esp; authentication-algorithm hmac-sha1-96; encryption-algorithm 3des-cbc; } policy dynamic_ipsec_policy { perfect-forward-secrecy { keys group2; } proposals esp_sha1_ipsec_prop; } } ike { proposal psk_sha1_3des_ike_prop { authentication-method pre-shared-keys; authentication-algorithm sha1; encryption-algorithm 3des-cbc; } policy main_mode_ike_policy { mode main; proposals psk_sha1_3des_ike_prop; pre-shared-key ascii-text “$7#$AAtBRmNOjH”; ##SECRET-DATA } } } Note: Juniper recommends implementing all Layer 3 services with the next-hop-style service set as opposed to the interface-style. When you configure next-hop-style service sets, you associate them with specific inside and outside logical interfaces. These logical interfaces are units you configure on an AS PIC’s sp- interface as illustrated below: interfaces { sp-0/0/0 { unit 0 { family inet; } unit 1 { description "IPSec Tunnel Inside Service Interface"; family inet; service-domain inside; } unit 2 { description "IPSec Tunnel Outside Service Interface"; family inet; service-domain outside; } } … … } The router must be configured to match the traffic that is to be secured in the outbound direction. For next-hop service sets, this is the input direction as configured via match-direction input command as shown above under the services ipsec-vpn hierarchy. You configure the router to route traffic to the inside or outside interface as shown in the following example: routing-options { static { route 10.2.2.0/24 next-hop sp-0/0/0.1; } }
Where IPSec technology is deployed to connect the managed network to the NOC, it is imperative that the traffic entering the tunnels is restricted to only the authorized management packets based on destination address.
Review the configuration of the MLS or router to determine if the management traffic is classified and marked to a favorable PHB at the distribution layer. According to the DISN approved QoS classifications, control plane and management plane traffic should use DSCP 48 (Network-Control PHB). In the example configurations below, an infrastructure router within the managed network’s distribution layer will classify and mark at ingress all traffic destined to management network with DSCP 48. firewall { family inet { filter set-FC-to-network-control { term match-management-network-prefix { from { destination-address { 10.10.10.0/24; } } then { forwarding-class network-control; accept; } } term accept-all { then accept; } } } } interfaces { fe-0/0/2 { description “link to LAN1” unit 0 { family inet { filter { input set-FC-to-network-control; } address 192.168.1.1/24; } } } fe-0/0/2 { description “link to LAN2” unit 0 { family inet { filter { input set-FC-to-network-control; } address 192.168.2.1/24; } } } ge-0/0/1 { description “link to core” unit 0 { family inet { address 192.168.2.1/24; } } } } By default, rewrite rules are not applied to interfaces. Without rewriting the DSCP value in the packet, the packet will be transmitted with the original value prior to classifying by the local router. To apply a rewrite rule, you can either use the default rules or design new rules. In either case, you must apply the rules to the outgoing interface under the class-of-service hierarchy as shown in the following configuration: class-of-service { interfaces { ge-0/0/1 { unit 0 { rewrite-rules { dscp default; } } } } }
When management traffic must traverse several nodes to reach the management network, classify and mark management traffic at the nearest upstream MLS or router.
When management traffic must traverse several nodes to reach the management network, ensure that all core routers within the managed network have been configured to provide preferred treatment for management traffic. This will ensure that management traffic receives guaranteed bandwidth at each forwarding device along the path to the management network. Verify that a service policy is bound to all core or internal router interfaces. The service policy should be configured to place management traffic in the appropriate forwarding class. The classes must be configured to receive the required service.
When management traffic must traverse several nodes to reach the management network, ensure that all core routers within the managed network have been configured to provide preferred treatment for management traffic.
Review the firewall protecting the server farm to validate an ACL with a deny-by-default security posture has been implemented that secures the servers located on the VLAN. If the filter is not defined on the firewall and the architecture contains a layer 3 switch between the firewall and the server, then review the ACL configured for the VLAN on the L3 switch.
Configure an ACL to protect the server VLAN interface. The ACL must be in a deny-by-default security posture.
Review the device configuration to ensure filters are in place to restrict the IP addresses explicitly or implicitly. Verify that ingress and egress ACLs for IPv6 have been defined to deny 6-to-4 tunnel addresses and log all violations. source type: 2002::/16 If filters are not in place to deny 6-to-4 tunnel addresses, this is a finding.
Configure the device using filters to restrict IP addresses that contain any 6-to-4 addresses.
Base Procedure: Review the premise router configuration to ensure filters are in place to restrict the IP addresses explicitly, or inexplicitly. Verify that ingress and egress ACLs for IPv6 have been defined to deny the 6bone address space and log all violations.
The administrator will configure the router ACLs to restrict IP addresses that contain any 6bone addresses.
Review the network device configuration and determine if filters are bound to the applicable interfaces to drop all inbound and outbound IPv4 or IPv6 packets with any of the following tunneling protocols: Source Demand Routing Protocol (SDRP) - protocol field value of 0x2A (42) AX.25 - protocol field value of 0x5D (93) IP-within-IP Encapsulation Protocol - protocol field value of 0x5E (94) EtherIP protocol - protocol field value of 0x61 (97) Encapsulation Header Protocol - protocol field value of 0x62 (98) PPTP - TCP or UDP destination port (0x06BB) 1723 The following example will block any IPv6 inbound packet using any of the outdated tunneling protocols as previously discussed: interfaces fe-0/0/1 { unit 0 { family inet6 { filter { input IPV6-INGRESS-FILTER; } address 2001:1:0:146::4/64; } } } firewall { filter IPV6-INGRESS-FILTER { term DROP- SDRP { from { protocol 42; } then { syslog; discard; } } term DROP- AX25 { from { protocol 93; } then { syslog; discard; } } term DROP- IPinIP { from { protocol 94; } then { syslog; discard; } } term DROP- EtherIP { from { protocol 97; } then { syslog; discard; } } term DROP- EHP { from { protocol 98; } then { syslog; discard; } } term DROP--PPTP { from { protocol [tcp udp]; destination-port 1723; } then { syslog; discard; } } … … term default-action { then { syslog; discard; } } } }
Configure the network device to drop all inbound and outbound IPv4 or IPv6 packets with any of the following tunneling protocols: Source Demand Routing Protocol (SDRP) - protocol field value of 0x2A (42) AX.25 - protocol field value of 0x5D (93) IP-within-IP Encapsulation Protocol - protocol field value of 0x5E (94) EtherIP protocol - protocol field value of 0x61 (97) Encapsulation Header Protocol - protocol field value of 0x62 (98) PPTP - TCP or UDP destination port (0x06BB) 1723
These filtering actions enforce proper tunnel endpoint addresses at the border of the tunnel entry and exit points. Filtering is necessary because implementations may not enforce tunnel addresses in all cases. Filtering is also necessary because GRE tunneling implementations are not required by standards to check or enforce tunnel endpoint addresses. Endpoint Verification at the Exit point (I) - Allow inbound IPv4 packets with a protocol value of 0x04 (4) that have both source and destination addresses of a deliberately configured IPv4-in-IPv4 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv4-in-IPv4 tunnel. Endpoint Verification at the Exit network (II) - Allow inbound IPv4 packets with a protocol value of 0x29 (41) that have both source and destination addresses of a deliberately configured IPv6-in-IPv4 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv6-in-IPv4 tunnel. Endpoint Verification at the Exit network (III) - Allow inbound IPv6 packets with a protocol value of 0x04 (4) that have both source and destination addresses of a deliberately configured IPv4-in-IPv6 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv4-in-IPv6 tunnel. Endpoint Verification at the Exit network (IV) - Allow inbound IPv6 packets with a protocol value of 0x29 (41) that have both source and destination addresses of a deliberately configured IPv6-in-IPv6 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv6-in-IPv6 tunnel. Endpoint Verification at the Exit network (v) - Allow inbound IPv4 and IPv6 packets with a protocol value of 0x2F (47) that have both source and destination addresses of a deliberately configured GRE tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured GRE tunnel. Network configuration - Report bad inbound tunnel packets as a Security Event. Inbound packets that fail the filtering of the actions at the exit point should trigger a security alert since the entry point network filtering should catch all legitimate mistakes. These occurrences are likely the result of network attacks. These filtering actions enforce proper tunnel endpoint addresses at the border of the entry point network. By filtering the tunneled data for validity, the entry point network can detect configuration errors and users conducting unauthorized tunneling operations. By filtering the addresses of tunneled data for validity, the entry point network can detect configuration errors and unauthorized tunneling operations by bad users. Endpoint Verification at the Entry network, (I) Allow outbound IPv4 packets with a protocol value of 0x04 (4) that have both source and destination addresses of a deliberately configured IPv4-in-IPv4 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv4-in-IPv4 tunnel. Endpoint Verification at the Entry network, (II) Allow outbound IPv4 packets with a protocol value of 0x29 (41) that have both source and destination addresses of a deliberately configured IPv6-in-IPv4 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv6-in-IPv4 tunnel. Endpoint Verification at the Entry network, (III) Allow outbound IPv6 packets with a protocol value of 0x04 (4) that have both source and destination addresses of a deliberately configured IPv4-in-IPv6 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv4-in-IPv6 tunnel. Endpoint Verification at the Entry network, (IV) Description: Allow outbound IPv6 packets with a protocol value of 0x29 (41) that have both source and destination addresses of a deliberately configured IPv6-in-IPv6 tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured IPv6-in-IPv6 tunnel. Endpoint Verification at the Entry network, (v) Allow outbound IPv4 and IPv6 packets with a protocol value of 0x2F (47) that have both source and destination addresses of a deliberately configured GRE tunnel. This refers to the IP addresses of the outer IP layer. Drop any such packet that does not match both source and destination addresses of a deliberately configured GRE tunnel. Network configuration - Report bad outbound tunnel packets as Network Management errors. Outbound packets that fail the filtering of actions at the entry point should trigger a network management error since these are likely configuration or routing errors. This may also detect unauthorized tunneling by users. Review the tunnel end-points and verify a filter is present. The filter for the tunnel entry-point must be defined to permit expected traffic that enters the tunnel. All other traffic must be denied. This filter must contain a permit statement that explicitly permits the tunnel type (protocol) and the source and destination address. The filter for the tunnel exit-point must be defined to permit the expect traffic that exits the tunnel. All other traffic must be denied. This filter must contain a permit statement that explicitly permits the tunnel type (protocol) and the source and destination address.
Explicitly permit trusted network traffic and establish a deny by default policy at the tunnel entry and exit points.
This vulnerability description and required safeguard is not applicable to MPLS auto tunnels used in traffic engineering. The following three tunnel types (4-in-4, 4-in-6, and 6-in-6) do not have requirements built into the standards. Tunnel exit points must be filtered to ensure these protocols have a valid destination address. If a destination address is not defined for these protocols, than drop the packets via the deny-by-default tunnel policy. 4-in-4 - protocol number: 0x04 (4) 4-in-6 - protocol number: 0x04 (4) 6-in-6 - protocol number: 0x29 (41) GRE - protocol number: 0x2F (47) ESP - protocol (50) AH - protocol (51) The language in the actions above such as “Drop any ... packet” should be modified as appropriate to account for the packets of any legitimate and deliberately chosen mechanisms. However these deliberate tunnels that do not comply with this policy need to be documented in the SSAA detailing purpose and verification data.
Review identified protocols allowed to enter the enclave. If the tunnels do not have explicit IP addresses than drop the tunnel by the deny-by-default tunnel policy, else document the auto configured tunnel in the SSAA describing the activity and perform periodic reviews for the tunnel need.
NOTE: This requirement applies to any tunnel that is not an IPSec tunnel between two sites, part of the same enclave, and is under control of the same DAA. This guidance describes three ways in which the inner IP layer filtering task may be accomplished, depending on the advances in firewall technology. Refer to NSA firewall design considerations for IPv6 section 5.2 for a description of desired firewall filtering capabilities for tunneled traffic. This reference document defines primary filtering as a firewall that can filter the inner source and destination IP addresses of a tunneled packet in a manner similar to filtering source and destination ports of a TCP or UDP packet. Secondary filtering capability is defined to be the ability to fully filter the entire inner IP layer to the same degree an untunneled packet is filtered. The Primary guidance below assumes an advanced firewall with the capability to perform both the primary and secondary filtering functions as explained above. Alternative 1 below assumes that the firewall can perform only the primary filtering function. Alternative 2 assumes the firewall cannot do either primary or secondary filtering as may be the case with some existing firewall products. For Alternatives 1 and 2, the decapsulation point may be an interior router with the filtering of the inner IP layer performed by a secondary firewall. Additional actions are provided to protect the decapsulating node itself from being attacked, since this node is in front of the protective filtering. Primary (FW can do both primary and secondary filtering) ACTION #1 Enforce Proper Tunnel Access (per IP address): At the tunnel exit point network, drop any emerging tunnel packets (of either IP version) whose inner IP layer source address is not within the range or set of ranges of expected values from the tunnel entry point network. The expected addresses are those that are configured into the tunnel via routes to a tunnel by name, by address, or by interface (NET-TUNL-012). Regardless of how traffic is routed into a tunnel entry point, the network should ensure that the resulting tunnel packets have a specific tunnel entry point source address (i.e. outer IP layer) that can be used for reliable filtering. Note: The primary filtering capability defined in the justification section above can be used to accomplish this task in conjunction with the tunnel endpoint verification of NET-TUNL-004. Primary (FW can do both primary and secondary filtering) ACTION #2 Apply Baseline Filtering as a Minimum: All packets that pass the filtering of action #1 above must be fully filtered per the baseline guidance defined ( Apply all NET-IPV6-xxx filtering to the inner IP layer via the firewall’s secondary filtering capability, and NET-TUNL-001. Notes: a) Includes (drop all Neighbor Discovery packets that emerge from tunnels). b) Includes (drop all packets containing a Link-local source or destination address that emerge from tunnels). c) Includes “Filtering Integrity for Fragmented Packets” applied to the inner IP layer. d) Includes blocking IP-in-IP tunneling. This applies to the next tunnel layer. Primary (FW can do both primary and secondary filtering) ACTION #3 Restrict Tunnel contents to the greatest extent possible: Description: Network administrators should apply additional filtering to restrict the tunnel contents to only the intended traffic types and destinations. The details of this filtering must be determined on a case-by-case basis. Note1: Tunnels are employed for a specific purpose and type of traffic, therefore it is likely that the tunnel traffic can be restricted more stringently than normal (un-tunneled) traffic. Note 2: The source addresses of the decapsulated packets can be used reliably to distinguish tunnels if there are more than one. This is true because action #1 above has already verified proper inner IP source address for each tunnel. ------------------------------------------------------------------------------------------------------------------------------- Alternative 1 - (FW can do only primary filtering) - Action #4 - Enforce Proper Tunnel Access (per IP address) Description: (Same as Primary Guidance action #1 above). At the tunnel exit point network, drop any emerging tunnel packets (of either IP version) whose inner IP layer source address is not within the range or set of ranges of expected values from the tunnel entry point network. The expected addresses are those that are configured into the tunnel via routing action (NET-TUNL-012). Note: The primary filtering capability defined in the justification section above can be used to accomplish this task in conjunction with the tunnel endpoint verification of NET-TUNL-004. Alternative 1 - (FW can do only primary filtering) - Action #5 - Apply Baseline Filtering as a minimum: Description: All packets that pass the filtering of action #1 above must be fully filtered per the baseline guidance. Apply all filtering to the inner IP layer. Since the border FW does not have the ability to filter the inner IP layer beyond the IP addresses, a second level of filtering (another firewall, internal) is needed to achieve this task. The border FW guarantees the proper tunnel decapsulation points which are likely located on an internal router or the secondary FW. In either case, it must not be possible for packets to be decapsulated and avoid filtering. For example, a decapsulating router MUST be configured to route all tunnel contents toward the internal FW and not out some other interface. All packets that pass the filtering of action #1 above must be fully filtered per the baseline guidance defined by the 2nd Firewall ( Apply all NET-IPV6-xxx filtering to the inner IP layer via the 2nd firewall, and NET-TUNL-001. Notes: a) Includes (drop all Neighbor Discovery packets that emerge from tunnels). b) Includes (drop all packets containing a Link-local source or destination address that emerge from tunnels). c) Includes “Filtering Integrity for Fragmented Packets” applied to the inner IP layer. d) Includes blocking IP-in-IP tunneling. This applies to the next tunnel layer. Alternative 1 - (FW can do only primary filtering) - ACTION #6 - Restrict Tunnel contents to the greatest extent possible: Apply action 3 controls. Alternative 1 - (FW can do only primary filtering) - ACTION #7 - Protect the Decapsulating node: Description: Drop any tunneled packets whose inner IP destination address belongs to an interface on the decapsulating node. The primary filtering capability defined in the justification section above can be used to accomplish this task. Note: Since the baseline IPv6 filtering is being performed by a secondary firewall (action #5 above), any packets allowed out of the tunnel directly to the decapsulating node would bypass this filtering and must not be allowed. ------------------------------------------------------------------------------------------------------------------------------- Alternative 2 - (FW can do neither primary nor secondary filtering) - Action #8 - Enforce Proper Tunnel Access (per IP address): Description: In this case, the border FW can only filter the outer IP layer and cannot see the internal IP addresses. Therefore, the decapsulating node or secondary firewall must filter the decapsulated packets to drop any emerging tunnel packets (of either IP version) whose inner IP layer source address is not within the range or set of ranges of expected values from the tunnel entry point network. Also, If the tunnel is GRE the border FW can only filter the out IP layer holding the GRE header and can not see the internal IP address. Note that multiple tunnels will likely require separate decapsulation points (separate routers) in order to verify that the proper ranges are emerging from each tunnel. It is not correct to filter all decapsulated traffic from several tunnels at the same router interface since there would be no way to detect traffic from tunnel A containing inner IP layer source addresses intended for tunnel B (i.e. users from one remote network using the privileges intended for another network). Alternative 2 - (FW can do neither primary nor secondary filtering) - Action #9 - Apply Baseline Filtering as a minimum: All packets that pass the filtering of action #8 above must be fully filtered per the baseline guidance defined by the 2nd Firewall ( Apply all NET-IPV6-xxx filtering to the inner IP layer via the 2nd firewall, and NET-TUNL-001. As with Alternative 1, the secondary firewall must achieve this task. The border firewall guarantees the proper tunnel decapsulation points which are likely located on an internal router or secondary firewall. It must not be possible for packets to be decapsulated and avoid filtering. For example, a decapsulating router MUST be configured to route all tunnel contents toward the secondary firewall and not out some other interface. Notes: a) Includes (drop all Neighbor Discovery packets that emerge from tunnels). b) Includes (drop all packets containing a Link-local source or destination address that emerge from tunnels). c) Includes “Filtering Integrity for Fragmented Packets” applied to the inner IP layer. d) Includes blocking IP-in-IP tunneling. This applies to the next tunnel layer. Alternative 2 - (FW can do neither primary nor secondary filtering) - Action #10 - Restrict Tunnel contents to the greatest extent possible: Apply action 3 controls. Alternative 2 - (FW can do neither primary nor secondary filtering) - Action #11 - Protect the Decapsulating node: Description: Drop any tunneled packets whose inner IP destination address belongs to an interface on the decapsulating node. The decapsulating node must be able to perform this filtering itself since the border FW cannot see the inner IP addresses (an assumption for Alternative 2). Note: Since the baseline IPv6 filtering is being performed by a secondary firewall (action #9 above), any packets allowed out of the tunnel directly to the decapsulating node would likely bypass this filtering and must not be allowed. Alternative 2 - (FW can do neither primary nor secondary filtering) - Action #12 - Non-IP GRE Payloads: Per action 8, if payloads other than IP are being delivered by the GRE tunnels, they must be guaranteed proper filtering. Administrators must be sure that all tunnel contents are filtered. How this is achieved must be handled on a case-by-case basis depending on the particular GRE payload type and filtering/routing capabilities of the decapsulating node. If possible avoid this case by using IP-in-IP tunneling instead.
To ensure the enclave can be protected from tunnels, the end-point must be decapsulated to inspect the Inner IP packet or the firewall must have the capability to perform primary and secondary filtering and content inspection. Tracing these tunnel end-points and ensuring filters that protect the enclave may be necessary. Apply deny by default. Apply destination addresses to tunnels to extended tunnels.. Apply PPS policies to protocols at all decapsulation end-points. Apply content inspection.
Review procedures defined in NET-TUNL-002. After determining the final decapsulation end-points, ensure the tunnel implements protocol inspection, filtering and mitigation as defined in the PPS VA reports.
Ensure the tunnel implements protocol inspection, filtering and mitigation as defined in the PPS VA reports.
Follow the procedures defined in NET-TUNL-002 to determine all tunnel entry and exit points, then ensure each end-point is in a deny by default posture inbound and outbound.
Apply a deny by default posture on every tunnel end-point.
There are numerous rate limiters built into both the Packet Forwarding Engine and the RE to manage exception traffic to and from the RE. Traffic destined to the system is prioritized upon receipt based on protocol in the PFE (forwarding plane). Legitimate traffic bound for the RE is throttled and queued based on protocol priority and appropriately scheduled for transmission across the PFE to RE interface. Juniper is unique. For the most part, ICMP processing is processed by the PFE. This is especially helpful for packets with a next-hop of discard. The forwarding board generates the ICMP unreachable, not the routing engine. These mechanisms aren't configurable and have always been part of the Juniper M/T series architecture. In addition, Juniper handles fragmentation in the data plane, not the RE. Step 1: Verify that an inbound filter has been applied to the loopback interface to restrict traffic destined to the router. The interface configuration should look similar to the following: interfaces { lo0 { unit 0 { family inet { no-redirects; filter { input router-protect-filter; } address 10.10.2.1/32 } } } } Step 2: Verify the filter bound to the router’s loopback address restricts all control plane and management plane traffic. The filter configuration should look similar to the following: firewall { filter router-protect-filter { /* police management and ICMP traffic */ policer mgmt-128k { if-exceeding { bandwidth-limit 128k; burst-size-limit 2k; } then discard; } policer mgmt-64k { if-exceeding { bandwidth-limit 64k; burst-size-limit 1k; } then discard; } policer icmp-64k { if-exceeding { bandwidth-limit 64k; burst-size-limit 1k; } then discard; } /* drop framgmented ICMP messages */ term fragmented-icmp { from { protocol icmp; is-fragment; } then { syslog; discard; } } /* allow specific management plane traffic */ term ssh-access { from { source-address { 192.168.1.0/24; } protocol tcp; destination-port ssh; } then { policer mgmt-64k; accept; } } term snmp-access { from { source-address { 192.168.1.22/32; 192.168.1.24/32; } protocol udp; destination-port snmp; } then { policer mgmt-128k; accept; } } term tacacs-access { from { source-address { 192.168.1.101/32; } protocol tcp; port tacacs-ds; } then { policer mgmt-64k; accept; } } term ntp-access { from { source-address { 192.168.1.70/32; 192.168.1.77/32; } protocol udp; port ntp; } then { policer mgmt-64k; accept; } } term allow-ICMP { from { source-address { 192.168.1.0/24; } protocol icmp; } then { policer icmp-64k; accept; } } /* allow specific control plane traffic */ term guard-bgp { from { source-address { 199.21.32.11/32; 199.21.32.12/32; } protocol tcp; port bgp; } then { syslog; accept; } } term guard-ospf { from { source-address { 199.21.32.11/32; 199.21.32.12/32; } protocol ospf; } then { syslog; accept; } } … … … term default-action { then { syslog; discard; } } } }
Implement control plane protection by classifying traffic types based on importance levels and configure filters to restrict and rate limit the traffic punted to the route processor as according to each class.
The following examples will establish a multicast boundary on the interface to ensure that Local-scope IPv4 traffic or Site-local scope IPv6 traffic is not allowed into or out of the administratively scoped multicast region. You can configure multicast scoping with a scope statement or with a scope-policy statement as shown in the examples. Example using the scope statement routing-options { multicast { scope ipv4-administrative-scope { interface [fe-1/1/1 fe-1/1/2]; prefix 239.255.0.0/16; } scope ipv6-administrative-scope { interface [fe-1/1/1 fe-1/1/2]; prefix FF05::/16; } } } Example using the scope-policy statement routing-options { multicast { scope-policy block-admin-scope; } } . . . policy-options { policy-statement block-admin-scope { term reject-i { from { route-filter 239.255.0.0/16 orlonger; route-filter FF08::/16 orlonger; } then reject; } } }
Local Scope range is 239.255.0.0/16 and can expand into the reserved ranges 239.254.0.0/16 and 239.253.0.0/16 if 239.255.0.0/16 is exhausted. The scope of IPv6 multicast packets are determined by the scope value where 4 is Admin-local and 5 is Site-local. Configure the necessary boundary to ensure packets addressed to these administratively scoped multicast addresses do not cross the applicable administrative boundaries.
Review the router or switch configurations and verify that two or more NTP servers have been defined similar to the following example: [edit system] ntp { boot-server 129.237.32.2; server 129.237.32.2; server 142.181.31.6; } Note: The boot-server statement identifies the server from which the initial time of day and date is obtained when the router boots. The server statements identify the NTP servers used for periodic time synchronization.
Configure the device to use two separate NTP servers.
Verify that the software implemented on the router has been updated to a release that mitigates the risk of a DNS cache poisoning attack. The following JUNOS releases are vulnerable: JUNOS 5.0 JUNOS 5.1 JUNOS 5.2 JUNOS 5.3 JUNOS 5.4 JUNOS 5.5 JUNOS 5.6 JUNOS 5.7 JUNOS 6.1 JUNOS 6.2 JUNOS 6.3 JUNOS 6.4 JUNOS 7.3 JUNOS 8.0 JUNOS 8.4 JUNOS 8.5 JUNOS 8.5R4 was released 18 August 2008. Hence, JUNOS 8.5R4 and later releases are not vulonerable
Update the OS to the release that mitigates the risk of a DNS cache poisoning attack
Review the device configuration to determine if the call home service or feature is disabled on the device. If the call home service is enabled on the device, this is a finding. Note: This feature can be enabled if the communication is only to a server residing in the local area network or enclave.
Configure the network device to disable the call home service or feature. Note: This feature can be enabled if the communication is only to a server residing in the local area network or enclave.
If IPv4 or IPv6 multicast routing is enabled, ensure that all interfaces enabled for PIM is documented in the network’s multicast topology diagram. Review the router or multi-layer switch configuration to determine if multicast routing is enabled and what interfaces are enabled for PIM. Review the interfaces that have been defined under the protocols PIM hierarchy and verify that they all need to support multicast routing. When using the explicit interface declarations, the configuration would look similar to the following: protocols { pim { interface so-7/0/1.0 { mode sparse; version 2; } interfaces ge-0/3/0.0 { mode sparse; version 2; } … … … } If the interface all statement is used, verify that interfaces not supporting multicast routing have PIM disabled using the disable keyword. The configuration would look similar to the following: protocols { pim { interface all { mode sparse; version 2; } interface fx0.0 { disable; } interfaces fe-1/1/1 { disable; } interfaces fe-1/1/2 { disable; } } }
If IPv4 or IPv6 multicast routing is enabled, ensure that all interfaces enabled for PIM is documented in the network’s multicast topology diagram. Enable PIM only on the applicable interfaces according to the multicast topology diagram.
Review the router or multi-layer switch to determine if either IPv4 or IPv6 multicast routing is enabled. If either is enabled, verify that all interfaces enabled for PIM has a neighbor filter to only accept PIM control plane traffic from the documented routers according to the multicast topology diagram. JUNOS does not have a PIM neighbor filter; Hence, a firewall filter will have to be used similar to the example shown below. Step 1: Verify that an input filter is configured that will specify the allowable PIM neighbors similar to the following example. firewall { filter input-filter { term pim-neighbors { from { source-address { 192.0.2.1/32; 192.0.2.3/32; } destination-address { 224.0.0.13/32; } protocol pim; } then accept; } term … Step 2: Verify that an input filter is applied to all PIM enabled interfaces. The configuration should look similar to the following: interfaces fe-1/1/1 { unit 0 { family inet { filter { input input-filter; } address 192.0.2.2/32; } } } To determine which interfaces are enabled for PIM, review the interface section within the protocols pim hierarchy that will look similar to the following example: protocols { … pim { interface all { mode sparse; } } }
If IPv4 or IPv6 multicast routing is enabled, ensure that all interfaces enabled for PIM has a neighbor filter to only accept PIM control plane traffic from the documented routers according to the multicast topology diagram.
An administratively scoped IP multicast region is defined to be a topological region in which there are one or more boundary routers with common boundary definitions. Such a router is said to be a boundary for multicast scoped addresses in the range defined in its configuration. In order to support administratively scoped multicast, a multicast boundary router will drop multicast traffic matching an interface's boundary definition in either direction. The IPv4 administrative scoped multicast address space is 239/8 which is divided into two scope levels: the Local Scope and Organization Local Scope. The Local Scope range is 239.255.0.0/16 and can expand into the reserved ranges 239.254.0.0/16 and 239.253.0.0/16 if 239.255.0.0/16 is exhausted. The IPv4 Organization Local Scope is 239.192.0.0/14 is the space from which an organization should allocate sub-ranges when defining scopes for private use. This scope can be expanded to 239.128.0.0/10, 239.64.0.0/10, and 239.0.0.0/10 if necessary. The scope of IPv6 multicast packets are determined by the scope value where 4 (ffx4::/16) is Admin-local, 5 (ffx5::/16) is Site-local, and 8 (ffx8::/16) is Organization-local. The administratively scoped IPv4 multicast address space is 239.0.0.0 through 239.255.255.255. Packets addressed to administratively scoped multicast addresses must not cross administrative boundaries. You can configure multicast scoping with a scope statement or with a scope-policy statement as shown in the following examples: The following is an example using the scope statement to establish administrative scope boundary for both IPv4 and IPv6 multicast traffic: routing-options { multicast { scope ipv4-administrative-scope { interface [fe-1/1/1 fe-1/1/2]; prefix 239.0.0.0/8; } scope ipv6-administrative-scope { interface [fe-1/1/1 fe-1/1/2]; prefix FF08::/16; } } } Example using the scope-policy statement routing-options { multicast { scope-policy block-admin-scope; } } … … … policy-options { policy-statement block-admin-scope { term reject-i { from { route-filter 239.0.0.0/8 orlonger; route-filter FF08::/16 orlonger; } then reject; } } }
Local Scope range is 239.255.0.0/16 and can expand into the reserved ranges 239.254.0.0/16 and 239.253.0.0/16 if 239.255.0.0/16 is exhausted. The IPv4 Organization Local Scope is 239.192.0.0/14 is defined to be and is the space from which an organization should allocate sub- ranges when defining scopes for private use. The scope of IPv6 multicast packets are determined by the scope value where 4 is Admin-local, 5 is Site-local, and 8 is Organization-local. Configure the necessary boundary to ensure packets addressed to these administratively scoped multicast addresses do not cross the applicable administrative boundaries.
Review the perimeter router or multi-layer switch configuration and determine if filters are bound to the applicable interfaces to drop all inbound and outbound IPv6 packets containing a Hop-by-Hop header with option type values of 0x04 (Tunnel Encapsulation Limit), 0xC9 (Home Address Destination), or 0xC3 (NSAP Address). The following example will block any inbound IPv6 packet containing a Hop-by-Hop header: interfaces fe-0/0/1 { unit 0 { family inet6 { filter { input IPV6-INGRESS-FILTER; } address 2001:1:0:146::4/64; } } } firewall { filter IPV6-INGRESS-FILTER { term DROP- HOP-BY-HOP { from { next-header { hop-by-hop; } } then { syslog; discard; } } … … term default-action { then { syslog; discard; } } } } Note: Currently JUNOS has no method to filter option type within either Hop-by-Hop or Destination Option header. Hence, all packets with the Hop-by-Hop header must be dropped.
Configure the perimeter router or multi-layer switch to drop all inbound and outbound IPv6 packets containing a Hop-by-Hop header with option type values of 0x04 (Tunnel Encapsulation Limit), 0xC9 (Home Address Destination), or 0xC3 (NSAP Address).
Review the router or multi-layer switch configuration to determine if the default maximum hop limit has been configured. If it has been configured, then it must be set to at least 32. protocols { … … router-advertisement { interface [fe-1/1/1 fe-1/1/2] { current-hop-limit 128; } … } } Note: The JUNOS default is 64. Hence, if the hop limit is not configured, the router will be in compliance with the requirement.
Configure maximum hop limit to at least 32.
Review the perimeter router or multi-layer switch configuration and determine if filters are bound to the applicable interfaces to drop all inbound and outbound IPv6 packets containing a Destination Option header with option type values of 0x05 (Router Alert) or 0xC2 (Jumbo Payload). The following example will block any inbound IPv6 packet containing a Destination Option header: interfaces fe-0/0/1 { unit 0 { family inet6 { filter { input IPV6-INGRESS-FILTER; } address 2001:1:0:146::4/64; } } } … firewall { filter IPV6-INGRESS-FILTER { term DROP-DEST-OPT { from { next-header { dstops; } } then { syslog; discard; } } … … term default-action { then { syslog; discard; } } } } Note: Currently JUNOS has no method to filter option type within either Hop-by-Hop or Destionation Option header. Hence, all packets with the Destionation Option header must be dropped.
Configure the perimeter router or multi-layer switch to drop all inbound and outbound IPv6 packets containing a Destination Option header with option type values of 0x05 (Router Alert) or 0xC2 (Jumbo Payload).
Review the perimeter router or multi-layer switch configuration and determine if filters are bound to the applicable interfaces to drop all inbound and outbound IPv6 packets containing an option type values of 0x8A (Endpoint Identification) regardless of whether it appears in a Hop-by-Hop or Destination Option header. The following example will block any inbound IPv6 packet containing a Hop-by-Hop or Destination Option header: interfaces fe-0/0/1 { unit 0 { family inet6 { filter { input IPV6-INGRESS-FILTER; } address 2001:1:0:146::4/64; } } } firewall { filter IPV6-INGRESS-FILTER { term DROP- HOP-BY-HOP { from { next-header { hop-by-hop; } } then { syslog; discard; } } term DROP-DEST-OPT { from { next-header { dstops; } } then { syslog; discard; } } … … term default-action { then { syslog; discard; } } } } Note: Currently JUNOS has no method to filter option type within either Hop-by-Hop or Destination Option header. Hence, all packets with a Hop-by-Hop or Destination Option headers must be dropped.
Configure the perimeter router or multi-layer switch to drop all inbound and outbound IPv6 packets containing an option type values of 0x8A (Endpoint Identification) regardless of whether it appears in a Hop-by-Hop or Destination Option header
Review the perimeter router or multi-layer switch configuration and determine if filters are bound to the applicable interfaces to drop all inbound and outbound IPv6 packets containing a Destination Option header with option type value of 0xC3 (NSAP address). The following example will block any inbound IPv6 packet containing a Destination Option header: interfaces fe-0/0/1 { unit 0 { family inet6 { filter { input IPV6-INGRESS-FILTER; } address 2001:1:0:146::4/64; } } } firewall { filter IPV6-INGRESS-FILTER { term DROP-DEST-OPT { from { next-header { dstops; } } then { syslog; discard; } } … … term default-action { then { syslog; discard; } } } } Note: Currently JUNOS has no method to filter option type within either Hop-by-Hop or Destination Option header. Hence, all packets with the Destination Option header must be dropped.
Configure the perimeter router or multi-layer switch to drop all inbound and outbound IPv6 packets containing a Destination Option header with option type value of 0xC3 (NSAP address).
Review the perimeter router or multi-layer switch configuration and determine if filters are bound to the applicable interfaces to drop all inbound and outbound IPv6 packets containing an undefined option type value regardless of whether they appear in a Hop-by-Hop or Destination Option header. Undefined values are 0x02, 0x03, 0x06 through 0x89 inclusive, 0x8B through 0xC1 inclusive, 0xC4 through 0xC8 inclusive, and anything greater than 0xC9. The following example will block any inbound IPv6 packet containing a Hop-by-Hop or Destination Option header: interfaces fe-0/0/1 { unit 0 { family inet6 { filter { input IPV6-INGRESS-FILTER; } address 2001:1:0:146::4/64; } } } firewall { filter IPV6-INGRESS-FILTER { term DROP- HOP-BY-HOP { from { next-header { hop-by-hop; } } then { syslog; discard; } } term DROP-DEST-OPT { from { next-header { dstops; } } then { syslog; discard; } } … … term default-action { then { syslog; discard; } } } } Note: Currently JUNOS has no method to filter option type within either Hop-by-Hop or Destionation Option header. Hence, all packets with a Hop-by-Hop or Destionation Option headers must be dropped.
Configure the perimeter router or multi-layer switch to drop all inbound and outbound IPv6 packets containing an undefined option type value regardless of whether they appear in a Hop-by-Hop or Destination Option header. Undefined values are 0x02, 0x03, 0x06 through 0x89 inclusive, 0x8B through 0xC1 inclusive, 0xC4 through 0xC8 inclusive, and anything greater than 0xC9.
Currently JUNOS does not support 6to4 automatic tunneling so this vulnerability is not applicable
If the router is functioning as a 6to4 router, configure an egress filter (inbound on the internal-facing interface) to drop any outbound IPv4 packets that are tunneling IPv6 packets.
Currently JUNOS does not support 6to4 automatic tunneling so this vulnerability is not applicable
If the router is functioning as a 6to4 router, configure an egress filter (inbound on the internal-facing interface) to drop any outbound IPv6 packets from the internal network with a source address that is not within the 6to4 prefix 2002:V4ADDR::/48 where V4ADDR is the designated IPv4 6to4 address for the enclave.
Currently JUNOS does not support L2TPv3 so this vulnerability is not applicable.
Configure L2TPv3 to use authentication for any peering sessions.
Review the router configuration to determine if authentication is being used for all peers. An authentication key should be defined for each BGP neighbor regardless of the autonomous system the peer belongs as shown in the following example: protocols bgp { group external-peers { type external; neighbor 171.69.232.90 { peer-as 200; authentication-key xxxxx; } neighbor 171.69.232.100 { peer-as 300; authentication-key xxxxx; } } } Note: The authentication-key statement can be applied at the BGP level, at the group level, or at the neighbor level.
Configure the device to authenticate all BGP peers.