Discovery is a new feature in Open-AudIT Enterprise version 1.3. Discovery will audit Windows and Linux computers, SNMP scan network devices and record active target addresses if no SNMP is active. Discovery runs entirely from the web interface regardless of the Open-AudIT server running on Linux or Windows.
How to use Discovery
Setting Default Attributes
To use Discovery, first a few default attributes should be set.
As an Open-AudIT admin level user, go to Menu -> Admin -> Config.
The single most important attribute to set the the "default_network_address" attribute. This is used for Discovery so that when we send an audit script to a remote machine we can also provide the URL of the Open-AudIT server for the remote machine to send it's data back to. We set this manually because your Open-AudIT server may have multiple network addresses. Rather than try and work out the correct address, we ask you to complete this step manually so there can be no mistakes.
You should also set the following fields:
Once these have been completed you can go to Menu -> Views -> Discovery.
This form will pre-populate with your defaults (which you have just configured), but you can also over ride them with specific attributes for any given Discovery run.
If you provide a subnet in the form 192.168.0.0/24 - note the slash - a network Group will be created if one does not exist.
Fill the form details (it is advised NOT to use the Debug option) and click the Discover button.
You will be redirected to the Logging page. You can refresh this page and see the progress of the Discovery run. Note that the first log may take a short while if the script has to determine if a number of target devices are active on a large subnet range.
Once the initial list of target devices has been obtained you should see details of each target as it is scanned and input into Open-AudIT.
NOTE - The logging is quite verbose so there is now a feature to purge the log file at Menu -> Admin -> Logs -> Purge Log.
You should see logging similar to the below. In the below instance, a Discovery run was performed on 192.168.0.1-5 and the device at 192.168.0.1 was found and SNMP scanned.
As devices are discovered you should see them appear in the relevant Groups.
NOTE - If a Windows or Linux machine is discovered and is not currently in the database, you will likely first see a very limited set of information. This will be only the Nmap and maybe the SNMP data. After the actual audit script has been run and processed you should see the complete details about the device.
You can provide subnet ranges in any format that Nmap will accept (not including options). As above, if you provide a range that includes the / character, a network Group will be created if none exists and all devices found will be included in that group.
How Does it Work
A simple BPMN diagram is below to help illustrate the basic process.
Discovery Form and Nmap Script
When you submit the required details on the Discovery web form, the Open-AudIT server initiates a script and returns control to the web interface - hence no waiting for the scripts to complete before the web interface is again available. The initial script uses Nmap to first ping scan the entire range and store the responding ip addresses. Then each responding ip address is scanned to determine basic information and if the ports for WMI, SSH and SNMP are active (also ports for http, https and telnet - but these are not used at present). The individual data per ip address is sent to the Open-AudIT server.
The Open-AudIT server processes the data and if SNMP is open attempts to scan the device. The SNMP scan will attempt to connect to the device using stored credentials in the following order: device specific credentials (which must be existing in the database), credentials provided via the Discovery web form and finally the default Open-AudIT credentials as per the configuration. If any of these work, they are stored against the individual device for subsequent Discovery runs.
Once the SNMP scan has been performed (or not), the data about the device is used to attempt to determine if the device already exists within Open-AudIT. If so it is updated, if not a new device is inserted. A note of the internal system id is made for the next section.
If WMI is open on the target device and the Open-AudIT server is running Windows, an attempt is made to directly audit the device using the Discovery form supplied credentials. The device id from above is also passed to the audit script. When the audit is complete, it is sent to the Open-AudIT server for processing.
If WMI is open on the target device and the Open-AudIT server is running Linux, the audit script is copied to the target device and a remote processes is started on the target device so it effectively audits itself. The device id from above is also passed to the audit script. When the audit is complete, it is sent to the Open-AudIT server for processing.
If SSH is open on the target device and the target device is running Linux (at the moment, support for OSX and AIX is in the works), the audit script is copied to the target device and a processes is started so the device "audits itself". The device id from above is also passed to the audit script. When the audit is complete, it is sent to the Open-AudIT server for processing.
The audit processing first attempts to determine if the audit result data matches an existing device. If it does the system id is stored. This is compared to the passed system id. If they match, processing continues and updates this existing device. If they do not match, but an existing system has been determine, the passed system id is deleted. This is because with the limited data available from Nmap and possibly SNMP a match may not be able to be made, but the device may already exist. In that case a new device is inserted. When we later compare the result against a full audit with all the required details and we find a device that matches but it was not the device Nmap/SNMP thought it was, we remove the Nmap/SNMP device.
NOTE - When auditing a Linux device via SSH, some Linux distributions do not allow sudo commands to be passed without a TTY (which we are doing). To completely audit one of these linux distributions it is best to supply the root user credentials. If no root is supplied and sudo without a TTY is not possible, the audit script will be run but will not contain the amount of data as would otherwise. Subsequent audits using root (or run locally using sudo) will therefore provide extra details about the system and generate several "alerts".
NOTE - You will need the ports for WMI on the Windows firewall opened on each target Windows computer. For Windows Core servers, ensure you allow the firewall connections as per - http://blogs.technet.com/b/brad_rutkowski/archive/2007/10/22/unable-to-remotely-manage-a-server-core-machine-mmc-wmi-device-manager.aspx