Release Notes for Open-AudIT v1.12.8

IMPORTANT CHANGES - please read.

We have changed the structure of the 'system' table within Open-AudIT. THIS WILL AFFECT CUSTOM REPORTS AND GROUPS. I cannot stress this highly enough. If you have custom reports and/or groups you will need to export them from Open-AudIT (menu -> Admin -> Queries|Groups -> List, then click the Export button), then delete them (menu -> Admin -> Queries|Groups -> List, then click the Delete button) preferably BEFORE upgrading Open-AudIT. If you have extremely simple items, the upgrade may correctly update them for you - but I wouldn't count on it. Once you have completed the upgrade you can edit your custom reports and/or groups to reflect the updated system table and import them back into Open-AudIT.

NOTE - If running on Windows 2012r2 there is an issue with scheduled tasks. This will be addressed in a future update.

New Features

Credential Sets

We have done away with the old configuration values for default_ssh_username, et al and replaced the entire process with credential sets. Any upgrades will have their existing default_* items moved into credential sets. You can view the credential sets via menu -> Admin -> Credentials and in Enterprise at menu -> Views -> Credentials. Because of this, there is no need to specify them on the Discovery page(s). We show a warning if no credential sets are present but the Discovery form is requested.

As per all new items, they are also viewable and usable via the JSON API at /credentials.

See our feature page on File Auditing for more information.

File Auditing

Caveat - to enable this feature under a windows Open-AudIT server you will need to make a change to the service user. Please see our File Auditing page for this.

You can now specify directory that will have all it's files listed and recorded. This is injected into the audit script for Linux and Windows when Discovery is run. Attributes recorded are:

Windows - name, size, directory, SHA1 hash, last changed, permissions, owner, version (file permitting).

Linux - name, size, directory, SHA1 hash, last changed, meta data last changed, permissions, owner, group, inode.

The web interface for creating, updating and deleting files s in Open-AudIT Enterprise and accessible at menu -> Views -> Files.

As per all new items, they are also viewable and usable via the JSON API at /files.

See our feature page on File Auditing for more information.

SNMP v3 Support

SNMPv3 finally comes to Open-AudIT! Make a credential set with the type equal to SNMPv3 and you will see the usual array of options for you to fill out. This will be checked and used just like any other credential.

SSH Key Support

This is a Linux only feature (for now). You can create a credential set with type equal to ssh key and provide a username and key. This will be checked and used just like any other credential.

Scripts

