Cisco IOS configuration compliance auditing using Nessus

To use this feature you need to be a Nessus professional feed subscriber. Tebnable provides a  number of audit policy files. They are available for download from support portal. 

You can download CIS benchmark for both IOS devices and ASA firewalls as well as DISA switch and perimeter router audit files.

Setting up a policy is straight forward. It requires that plugin 46689 "Cisco IOS Compliance Checks" is enabled. I generally keep scans separate for sake of report clarity so I enable only this plugin. 

I normally enable SYN & UDP scans on all ports as well. As always with UDP, it makes scans much longer. On top of that I find that Nessus UDP scanner is not as reliable as NMAP. 

Next we configure credentials. We configure user/pass in "SSH Settings" on "Credentials" tab. Nessus supports only SSH for Cisco audits and requires a user with privileges sufficient to get a full output of "show running-config" or "show startup-config" (you can choose which one you want to audit). (Option "Save(show config)" has been deprecated). "Show running-config" requires a user with privilege 15 as only then  it is possible to get full output.



I tired creating "views" (using Cisco role based CLI) to no avail, I also tried lowering privilege level required to execute "sh run" which didn't work either. The problem here is that "show run" invokes a number of other commands (and sub commands) in the background. 


By default "show startup-config" requires privilege 15 too. Here we can work around by lowering privilege requires to execute this command.


To do so at the IOS prompt:


#conf t
#privilege exec level 1 show startup-config


This will allow any priv 1 (and higher) user to execute sh start. This user will then be able to see SNMP strings and passwords (if not encrypted), so the implications should be considered. 

If your security policy disallows SSHing directly with priv 15 accounts you can use 'standard' account and then use "enable" to elevate permissions instead. 



Last step is to import .audit file downloaded from Tenable's site. This is done in "Preferences" Tab. 

 To summarize:
  • download desired audit policy from Tenable
  • disable all plugins
  • enable 46689 "Cisco IOS Compliance Checks" plugin
  • specify credentials
  • import audit policy file
To create a privilege 15 user in Cisco IOS:

#conf t
#username auditor privilege 15 password somepass

2 comments:

  1. I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much. contract compliance audit

    ReplyDelete
  2. It's a shame that an audit has developed such a negative connotation as there are many positives that can come from an audit especially in the IT world. independent auditing services uk

    ReplyDelete