Configuration Auditing Cisco Nexus Operating System (NX-OS) with Nessus

Recently, Tenable added audit files for Nessus ProfessionalFeed users allowing them to audit device configurations based on Cisco Nexus Operating System (NX-OS). Cisco NX-OS runs on high-end Nexus switches, MDS storage switches, and Cisco UCS networking. This audit follows most of the recommendations that are included in the Cisco Guide to Securing Cisco NX-OS Software Devices. This blog entry discusses some of the Nessus functionality that was used in creating the audit file.

The Cisco guide covers three major sections: the management plane, the control plane, and the data plane. The audit file itself is a best-effort attempt to cover all the sections included in the guide. Most checks include recommended values, whereas some require user configuration.

Most of the checks for users and passwords, services, management UIs, etc. are contained in the management plane section of the Cisco Guide and the audit file. Below is an example of the Compliance Summary view reporting several high severity issues:

NX summary sm

For those who want to dig right in and audit your Cisco NX-OS devices, below is a walkthrough of the configuration auditing parameters for this platform:

Management Plane

<item>
type : CONFIG_CHECK_NOT
description: "Enforcing Strong Password Selection - 'no password strength- check does not exist'"
info : "Password checking can be disabled using the no password strength-checking command. This command should not be used."
info : "ref. http://www.cisco.com/en/US/prod/collateral/switches/ ps9441/ps9402/guide_c07-665160.html#wp9000042"
item : "^no password strength-check"
</item>

Control Plane

The control plane section of the audit is where checks for protocols like ICMP and services like NTP configuration can be found. The following check determines if an NTP server is configured.

# Please update {NTP_SERVER} with the appropriate value for the local environment
<item>
type : CONFIG_CHECK
description: "NTP - 'ntp server is configured'"
info : "The Network Time Protocol (NTP) synchronizes the time of day among a set of distributed time servers and clients so that you can correlate"
info : "events when you receive system logs and other time-specific events from multiple network devices."
info : "ref. http://www.cisco.com/en/US/prod/collateral/switches/ ps9441/ps9402/guide_c07-665160.html#wp9000428"
info : "NOTE: Update {NTP_SERVER} with the appropriate value for the local environment."
# example item
# item : "^ntp server 1\.1\.1\.1"
Generated by Jive on 2012-12-05-05:00
2
Research:Compliance: Auditing Cisco Nexus Operating System (NX-OS) Compliance with Nessus
item : "^ntp server {NTP_SERVER}"
</item>

In this example, # item : “^ntp server 1\.1\.1\.1” demonstrates how to escape the dots in the IP address so that a value like 121.1.1.x would not give a false result.

Data Plane

The data plane checks primarily verify that various IP options are configured correctly. IP source routes, IP redirects, and some ICMP filters are all items checked in the data plane section. An interesting example of the type of checks for the data plane is the TCP fragment checks like the example below.


<item>
type : CONFIG_CHECK
description: "Filtering IP Fragments - 'deny tcp any any fragments exists'"
info : "Because of the non-intuitive nature of fragment handling, IP fragments are often inadvertently permitted by ACLs. Fragmentation is also"
info : "often used in attempts to evade detection by intrusion- detection systems. For these reasons, IP fragments are often used in attacks and"
info : "should be explicitly filtered at the top of any configured tACLs."
info : "ref. http://www.cisco.com/en/US/prod/collateral/switches/ ps9441/ps9402/guide_c07-665160.html#wp9000533"
item : "deny tcp any any fragments"
</item>
Additional checks like this are also included for UDP, ICMP, and IP fragments.

Logging Best Practices

In addition to the recommendations for each of the plane categories, another section of the audit file verifies several logging functions. Much like the NTP example above, the included checks for things like the local syslog server are built to accommodate local customizations.

Please update {LOGGING_SERVER} with the appropriate value for the local environment.

<item>
type : CONFIG_CHECK
description: "Send Logs to a Central Location - 'logging server is configured'"
info : "After implementing centralized logging, an organization must develop a structured approach to log analysis and incident tracking."
info : "Depending on the needs of the organization, this approach can range from a simple, diligent review of log data to an advanced rule- and"
info : "role-based analysis of multiple factors using correlated data." info : "ref. http://www.cisco.com/en/US/prod/collateral/switches/
ps9441/ps9402/guide_c07-665160.html#wp9000343"
info : "Update {LOGGING_SERVER} with the appropriate value for
the local environment"
# example item
# item : "^logging server 1\.1\.1\.1"
item : "^logging server {LOGGING_SERVER}"
</item>

The logging best practices also include checks to validate that the scheduler service is enabled and customizable checks to validate that scheduled configuration checkpoint backup jobs have been defined.

Conclusion

Tenable audit compliance policies for Cisco NX-OS products can be downloaded by logging into the Tenable Support Portal and selecting the Downloads link. There are 60+ individual audit checks spanning most of the configuration items identified by Cisco in their document.

More from the Tenable Blog