To go with the new File Auditing feature, you can now create audit scripts and store the configuration of them - downloading them when you need them. File Auditing information will be automatically injected into the script (if it's for Linux or Windows) when you download it. You can access them via menu -> Admin -> Scripts. This new feature replaces the old 'Create Audit Windows' feature. You can configure scripts for any of the existing audit scripts - aix, esxi, linux, osx, windows.

As per all new items, they are also viewable and usable via the JSON API at /scripts.

Nmap Open Ports and Programs

Are now stored when Discovery is run. They are stored and updated as per any other attribute within Open-AudIT. The database table is called nmap.

API Updates

Are detailed on the page here - The Open-AudIT API (1.12.8). We have moved much closer to http://jsonapi.org compliance. Of note is the format change to /devices/{id}.

Bootstrap Theme

We are steadily progressing towards retheming Open-AudIT to use Bootstrap. Going along with that is the ability to update and streamline both our view|template code and our libraries. For example the old Tango theme prevented us from updating to a newer version of jQuery (javascript framework). All Bootstrap pages are being validated as w3c compliant. Work is not complete so you will see some pages in Bootstrap and some in Tango. We're planning to replace all Tango pages eventually. Please bear with us in this time of transition.

Name, hostname, dns_hostname and sysName - oh my!

We now record the above values. Previously we only stored hostname and sysName. This can make for some confusing results. The definitions for each are below.

name - the name assigned to the device in Open-AudIT. Is initially populated from hostname, sysName or dns_hostname (in that order).

hostname - taken from the device itself when running an audit script or SSH / WMI query.

dns_hostname - taken from DNS (surprise!) by the Open-AudIT server.

sysName - taken from SNMP.

We have similar fields for domain and dns_domain.

We have also introduced a new config item called discovery_use_dns. If this is set to 'y' (the default) the Open-AudIT server will attempt to retrieve the dns_hostname and dns_domain of the device.

Removal of man_* Fields

We now have a routine in code that runs every time an attribute has data posted to it. It assigns a weight to the process that is attempting to update the data. The weights are below. In this way we only (now) need to store on item for (for example) manufacturer. No more man_manufacturer and manufacturer. This makes for much less confusion and more easily created queries and groups.

case 'user':
    $weight = 1000;
    break;


case 'audit':
case 'ssh':
case 'windows':
case 'wmi':
    $weight = 2000;
    break;


case 'snmp':
    $weight = 3000;
    break;


case 'ipmi':
    $weight = 4000;
    break;


case 'ad':
    $weight = 5000;
    break;


case 'nmap':
    $weight = 6000;
    break;


default:
    $weight = 10000;
    break;

 

What are the changes to the system table?

Here are the old and new table definitions. Note the column order is different as shown here compared to the actual table. Here I have sorted by name so you can more directly compare them.

Major items of note.

  • There is no system_id column. It has been renamed id. You can imagine the work here. The entire application revolves around system_id. This is the largest single change. Every other table that referenced system.system_id now references system.id.
  • The man_* fields have been removed. We now have a routine that runs whenever an attribute has data posted to it. It "weighs" the importance of the thing performing the data push and if it's not less than what it already has, does not update the data. More details on the below.
  • Fields stick to a format of:
    • Anything ending in id, size or count (or being id, size or count) is an integer.
    • Enum fields are 'y' or 'n' only instead or string true or false or some other variation.
  • Access Details has been removed. We now have credential sets and store device specific credentials in the credential table (details as above).
  • Instead of only hostname and sysName columns, we now have name, hostname, dns_hostname and sysName (details as above). Name has been initially populated (for upgrades) by the existing value for hostname.
  • timestamp has been replaced by last_seen.
  • fiirst_timestamp has been replaced by first_seen.
  • man_ip_address has been replaced by ip.

 

1.12.61.12.8
`access_details` text NOT NULL,
 `comments` text NOT NULL,
 `contact_id` int(10) unsigned NOT NULL DEFAULT '0',
 `contact_name` varchar(50) NOT NULL DEFAULT '',
 `dbus_identifier` varchar(255) NOT NULL DEFAULT '',
 `description` text NOT NULL,
 `domain` varchar(100) NOT NULL DEFAULT '',
 `first_timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 `form_factor` varchar(50) NOT NULL DEFAULT '',
 `fqdn` text NOT NULL,
 `hostname` varchar(100) NOT NULL DEFAULT '',
 `icon` varchar(50) NOT NULL DEFAULT '',
 `invoice_id` int(10) unsigned DEFAULT NULL,
 `last_seen_by` varchar(150) NOT NULL DEFAULT '',
 `last_seen` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 `last_user` varchar(150) NOT NULL DEFAULT '',
 `linked_sys` int(10) NOT NULL DEFAULT '0',
 `man_asset_number` varchar(50) NOT NULL DEFAULT '',
 `man_class` enum('desktop','laptop','tablet','workstation',
'server','virtual server','virtual desktop','','hypervisor') NOT NULL DEFAULT '',
 `man_cluster_name` varchar(150) NOT NULL DEFAULT '',
 `man_criticality` enum('critical','normal','low') NOT NULL DEFAULT 'normal',
 `man_description` text NOT NULL,
 `man_domain` varchar(100) NOT NULL DEFAULT '',
 `man_environment` enum('production','dev','dr','eval',
'pre-prod','test','train','uat') NOT NULL DEFAULT 'production',
 `man_form_factor` varchar(50) NOT NULL DEFAULT '',
 `man_function` varchar(100) NOT NULL DEFAULT '',
 `man_ip_address` varchar(30) NOT NULL DEFAULT '',
 `man_lease_expiry_date` date NOT NULL DEFAULT '0000-00-00',
 `man_location_id` int(10) unsigned NOT NULL DEFAULT '0',
 `man_location_latitude` float(10,6) NOT NULL,
 `man_location_level` varchar(100) NOT NULL DEFAULT '',
 `man_location_longitude` float(10,6) NOT NULL,
 `man_location_rack_position` varchar(100) NOT NULL DEFAULT '',
 `man_location_rack_size` int(10) unsigned NOT NULL DEFAULT '0',
 `man_location_rack` varchar(100) NOT NULL DEFAULT '',
 `man_location_room` varchar(100) NOT NULL DEFAULT '',
 `man_location_suite` varchar(100) NOT NULL DEFAULT '',
 `man_manufacturer` varchar(50) NOT NULL DEFAULT '',
 `man_model` varchar(50) NOT NULL DEFAULT '',
 `man_oae_manage` enum('y','n') NOT NULL DEFAULT 'y',
 `man_org_id` int(10) unsigned NOT NULL DEFAULT '0',
 `man_os_family` varchar(50) NOT NULL DEFAULT '',
 `man_os_group` varchar(50) NOT NULL DEFAULT '',
 `man_os_name` varchar(100) NOT NULL DEFAULT '',
 `man_owner` varchar(100) NOT NULL DEFAULT '',
 `man_patch_panel_port` varchar(45) NOT NULL DEFAULT '',
 `man_patch_panel` varchar(45) NOT NULL DEFAULT '',
 `man_picture` varchar(100) NOT NULL DEFAULT '',
 `man_purchase_amount` varchar(50) NOT NULL DEFAULT '',
 `man_purchase_cost_center` varchar(50) NOT NULL DEFAULT '',
 `man_purchase_date` date NOT NULL DEFAULT '0000-00-00',
 `man_purchase_invoice` varchar(50) NOT NULL DEFAULT '',
 `man_purchase_order_number` varchar(50) NOT NULL DEFAULT '',
 `man_purchase_service_contract_number` varchar(255) NOT NULL DEFAULT '',
 `man_purchase_vendor` varchar(100) NOT NULL DEFAULT '',
 `man_serial_imei` varchar(100) NOT NULL DEFAULT '',
 `man_serial_sim` varchar(100) NOT NULL DEFAULT '',
 `man_serial` varchar(250) NOT NULL DEFAULT '',
 `man_service_network` varchar(100) NOT NULL DEFAULT '',
 `man_service_number` varchar(100) NOT NULL DEFAULT '',
 `man_service_plan` varchar(100) NOT NULL DEFAULT '',
 `man_service_provider` varchar(100) NOT NULL DEFAULT '',
 `man_service_type` varchar(100) NOT NULL DEFAULT '',
 `man_status` enum('production','deleted','lost','maintenance',
'retired','unallocated') NOT NULL DEFAULT 'production',
 `man_switch_id` varchar(100) NOT NULL DEFAULT '',
 `man_switch_port` varchar(100) NOT NULL DEFAULT '',
 `man_terminal_number` int(10) NOT NULL DEFAULT '0',
 `man_type` varchar(100) NOT NULL DEFAULT '',
 `man_unlock_pin` varchar(100) NOT NULL DEFAULT '',
 `man_vm_group` varchar(150) NOT NULL DEFAULT '',
 `man_vm_server_name` varchar(150) NOT NULL DEFAULT '',
 `man_vm_system_id` varchar(150) NOT NULL DEFAULT '',
 `man_wall_port` varchar(100) NOT NULL DEFAULT '',
 `man_warranty_duration` int(5) unsigned NOT NULL DEFAULT '0',
 `man_warranty_expires` date NOT NULL DEFAULT '0000-00-00',
 `man_warranty_type` enum('','24x7x365','9x5x5',
'Next Business Day') NOT NULL DEFAULT '',
 `manufacturer` varchar(50) NOT NULL DEFAULT '',
 `model` varchar(200) NOT NULL DEFAULT '',
 `nmap_type` varchar(50) NOT NULL DEFAULT '',
 `nmis_export` enum('true','false') NOT NULL DEFAULT 'false',
 `nmis_group` varchar(50) NOT NULL DEFAULT '',
 `nmis_name` varchar(50) NOT NULL DEFAULT '',
 `nmis_role` varchar(50) NOT NULL DEFAULT '',
 `os_family` varchar(50) NOT NULL DEFAULT '',
 `os_group` varchar(50) NOT NULL DEFAULT '',
 `os_name` varchar(100) NOT NULL DEFAULT '',
 `os_version` varchar(50) NOT NULL DEFAULT '',
 `pc_date_os_installation` date NOT NULL DEFAULT '0000-00-00',
 `pc_memory` int(10) NOT NULL DEFAULT '0',
 `pc_num_processor` int(10) NOT NULL DEFAULT '0',
 `pc_os_bit` varchar(3) NOT NULL DEFAULT '',
 `printer_color` varchar(5) NOT NULL DEFAULT '',
 `printer_duplex` varchar(5) NOT NULL DEFAULT '',
 `printer_port_name` varchar(50) NOT NULL DEFAULT '',
 `printer_shared_name` varchar(50) NOT NULL DEFAULT '',
 `printer_shared` varchar(50) NOT NULL DEFAULT '',
 `serial` varchar(250) NOT NULL DEFAULT '',
 `snmp_oid` text NOT NULL,
 `sysContact` varchar(255) NOT NULL DEFAULT '',
 `sysDescr` text NOT NULL,
 `sysLocation` varchar(255) NOT NULL DEFAULT '',
 `sysName` varchar(255) NOT NULL DEFAULT '',
 `sysObjectID` varchar(255) NOT NULL DEFAULT '',
 `system_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `system_key_type` varchar(4) NOT NULL DEFAULT '',
 `system_key` varchar(200) NOT NULL DEFAULT '',
 `sysUpTime` varchar(255) NOT NULL DEFAULT '',
 `timestamp` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 `type` varchar(50) NOT NULL DEFAULT '',
 `uptime` varchar(50) NOT NULL DEFAULT '',
 `uuid` varchar(100) NOT NULL DEFAULT '',

 

 

`asset_number` varchar(50) NOT NULL DEFAULT '',
 `attached_system_id` int(10) DEFAULT NULL,
 `class` enum('desktop','laptop','tablet','workstation',
'server','virtual server','virtual desktop','hypervisor','') NOT NULL DEFAULT '',
 `cluster_name` varchar(150) NOT NULL DEFAULT '',
 `cluster_type` varchar(150) NOT NULL DEFAULT '',
 `comments` text NOT NULL,
 `contact_name` varchar(50) NOT NULL DEFAULT '',
 `dbus_identifier` varchar(255) NOT NULL DEFAULT '',
 `description` text NOT NULL,
 `dns_domain` varchar(100) NOT NULL DEFAULT '',
 `dns_hostname` varchar(100) NOT NULL DEFAULT '',
 `domain` varchar(100) NOT NULL DEFAULT '',
 `environment` enum('production','dev','dr','eval',
'pre-prod','test','train','uat') NOT NULL DEFAULT 'production',
 `first_seen` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 `form_factor` varchar(50) NOT NULL DEFAULT '',
 `fqdn` text NOT NULL,
 `function` varchar(100) NOT NULL DEFAULT '',
 `hostname` varchar(100) NOT NULL DEFAULT '',
 `icon` varchar(50) NOT NULL DEFAULT '',
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `invoice_id` int(10) unsigned DEFAULT NULL,
 `ip` varchar(45) NOT NULL DEFAULT '',
 `last_seen_by` varchar(150) NOT NULL DEFAULT '',
 `last_seen` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
 `last_user` varchar(150) NOT NULL DEFAULT '',
 `lease_expiry_date` date NOT NULL DEFAULT '0000-00-00',
 `location_id` int(10) unsigned NOT NULL DEFAULT '0',
 `location_latitude` float(10,6) NOT NULL,
 `location_level` varchar(100) NOT NULL DEFAULT '',
 `location_longitude` float(10,6) NOT NULL,
 `location_rack_position` varchar(100) NOT NULL DEFAULT '',
 `location_rack_size` int(10) unsigned NOT NULL DEFAULT '0',
 `location_rack` varchar(100) NOT NULL DEFAULT '',
 `location_room` varchar(100) NOT NULL DEFAULT '',
 `location_suite` varchar(100) NOT NULL DEFAULT '',
 `manufacturer` varchar(100) NOT NULL DEFAULT '',
 `memory_count` int(10) unsigned NOT NULL DEFAULT '0',
 `model` varchar(200) NOT NULL DEFAULT '',
 `name` varchar(100) NOT NULL DEFAULT '',
 `nmis_export` enum('y','n') NOT NULL DEFAULT 'n',
 `nmis_group` varchar(50) NOT NULL DEFAULT '',
 `nmis_name` varchar(50) NOT NULL DEFAULT '',
 `nmis_role` varchar(50) NOT NULL DEFAULT '',
 `oae_manage` enum('y','n') NOT NULL DEFAULT 'y',
 `org_id` int(10) unsigned NOT NULL DEFAULT '0',
 `os_bit` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `os_family` varchar(50) NOT NULL DEFAULT '',
 `os_group` varchar(50) NOT NULL DEFAULT '',
 `os_installation_date` date NOT NULL DEFAULT '0000-00-00',
 `os_name` varchar(100) NOT NULL DEFAULT '',
 `os_version` varchar(50) NOT NULL DEFAULT '',
 `owner` varchar(100) NOT NULL DEFAULT '',
 `patch_panel_port` int(10) unsigned NOT NULL DEFAULT '0',
 `patch_panel` varchar(45) NOT NULL DEFAULT '',
 `printer_color` enum('y','n','') NOT NULL DEFAULT '',
 `printer_duplex` enum('y','n','') NOT NULL DEFAULT '',
 `printer_port_name` varchar(50) NOT NULL DEFAULT '',
 `printer_shared_name` varchar(50) NOT NULL DEFAULT '',
 `printer_shared` varchar(50) NOT NULL DEFAULT '',
 `processor_count` tinyint(3) unsigned NOT NULL DEFAULT '0',
 `purchase_amount` varchar(50) NOT NULL DEFAULT '',
 `purchase_cost_center` varchar(50) NOT NULL DEFAULT '',
 `purchase_date` date NOT NULL DEFAULT '0000-00-00',
 `purchase_invoice` varchar(50) NOT NULL DEFAULT '',
 `purchase_order_number` varchar(50) NOT NULL DEFAULT '',
 `purchase_service_contract_number` varchar(255) NOT NULL DEFAULT '',
 `purchase_vendor` varchar(100) NOT NULL DEFAULT '',
 `serial_imei` varchar(100) NOT NULL DEFAULT '',
 `serial_sim` varchar(100) NOT NULL DEFAULT '',
 `serial` varchar(200) NOT NULL DEFAULT '',
 `service_network` varchar(100) NOT NULL DEFAULT '',
 `service_number` varchar(100) NOT NULL DEFAULT '',
 `service_plan` varchar(100) NOT NULL DEFAULT '',
 `service_provider` varchar(100) NOT NULL DEFAULT '',
 `service_type` varchar(100) NOT NULL DEFAULT '',
 `snmp_oid` text NOT NULL,
 `status` enum('production','deleted','lost','maintenance',
'retired','unallocated') NOT NULL DEFAULT 'production',
 `switch_port` int(10) unsigned NOT NULL DEFAULT '0',
 `switch_system_id` int(10) DEFAULT NULL,
 `sysContact` varchar(255) NOT NULL DEFAULT '',
 `sysDescr` text NOT NULL,
 `sysLocation` varchar(255) NOT NULL DEFAULT '',
 `sysName` varchar(255) NOT NULL DEFAULT '',
 `sysObjectID` varchar(255) NOT NULL DEFAULT '',
 `sysUpTime` varchar(255) NOT NULL DEFAULT '',
 `type` varchar(50) NOT NULL DEFAULT '',
 `unlock_pin` varchar(100) NOT NULL DEFAULT '',
 `uptime` varchar(50) NOT NULL DEFAULT '',
 `uuid` varchar(100) NOT NULL DEFAULT '',
 `vm_group` varchar(150) NOT NULL DEFAULT '',
 `vm_server_name` varchar(150) NOT NULL DEFAULT '',
 `vm_system_id` int(10) unsigned DEFAULT NULL,
 `wall_port` varchar(100) NOT NULL DEFAULT '',
 `warranty_duration` int(5) unsigned NOT NULL DEFAULT '0',
 `warranty_expires` date NOT NULL DEFAULT '0000-00-00',
 `warranty_type` enum('','24x7x365','9x5x5',
'Next Business Day') NOT NULL DEFAULT '',

 

Change Notes

Open-AudIT - Bugfix - Disk size calculation incorrect when processing SAN details.
Open-AudIT - Bugfix - Using # or $ in a password fails logon to OAC from OAE.
Open-AudIT - Bugfix - When creating a group and assigning a user, application breaks.
Open-AudIT - Improvement - Add a /30 blessed subnet when a user points discovery at a single device.
Open-AudIT - improvement - audit_windows.vbs Win32_Printer.CapabilityDescriptions on Windows 2003 now works.
Open-AudIT - Improvement - PHP7 now works. This means Ubuntu 16.04 should be functional with Open-AudIT.
Open-AudIT - New Feature - Config item created for discovery_use_dns (as above). 
Open-AudIT - New Feature - Store Nmap detected open ports.
Open-AudIT Enterprise - Bugfix - Specific Software installed on a specific date not working.
Open-AudIT Enterprise - New Feature - Export a Baseline Result ordered by Device or Policy.
Open-AudIT Enterprise - New Feature - Search All Attributes from Dashboard.