N2OS-UserManual-21 3 0 PDF
N2OS-UserManual-21 3 0 PDF
N2OS-UserManual-21 3 0 PDF
Legal notices
Publication Date
August 2021
Copyright
Copyright © 2013-2021, Nozomi Networks. All rights reserved.
Nozomi Networks believes the information it furnishes to be
accurate and reliable. However, Nozomi Networks assumes no
responsibility for the use of this information, nor any infringement of
patents or other rights of third parties which may result from its use.
No license is granted by implication or otherwise under any patent,
copyright, or other intellectual property right of Nozomi Networks
except as specifically described by applicable user licenses. Nozomi
Networks reserves the right to change specifications at any time
without notice.
Table of Contents
Chapter 1: Preliminaries.........................................................................9
Prepare a Safe and Secure Environment...................................................................................10
Chapter 2: Installation.......................................................................... 11
Installing a Physical Appliance....................................................................................................12
Installing on Virtual Hardware..................................................................................................... 12
Installing the Container............................................................................................................... 15
Setup Phase 1.............................................................................................................................17
Setup Phase 2.............................................................................................................................19
Additional settings....................................................................................................................... 22
Chapter 3: Users................................................................................... 29
Users Introduction....................................................................................................................... 30
Managing Users.......................................................................................................................... 31
Managing Groups........................................................................................................................ 34
Password policies........................................................................................................................36
Active Directory Users.................................................................................................................39
SAML Integration.........................................................................................................................41
Chapter 4: Basics..................................................................................43
Environment................................................................................................................................. 44
Asset............................................................................................................................................ 44
Node............................................................................................................................................ 44
Session........................................................................................................................................ 45
Link.............................................................................................................................................. 45
Variable........................................................................................................................................ 46
Vulnerability................................................................................................................................. 46
Query........................................................................................................................................... 46
Protocol........................................................................................................................................ 47
Incident & Alert............................................................................................................................47
Trace............................................................................................................................................ 48
Charts.......................................................................................................................................... 49
Tables.......................................................................................................................................... 50
Navigation through objects..........................................................................................................50
Vulnerabilities...............................................................................................................................94
Settings........................................................................................................................................ 95
System....................................................................................................................................... 116
Continuous Traces.................................................................................................................... 129
Alerts.......................................................................................................................................... 214
Functionalities Overview............................................................................................................215
Updating.....................................................................................................................................216
Single-Sign-On through the CMC............................................................................................. 216
1
Preliminaries
Topics: In this chapter you will receive preliminary information to get a
Guardian or a CMC properly and securely installed.
• Prepare a Safe and Secure
Environment
Prepare a Safe and Secure Environment
Before starting the installation process, some preliminary information need to be checked to ensure
optimal and secure operation of the system.
If you are installing a physical appliance, install it in a location that has been physically secured and to
which only authorized personnel can have access. Observe the following precautions to help prevent
potential issues for property damage, personel injury or death.
• Do not use damaged equipment, including exposed, frayed or damaged power cables.
• Do not operate the appliance with any covers removed.
• Choose a suitable location for the appliance: it should be situated in a clean, dust-free area that is
well ventilated. Avoid area where heat, electrical noise and electromagnetic fields are generated.
Avoid areas where it can get wet. Protect the appliance from liquid intrusion. If the appliance gets
wet disconnect power to the appliance.
• Use a regulating uninterruptible power supply (UPS) to protect the appliance from power surges,
voltage spikes and to keep your system operating in case of a power failure.
• A reliable ground must be maintained at all times. To ensure this, the rack itself should be grounded
and the appliance chassis should be connected for grounding to the rack via the provided appliance
grounding cable.
• It should be mounted into a rack or otherwise placed so that the amount of airflow required for safe
operation is not compromised.
• If mounted into a rack it should be placed so that a hazardous condition does not arise due to
uneven mechanical loading.
If you are installing a virtual appliance, contact your virtual infrastructure manager to ensure that all
the possible precautions are put in place to guarantee that the system's console is only accessible to
authorized personnel only.
The appliance's management port should get an IP address assigned in a dedicated management
VLAN, so that access to it can be controlled at different levels and restricted only to a selected set of
hosts and people.
Before connecting any SPAN/mirror port to the appliance, ensure that the configuration on the switch/
router/firewall or other networking device has been set in order to allow only traffic in output. The
appliance's ports are configured in order to read only the traffic and not inject any packet, however to
prevent any human error (e.g. a span port cable put into the management port) it's useful to check that
no packet can be injected from those ports.
Chapter
2
Installation
Topics: In this chapter you will receive the fundamental information
necessary to get both Nozomi Networks Solution physical and
• Installing a Physical Appliance virtual appliances up and running.
• Installing on Virtual Hardware
Further information on additional configuration is given in the
• Installing the Container Configuration chapter.
• Setup Phase 1
Maintenance tasks are described in the Maintenance chapter.
• Setup Phase 2
• Additional settings
| Installation | 12
Guardian Instances
Min Max Max Max Max Min vCPU Suggested RAM Min
Model Nodes Network Smart Throughput vCPU (GB) Disk
Elements IoT (Mbps) (GB)
Devices
V100 100 4,000 500 50 2 4 6 20
V100 250 10,000 1,250 250 4 6 6 20
V100 250 10,000 1,250 500 6 8 6 20
V100 250 10,000 1,250 1,000 8 10 6 20
V100 1,000 20,000 5,000 1,000 8 10 8 100
V250 2,500 50,000 12,500 500 6 8 10 250
V250 2,500 50,000 12,500 1,000 8 10 10 250
V250 5,000 100,000 25,000 500 6 8 12 250
V250 5,000 100,000 25,000 1,000 8 10 12 250
V750 10,000 200,000 100,000 500 6 8 16 250
V750 10,000 200,000 100,000 1,000 8 10 16 250
V1000 40,000 400,000 200,000 1,000 8 10 24 250
CMC Instances
1
Since this sizing is also dependent on the synchronized network elements, the supported number of
appliances varies and should be agreed upon with Nozomi Networks for each installation.
2. After importing the VM, go to the hypervisor settings of the VM disk and set a desired size. Some
hypervisors, for instance VMware ESX >= 6.0, allow to change the disk size at this stage. With
hypervisors that do not allow this operation, you must STOP HERE with this section and proceed
with instructions contained in Adding a secondary disk to Virtual Machine on page 14.
3. Boot the VM. It will now boot into a valid N2OS environment.
4. Login as admin
You will be instantly logged in, no password is set by default.
5. Go to privileged mode with the command:
enable-me
enable-me
data_enlarge
The virtual machine can now detect the newly allocated space.
sysctl kern.disks
3. Assuming ada1 is the device disk added as secondary disk (note that ada0 is the OS device),
execute this command to move the data partition to it
data_move ada1
Install on Docker
After these steps we'll have an image ready and a running container based on it.
A prerequisite for the steps below is to have Docker installed. We have tested with version 18.06 and
18.09.
The image can be built from the directory containing the artifacts with the command:
docker build -t n2os .
Once the image has been built, it can be run using for instance this command:
docker run --hostname=nozomi-sga --name=nozomi-sga --
volume=<path_to_data_folder>:/data --network=host -d n2os
where <path_to_data_folder> is the path to a volume where the appliance's data will be stored,
and saved for future runs.
The image has been built to automatically monitor all network interfaces shown to the container -- and
the network=host setting will allow to access all network interfaces of the host computer.
The container can be stopped anytime with:
docker stop nozomi-sga
and executed with
docker start nozomi-sga
Additional Details
The Container has the same features provided by the Physical and Virtual Appliances. A key difference
is that provisioning of "system" settings must be performed from Docker commands, and thus are not
editable from inside the container itself. A notable example is the hostname: it has to be set when
launching a new instance of the image.
It is mandatory to use volumes for the /data partition to make sure that data will survive to updates of
the image.
To update a container, build the new version of the n2os image, stop and destroy the current running
containers and start a new one with the updated image. Data will be automatically migrated to the new
version.
The network=host Docker parameter allows to let the container monitor the physical NICs of the
host machine. However, by default it will let the container monitor all the available ones. To restrict to
a subset, create a cfg/n2osids_if file into the /data volume with the list of interfaces to monitor
separated by comma (e.g: eth1,eth2).
Container version build can be customized using the following variables which can be passed to docker
build command using the --build-arg command line switch, for example: docker build --
build-arg APT_PROXY=x.x.x.x:yy -t n2os ..
Setup Phase 1
We will now setup the very basic configuration needed to start using the Nozomi Networks Solution.
After these steps the system will have the management interface setup and reachable as text console
via SSH and as web console via HTTPS.
We assume that Nozomi Networks Solution has already been installed and ready to be configured
for the first time. Depending on the case, a serial console must be used in this phase (for Physical
Appliances) or the text hypervisor console (for Virtual Appliances).
The Guardian's shell has exactly two users: admin and root. Both to login as admin, and to elevate
from admin to root, you only need the admin password. The root account does not have a separate
password.
1. The console will display a prompt with the text "N2OS - login:". Type admin and then press [Enter].
In the Virtual Appliance, you will be instantly logged in, as no password is set by default. In Physical
Appliances, nozominetworks is the default password.
The admin password can be changed at any time by using the n2os-passwd command.
2. Elevate the privileges with the command: enable-me
3. Now launch the initial configuration wizard with the command: setup
4. You will be prompted to choose the admin password first. Select a strong password as this will allow
the admin user to access the appliance through SSH.
5. Secondly, you will need to setup the management interface IP address. Select the "2 Network
Interfaces" menu in the dialog.
6. Now you will need to setup the management interface IP address. Depending on the appliance
model, the management interface can be named em0 or mgmt. Select it and press [Enter].
| Installation | 18
7. Edit the values for IP address (ipaddr) and Netmask (netmask). Enable DHCP to configure all
automatically. Then move up to "X. Save/Exit" and press [Enter].
8. Now select "Default Router/Gateway" from the menu, and enter the IP address of the default
gateway. Press [Tab] and then [Enter] to save and exit.
9. Now select "DNS nameservers" from the menu, and configure the IP addresses of DNS servers.
Setup Phase 2
This second phase of the setup will be performed with the web console. Before starting to use the web
console, be sure to use one of the supported web browsers.
The web console can be accessed pointing at https://<appliance_ip> where <appliance_ip> is
the IP address assigned to the management interface. Note that the product integrates self-signed SSL
certificates to get started, so add an exception in your browser. Later in this chapter we will provide
steps to import valid ones. You should now see the login screen:
Default username and password are admin / nozominetworks. For security reasons you will be
prompted to change these credentials at first login.
Once logged in, the remaining steps of the setup can be completed. Go to Administration >
General and change the host name.
Now fix date and time settings. Go to Administration > Date and time, and change the time
zone, set the date and (optional) enable the NTP client.
| Installation | 20
The appliance is almost ready to be put into production: next step is to install a valid license.
License
In the Administration > Updates & Licenses page, you will need to set a new license. First
copy the machine ID, then you can use it along with the Activation Code that you have received from
Nozomi Networks to obtain a license key. Once you have a valid license key, paste it inside the text
box. After confirmation, the appliance begins to monitor the configured network interfaces.
1. Upload the certificate and key file to the appliance using an SSH client in the /data/tmp folder.
For example, given you have https_nozomi.crt and https_nozomi.key files in the same
folder, open a terminal, cd into it and then use this command to upload them to the appliance
2. Log into the console, either directly or through SSH and elevate the privileges
enable-me
3. If your certificate key is protected with a password, remove it so that you will not be prompted for it
each time the server restarts.
6. Verify that the certificate is correctly loaded by pointing your browser to https://
<appliance_ip>/ and checking that the certificate is recognized as valid.
Now the imported SSL certificates are correctly working and will be applied also on next reboot.
| Installation | 22
Additional settings
In this chapter some additional, non-mandatory settings of the system will be explained.
Network Flows
This section describes the basic network flows to operate the solution components.
Install CA certificates
In this section we are going to add a CA certificate to an appliance: the procedure is required when the
emitting CA of an HTTPS certificate is not already trusted by the system.
Before starting, make these pre-checks:
• If your intermediate CA and Root CA certificates are in separate files, you must combine them. For
example:
2. Log into the console, either directly or through SSH and then elevate the privileges
enable-me
3. Use the command n2os-addcacert to add the CA certificate to the trust store
n2os-addcacert cert.crt
Now the imported CA certificate is trusted by the appliance and could be used to secure the HTTPS
communication from a connected appliance to a CMC as described in Connecting Appliances on
page 206.
| Installation | 23
Enabling SNMP
Monitoring the health state of the Nozomi Networks Solution appliance is important. This can be
performed in a standard manner by enabling the SNMP daemon.
The current SNMP daemon supports versions v1, v2c and v3. This feature is not available in the
container version.
Please log into the text-console, either directly or through SSH, and issue the following commands.
1. Elevate the privileges with the command: enable-me
2. Use vi or nano to edit /etc/snmpd.conf
3. Edit the location, contact and community variables. For community, choose a strong
password.
4. Provide other variables's value, if needed. For example for SNMP v3 User-based security Model
(USM), uncomment the following sections to create a user bsnmp and set privacy and encryption
options to SHA256 message digests and AES encryption for this user:
engine := 0x80:0x10:0x08:0x10:0x80:0x25
snmpEngineID = $(engine)
user1 := "bsnmp"
user1passwd :=
0x22:0x98:0x1a:0x6e:0x39:0x93:0x16: ... :0x05:0x16:0x33:0x38:0x60
begemotSnmpdModulePath."usm" = "/usr/lib/snmp_usm.so"
%usm
usmUserStatus.$(engine).$(user1) = 5
usmUserAuthProtocol.$(engine).$(user1) = $(HMACSHAAuthProtocol)
usmUserAuthKeyChange.$(engine).$(user1) = $(user1passwd)
usmUserPrivProtocol.$(engine).$(user1) = $(AesCfb128Protocol)
usmUserPrivKeyChange.$(engine).$(user1) = $(user1passwd)
usmUserStatus.$(engine).$(user1) = 1
bsnmpd_enable="YES"
7. If you enabled the User-based security Model (USM) in Step 4, replace the default value for
user1passwd variable. Launch the bsnmpget command and convert the SHA or MD5 output to
exe format:
n2os-save
| Installation | 24
9. To check the functionality, run a test command from an external system (the <appliance_ip> has
to be reachable). For example, in the USM case with the default values provided by the /etc/
snmpd.config file, use a command similar to:
Parameter Description
system firewall icmp Configure acl for icmp protocol
system firewall https Configure acl for http and https services
system firewall ssh Configure acl for ssh service
system firewall snmp Configure acl for snmp service
Please log into the text-console, either directly or through SSH, and issue the following commands.
1. Use vi or nano to edit /data/cfg/n2os.conf.user
2. Add the required configuration lines. For example the following line will allow connections only from
the networks 192.168.55.0/24 or from the host 10.10.10.10.
n2os-firewall-update
n2os-firewall-update
Ipv6 setup
The Full Stack edition (aka Physical and Virtual Appliances, not Container) comes with the possibility to
be accessed via ipv6.
In order to enable ipv6 on the management interface you need to issue the following command
n2os-setupipv6
and then reboot the appliance. After reboot the address can be retrieved using a system command
such as ifconfig
After the above operations it will be possible to access to the appliance UI by enclosing the address in
the squared brackets, as shown in the following screenshot.
Similarly, appliances may be configured to sync towards a CMC or another appliance in HA specifying
the ipv6 address in square brackets.
1. Log in to the console via serial console, and go to privileged mode with the command:
enable-me
mkdir /etc/wpa_supplicant_certs
chmod 755 /etc/wpa_supplicant_certs
3. Create the file /etc/wpa_supplicant.conf and fill it with the required configuration values.
No others file name is allowed; if necessary, rename your file to match the expected name.
vi /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=0
network={
ssid="NOZOMI8021X"
key_mgmt=IEEE8021X
eap=PEAP
identity="identity_for_this_guardian_here"
password="somefancypassword_here"
}
• Configuration for TLS authentication:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=0
network={
ssid="NOZOMI8021X"
key_mgmt=IEEE8021X
eap=TLS
identity="client"
ca_cert="/etc/wpa_supplicant_certs/ca.pem"
client_cert="/etc/wpa_supplicant_certs/client.pem"
private_key="/etc/wpa_supplicant_certs/client.key"
private_key_passwd="somefancypassword_private_key_here"
}
4. For TLS authentication, you must copy the required files to the expected location.
To copy the files, you must connect to the appliance via Ethernet. If the appliance is not reachable
via SSH using the actual network, we suggest configuring the mgmt interface with a temporary IP
address and connect the appliance with a direct Ethernet patch cable. Please refer to the relevant
chapter of this guide to configure the IP address: Setup Phase 1.
5. For TLS authentication, upload the certificate files to the appliance with an SSH client in the /etc/
wpa_supplicant_certs/ folder.
For example, if you have the ca.pem, client.pem, and client.key files, open a terminal, cd
into the directory containing files, and use the following command to upload them to the appliance:
Skip this step if you use PEAP authentication.
6. In the appliance serial console, with elevated privileges, move files in the expected location:
7. In the appliance serial console, with elevated privileges, change the certificate permission to 440 as
shown below.
Skip this step if you use PEAP authentication.
cd /etc/wpa_supplicant_certs
chown root:wheel ca.pem client.pem client.key
chmod 440 ca.pem client.pem client.key
8. In the appliance serial console, with elevated privileges, change the /etc/rc.conf file by adding
the following entries:
wpa_supplicant_flags="-s -Dwired"
wpa_supplicant_program="/usr/local/sbin/wpa_supplicant"
9. Change the /etc/rc.conf file's ifconfig_mgmt entry by adding the prefix WPA.
If the appliance was configured with direct Ethernet patch cable, you can now configure the
production-ready IP address and connect the appliance to the switch. For example, if the appliance
IP address is 192.168.10.10, the entry will be similar to the following:
n2os-save
11.The above configuration process requires you to reboot the system. To reboot the appliance:
shutdown -r now
12.After the reboot, log into appliance console using ps aux |grep wpa. You should receive an
output similar to the following; this means the WPA Supplicant is enabled for the mgmt network
interface:
13.You can check the status of the wpa_supplicant using the wpa_cli -i mgmt status command.
For example:
3
Users
Topics: In this section all aspects related to users authentication and
authorization will be covered.
• Users Introduction
You will be guided on the following:
• Managing Users
• Managing Groups 1. Understand different types of available users (Local, Active
• Password policies Directory, SAML).
• Active Directory Users 2. Setup and define local users.
3. Setup groups and define allowed nodes and sections.
• SAML Integration
4. Configure Active Directory and import users and groups.
5. Configure SAML and import users.
| Users | 30
Users Introduction
Users provide a way to define both authentication and authorization policies within Nozomi Networks
Solution.
Three different users types are available that differ mainly for the different authentication procedures
and for the way in which users are typically inserted. The available user types are:
1. Local Users: Authentication is enforced with a password, and the user is created from the web
console.
2. Active Directory Users: Authentication is managed by Active Directory. User's properties and
groups are also imported from Active Directory. In order to work properly Active Directory needs to
be configured in the Nozomi web console (see Configuring Active Directory Integration using the UI
on page 39).
3. SAML Users: Password is not required since Single Sign On Authentication is enforced through
an authentication server that uses SAML. Users can be inserted via the web console or imported
from a CSV file. In order to work properly a SAML application needs to be properly configured in the
Nozomi web console (see SAML Integration on page 41).
Authorization policies are defined using the groups.
Each group define two aspects:
• A list of allowed features.
• A filter to enable visualization only of specific nodes subsets.
When an user belongs to a group, the user can perform only the operations allowed by the group and
can see only the nodes that respect the group node filter.
A user can belong to several groups and inherits the authorizations of all the groups to which the user
belongs. Therefore, when a user belongs to more than one group, each node will be visible if it satisfies
the filter of just one of the groups and its features will be availble if it is available in just one of the
groups.
Two specific group types are available with already predefined authorization policies:
• Administrators: All features available.
• Authentication Only: No feature available except authentication.
When a group is not Administrators nor Authentication Only the allowed features (sections)
can be enabled/disabled individually.
| Users | 31
Managing Users
In this section we will overview the management operations related to users.
List of users
1. Go to the Administration > Users page. Here you can see a list of all users. From the users
page it's possible to create and delete users and change the password and/or username of existing
users.
Adding an user
1. Go to the Administration > Users page.
2. The first step is to select the type (source) of desired user. Typically only Local or SAML types
should be used. Active Directory can also be created but it is responsability of the operator to
ensure that the added user exists also in the Active Directory. Therefore, it is preferable to directly
import these users from Active Directory.
Once the source is selected, the kind of data to be inserted depends on the user type:
Local User Here you have to specify username, password, and the users group(s) (Groups
configuration will be covered in the next section).
SAML User Here you have to specify just username, and group(s) since a password is not required
for SAML users.
| Users | 32
3. You can eventually change the check boxes Must Update Password, Is suspended, and Is
Expired.
4. Finally clicking "New User" will add the user.
user_1,authentication_group_1,group_1;group_2
user_2,authentication_group_2,group_3
3. When import is completed you will get a message that reports the number of users that have been
correctly imported.
2. Here you can adjust the username and update the password. Of course you will have to enter two
matching passwords to update it correctly. Clicking on the "x" button (or ESC on the keyboard) will
close this window.
In the user list you will find a key icon which will allow you to add SSH keys:
In the form you will find the required fields for ssh key based authentication:
2. To allow authentication using SSH keys you'll just need to paste the public keys in the first field.
Every admin user can have its own keys. If you need more than one key you can just paste them
one per line. Non admin users are not allowed to use password less ssh authentication. When an
admin user expires the associated SSH keys will be removed.
Make sure that the pasted key doesn't contains new lines. The system won't use invalid keys.
Enabling the second option will allow you to login using the root account.
SSH public keys will be propagated to the attached appliances or CMC. Default keys replica
updates interval is 30 minutes. This behaviour can be changed via ssh_key_update interval
setting in n2os.conf.user file.
| Users | 34
Managing Groups
In this section we will overview the management operations related to user groups, changing the
sections of the platform the user can access.
List of groups
1. Go to the Administration > Users page and select the Groups tab.
2. Click the "Add" button. You will get to the following screen:
4. Define if the group belongs to one of the predefined types, Admin or Authentication only,
enabling the respective check boxes. If none of the two check boxes is selected the user does not
belong to any of the predefined types and the allowed features have to be defined manually (see
below)
5. If the group does not belong to one of the predefined types you will have to select one or more
section(s) that the group will be allowed to view and to interact with.
Optionally, under "Filters" tab (visible on the right of previous screen), you can:
• define "Zone filters" by picking one or more from the list, to limit zones visibility for a group;
• define "Node filters" by entering a list of subnet addresses in CIDR format and separated by
comma. This limits the nodes a user can view in the Nodes, Links, Variables list, Graph, Queries
and Assertions;
• define "Allowed appliances" by selecting ones that users can access to and see data coming of.
This feature is available only for CMCs and only if the "is admin" group permission is disabled.
Edit a group
1. Go to the Administration > Users page. Move to the Groups tab. Browse through the list of
groups and select the one you are wanting to edit by clicking on edit.
2. You will get to a form like the previous one used to create a group with different sections enabled or
disabled depending on the group type.
3. You can define the same data as described above.
| Users | 36
Password policies
In this section we will provide an overview on how to manage local password policies.
1. Go to the Administration > Users page. Select the Active Directory tab.
2. Enter Username and Password.
You need to prepend the Domain Name to the Username, separated by a backslash character, as
shown in the example.
3. Specify a Domain Controller IP/Hostname.
You can check if the Active Directory service is running on port 389 (LDAP) or on port 636 (LDAPS)
by using the Check Connection button and the LDAPS selector.
By default server's SSL certificate is not verified, you can enable it using the Verify SSL selector.
Should you need to add another Domain Controller IP you can click on the Add host button.
4. Specify the Domain details in Domain name and Distinguished name.
5. Optionally configure the Connection timeout
6. Save the configuration by clicking on the Save button, which will also validate the data.
If there are errors, they will be shown beside the Status field.
The Delete configuration button allows you to delete the Active Directory configuration by
removing all its variables. This action is not recoverable.
2. From the import screen, start specifying a domain administrative credential. Then click on the
Retrieve groups button to retrieve the list of groups.
In the Username field type the Active Directory user logon name in the <domainname>
\<domainusername> format. You can also click on the Filter by group name checkbox and
type the name of a group you want to retrieve.
3. Now filter and select the desired groups to import. If you want to import also related groups (e.g.
parent groups) be sure to flag the checkbox near the Import button.
4. When finished, click the Import button. You will be redirected to the list of groups.
5. Now you can edit the group permissions. Active Directory users belonging to this group will be
automatically assigned to it and will inherit all permissions of the configured group.
6. After configuring Active Directory groups permissions, users can log into the system with the
<domainname>\<domainusername> user and their current domain password in the login screen.
| Users | 41
SAML Integration
Nozomi supports SAML (Security Assertion Markup Language) Single Sign-On (SSO) authentication;
our integration requires your Identity Provider (IdP) to be compatible with SAML 2.0.
The SAML configuration process is often error-prone. This section assumes that you’re familiar with the
SAML protocol, your IdP software, and the exact details of your specific IdP implementation.
Before configuring Nozomi, define a new application in your IdP. This application should consist of:
• The Assertion Consumer Service (ACS) URL for Nozomi; an ACS specifies the /auth path. For
example, https://10.0.1.10/saml/auth
• The issuer URL for your IdP; it specifies the /saml/metadata path. For example, /saml/metadata.
The nature of this value depends entirely on your IdP.
• A metadata XML file that describes your IdP’s SAML parameters. Before configuring Nozomi,
download the file from your IdP vendor and save it to a location accessible to Nozomi.
To configure SAML integration:
1. Click the SAML tab on the Administration > Users page.
2. In the Nozomi URL field, enter the URL for your Nozomi instance. Note that the form of this URL
determines how authentication is processed. For example if the value you enter specifies HTTPS,
Nozomi uses the HTTPS protocol when processing login requests.
3. Click Load the Metadata XML file, and locate and select the metadata file provided by your IdP.
This file tells Guardian how to configure SAML parameters for use with your specific IdP solution.
4. In the SAML Role Attribute Key field, enter a string that will be used to map role names between
Guardian and your IdP. The value in this field is used to compare groups defined in Guardian with
those defined in your IdP. The nature of this value depends on your IdP. (For example, if you are
using Microsoft Office 365 as your IdP, the value might be http://schemas.microsoft.com/
ws/2008/identity/claims/role).
5. Click Save.
6. Test the integration by clicking Single Sign On on the Guardian login page; be sure to use
credentials known by your IdP.
Note: In order for SAML to work properly, groups that match the SAML roles must already exist in the
system. Groups are found using the role's name; for example, if the SAML role attribute specifies an
Operator role, the IdP looks for the Operator group when authorizing an authenticating user.
Once configured, the login page displays a new Single Sign On button:
If authentication fails, Nozomi writes errors to either:
• In Audit on page 127 page, or
• In the /data/log/n2os/production.log log file.
If it becomes necessary, click Delete configuration to entirely remove your current SAML integration.
We advise deletion only in rare cases when your authentication method changes.
Additional SAML configuration
Usually, when using SAML authentication, replies are sent back from the same host that originally
received the request.
Sometimes SAML requests are chained between different IdP and replies may come from a different
host. By default, the web UI content security rules block these kinds of replies.
This behaviour can be overridden using the csp form-action-urls configuration key.
To accept replies from an IdP SSO Target URL that differs from the one specified in the SAML
metadata, use vi or nano to edit the /data/cfg/n2os.conf.user file, and add the following
configuration line csp form-action-urls <additional_url>.
If you need to specify more than one URL make sure to separate them using spaces.
After this change you must run the service unicorn stop command to apply it.
SAML clock skew
Sometimes the system times of the IdP and the Guardian may differ. By default, the system accepts
requests with up to 60 seconds difference.
This behaviour can be overridden using the saml clock_drift configuration key.
To change the value, use vi or nano to edit the /data/cfg/n2os.conf.user file, and add the
following configuration line saml clock_drift <allowed_seconds>.
After this change you must run the service unicorn stop command to apply it.
Known SAML limitation
• SAML logout protocol is not supported.
Chapter
4
Basics
Topics: In the chapter you will get introduced to some basic concepts of the
Nozomi Networks Solution and some recurring graphical interface
• Environment controls will be explained.
• Asset
You must have a solid understanding of these concepts in order to
• Node understand how to properly use and configure the N2OS system.
• Session
• Link
• Variable
• Vulnerability
• Query
• Protocol
• Incident & Alert
• Trace
• Charts
• Tables
• Navigation through objects
| Basics | 44
Environment
The Nozomi Networks Solution Environment is the real time representation of the network
monitored by the Guardian, providing a synthetic view of all the assets, all the network nodes and the
communications between them.
Asset View
In the Asset View section are displayed all your assets, intended as single discrete endpoints. In this
section it is easy to visualize, find and drill down on asset information such as hardware and software
versions.
For more details see Asset View on page 60
Network View
In the Network View section are contained all the generic network information which are not related
to the SCADA side of some protocols like the list of nodes, the connection between nodes and the
topology.
For more details see Network View on page 62
Process View
In the Process View section are contained all the SCADA specific information like the SCADA
producers list, the producer variables with their history of values and other related information, a
section with the analysis on the variables values and some variables related statistics.
For more details see Process View on page 77
Asset
An asset in the Environment represents an actor in the network communication and, depending on the
nodes and components involved, it can be something ranging from a simple personal computer to an
OT device.
All the assets are listed in the Environment > Asset View > List section and can also be
viewed in a more graphical way in the Environment > Asset View > Diagram section which
aggregates the assets in different levels.
Node
A node in the Environment represents an actor in the network communication and, depending on the
protocols involved, it can be something ranging from a simple personal computer to an RTU or a PLC.
All the nodes in the Environment are listed in the Environment > Network View > Nodes section
or can be viewed in a more graphical way in the Environment > Network View > Graph section.
| Basics | 45
Session
A session is a semi-permanent interactive information interchange between two or more
communicating nodes.
A session is set up or established at a certain point in time, and then turned down at some later point.
An established communication session may involve more than one message in each direction.
The Nozomi Networks Solution shows the status of a session depending on the transport protocol, for
example a TCP session can be in the SYN or SYN-ACK status before being OPEN.
When a session is closed it will be retained for a certain amount of time and can still be queried to
perform subsequent analysis.
All the sessions are listed in the Environment > Network View > Sessions.
Link
A link in the Environment represents the communication between two nodes using a specific protocol.
| Basics | 46
All the links are listed in the Environment > Network View > Link section and can be viewed in
a more graphical way in the Environment > Network View > Graph section.
Variable
The Guardian creates a variable for each used command, monitored measure and, more in general,
for each information that is accessed or modified by the SCADA/ICS system. Different characteristics
can be attached to a variable depending on the protocol that is used to access or modify it. For
instance, highly specialized protocols such as IEC-60870-5-104 will generate and update variables with
specific type and quality for each sampled value that can also determine if the sample is valid or not.
A variable has many properties, described in Process Variables on page 77 in detail. In particular,
the RTU ID and name properties will have specific values depending on the protocol, as explained in
the following section.
A recurring concept of a variable used as an universal identifier inside the system is the var_key. The
var_key is an identifier of the variable that puts together the node IP address, the RTU ID and the
name in the form <node_ip>/<RTU_id>/<name>. For instance, a variable with name ioa-2-99,
located at RTU ID 24567 and accessed with the IP address 10.0.1.2 will have a var_key equals to
10.0.1.2/24567/ioa-2-99.
Vulnerability
A vulnerability is a weakness which allows an attacker to reduce a system's information assurance.
By constantly analyzing industrial network assets against a state-of-the-art repository of ICS
vulnerabilities, the Nozomi Networks Solution permits operators to stay on top of device vulnerabilities,
updates and patch requirements.
Query
The N2QL (Nozomi Networks Query Language) syntax is inspired by the most common Linux and Unix
terminal scripting languages: the query is a concatenation of single commands separated by the |
symbol in which the output of a command is the input of the next command. In this way it is possible to
create complex data processing by composing several simple operations.
| Basics | 47
The following example is a query that lists all nodes ordered by received_bytes (in descending order):
For a reference of the graphical user interface or how you can create/edit queries go to the Query -
User interface reference
For a full reference of commands, data sources, and examples of the query language go to the Query -
complete reference
Protocol
In the Environment a link can communicate with one or more protocols. A protocol can be recognized
by the system simply by the transport layer and the port or by a deep inspection of its application layer
packets.
Trace
A trace is a sequence of network packets that have been processed so far and can be downloaded in
a PCAP file for subsequent analysis.
The Nozomi Networks Solution shows the button with which you can download the available
traces. A trace can be generated by an alert or by issuing a trace request manually clicking on ; you
can find this icon in all the sections that are related to the trace feature. However, in order to issue a
trace, non admin users need the Trace permission.
For a detailed explanation of the traces configuration go to Configuring trace on page 268.
A continuous trace is a collection of network packets that are kept for future download. Such
collections can be requested through the GUI. The Nozomi Networks Solution will keep registering a
continuous trace from the moment it has been requested until the request is paused.
For a detailed explanation of the continuous traces go to Continuous Traces on page 129.
Some examples:
Figure 11: From the Links section click on the bolt icon to issue a manual trace request
| Basics | 49
Figure 12: It is possible to send a trace request also from the graph view
Charts
Charts are often used in the Nozomi Networks Solution to show different kinds of information, from
network traffic to the history of values of a variable. Here is a brief description of the two main chart
controls.
Area charts
History charts
| Basics | 50
A Buttons for detaching the chart, exporting the data to an Excel or CSV file
B The time window control
C The unit of measure
D The navigator: it is possible to interact with it using the mouse. Drag it to
change the visibility of the time window, enlarge or shrink it to change the
width of the time window
Tables
Tables are used in many sections of the Nozomi Networks Solution, for example for listing nodes or
links. Tables offer different functionalities to the user, here is a brief introduction.
A Filtering control: while typing in it the rows in the table will be updated
according to the filter
B Sorting control: clicking on it will sort the table, clicking on the same heading
twice will change the sorting direction. Press the CTRL key while clicking to
activate multiple column sorting
C The reset buttons are separated in two sections and can independently
remove the filters and the sorting from the table
D Clicking this button will update the data in the table, click on Live to
periodically update the table content
E Use this menu to hide or show the columns. In order to save space, certain
tables have hidden columns by default
5
User Interface Reference
Topics: In this chapter we will describe every aspect of the graphical user
interface. For each view of the GUI we attached a screenshot with a
• Supported Web Browsers reference explaining the meaning and the behavior of each interface
• Navigation header control.
• Dashboard
• Alerts
• Asset View
• Network View
• Process View
• Queries
• Reports
• Time Machine
• Vulnerabilities
• Settings
• System
• Continuous Traces
| User Interface Reference | 54
Navigation header
The navigation bar is always present on the top of the Nozomi Networks Solution user interface. It
enables the user to navigate through the pages and it also displays some useful information about the
status of the system.
A The sections of the Nozomi Networks Solution; by clicking on them you will
change the page
B The user menu; by clicking on it you can logout or access the Other actions
page
C The sub navigation bar with:
• the collapse button: click on it to reduce the height of the navigation bar
• the monitoring mode button: click on it to disable the auto logout
• the time machine status: it is either LIVE, if the displayed data are
realtime, or a timestamp when a time machine snapshot is loaded
• the hostname
• the N2OS version
• the NTP offset
• disk statistics, i.e., the used space and the available space
• the license information
• the language switcher
Dashboard
The Nozomi Networks Solution offers multiple dashboards that are fully configurable. If you want to
configure them, go to Dashboard Configuration on page 56.
On top of all dashboards there are some useful controls:
• on the left, a time selector component allows you to choose the time window for the dashboard
data. Notice that all widgets are influenced by the time selector,
• on the right, a dropdown menu and a button with the wrench icon allow you, respectively, to choose
the dashboard that you want to see and to go directly to the dashboard configuration page.
Environment information A high level view of what the Nozomi Networks Solution saw in
your network, click on a section (except Protocols) for further
details
Total throughput A live chart of the traffic volume.
Assets Overview Assets divided in levels as per IEC 62443
Alerts flow over time Alerts risk charted over time
Situational awareness Gives you a list of evidences, ordered by severity
Latest alerts Latest alerts as they are raised
Failed assertions A list of your failed assertions
Note: You can see more details about a section by clicking the button (where available).
| User Interface Reference | 56
Dashboard Configuration
Go to Administration > Dashboards and choose the widgets that you want in your dashboard
along with their position and dimensions.
Note: Only allowed users can customize the dashboard.
Note: The first time that you customize your dashboard, you will not find any dashboard defined. In the
Dashboard section you will find just the built-in templates.
Main actions
Here you can find the main actions that you can execute on dashboards.
Import The Import button allows you to choose a dashboard configuration previously
saved in your computer.
New Dashboard... After clicking on the New Dashboard... button you can choose a built-in
template to start from.
Dashboard actions
Here you can find the main actions that you can execute on the dashboard configuration.
+ Add row With + Add row you can add a new row to the dashboard.
History Using this feature you can restore a previously saved version of the dashboard
that you are editing.
Delete Remove the dashboard from your dashboard list.
| User Interface Reference | 57
Edit By clicking on the Edit button you can rename the dashboard configuration and
customize the dashboard visibility.
Discard When you make some changes to the configuration and you want to discard it,
press Discard.
Clone After choosing a dashboard configuration, click on the Clone button to create a
new dashboard as a copy of the chosen one.
Export This button allows you to save the dashboard configuration to your local
computer.
Save After a change in the configuration, the Save button starts to blink and when
you click on it the new configuration is saved. As mentioned above, if you are an
admin user you will save the new default configuration for all the other users.
Row actions
In this section are explained all the actions that you can perform on a row in the dashboard
configuration page.
+ Add widget With + Add widget you can add a new widget to the row. By default it is added
after the widgets already present in the row.
Move row up/down By clicking on these buttons, you are able to move the row up or down in the
dashboard.
Delete row If you want to completely remove the row from the dashboard, you have to click
on the delete button.
Widget actions
When you want to change the aspect that a widget has in the dashboard, you can follow the
instructions below.
| User Interface Reference | 58
Increase/decrease width With these buttons you can increase or decrease the width of the
widget.
Increase/decrease height With these buttons you can increase or decrease the height of the
widget.
Adjust height in row By clicking on this button, the height of all the other widgets in the same
row is set to the current widget's height.
Move widget before/after With these buttons you can move the widget in the row, one step left or
one step right.
Move widget up/down By clicking on these buttons, you can move the widget in the previous
or in the next row.
Delete widget If you want to completely remove the widget from the row, you have to
click on the delete button.
| User Interface Reference | 59
Alerts
Alerts are listed in the Alerts table. The Alerts comes in two fashions: standard and expert. It is possible
to switch between the two versions by means of the buttons present at the top of the page, as shown in
the figure below.
Non admin users can access this section only if at least one of the groups they belong to has the Alerts
permission enabled. However, only admin users can perform actions on alerts (i.e. acknowledgment,
removal).
A The time span control enables the user to view alerts in a defined time
range.
B By selecting a grouping field the table will show all the alerts aggregated by
the selected field, for an example see the sample picture
C Clicking on the alert id will show a popup with more details.
D Clicking on the gear icon will open the learning page
| User Interface Reference | 60
Figure 20: The Alerts table grouped by protocol and sorted by risk
The alert popup gives a detailed overview of the alert, including the information about the involved
nodes, the audit of the operations applied on the alert and the relevance of the alert within the
MITRE ATT&CK knowledge bases. Guardian supports MITRE ATT&CK for ICS and MITRE ATT&CK
Enterprise at version 8.0.
Asset View
In this page are listed all the Assets using a table. By clicking on an Asset link it is possible to view a
popup with some additional details about the asset.
| User Interface Reference | 61
Network View
Network Nodes
With this popup you can set node properties. Remove or re-assign the Device ID here if the
automatically-assigned Device ID should be overwritten. Use the drop down menu to select an Asset
and assign the node to it. The Device ID referring to that specific Asset is used.
Figure 26: Configuration popup of the node
Figure 27: Opens a popup with only the alerts associated with the current node
Figure 30: By clicking this icon you can manage the learning of the node
Figure 31: Opens a popup that allows you to navigate to different sections
Figure 32: Opens a popup that allows you to add an additional node to a
plan with an optionally different configuration than the plan's original one
For more information please see the adding additional nodes section.
In this page are listed all the Nodes using a table. By clicking on an IP link it is possible to view a popup
with some additional details about the node.
| User Interface Reference | 64
Network Links
Figure 36: Opens a popup with only the alerts associated with the current link
Figure 37: Opens a popup with the history of TCP events (Available only for TCP links)
| User Interface Reference | 65
Figure 39: By clicking this icon you can manage the learning
of the link (its color depends on the learning status of the link)
Link Events
Track Availability
The "Track Availability" feature allows for an accurate computation of the availability. It enables the
monitoring of the activity on the link at regular intervals, generating extra UP and DOWN events
depending on the detected activity on both sides of the link during the last interval.
To specify the interval for a Link, go to the Links table (or any other section where the Link Actions are
displayed) and click on the button, in order to open the following form.
It is advisable to choose a value that is greater than then the expected link polling time, in order to
avoid too frequent checks that are likely to produce spurious DOWN events.
Note: link_events generation is disabled by default, to enable it use the configuration rule described in
Configuring links
Network Sessions
In this page are listed all the Sessions using a table. By clicking on the From or To node ids additional
details about the involved Nodes are displayed. The buttons in the Actions column enable the user
to ask or to see the traces and to navigate through the UI. In the other columns there are fine-grained
information about each session, like the source and destination ports, the number of transferred
packets or bytes, etc.
Network Graph
| User Interface Reference | 67
The network graph page gives a visual overview of the network. In the graph every vertex can
represent a single network node or an ensemble of nodes, while every edge represents one or multiple
links between nodes or nodes ensembles. Edges and vertexes are annotated to give information about
the identification of the node, the protocols used in the communications between two nodes, and more.
The position of the nodes in the graph is determined by either a specific layout or a dynamic automatic
adjustment algorithm that looks for minimal overlap and best readability of the items. An overview
picture of the network graph is given below.
Figure 43: The Main Network Graph with the auxiliary zone/topology
graph window on the left and the information pane on the right
The nature of data represented in the graph in controlled by the graph layout menu, that permits
to select the type of graph and how the nodes are assembled together in the graph. The detailed
description of the options available in the latyout menu is given below.
The user can also control the graph by zooming in and out, centering in specific zones, and get
information about specific elements by clicking on them with the mouse as described in the graph
control paragraph.
On the left and the right of the network graph two ausiliary windows are available to provide additional
information and control.
• Information pane (right). It contains additional information concerning the node or link selected in
the network graph (see graph control)
• Zone/Topology graph (left). It contains the network visualisation in terms of zone or topology. A
detailed description of the feature is provided in the Zone/Topology graph chapter
The contents of the graph can be filtered using different criteria in order to obtain a clearer
representation, or to evidence specific aspects. A detailed description of the controls available is
provided in the table and figure given below:
A Buttons to increase (left) or decrease (right) the node icons size. It also
affects the label size
B The button to toggle the information pane
C The button to toggle the dynamic adjustment motion of the items
D An evidenced node. When the mouse is placed over a node the size of the
node icon is increased as well as the label
E A link
F The button to toggle the topology pane
G The button to toggle the zone pane
H When present, this icon indicates that graph filtering is active. The filter can
be one of the filters in the filter bar (see R and S below), or it can be the
zone/topology filter activated when user clicks on a Link/Node in the zone/
topology graphs
I The button that exports a PDF report containing the graph. Notice that the
graph is exported as it is currently shown on the page.
J The ? button shows the legend for link and nodes. The content of the legend
is aware of the selected perspectives.
K The button to reset all the customizations and reload the data
L The button reload the data keeping the current customizations. If the live
sliding button is put on "live" the graph is automatically periodically updated,
otherwise just a single update is performed when the use request it
M The button to filter by activity time
N The magic wand button will open a wizard to help the user to filter the graph
and view only the desired information. It contains some solutions to reduce
the amount of visualised data for big graphs.
O This button permits to configure the nodes visualisation options as described
below.
P The button permits to configure the links visualisation options as described
below.
Q The button that allows to select a graph layout.
R The button lets you select the filter types that are available in the main
network graph window. The selected filters are shown at the center top of
the graph window (S). By default no filter is selected
| User Interface Reference | 69
S This example shows the filters enabled in R. Once a filter is enabled, and
a value is inserted in the filter, the graph is automatically updated. If more
than one filter is enabled then a logical and criteria is applied; only the nodes
that satisfy all the specified filters are shown. Note that if a node passes the
filters, then all the nodes directly connected to it are shown in the graph. For
example if a specific IP filter is used, then the specified node is shown along
with all the nodes connected to it.
Layout options
The layout define the way in which the nodes and links are shown in the graph.
Purdue model Arrange all the graph in rows and places the nodes in separate rows
according to their level. This allows to distinguish the different levels and
isolate potential problems due to communications that cross two or more
level boundaries.
Standard It is the default layout and the kind of visualization depends on Group_by
property:
• Group_by not defined: All the nodes and links are shown
• Group_by defined: All the nodes belonging to the same groups are
collpsed into a single node
Grouped The nodes are grouped according to the criteria defined in Group_by, and
the graph is visualized as following
• Group_by not defined: All the nodes and links are shown
• Group_by defined: All the nodes belonging to the same group are
shown and are placed inside a circle that represent the group, links
between nodes belonging to the same group are shown, while links
between nodes of different groups are replaced by links between groups
represented as lines that connects the circles
| User Interface Reference | 70
Clustered The nodes are clustered according to different criteria as described below.
Once some nodes are clustered together, a single circle is shown that
represent the cluster of nodes, then when the user zoom-in the circle is
expanded and the internal nodes are shown. Possibly a cluster can contain
other subclusters and so no. This layout can be useful when visualizing
large graphs since permits to have an overall view of the graph and at the
same time visualize the details just of the part of interest without cluttering
the visualization with a mess of data that is not of interest. The way in which
the nodes are clustered depends on the value defined by Group_by:
• Group_by not defined: The nodes are clustered based on their
connections. Nodes with a large number of links tends to act as cluster
center and have neighbourg nodes assigned in the same cluster
• Group_by defined: At the highest level a cluster is created for each
group, then inside the each high level cluster some subclusters are
possibly created clustering around nodes with an high number of links.
For example if Group_by is equal to "Zones", then a cluster is created
for each zone, and inside each zone other subclusters are possibly
created around nodes with an high number of links
Group by Define the group that can possibly be used for the Standard, Grouped,
and Clustered layouts. Nodes with the chosen property (i.e. zone, subnet,
etc) are assigned to the same group, then the way in which the group is
displayed depends on the layout chosen as described above.
Figure 45: The Environment Graph with the zones pane opened with
the Group_by=Zones, Layout = Grouped and zone perspective.
| User Interface Reference | 71
Figure 46: The Environment Graph with the zones and info pane
opened with the Group_by=Zones, Layout = Clustered. The
info pane contains information regarding the Undefined zone
Graph control
The user can move and zoom the graph using the mouse, and it is also possible to increase/decrease
the size of the icons and the text to have the better readability.
Move To move the graph click somewhere, not on a node, and start dragging
Zoom (mode 1) With the mouse inside the window, turn the mouse wheel up and down
to zoom in and out (scrolling). The zoom will be centered on the mouse
position
Zoom (mode 2) Drag in vertical direction while keeping pressed the 'z' key. The zoom will be
centered on the position where started the mouse dragging
Icon and Text Without chaging the zoom it is possible to increase/decrease the size of the
size icons and labels using the buttons identified with letter C in the figure below
Other mouse actions are also available that permits to perform additional actions.
Single click Single click on a node or a link. Fill the info pane with information
regarding the node or link selected. The kind of information displayed
depends on the nature of the node or link selected (nodes, cluster, ...)
Double click Double click on a node. Show a new window with extenden information
regarding the node or link clicked. The action can be perfromed only on
nodes not on clusters or links
Mouse over Mouse over a node or a link. Evidence the node or link
Mouse down Single click down on a node or a link without releasing the mouse
button. Evidence the selected node or link and the elements directly
connected to it
Figure 47: The Environment Graph with the zones pane opened and the
zones perspective active to highlight the zone of origin of each node.
| User Interface Reference | 74
The zones pane offers the ability to filter the graph by clicking on a zone or on a link between two
zones. The zones graph also has a legend and shares some of the nodes and links options. Clicking
on a node or link in the zone pane will show some additional information about the zone or the links
between the zones. See the basic configuration rules to customize Zones.
Figure 48: The Environment Graph with the transferred bytes node
perspective highlighting the high traffic usage of the consumer nodes
Show broadcast Broadcast addresses are not actual network nodes in that no asset is
bound to a broadcast address. They are used to represent communications
performed by a node towards an entire subnet. Removing broadcast nodes
reduces the complexity of a graph.
Only with Unconfirmed links can be hidden easily to reduce the complexity of an
confirmed data entangled graph.
Only confirmed Unconfirmed nodes can be hidden to reduce the size of a large graph.
nodes
Exclude tangled Nodes whose connections cause the node to be too complex can be
nodes removed to improve the readability of the graph.
Protocols Nodes and edges can be filtered so to show only those items participating
in communications involing one of the selected protocols. By clicking on
"SCADA", all SCADA protocols are selected.
| User Interface Reference | 76
Traffic
The Traffic tab in the Environment > Network View page shows some useful charts about
throughput, protocols and opened TCP connections.
Process View
The process view tab can be accessed only by users that have the Process view permission.
Process Variables
Figure 50: The process view table, showing a large number of variables
In the variables list there are many details about each variable, here is an explanation for each field:
Actions By clicking on Variable details you will open the variable details page. A
click on Add to favourites will add the variable to favourites variable list.
Host The IP address of the producer which variable belongs to
Host label The label of the variable host
RTU ID An identifier of the variable container, for an explanation of the format see
Protocol on page 47
Name The name assigned to the variable, for an explanation on how this is
calculated see Protocol on page 47
Label A configurable description, for instructions see Configuring variables on
page 257
| User Interface Reference | 78
Flow anomaly in It is true if the system has detected that an anomaly is in progress, it is false
progress otherwise. When an anomaly is in progress a Resolve button appear, by
clicking on it the user can tell the system that the anomaly has ended, if the
anomaly continue another alert is raised.
Variable details
To see the details of a variable, you can click on the magnifying glass icon beside the variable.
In the Process Variable details you can see all the info of the variable and its value history in a chart
and in a table (if it is configured as monitored, see Configuring variables on page 257).
| User Interface Reference | 79
With the buttons above the chart, you can open the chart in another window or export the data in Excel
or CSV format.
By default, the chart shows the variable value history only for a specific period of time. Clicking on the
Live update checkbox makes the chart update in real-time.
Favorite variables
To add a variable to the favorite variables list, you can click on the star icon beside the variable.
Here you can see a chosen group of variables, those variables can also have their values plotted on
the same chart to make a comparison easier.
| User Interface Reference | 80
Figure 52: The process view table with favourites variables on top
The global variables extraction level applies to all protocols for which an extraction level has not been
specified. The possible values that can be set are the following:
• disabled: variable are not extracted
• enabled: variables are extracted
• advanced: variables are extracted exactly as at the enabled level, moreover some protocols will
also employ advanced heuristics techniques to extract additional variables
Protocol specific settings are shown in a dedicated table containing all protocols for which at least one
variable has been extracted. They prevail over global settings except for when variables are globally
disabled; in that case variables will simply not be extracted.
The variables extraction level can be changed for any given protocol by clicking on the relative edit
icon under the ACTIONS column. In addition to the levels that can be set globally there is also a new
value called global. This is the default level for all protocols and it indicates that variables extraction
settings are ihnerited from the global settings.
| User Interface Reference | 81
Note that:
• variables extraction is globally enabled by default
• the advanced level can be set only on protocols that support it
| User Interface Reference | 82
Queries
All the data sources of the Nozomi Networks Solution can be queried using N2QL (Nozomi Networks
Query Language) from the query page (Analysis > Queries). In that page, you can also see all the
queries that are already saved in the running installation.
You can choose between Standard (currently offered as beta feature) and Expert, the first allows for
an easier experience, useful if you want to quickly have a look at your data, the second allows for more
complex queries but requires more expertise.
Go to Queries on page 175 to get a complete reference of query commands and data sources.
Query builder
The Query builder enables the user to easily create and execute queries on the observed system. To
do so just click through the different options.
While you build your query the available options change to reflect your choices, guiding you through
the process.
| User Interface Reference | 83
Query Editor
The Query Editor enables the user to execute queries on the observed system. To execute a query just
type the query text in the field and press the enter key on the keyboard.
Figure 58: The Query Editor. Some sample queries are displayed
at the beginning, clicking on them will trigger the execution
After the execution, the result will be displayed like in the figure below. If the user has enough
privileges (i.e. it belongs to a group with admin privileges), by clicking on the floppy icon on the right,
the query will be saved and displayed in the Saved Queries section, otherwise the button is disabled.
To save a query, you must specify a description and a group. The query results can be exported
by clicking on the Export button, and by choosing between the Excel or the CSV format. The
corresponding file will be produced in background (to facilitate the production of queries with large
amount of data) and it can be retrieved through the Exports List submenu, once ready. When an
export is downloaded it is automatically removed from the filesystem.
Saved Queries
When a query is saved, it will be displayed in the Saved Queries section. Here, by using the group
selector, it is possible to change the current group and to restrict the view to the queries of the chosen
group.
Query groups, a simple but powerful method to organize the queries, can be created, renamed and
deleted only by admin users. When a group is deleted, all the queries contained in it will be eliminated.
By clicking on the pen icon, it is possible to change the description and/or the group of a query. By
clicking on the trash icon, the saved query will be deleted. As for the saving actions, the user requires
admin privileges in order to perform such operations.
Reports
On the report page (Analysis > Reports), you can generate Custom Reports
Custom Reports are based on custom queries and layouts. You can define them using the Report
Management section.
Report Dashboard
The report dashboard shows a set useful information related to reports.
It is possible to check information about the percentage of disk occupied by reports, report
management statistics (like available layouts and widgets, custom reports and queries), the last
generated reports, the next scheduled reports occurences.
Report Management
Use the Report Management section to create or edit reports.
On the left you can find the list of created and saved reports, grouped under folders; the selected report
and its folder are highlighted. You can also perform some actions:
• Add a new folder, by clicking on the Add folder button. When you create a report folder, you
must specify a name.
| User Interface Reference | 86
Each row is split in two columns; you can fill columns by adding elements, tha can be widgets and,
if you have saved queries, queries. Each element can be removed by clicking on its trash button.
Depending on the element type, it can fill one or two column and you can change the width of the
element by clicking on its reduce/enlarge buttons. Some widgets have additional options (e.g. Style
for [custom text]).
Report Generation
In the Report Management section you'll find a Generate Report button. This button lets you
generate:
• On-demand reports: generated immediately.
• Scheduled reports: generated cyclically, based on a custom recurrence. This feature is available
only for users granted the Allow editor permission. Scheduled reports can be managed through
the Scheduled Reports section.
You can also choose the type of report you want to generate:
• PDF: default selection. This is exactly what you see in the Report Management.
• CSV: zipped folder with one csv for each widget that can be converted in this format.
• Excel: single excel file with one sheet for each widget that can be converted in this format and a
legend in the last one.
| User Interface Reference | 88
After report files are generated (either on-demand or scheduled), users can download them from the
Generated Reports section. When scheduling reports, you can optionally send the report files by email.
Generated Reports
After creation, both on-demand and scheduled generated reports are available in the Generated
Reports section as files.
In this section you can browse the created reports, download them, and delete them if necessary.
You can also configure report retention by clicking the Configure button. You can set the number of
days that a scheduled report remains available after it's generated, and set the maximum number of
reports that can be stored. The default values are 90 days and 500 stored reports.
Note: If the appliance runs low on disk space, the oldest reports are automatically deleted to make
room for the newest ones.
| User Interface Reference | 89
Scheduled Reports
The Scheduled Reports section displays all scheduled reports after they are set up.
In this section, you can browse the scheduled reports, edit them, and delete them if necessary. Click
the Edit button to see the available schedule settings. Edit and save these settings in order to update
the selected schedule.
Report Settings
Note: Using a logo of a different size than suggested by the tooltip can break the layout of generated
reports by introducing overlapping page headers.
| User Interface Reference | 90
Note: When enabled, for each scheduled report, an email will be sent starting from the next
scheduled recurrence.
| User Interface Reference | 91
Time Machine
With the Time Machine the user can load a previously saved state (called snapshot) and go back in
time, analysing the data in the Nozomi Networks Solution from a past situation. It's possible to load a
single snapshot and use the platform as usual or load two snapshots and make a comparison in an
user interface that highlights what's changed.
The snapshots periodically taken by the Nozomi Networks Solution are displayed in this table.
Snapshots can be used to go back in time to analyze the Environment status at a certain point in the
past. Moreover, they can be compared by means of a diff.
To load a snapshot
Click on the Load snapshot button to load a snapshot and analyze it like if you were in the past. The
user interface will become gray to highlight that you are watching a static snapshot.
Click one of the forward buttons to return to the present and watch the Environment in real time.
To request a diff
To request a diff from the snapshots list you must select two snapshots by clicking on the plus button
shown in the figure.
Figure 78: Plus button: click on it to include the snapshot in the diff
You can exclude the frequently changing fields from the diff result by selecting the corresponding
checkboxs. The fields like the one representing a time will not influence the result anymore.
After the snapshots are selected just click on the diff button, the request will be processed and the
differences between the two snapshots will be shown.
Figure 80: The button to execute the diff between two snapshots
To configure retention, snapshot interval and event-based snapshot see Configuring Time Machine on
page 270.
Sometimes it is more convenient to request a snapshots diff starting from an alert, this automatic
feature will use the previous and the next snapshots according to the alert time.
To make such a request, just open the alert details popup by clicking on an alert ID in the alerts table
and click on the time machine diff button; you will be redirected to the diff result page.
| User Interface Reference | 93
Figure 82: Diff result, click on Show changes to see the differences
In the diff result page there are four sections: Nodes, Links, Variables and Graph. In the Nodes,
Links and Variables sections there are three subsections: Added, Removed, Changed. By navigating
these sections and subsections you can observe how the Environment changed between the two
snapshots. You can see, for example, if a node has been added or if a variable value has changed. In
the next image there is a popup with the detailed changes for a single node.
In addition to the tabular representation there is also a graph view of changes. Thanks to the graph
view and the use of colors, you can quickly spot which nodes or links have been added, removed or
have some changes. An item that has been added is green, one that has been removed is red and,
finally, one that has changes is blue. Details are shown on the right side of the graph by clicking on a
node or a link with changes.
Vulnerabilities
This page lists all the vulnerabilities in a table. The user can filter it to show only the most likely
vulnerabilities; the likelihood threshold can be configured as shown in the picture below.
By clicking on a CVE link it is possible to view a popup with some additional details about the
vulnerability.
Settings
Figure 88: The Command Line Interface executing the license_info command
Useful commands
Keyboard shortcuts
Threat Intelligence
The Threat Intelligence section allows you to enrich the Nozomi Networks Solution with
additional information to improve the detection of malware and anomalies.
The Threat Intelligence section allows you to manage Packet rules, Yara rules, STIX
indicators and Vulnerabilities.
Packet rules are executed on every packet. They raise an alert of type SIGN:PACKET-RULE if a
match is found. For an explanation of the packet rules format see Packet rules on page 157.
Yara rules are executed on every file transferred over the network by protocols like HTTP or SMB.
An alert of type SIGN:MALWARE-DETECTED is raised when a match is found. Yara rules conform to
the specifications found at YaraRules.
STIX indicators contain informations about malicious IP addresses, malware signatures or
malicious DNS domains. This information is used to enrich existing alerts, or to raise new ones.
Vulnerabilities are assigned to each node and depend on the installed software we identify in the
traffic. The Nozomi Networks Solution leverages CVE, a dictionary that provides definitions for publicly
disclosed cybersecurity vulnerabilities and exposures.
Threat Intelligence already shipped with the Nozomi Networks Solution can be enabled or disabled but
not modified or deleted. New Threat Intelligence content can always be added, edited and deleted by
the user.
| User Interface Reference | 97
An additional license, named "Threat Intelligence", is required in order to enable the service. The
Threat Intelligence license can be added or modified using the Set new license button in the same
way as it was done for the Base license. For more information please see the corresponding section in
the license page.
Then you can configure the feature by clicking on the Update service configuration button.
You can enable Threat Intelligence to received updates automatically. As the note says, make sure
that you can reach https://nozomi-contents.s3.amazonaws.com from your Guardian / CMC, otherwise
the Nozomi Networks Solution will not be able to fetch any Threat Intelligence update; once you are
done, check that the connection can be established by clicking on the "Check connection" button.
Figure 92: Update service connection configuration when connected to Vantage or a CMC
In this scenario your Threat Intelligence will be managed by Vantage or the CMC to which you are
connected. The Nozomi Networks Solution will synchronize them. If this is your case make sure you
have Threat Intelligence enabled in Vantage or on your CMC.
In this scenario your Threat Intelligence will be downloaded through the configured proxy server which
requires authentication. If your Threat Intelligence updates are managed by the CMC the proxy server
will not be used.
Manual Update
If you do not have the possibility to connect your appliance or CMC to the internet you can add
brand new Threat Intelligence updates through manual update. Ask Support for the manual update
package and drop it in the area shown in the image below. After the update, the new contents will be
propagated to the attached appliances or CMC. Should you want to switch to the Threat Intelligence
online updates you have to enable the "Nozomi Networks Update Service" and click "Save".
| User Interface Reference | 99
Firewall integrations
From this section it is possible to configure several integrations with firewalls offered by Guardian:
• Fortinet FortiGate V6 on page 101
• Check Point Gateway on page 102
• Palo Alto Networks V8 on page 102
• Palo Alto Networks V9 on page 103
• Cisco ASA on page 104
• Cisco FTD on page 104
• Cisco ISE on page 104
• Trend Micro ODC on page 106
In all these sections the provided user must have administrative privileges.
When the integration is working some policies will be produced and inserted in the firewall, these
policies will be displayed in the policies section.
Fortinet FortiGate V6
As a prerequisite to configure the integration with FortiGate V6 you need to have a REST API access
token, which can be generated directly from the firewall admin UI.
The access token needs to have permissions to insert, read and delete entities as addresses,
addrgroups, routes, sessions and policies. Additionally, the Guardian address subnet needs to be
added to the trusted hosts.
The vdom field is optional. In case you need to specify multiple vdoms, you can use ',' as a separator,
e.g. vdom1,vdom2.
If necessary, tune the integration's behavior using the Options section of the configuration dialog. Each
option is described beneath its checkbox.
This integration uses the REST API, which is supported by FortiOS version 6 or higher.
| User Interface Reference | 102
If necessary, tune the integration's behavior using the Options section of the configuration dialog. Each
option is described beneath its checkbox.
Figure 99: The Guardian policies inserted in the Check Point Gateway
If necessary, tune the integration's behavior using the Options section of the configuration dialog. Each
option is described beneath its checkbox.
| User Interface Reference | 103
Figure 101: The Guardian policies inserted in the Palo Alto v8 Firewall
If necessary, tune the integration's behavior using the Options section of the configuration dialog. Each
option is described beneath its checkbox.
Figure 103: The Guardian policies inserted in the Palo Alto v9 Firewall
| User Interface Reference | 104
Cisco ASA
Cisco FTD
Permit to kill sessions.
Cisco ISE
Figure 107: The Cisco ISE configuration using an ISE internal CA certificate
If you are using a third party certificate, you need to upload the external CA certificate as well.
Figure 108: The Cisco ISE configuration using a third part certificate
It is also possible to authenticate via username and password. If you want to use an existing client, you
have to specify the password.
Otherwise you can create a new client directly from the Guardian integration configuration window
by using the Create client button once you have specified the new client name. Remember that
you need to approve the new client from the Cisco ISE pxGrid Services window. The password
returned by Cisco ISE will not be displayed, but will be kept in the Guardian configuration.
| User Interface Reference | 106
If necessary, tune the integration's behavior using the Options section of the configuration dialog. Each
option is described beneath its checkbox.
Troubleshooting configuration
The UI performs fields validations when the Save and the Pull policies buttons are pressed. In
case of missing fields, a warning message will be displayed. If there are any authentication errors, e.g.
wrong password or certificate mismatch, the UI will display a message detailing the reason of the error.
For further details regarding errors you may experience you can also search for the 'Cisco ISE' string in
the log file /data/log/n2os/n2osjobs.log.
If necessary, tune the integration's behavior using the Options section of the configuration dialog. Each
option is described beneath its checkbox.
| User Interface Reference | 107
Data Integration
In this section (Administration > Data Integration) you can configure several endpoints.
Depending on configuration, each endpoint could receive Alerts or other items. You can learn more
about Nozomi’s integrations in the web UI: click How this integration works beneath the
Endpoint Configured as field in the New Endpoint dialog.
FireEye CloudCollector
Besides Alerts, with FireEye CloudCollector integration it is possible to send Health Logs, DNS Logs,
HTTP Logs and File transfer Logs.
ServiceNow
This integration allows you to forward incidents and assets information to a ServiceNow instance.
Using the options below, you can decide whether sending only new incidents or also historical ones.
Additionally, you can choose if assets already existing in ServiceNow need be updated with information
present in the appliance or if assets in ServiceNow will only be created if they do not exist there yet.
Click How this integration works to view additional details.
| User Interface Reference | 109
Tanium
This integration allows you to forward assets information to a Tanium instance. Click How this
integration works to view additional details.
SMTP forwarding
To send Reports, Alerts and/or Health Logs to an email address, you can configure an SMTP
forwarding endpoint. In this case, you are also able to filter on Alerts.
| User Interface Reference | 111
SNMP Trap
Use this kind of integration to send Alerts through an SNMP Trap.
Syslog Forwarder
Use this kind of integration to send the captured Syslog events to a Syslog endpoint.
It is useful to passively capture logs and forward them to a SIEM.
Note: In order to enable the Syslog events capture see Enable Syslog capture feature on page 237.
Custom JSON
This type of integration sends all the Alerts to a specific URI using the JSON format.
Custom CSV
This type of integration sends the results of the specified query to a specific URI using the CSV format.
| User Interface Reference | 112
CheckPoint IoT
This integration allows you to forward assets information and nodes blocking policies to an instance of
CheckPoint Smart Console. Click How this integration works to view additional details. This
integration is available only on CMCs.
Kafka
The Kafka integration allows you to send the results of custom queries in JSON format to existing
topics of a Kafka cluster. Click How this integration works to view additional details.
| User Interface Reference | 113
| User Interface Reference | 114
Zone configurations
In this section (Administration > Zone configurations) network zones can be added and
configured.
Furthermore, new custom zones may be added. The zone must be given a name that cannot contain
spaces and it must include at least a network segment. All nodes pertaining to one of the segments
of a zone inherit the properties of that zone. The following optional configuration settings are also
available for every node:
• IP network segments: these can be specified in CIDR notation (e.g. 192.168.2.0/24), or by
means of a range that includes both ends (e.g. 192.168.3.0-192.68.3.255). Segments can be
concatenated by commas.
• MAC address ranges: both ends of the range are included (e.g.
08:14:27:00:00:00-08:14:27:ff:ff:ff)
• MAC address matching fallback: one of the necessary conditions to consider a node to be part
of zone is that its node ID must match the zone network segments. There are cases where this
matching strategy is not enough, for example we may want to have nodes with an IP as node
ID match a zone defined with MAC address ranges. In those cases we can enable this fallback
matching stategy in order to match against the MAC address of the node whenever the node IP
does not match any segment.
• Matching VLAN ID: only nodes belonging to such VLAN are shown. For example, consider a zone
configured as 192.168.4.0/24, with vlan id set to 5, and two nodes within such network: 192.168.4.2
and 192.168.4.3, with only the former belonging to such VLAN. When filtering the view with this
zone, only node 192.168.4.2 will be shown.
• Assigned VLAN ID: Nodes belonging to this zone will be assigned this VLAN ID.
• Level: The level defines the position of the nodes pertaining to the given zone within the Purdue
model. Once a level has been set for a zone, all nodes included in that zone will be assigned the
same level, unless a per-node configuration has been specified as well. This means that, if two or
more zones overlap, a node belonging to all of them will inherit the level of the most restrictive zone.
• Nodes Ownership: the ownership of the nodes belonging to the given zone. Once the ownership
has been set for a zone, all nodes included in that zone inherit such ownership, overwriting the
single nodes' ownership.
• Detection approach; can be used to override the global settings from the Security Control Panel.
• Learning mode; can be used to override the global settings from the Security Control Panel.
• Security profile; can be used to override the global settings from the Security Control Panel.
| User Interface Reference | 116
System
General
In the Administration > General page it is possible to change the hostname of the Appliance
and to specify a login banner. The login banner is optional and, when set, it is shown in the login page
and at the begingging of all SSH connections.
Network interfaces
Actions With the configuration button, you are able to define/modify the NAT rule to
be applied to the current interface.
Interface The interface name
Enabled It is true if the interface is enabled to sniff traffic.
Is mirror It is true if the interface is likely receiving mirror traffic and not only
broadcast.
Mgmt filter When on the traffic of the appliance is filtered out. It is on by default. To
change the value see the specific configuration rule in Basic configuration
rules on page 233.
BPF filter The BPF filter applied to the sniffed traffic.
NAT The NAT rule applied to the current interface.
Denylist enabled It is true if the denylist is configured and enabled for the current interface.
Denylist file The denylist file that is used by the current interface. If the file contains a
row starting with #DESCRIPTION:, the description will be shown here. E.g.
In this form you can set the NAT configuration and the BPF filter.
| User Interface Reference | 119
It is possible to disable the network interface in order to stop it from sniffing traffic.
In the NAT part you may configure the original subnet, the destination subnet and the CIDR mask for
the NAT rule.
In the BPF filter part you may configure the filter to apply to this interface. There are two ways to
configure the filter, via a visual editor or manually. Click the "BPF Filter editor" to open the visual editor.
Here, you can edit the most common filters.
| User Interface Reference | 120
More complex filters can be inserted manually in the input box by clicking the toggle.
In the Denylist part, you can upload a text file containing a denylist, i.e., a list of IP addresses or
wildcards that will not be processed by the Guardian. The effect is similar to that of the BPF filter,
however a denylist can handle tens of thousands of IP addresses, numbers that are beyond the
capability of the BPF filter.
A denylist must contain one entry per line: a dash (-) followed by a space and an IP address (wildcards
are allowed).
For example:
- * The first line is invalid, as it would reject all traffic: invalid lines in a matchlist
are ignored. The last line is simply redundant.
- 192.168.2.*
- 192.168.2.1
| User Interface Reference | 121
Upload PCAPs
In the Administration > Upload PCAPs page you can play a PCAP file into Guardian, the
appliance ingests the traffic as if it came through the network.
On top, there are flags that you can use to customize the behaviour of the upload/play action.
Use PCAP timestamps Check this box if you want to use the time captured in
the PCAP file. Otherwise, the current time is used.
Delete data before play Check this option if you want to delete all data in the
appliance before running the play action. When multiple
PCAPs are played, deletion is applied only before
running the first PCAP.
Auto play PCAP after upload With this flag enabled, the PCAP is played immediately
after the upload.
On every single PCAP file uploaded there are some available actions as shown below.
Select PCAP Select the PCAPs to be played using the checkboxes. Multiple
PCAPs will be played one after the other in the order they are
selected (as indicated by the numbers on the left of the checked
boxes).
Replay PCAP This action replays the corresponding PCAP (only that single
PCAP). In order to run all the selected PCAPs you need to click
on the three dots under the label ACTIONS and then click on 'Play
selected'.
Edit note If you need to share some note about the uploaded PCAP.
Delete from the list Erase the PCAP file from the Appliance, no Environment data will
be affected.
Alerts can be generated as result of the usage of a PCAP. If the played file is artificial, the alerts
timestamp may be not recognised by the system. In this case, a value containing InvalidDate will be
displayed in the time column of the alert table.
| User Interface Reference | 122
Note: By default, the Appliance has a retention of 10 PCAP files. To configure this value see
Configuring retention on page 271
Import
It is easy to bind the CSV fields to the Nozomi's one. If the CSV provides the headers in the first line
of the file be sure to flag the Has header option to view the column titles. To put the data in the right
items be sure to match the right Nozomi field with the imported data, for example if the CSV file that
has to be imported contains a list of IP addresses select the ip field in the Nozomi data field
dropdown. For each column in the CSV file to import it is possible to specify in which field the data has
to be imported by using the Nozomi field dropdown.
You can only match csv fields with Nozomi mac_address and ip fields. For matching fields binding is
disabled cause it use the matching info to bind the field. It's not possible to bind fields before choosing
a match.
Nozomi field type can only have values that match already existing types, either built-in or custom;
other values are not considered.
Nozomi field role can only have value:
• consumer
• producer
• engineering_station
• historian
• terminal
• web_server
• dns_server
• db_server
• time_server
• antivirus_server
• gateway
• local_node
other values are not considered.
Nozomi field zone must match with an existing zone to match, you can add a zone to make it match.
| User Interface Reference | 123
It is even possible to create and import custom fields (only for assets list).
To create a new field go to Administration > Data model and choose a name and a type for
your custom fields. After this operation the field will be available in the import page in the Nozomi
field binding dropdown.
• tablet
• mobile_device
• WAP
• IOT_device
• light_bridge
• firewall
• RTU
• teleprotection
• active_scanner
• radio_transmitter
• UPS
• data_concentrator
• gateway
• AVR
• DSL_modem
• IO_module
• media_converter
• NTP_appliance
• PDU
• power_line_carrier
• power_quality_meter
• protection_relay
• other
The CSV file must contain an header row with name and the list of type names in the following rows,
one per row. Each asset type is identified by its name; this implies that, during the import process, each
already present asset type name will be ignored and notified.
Health
All the sections described below are available for admin user. Additionally, access is granted to all
users with Health permission.
Performance
In this tab there are three charts showing, respectively, the CPU, RAM and disk usage over time.
Health Log
The health log reports the details of any kind of performance issues the appliance experiences. In
general, logs include information such as CPU, RAM, disk space, interface status, stale appliances, or
generic high load.
• “Appliance is stale”
• “Appliance is no longer stale”
• “LINK_UP_on_port_N”
• “LINK_DOWN_on_port_N”
• Log_disk_full-starting-emergency-shutdown
Audit
In the Administration > Audit page are listed all relevant actions made by users, starting from
Login/Logout action to all the configuration operations, such as learn/delete of objects in Environment.
All the recorded actions are related to the IP and the username of the user who made the action and,
as seen in the other Nozomi Networks Solution tables, you can easily filter and sort on this data.
Reset Data
In the Administration > Data page you can selectively reset several kinds of data used by the
Nozomi Networks Solution. Each option resets specific types of data, which are listed beneath each
checkbox in the web UI.
In addition to the usual buttons for selecting and deselecting checkboxes, All and None, there is also
a Only data button that selects everything but traces, queries, and assertions.
| User Interface Reference | 128
Continuous Traces
The continuous trace page can be accessed through <Username> > Other actions >
Continuous trace. Here is where the continuous traces can be requested, managed, inspected and
downloaded. For non admin users, in order to be able to reach this section and to perform any action, it
is mandatory to belong to a group with Trace permission.
Each trace is saved in PCAP files whose maximum size is 100MB. When a file has reached this
threshold, it is closed and a new file is created to keep collecting the network packets. The trace files
are saved in the hard disk of the appliance. Guardian makes sure 10% of the disk is always free. For
that reason, when the hard disk usage approaches the limit, the oldest PCAP files belonging to the
continuous traces are deleted.
Traces can be stopped and resumed. When a trace is resumed, a new PCAP file is created.
Continuous traces are persistable. When an appliance is restarted the continuous traces, their
collected data and their statuses are resumed automatically.
In order to request a trace, enter a BPF filter in the corresponding field and click the Start button.
From the moment the button is pressed, Guardian will begin collecting packets corresponding to the
provided filter. The filter can be left empty, in which case all packets will be collected by the requested
continuous trace.
The table at the bottom of the page shows the continuous traces that have been requested. The
following information is given:
Figure 135: Starts the trace collection (disabled if the trace is currently in progress)
Figure 136: Stops the trace collection (disabled if the trace is currently paused)
Figure 137: Destroy the trace and discard all data collected
Figure 138: Download an archive containing all the PCAP files belonging to the trace
Figure 139: List and download the PCAP files collected by the trace
Chapter
6
Security features
Topics: In this chapter we will explain how a tailored security shield can
be automatically built by Guardian and subsequently tuned to fit
• Security Control Panel specific needs.
• Security Configurations
Once the baselining has been performed, different kinds of Alerts
• Manage Network Learning will be raised when potentially dangerous conditions are met. There
• Alerts are four main categories of Alerts, each originating from different
• Custom Checks: Assertions engines within the product:
• Custom Checks: Specific 1. Protocol Validation: every packet monitored by Guardian will
Checks be checked against inherent anomalies with respect to the
• Alerts Dictionary specific transport and application protocol. This first step is
• Incidents Dictionary useful to easily detect buffer overflow attacks, denial of service
• Packet rules attacks and other kind of attacks that aim to stress non-resilient
software stacks. This engine is completely automatic, but can be
• Hybrid Threat Detection
eventually tuned as specified in Security Configurations on page
132.
2. Learned Behavior: the product incorporates the concept of
a learning phase. During the learning phase the product will
observe all network and application behavior, especially SCADA/
ICS commands between nodes. All nodes, connections,
commands and variables profiles will be monitored and analyzed
and, after the learning phase is closed, every relevant anomaly
will result in a new Alert. Details about this engine are described
in Learned Behavior.
3. Built-in Checks: known anomalies are also checked in real
time. Similarly to Protocol Validation, this engine is completely
automatic and works also when in Learning mode, but can be
eventually tuned as specified in Security Configurations on page
132.
4. Custom Checks: automatic checks such as the ones deriving
from Protocol Validation and Learned Behavior are powerful and
comprehensive, but sometimes something specific is needed.
Here comes Custom Checks, a category of custom Alerts
that can be raised by the product in specific conditions. Two
subfamilies of Custom Checks exist and are described in Custom
Checks: Assertions on page 144 and Custom Checks: Specific
Checks on page 146.
The powerful automatic autocorrelation of Guardian will generate
Incidents that will group specific Alerts into higher level actionable
items. A complete dictionary of Alerts is described at Alerts
Dictionary on page 148 and Incidents Dictionary on page 155.
Additionally, changing the value of the Security Profile changes the
visibility of the alerts shown by Guardian based on the alerts type.
| Security features | 132
The learning section shows the progress of the engine for both network and process learning. The Last
detected change and the Learning started entries will report the point in time when the last behavior
change was detected and the time when the learning is started.
Security Configurations
The security features can be configured using the "Edit" tab of the security control panel. The page
guides the user through four configuration steps that allow an advanced yet simplified customization of
the features.
| Security features | 133
Learning
Guardian provides a flexible approach to anomaly-based detection, allowing to choose from two
different approaches:
• Adaptive Learning: uses a less granular and more scalable approach to anomaly detection
where deviations are evaluated at a global level rather than at a single node level. For example,
the addition of a device similar to the ones already installed in the learned network won't produce
alerts. This holds true for the appearance of a similar communication. Adaptive Learning shows its
maximum capabilities when combined with Asset Intelligence.
• Strict Learning: uses a detailed anomaly-based approach, so deviations from the baseline will
be detected and alerted. This approach is called strict because it requires the learned system
to behave like it has behaved during the learning phase, and requires some knowledge of the
monitored system in order to be maintained over time.
The engine has two distinct learning goals: the network and the process. For both cases the engine
can be in learning and in protection mode, and they can be governed independently.
1. Network Learning is about the learning of Nodes, Links, and Function Codes (e.g. commands) that
are sent from one Node to another. A wide range of parameters is checked in this engine and can
be fine-tuned as described in Manage Network Learning on page 138.
2. Process Learning is about the learning of Variables and their behavior. This learning can be fine-
tuned also with specific checks as described in Custom Checks: Specific Checks on page 146.
With the Dynamic Window option you can configure the time interval in which an engine considers a
change to be learned (every engine does this kind of evaluation per node and per network segment).
After this period of time, the learning phase is safely automatically switched to protection mode, with
the effect of:
• raising alerts when something is different from the learned baseline
• adding suspicious components to the Environment with the "is learned" attribute set to off, in such a
way that an operator can confirm, delete or take proper action from the manage panel.
In this way, stable network nodes and segments become protected automatically thus you are not
overwhelmed with alerts due to the premature closing of learning mode.
| Security features | 134
Security profile
The Security Profile allows to change the visibility of alerts based on their type. By default the Security
Profile is set to High. Changing the value of the Security Profile has immediate effect on newly
generated alerts and it has no effect on existing alerts. By default the Security Profile is set to High.
Zone configurations
All settings concerning the learning engine and the security profile can be customized on a per-zone
basis. Please refer to Zone configurations for the details.
Alert tunings
In the Tuning section of the Security Control Panel it is possible to customize the alerts behavior.
Specifically, a matching criteria can be created by imposing conditions on several fields such as IP
addresses, protocol and many others.
This feature can be selectively enabled for specific user groups.
| Security features | 135
Priority Set a custom priority; when multiple rules trigger on an alert, the
rule with highest priority applies. "Normal" is the default value if
no selection is made.
In the Alert closing options section of the Security Control Panel it is possible to customize
the details of the closure of alerts and incidents. When alerts and incidents are closed, the user must
choose the reason why the closure happens. There are two default reasons: actual incident and
baseline change. The list of reasons can be customized. Each reason has a description and a behavior
Figure 147: The manage page with the selection on an unlearned link
2. Check the protocol that you want to learn. In this example we check browser. It is possible to
check more than one item at once
3. Click on the Learn button, a mark will appear on all the checked items which will be learned and
the Save button will start to blink indicating some unsaved changes
4. Click on the Save button, the protocol will be learned and it will become green. In this case also the
link will change color and become orange because some protocols are learned and some others are
not
5. Learning all remaining protocols will result in a completely learned grey link
| Security features | 140
3. Click on the Learn button, a mark will appear on all the checked items which will be learned and
the Save button will start to blink indicating some unsaved changes
4. Click on the Save button, the information pane will turn to green, the learned items and the node in
the graph will become grey
Automatic learning
1. Click on the Close alert button.
2. Choose one of the preset reasons for closing the alert or incident. An informative text will indicate if
the reason is associated to learning a baseline change or not. Alternatively, you can set a custom
reason and choose whether a baseline change is to be learned or not.
| Security features | 142
Manual learning
1. Click on the gear icon to go to the learning page.
2. The graph will be focused on the link involved in the alert (by clicking on the X button the focus will
be removed). According to the alert there is a new node, follow the already explained procedure to
learn the desired items.
Alerts
Alerts are generated by the different engines and can be very detailed, and suitable for drill-down
analysis.
To provide a higher level view, and faster operation of the system also by users without complete
knowledge of the observed system, Incidents are generated from a powerful autocorrelation engine out
of all generated Alerts.
| Security features | 143
Incidents allow to summarize Alerts providing a high-level explanation of what really happened. They
are visible by default in the Alerts table, but can be easily hidden if a more detailed view is required.
Alerts are often a key performance factor for Nozomi environments. We recommend carefully
considering your retention policy. For more information, see Configuring retention.
| Security features | 144
A valid assertion is just a normal query with another special command appended at the end. The
assertion commands are:
assert_all <field> The assertion will be satisfied when each element in the query result set
<op> <value> matches the given condition
assert_any The assertion will be satisfied when at least one element in the query result
<field> <op> set matches the given condition
<value>
assert_empty The assertion will be satisfied when the query returns an empty result set
assert_not_empty The assertion will be satisfied when the query returns a non-empty result set
For example, it is possible to be notified when someone uses the insecure telnet protocol by saving
the assertion
Editing an assertion
To edit an assertion just enter the text in the textbox and press the enter key to execute it. Multiple
assertions can be combined by using the logical operators && (and) and || (or). Round brackets
change the logical grouping as in a mathematical expression.
| Security features | 145
An assertion with logical operators and brackets can quickly become complex, to make the editing task
easier a debug functionality is present. By pressing the debug button (on the right side of the textbox)
the query will be decomposed and the single pieces will be executed to show the intermediate results.
Saving an assertion
Assertions can be saved in order to have them continuously executed in the system. To save an
assertion just write it in the textbox, press the enter key to execute it and then click on the save button.
A dialog will pop up asking for the assertion name and some other information. In particular the
| Security features | 146
assertion needs to be assigned to an existing group. It is possible to create a new group by clicking on
the "New Group" button. The following dialog will appear asking for a group name.
It is also possible to choose whether the assertion has to trigger an alert. The saved assertion will be
listed at the bottom of the page with a green or red color to indicate the result.
Note: When editing the alert risk, only newly raised alerts are affected.
To configure checks on a Variable, go to the Variables table and click on the button.
Alerts Dictionary
As explained at the beginning of this chapter, four categories of Alerts can be generated from the
Nozomi Networks Solution. Here we propose a complete list of the different kinds of Alerts that can
be raised. It should be noted that some Alerts can specify the triggering condition: for instance the
Malformed Packet Alert can be instantiated by each protocol by some specific checked information.
The tables contain the following information:
• Type ID: the strict identifier for an alert type. Use this field to setup integrations.
• Name: a friendly name identifier.
• Security profile: the default profile the alert type belongs to.
• Risk: the default base risk the alert shows. For specific instances, this value is weighted by other
factors (the learning state of the involved nodes and their reputation) and it will result in a different
number.
• Details: general information about the alert event, and what has caused it.
• Release: the minimum release version featuring that alert type. The minimum considered release
version is 18.0.0.
• Trace: whether a trace is always produced (YES), is never produced (NO) or it might not be
produced in some scenarios (PARTIAL).
Protocol Validations
An undesired protocol behavior has been detected. This can refer to a wrong single message, to
a correct single message not supposed to be transmitted or transmitted at the wrong time (state
machines violation) or to a malicious message sequence. Protocol specific error messages indicating
misconfigurations also trigger alerts that fall into this category.
NET:RST-FROM- Link RST sent by LOW 3 The link has been dropped because of a TCP RST sent by 18.0.0 YES
PRODUCER Producer the producer. Verify that the device is working properly, no
PROC:SYNC-ASKED- Producer sync PARANOID 3 A new sync (e.g. General Interrogation in iec101 and 18.0.0 YES
AGAIN requested iec104) command has been issued, while in some links it
PROC:WRONG-TIME Process time issue HIGH 3 The time stamp specified in process data is not aligned 18.0.0 YES
with current time. There could be a time sync issue with the
SIGN:ARP:DUP Duplicated IP HIGH 5 ARP messages have shown a duplicated IP address in the 18.0.0 YES
SIGN:DDOS DDOS attack HIGH 5 A suspicious Distributed Denial of Service has been 19.0.0 YES
SIGN:DHCP- DHCP operation HIGH 4 A suspicious DHCP operation has been detected. This is 18.0.0 YES
SIGN:ILLEGAL- Illegal parameters MEDIUM 7 A request with illegal parameters (e.g. outside from a 19.0.0 YES
PARAMETERS request legal range) has been issued. This may mean that a
SIGN:INVALID-IP Invalid IP HIGH 7 A packet with an IP reserved for special purposes (e.g. 18.0.0 YES
SIGN:MAC-FLOOD Flood of MAC MEDIUM 7 A high number of new MAC addresses has appeared in a 20.0.1 NO
SIGN:MALICIOUS- Malicious Protocol LOW 6 An attempted communication by a protocol known to be 19.0.0 YES
SIGN:MULTIPLE- Multiple Access MEDIUM 8 A host has repeatedly been denied access to a resource. 19.0.5 YES
SIGN:MULTIPLE- Multiple OT device HIGH 8 A host has repeatedly tried to reserve the usage of an OT 19.0.0 YES
SIGN:MULTIPLE- Multiple MEDIUM 8 A host has repeatedly tried to login to a service without 18.0.0 YES
UNSUCCESSFUL- unsuccessful logins success. It can be either an user or a script, and due to
LOGINS a malicious entity, or a wrong configuration. Check your
authentication parameters.
SIGN:NETWORK- Malformed Network MEDIUM 7 A malformed packet within a general-purpose IT protocol 18.0.0 OPTIONAL
possible attack.
SIGN:NETWORK-SCAN Network Scan MEDIUM 7 An attempt to reach many target hosts or ports in a target 19.0.0 YES
SIGN:PROC:MISSING- Missing variable HIGH 6 An attempt to access an unexisting variable has been 18.0.0 YES
COT 47 in iec104.
SIGN:PROC:UNKNOWN- Missing or unknown MEDIUM 6 An attempt to access an unexisting, virtual (controller's 18.0.0 YES
RTU device logical portion) or physical device has been made. This
SIGN:PROTOCOL- Protocol error HIGH 7 A generic protocol error occurred, this usually relates to a 18.0.0 YES
SIGN:PROTOCOL- Protocol-based MEDIUM 7 One or more hosts have sent a suspiciously high amount 19.0.4 YES
FLOOD flood of packets with the same application layer (e.g., ping
SIGN:SCADA- OT protocol packet LOW 9 A correct OT protocol packet injected in the wrong context 18.0.0 YES
INJECTION injection has been detected: this may cause equipment to operate
SIGN:SCADA- Malformed OT MEDIUM 7 A malformed packet within an OT protocol has been 18.0.0 YES
MALFORMED protocol packet detected. A maliciously malformed packet can target known
SIGN:TCP-FLOOD TCP flood MEDIUM 7 One or more hosts have sent a great amount of anomalous 19.0.4 YES
SIGN:TCP- Malformed TCP MEDIUM 7 A packet containing a semantically invalid TCP header has 20.0.0 NO
SIGN:TCP-SYN-FLOOD TCP SYN flood MEDIUM 7 One or more hosts send a great amount of TCP SYN 18.0.0 YES
exhaustion.
SIGN:UDP-FLOOD UDP flood MEDIUM 7 One or more hosts have sent a great amount of UDP 20.0.7.1 YES
SIGN:UNSUPPORTED- Unsupported MEDIUM 7 An unsupported function (e.g. not defined in the 19.0.0 YES
FUNC function request specification) has been used on the OT device. This may
Virtual Image
Virtual image represents a set of information by which Guardian represents the monitored network.
This includes for example node properties, links, protocols, function codes, variables, variable values.
Such information is collected via learning, or external contents, such as Asset Intelligence. Alerts in this
group represent deviations from expected behaviors, accordingly to the learned or fed information.
Note: when an alert of this category is raised, if the related event is not considered a malicious attack
or an anomaly, it can be learned.
VI:CONF-MISMATCH Configuration MEDIUM 7 A parameter describing a configuration version that was 20.0.0 YES
VI:GLOBAL:NEW-FUNC- New global function MEDIUM 5 A previously unseen protocol Function Code for has 19.0.4 YES
VI:GLOBAL:NEW-MAC- New global MAC MEDIUM 5 A previously unseen MAC vendor has appeared in the 19.0.4 YES
VI:GLOBAL:NEW-VAR- New global variable HIGH 5 A node has started sending variables. It can be a new 21.3.0 YES
VI:KB:UNKNOWN- Unknown asset HIGH 5 The node has communicated using a function code that is 20.0.0 YES
FUNC-CODE function code not known for this kind of Asset. This detection is possible
VI:KB:UNKNOWN- Unknown asset's HIGH 5 The node has communicated using a protocol that is not 20.0.0 YES
PROTOCOL protocol known for this kind of Asset. This detection is possible by
VI:NEW-ARP New ARP HIGH 4 A new MAC Address has started requesting ARP 18.0.0 YES
information.
| Security features | 151
VI:NEW-FUNC-CODE New function code HIGH 6 A known protocol between two nodes has started using a 18.0.0 YES
VI:NEW-LINK New link HIGH 5 Two nodes have started communicating with each other. 18.0.0 YES
VI:NEW-MAC New MAC address HIGH 6 A new MAC Address has appeared in the network. 18.0.0 YES
VI:NEW-NET-DEV New network device MEDIUM 3 A new network device (switch or router) has appeared on 18.0.0 YES
the network.
VI:NEW-NODE New node MEDIUM 5 A new node has appeared on the network. 18.0.0 YES
VI:NEW- Bad reputation ip LOW 5 A node with a bad reputation IP has been detected. It is 20.0.0 YES
VI:NEW-NODE:TARGET New target node HIGH 4 A new target node has appeared on the network. This node 18.0.0 YES
is not yet confirmed to exist as it still has not sent back any
data.
VI:NEW-PROTOCOL New protocol used HIGH 4 A node has started communicating with a new protocol. 18.0.0 YES
VI:NEW- New application on HIGH 5 A link between two nodes has upgraded to a specific 18.0.0 YES
VI:NEW- New confirmed HIGH 5 Two nodes have started a working, confirmed connection 18.0.0 YES
VI:NEW-SCADA-NODE New OT node HIGH 6 A new node, using an OT protocol, has appeared on the 18.0.0 YES
network.
VI:PROC:NEW-VALUE New OT variable HIGH 6 A variable has been set to a value never seen before. 18.0.0 YES
value
VI:PROC:NEW-VAR New OT variable HIGH 6 A new variable has been sent, or accessed by a client. It 18.0.0 YES
VI:PROC:PROTOCOL- Protocol flow HIGH 8 A message aimed at reading/writing one or multiple 18.0.0 YES
VI:PROC:VARIABLE- Variable flow HIGH 6 A variable which is sent cyclically has changed its 18.0.0 YES
Built-in Checks
Built-in checks run without the need of learning because they are based on specific signatures or hard-
coded logics with reference to: known ICS threats (by signatures provided by Threat Intelligence),
known malicious operations, system weaknesses, or protocol-compliant operations that can impact the
network/ICS functionality.
SIGN:CLEARTEXT- Cleartext password MEDIUM 7 A cleartext password has been issued or requested. 19.0.0 YES
PASSWORD
| Security features | 152
SIGN:CONFIGURATION- Configuration MEDIUM 6 A changed configuration has been uploaded to the 18.0.0 YES
system.
SIGN:CPE:CHANGE CPE change LOW 0 An installed software change has been detected. The 18.0.0 YES
it.
SIGN:DEV-STATE- Device state MEDIUM 7 A command that can alter the device state has been 18.0.0 YES
SIGN:FIRMWARE- Firmware change HIGH 6 A firmware has been uploaded to the device. This can be a 19.0.0 YES
SIGN:MALICIOUS- Malicious domain LOW 5 A DNS query towards a malicious domain has been 19.0.0 YES
SIGN:MALICIOUS-IP Bad ip reputation LOW 5 A node with a bad reputation IP has been found. 19.0.0 YES
SIGN:MALICIOUS-URL Malicious URL LOW 5 A request towards a malicious URL has been detected. 19.0.0 YES
involved nodes.
SIGN:MALWARE- Malware detection LOW 9 A potentially malicious payload has been transferred. 18.0.0 NO
DETECTED
SIGN:MITM MITM attack LOW 10 A potential MITM attack has been detected. The attacker is 20.0.5 NO
SIGN:OT_DEVICE- OT device reboot HIGH 6 An OT device program has been requested to reboot 18.0.0 YES
SIGN:OT_DEVICE- OT device start HIGH 6 An OT device program has been requested to start (e.g. by 18.0.0 YES
SIGN:OT_DEVICE- OT device stop HIGH 9 An OT device program has been requested to stop (e.g. by 18.0.0 YES
SIGN:OUTBOUND- High rate of LOW 9 A host has shown a sudden increase of outbound 21.0.0 YES
SIGN:PACKET-RULE Packet rule match LOW 9 A packet has matched a Packet rule. 18.0.0 YES
| Security features | 153
SIGN:PASSWORD:WEAK Weak password HIGH 5 A weak password, possibly default, has been used to 18.5.0 YES
SIGN:PROGRAM:CHANGEProgram change MEDIUM 6 A changed program has been uploaded to the OT device. 18.0.0 YES
SIGN:PROGRAM:DOWNLOAD
Program download HIGH 6 A program has been downloaded from an OT Device (e.g. 18.0.0 YES
logic.
SIGN:PROGRAM:UPLOAD Program upload HIGH 9 A program has been uploaded to an OT device (e.g. 18.0.0 YES
logic.
SIGN:PUA-DETECTED PUA detection MEDIUM 5 A potentially unwanted application payload (PUA) has 20.0.6 YES
malware payload.
SIGN:SUSP-TIME Suspicious time HIGH 7 A suspicious time has been observed in the network. There 20.0.0 YES
SIGN:WEAK- Weak encryption PARANOID 6 The communication has been encrypted using an obsolete 19.0.5 YES
certificates.
Custom Checks
These are checks set in place by the user. Typically the nature of an event related to a custom check
cannot generally be referred to a problem per se, if not contextualized to the specific network and
installation.
GENERIC:EVENT Generic Event LOW 0 A generic event has been generated. More details are 20.0.5 YES
NET:INACTIVE- Inactive protocol LOW 3 The link has been inactive for longer than the set threshold. 18.0.0 YES
PROTOCOL
NET:LINK- Link reconnection LOW 3 The link configured to be persistent has experienced a 18.0.0 YES
NET:TCP-SYN TCP SYN LOW 3 A connection attempt (TCP SYN) has been detected on a 18.0.0 YES
link.
PROC:CRITICAL- Critical state off LOW 1 The system has recovered from a user-defined critical 18.0.0 YES
PROC:CRITICAL- Critical state on LOW 9 The system has entered in a user-defined critical process 18.0.0 YES
STATE-ON state. Check if all considered values are still safe or not.
PROC:INVALID- Invalid variable LOW 3 A variable has showed a quality bit set for longer than the 18.0.0 YES
PROC:NOT-ALLOWED- Not allowed LOW 3 A variable has shown one or more specific quality bits the 18.0.0 YES
PROC:STALE- Stale variable LOW 3 A variable has not been updated for longer than the set 18.0.0 YES
VARIABLE threshold.
| Security features | 155
Incidents Dictionary
Hybrid Category
The Hybrid Category is assigned when Alerts belonging to different categories as defined in the Alerts
Dictionary are grouped within such one incident. The other categories are as defined in the Alerts
Dictionary.
Hybrid Threat INCIDENT:NEW-NODE New Node A new unseen node has started to
Detection send packets in the network.
Hybrid Threat INCIDENT:PORT-SCAN Port scan A node has started a series of scans
Detection in the network.
Built-in Checks INCIDENT:SUSPICIOUS- Suspicious Activity Suspicious activity that can be
ACTIVITY potentially related to known malware
has been detected over two nodes.
Learned INCIDENT:VARIABLES-FLOW- Variables flow A timing change on a variable which
Behavior ANOMALY anomaly used to be updated or read with a
regular interval has been detected.
Learned INCIDENT:VARIABLES-FLOW- Variables flow A consumer which used to update or
Behavior ANOMALY:CONSUMER anomaly on read a variable with a regular interval
consumer has been detected to have changed
its update interval.
Learned INCIDENT:VARIABLES-FLOW- Variables flow A producer which used to update or
Behavior ANOMALY:PRODUCER anomaly on read a variable with a regular interval
producer has been detected to have changed
its update interval.
| Security features | 156
Packet rules
Introduction
Packet rules are a tool provided by the Nozomi Networks Solution to enrich and expand the checks
that are already performed on the network traffic. With packet rules the user can add a check in every
moment and receive an alert of type SIGN:PACKET-RULE when a match is found. Packet rules can be
explored and edited in the section Threat Intelligence on page 96.
In the next section there is an explanation of the language used to write new packet rules.
Format
<action> <transport> <src_addr> <src_port(s)> -> <dst_addr> <dst_port(s)>
(<options>)
Basic options
action The action to execute on match, at the moment only alert is supported
transport The transport protocol to match, can be tcp, udp or ip
src_addr The set of source ip address to match (not supported at the moment, the
value will be ignored)
src_port(s) The source ports to match. The format can be any (to match everything), a
single number, a set (eg. [80,8080]), a range (eg. 400:500), a range open to
the left bound (eg. :500), a range open to the right bound (eg. 400:). A set
can contain a combination of comma separated single ports and ranges (eg.
[:5,9,10,12:]).
dst_addr The set of destination ip address to match (not supported at the moment,
the value will be ignored)
dst_port(s) The destination ports to match. The format can be any (to match
everything), a single number, a set (eg. [80,8080]), a range (eg. 400:500), a
range open to the left bound (eg. :500), a range open to the right bound (eg.
400:). A set can contain a combination of comma separated single ports and
ranges (eg. [:5,9,10,12:]).
options The options alter the behaviour of the packet rule and attach some
information to it. The current set of supported options is: content,
byte_extract, byte_test, byte_jump, isdataat, pcre, msg and
reference.
The options are a list of semicolon-separated key-value pairs (eg. content:
<value1>; pcre: <value2>).
They are explained in details in the next section.
msg option
Define the message that will be present in the alert
Example usage: msg:"a sample description"
reference option
Define the CVE associated with the packet rule.
Example usage: reference:cve,2017-0144;
content option
The content option specifies some data to be found in the payload. The option can contain printable
chars, bytes in hexadecimal format delimited by pipes or a combination of them.
| Security features | 158
Examples:
- content: "SMB" will search for the string SMB in the payload,
- content: "|FF FF FF|" will search for 3 bytes FF in the payload,
- content: "SMB|FF FF FF|" will search for the string and 3 bytes FF in the payload.
The content option can have several modifiers which influence the behaviour:
- depth: specifies how far into the packet the content should be searched
- offset: specifies where to start searching in the packet
- distance: specifies where to start searching in the packet relatively to the last option match
- within: to be used with distance, specifies how many bytes are between pattern matches
Examples:
Given the rule alert tcp any any -> any any (content:\"x\"; content:\"y\";
distance: 2; within: 2;) the packet {'x', 0x00, 0x00, 0x00, 'y'} will match, the packet {'x', 0x00,
0x00, 0x00, 0x00, 'y'} will not because the distance and within constraints are not respected.
byte_extract option
The byte_extract option reads some bytes from the packet and saves them in a variable.
The syntax is: byte_extract:<bytes_to_extract>, <offset>, <name> [, relative][,
big|little]
For example: byte_extract:2,26,TotalDataCount,relative,little will read two bytes from
the packet at the offset 26 and put them in a variable called TotalDataCount, the offset is relative to the
last matching option and the data encoding is little endian.
byte_jump option
Read the given number of bytes at the given offset and move the offset by their numeric
representation.
The syntax is: byte_jump:<bytes to convert>,<offset>[,relative][,little][,align]
For example: byte_jump:2,1,little; will read two bytes at offset 1, intepret them as little endian
and move the offset.
byte_math option
Read the given number of bytes at the given offset, perform an arithmetic operation, save the result in
a variable and move the offset.
The syntax is: byte_math: bytes <bytes to convert>, offset <offset>, oper
<operator>, rvalue <r_value>, result <result_variable>[,relative][,endian
<endianess>]
For example: byte_math:bytes 2, offset 1, oper +, rvalue 23, result my_sum; will
read two bytes at offset 1, intepret them as big endian, add 23 to the value, store the result into the
variable my_sum and move the offset.
byte_test option
Test a byte against a value or a variable.
The syntax is: byte_test:<bytes to convert>, <operator>, <value>, <offset> [,
relative][, big|little] where <operator> can be = or >.
For example: byte_test: 2, =, var, 4, relative; will read two bytes at offset 4 (relative to
the last matching option) and test if the value is equal to the variable called var.
| Security features | 159
dsize option
Matches payloads of a given size.
The syntax is: dsize: min<>max; or dsize: <max; or dsize: >min;
Matches if the size of the payload corresponds to the given boundaries.
id option
Matches IP packets with a given ID.
The syntax is: id: <id>;
isdataat option
Verify that the payload has data at the given position.
The syntax is: isdataat:<offset>[,relative]
For example: isdataat:2,relative; verify that there is data at offset to relative to the previous
match.
flags option
Match TCP packets with given flags.
The syntax is: flags: (FSRPAUCE0+*!)
For example: flags: SA; matches on SYN-ACK packets.
flow option
Match TCP packets with given flags.
The syntax is: flow:
[established,not_established,from_client,from_server,to_client,to_server]
For example: flow: established,from_server; matches responses in an established TCP
session.
flowbits option
Check and set boolean flags in sessions.
The syntax is: flowbits: [set,setx,unset,toggle,reset,isset,isnotset]
For example: flowbits: set,has_init; sets the has_init flag on the session if the packet rule
matches the packet. flowbits: isnotset, has_init matches on packets whose session does
not have the flag has_init set.
file_data option
Moves the point to the beginning of the content in an HTTP packet.
The syntax is: file_data;
fragbits option
Checks the flags of the header of IP packets.
The syntax is: fragbits: (MDR+*!);
For example: fragbits: MR*; matches on packet that have the More fragments or Reserved
bit flags set.
pkt_data option
Moves the pointer to the beginning of the packet payload.
| Security features | 160
pcre option
The pcre option specifies a regex to be found in the payload.
The syntax is: pcre:"(/<regex>/[ismxAEGR]"
Pcre modifiers:
- i: case insensitive
- s: include newline in dot metacharacter
- m: ^ and $ match immediately following or immediately before any newline
- x: ignore empty space in the pattern, except when escaped or in characters class
- A: match only at the start
- E: $ will match only at the end of the string ignoring newlines
- G: invert the greediness of the quantifiers
- R: match is relative to the last matching option
urilen option
Matches on HTTP packets whose URI has a specified size.
The syntax is: urilen: min<>max; or urilen: <max; or urilen: >min;
| Security features | 161
7
Vulnerability Assessment
Topics: In this section we will cover the Vulnerability Assessment module.
Basics
To manage vulnerability assessment the Nozomi Networks Solution uses NVD (National Vulnerability
Database) format files; the vulnerabilities files match a CPE (Common Platform Enumeration) with a
CVE (Common Vulnerabilities and Exposures):
• CPE is a structured naming scheme for information technology systems, software, and packages.
Based upon the generic syntax for Uniform Resource Identifiers (URI), CPE includes a formal name
format.
• Common Vulnerabilities and Exposures (CVE) is a dictionary of common names for publicly known
cybersecurity vulnerabilities. CVE's common identifiers make it easier to share data across separate
network security databases and tools. With CVE Identifiers, you may quickly and accurately access
fix information in one or more separate CVE-compatible databases to remediate the problem.
• The Common Weakness Enumeration Specification (CWE) provides a common language of
discourse for discussing, finding and dealing with the causes of software security vulnerabilities as
they are found in code, design, or system architecture. Each individual CWE represents a single
vulnerability type.
Passive detection
The Nozomi Networks Solution offers continuous vulnerability detection, since it detects vulnerabilities
within a network by only passively listening to network traffic. This technique allows for a
comprehensive state of risk without impacting in any way the production equipment.
We will consider a passive vulnerability as any vulnerability that may be detected simply through
analysis of network traffic.
The passive vulnerability detection is a valuable component because an active scan can affect the
timing of the device or its sensitive processes.
Passive monitoring is not intrusive on network performance or operation. It is real time and can be very
useful to trace certain network security problems and to verify suspected activity.
Configuration
Vulnerabilities-related information can be provided to the Nozomi Networks Solution as follows:
• via the Threat Intelligence service (see Threat Intelligence on page 96 for more information)
• or by using our vulnerabilities-only database, if Threat Intelligence has not been subscribed.
To use the vulnerability-only database (that can be downloaded from Nozomi Networks at https://
nozomi-contents.s3.amazonaws.com/vulns/vulnassdb.tar.gz), use a tool like scp or
WinSCP to upload it to the /data/tmp folder:
enable-me
cd /data/contents
Additional vulnerabilities can be added to the system. They must be in the NVD (National Vulnerability
Database) format, and be placed in the /data/contents/vulnass folder. However, Nozomi
Networks gives full support only for the own-distributed files.
Chapter
8
Smart Polling
Topics: This section describes Smart Polling, the add-on that allows
Guardian to contact nodes in order to gather new information or to
• Strategies improve the already existing one.
• Plans
In Smart Polling, you can define one or more plans, i.e.,
• Extracted information configurations that instruct Guardian about which nodes to poll, and
when and how to poll them. For instance, one can define the plan
to poll known PLCs in the 192.168.38.0/24 subnet every hour using
the Ethernet/IP protocol.
Smart Polling makes the extracted data accessible in two formats.
Some data, when extracted correctly, allows Guardian to enrich its
knowledge of the network. For instance, PLC nodes polled using
the Ethernet/IP protocol are enriched with information such as
vendor, device type, or serial number in the asset or network views;
Windows computers polled with the WinRM protocol provide a list of
the installed software; Linux machines polled using SSH appear in
the asset and network view the exact name of the distribution and
their uptime. Other data that does not enrich the asset or network
views is still useful for diagnostic purposes, such as the CPU or
memory usage, or the status of the network interfaces. This data is
accessible in the Smart Polling display page.
Note: To enable Smart Polling, you must install and upgrade
using the advanced bundle, that is VERSION-advanced-
update.bundle; do not use VERSION-standard-
update.bundle
| Smart Polling | 168
Strategies
The currently supported strategies are:
Plans
Plans are user-defined schedules that instruct the Guardian about the polling intentions. Each plan
defines:
• a strategy, i.e., a protocol or application to use to connect with the desired service;
• a human-readable label to easily identify the plan;
• a query that defines the set of nodes to poll;
• a run_interval, i.e., the time interval in seconds between two successive executions of the plan; and
• additional parameters defined by the chosen strategy. For example, the SEL strategy requires a
password, while the SNMPv2 lets you restrict the requests to selected OIDs.
The Smart Polling display page gives an overview of the existing plans along with the nodes polled by
each plan. Moreover, it allows to add, modify, remove, enable, and disable the plans and to see their
logs.
| Smart Polling | 169
To add a new plan, click the top-right button "New plan". The plan configuration popup appears. A
similar popup appears when you click the configuration icon next to a plan's label in order to modify the
plan. The popup lets you define the plan parameters and check its functionality by testing on a specific
address. By entering an IP address in the "Host to test" field and clicking "Check connection", a quick
one-shot poll of the corresponding node is performed, and the result of the test appears immediately,
including steps that have been performed, data that has been retrieved, and error messages if any.
Plan actions
Once a plan is created, you can perform several actions on it.
Clearpass configuration
Integration permits to send asset information to Clearpass service. To configure ClearPass you must
add credentials (username and password) as well as the bearer token.
Extracted information
The information that strategies extract during their activity is directly integrated with the information that
was already attached to the targeted nodes. This means that they can be observed in other parts of the
Nozomi Networks Solution such as Asset View on page 60, Network View on page 62 or Vulnerabilities
on page 94.
The following images show assets for which some information has been retrieved with Smart Polling.
| Smart Polling | 172
Figure 160: Name, Type and Operating System retrieved with Smart Polling
Integrating the new information in this way is very useful, but it does not clearly show what was
collected overall and, more importantly, how information evolved. All of this can be found on the Smart
Polling display page, under the Polled nodes tab.
The page is divided into three columns, each one representing an increasing level of details with
respect to the currently selected row.
The first column provides a list of all the nodes that have been contacted by at least one plan. The
second column refers to the node selected in the first column and it lists all the last inserted values for
each kind of extracted information. Finally, the third column shows the last twenty-five inserted values
for the currently selected information in the second column. For numeric values, this last column is
enriched with a graph that helps in understanding how values changed over time. For unstructured,
complex information, such as details of user accounts or installed software, a glanceable useful
summary is displayed in the last column. The full view can be displayed in a popup window, as in the
following example:
| Smart Polling | 173
For more complex information, such as details of the installed software on a particular node, we can
use the following query to search for all software sold by a particular vendor:
While the node_points data source provides us with the whole polling history, we can get get access
only to the latest polling information by using the node_points_last data source. In the following query,
for example, we check the latest installed hotfixes for each polled node:
9
Queries
Topics: In this chapter are listed all the data sources, commands and
functions which can be used in N2QL (Nozomi Networks Query
• Overview Language).
• Reference
• Examples
| Queries | 176
Overview
Each query must start by calling a data source, for example:
will show in a table the first 10 nodes which received the most bytes.
By adding the pie command at the end it is possible to display the result as a pie chart where each
slice has the node ip as label and the received.bytes field as data:
Sometimes query commands are not enough to achieve the desired result. As a consequence, the
query syntax supports functions. Functions allow you to apply calculations on the fields and to use the
result as a new temporary field.
For example, the query:
uses the sum function to sort on the aggregated parameters and to produce a chart with the columns
representing the sum of the sent and received bytes.
| Queries | 177
Reference
Data sources
These are the available data sources with which you can start a query:
Operator OR
Description To add a where clause with a logical OR, append it using the OR operator.
For example, the query below returns links with either the http OR the https
protocols.
Example links | where protocol == http OR protocol == https
| Queries | 178
Operator in?
Description in? is only used with arrays; the field type must be an array. The query
looks for the text strings you specify using in? and returns arrays that match
one of them.
The example below uses in? to find any node having computer or
printer as elements in the array.
Operator include?
Description The query looks for the text string you specify using include? and returns
strings that match it.
The example below uses include? to find assets where the os field
contains the string Win.
Commands
Here is the complete list of commands:
Description The select command takes all the input items and outputs them with only the
selected fields
Description The exclude command takes all the input items and outputs them without
the specified field(s)
Description The where command will send to the output only the items which fulfill the
specified criterion, many clauses can be concatenated using the boolean OR
operator
Example • nodes | where roles include? consumer OR zone ==
office
• nodes | where ip in_subnet? 192.168.1.0/24
Description The sort command will sort all the items according to the field and the
direction specified, it automatically understands if the field is a number or a
string
Description The group_by command will output a grouping of the items using the field
value. By default the output will be the count of the occurrences of distinct
values. If an operator and a field2 are specified, the output will be the
average or the sum of the field2 values
Description The head command will take the first count items, if count is not specified
the default is 10
| Queries | 180
Syntax uniq
Parameters
Description The uniq command will remove from the output the duplicated items
Description The expand command will take the list of values contained in field and for
each of them it will duplicate the original item substituting the original field
value with the current value of the iteration
Description The sub command will output the items contained in field
Syntax count
Parameters
Description The count command outputs the number of items
Description The pie command will output a pie chart according to the specified
parameters
Description The column command will output an histogram, for each label a group of
columns is displayed with the value from the specified value_field(s)
Description The history command will draw a chart representing an historic series of
values
Description The distance command calculates a series of distances (that is, differences)
from the original series of distance_field. Each distance value
is calculated as the difference between a value and its subsequent
occurrence, and tagged using the id_field.
For example, assuming we're working with an id and a time field, entering
alerts | distance id time returns a table where each distance entry
is characterised by the from_id, to_id, and time_distance fields that
represent time differences between the selected alerts.
Description The bucket command will group data in different buckets, different records
will be put in the same bucket when the values fall in the same multiple of
<range>
Description The join command will take two records and will join them in one record
when <field> and <other_source_field> have the same value
Description The gauge command will take a value and represent it in a graphical way
Description The value command will take a value and represent it in a textual way
Description The reduce command will take a series of values and calculate a single
value
Parameters • field: the name of the field to which the operator will be applied
• operator
• value: the value used for the comparison. It can be a number, a string
or a list (using JSON syntax), the query engine will understand the
semantics.
Description The where_node command will send to the output only the items which fulfill
the specified criterion, many clauses can be concatenated using the boolean
OR operator. Compared to the generic where command, the adjacent nodes
are also included in the output.
Note: This command is only applicable to the nodes table.
Description The where_link command will send to the output only the nodes which are
connected by a link fulfilling the specified criterion. Many clauses can be
concatenated using the boolean OR operator.
Note: This command is only applicable to the nodes table.
Description The graph command renders a network graph by taking some nodes as
input.
| Queries | 183
Syntax availability
Parameters
Description The availability command computes the percentage of time a link is UP. The
computation is based on the link events UP and DOWN that are seen for the
link.
Functions
Please note that functions are always used in conjuction with other commands, such as select. In the
following examples, functions are shown in bold:
• Combining functions with select: nodes | select id type color(type)
• Combining functions with where: nodes | where size(label) > 10
• Combining functions with group_by: nodes | group_by size(protocol)
Here is the complete list of functions:
Syntax abs(<field>)
Parameters • the field on which to calculate the absolute value
Description The abs function returns the absolute value of the field
Syntax bitwise_and(<numeric_field>,<mask>)
Parameters • numeric_field: the numeric field on which apply the mask
• mask: a number that will be interpreted as a bit mask
Description The bitwise_and function calculates the bitwise & operator between the
numeric_field and the mask entered by the user
Syntax coalesce(<field1>,<field2>,...)
Parameters • a list of fields or string literals in the format "<chars>"
Description The coalesce function will output the first value that is not null
Syntax color(<field>)
Parameters • field: the field on which to calculate the color
Description The color function generates a color in the rgb hex format from a value
Note Only available for nodes, links, variables and function_codes
Syntax concat(<field1>,<field2>,...)
Parameters • a list of fields or string literals in the format "<chars>"
Description The concat function will output the concatenation of the input fields or values
Syntax date(<time>)
Parameters • time defined as unix epoch
Syntax days_ago(<time_field>)
Parameters • time_field: the field representing a time
Description The days_ago function returns the amount of days passed between the
current time and the time field value
Syntax dist(<field1>,<field2>)
Parameters • the two fields to compute the distance on
| Queries | 185
Description The dist function returns the distance between field1 and field2, which is the
absolute value of their difference
Syntax div(<field1>,<field2>)
Parameters • field1 and field2: the two field to divide
Syntax hours_ago(<time_field>)
Parameters • time_field: the field representing a time
Description The hours_ago function returns the amount of hours passed between the
current time and the time field value
Description The is_empty command takes a field as input and returns only the entries
that are either empty / not empty.
Example nodes | where is_empty(label) == false
Syntax is_recent(<time_field>)
Parameters • time_field: the field representing a time
Description The is_recent function takes a time field and returns true if the time is not
farther than 30 minutes
Syntax minutes_ago(<time_field>)
Parameters • time_field: the field representing a time
Description The minutes_ago function returns the amount of minutes passed between
the current time and the time field value
Syntax mult(<field1>,<field2>,...)
Parameters • a list of fields to multiply
Description The mult function returns the product of the fields passed as arguments
Syntax round(<field>,[precision])
Parameters • field: the numeric field to round
• precision: the number of decimal places
Description The round function takes a number and output the rounded value
Syntax seconds_ago(<time_field>)
Parameters • time_field: the field representing a time
Description The seconds_ago function returns the amount of seconds passed between
the current time and the time field value
| Queries | 186
Syntax split(<field>,<splitter>,<index>)
Parameters • field: the field to split
• splitter: the character used to separate the string and produce the tokens
• index: the 0 based index of the token to output
Description The split function takes a string, separates it and outputs the token at the
<index> position
Syntax sum(<field>,...)
Parameters • a list of fields to sum
Description The sum function returns the sum of the fields passed as arguments
| Queries | 187
Examples
We can see the list of the vendors in our network associated with the occurrences count. To better
understand our data we can use the sort command, so the query becomes:
In the last step we use the pie command to draw the chart with the mac_vendor as a label and the
count as the value.
If we execute the previous query we notice that the sum field has a very long name, we can rename it
to be more comfortable with the next commands:
To obtain the top nodes by traffic we sort and take the first 10:
Finally we use the column command to display the data in a graphical way:
Note: You can access an inner field of a complex type with the dot syntax, in the example the dot
syntax is used on the fields sent and received to access their bytes sub field.
Note: After accessing a field with the dot syntax, it will gain a new name to avoid ambiguity; the dot is
replaced by an underscore. In the example sent.bytes become sent_bytes.
| Queries | 188
Using join
In this example we will join two data sources to obtain a new data source with more information. In
particular we will list the links with the labels for the source and destination nodes.
| Queries | 189
We start by asking for the links and joining them with the nodes by matching the from field of the links
with the id field of the nodes:
After executing the query above we will get all the links fields plus a new field called
joined_node_from_id, it contains the node which satisfies the link.from == node.id
condition. We can access the sub fields of joined_node_from_id by using the dot syntax.
Because we want to get the labels also for the to field of the links we add another join and we
exclude the empty labels of the node referred by to to get more interesting data:
We obtain a huge amount of data which is difficult to understand, just use a select to get only the
relevant information:
The next step is to sort the events by ascending time of creation. Without this step the
availability_history might produce meaningless results, such as negative values. Finally, we compute
the availability_history with a bucket of 1 minute (60000 milliseconds). The complete query is as
follows.
10
Maintenance
Topics: In this chapter you will get the complementary information to keep
the Nozomi Networks Solution up and running with ordinary and
• System Overview extraordinary maintenance tasks.
• Data Backup and Restore
• Reboot and shutdown
• Software Update and Rollback
• Data Factory Reset
• Full factory reset with data
sanitization
• Host-based intrusion detection
system
• Action on log disk full usage
• Support
| Maintenance | 192
System Overview
In this section a brief overview of the Nozomi Networks Solution OS (N2OS) main components is given,
so as to provide further background to administer and maintain a production system.
A closer look at the /data partition reveals some sub-folders, for instance:
1. cfg: where all automatically learned and user-provided configurations are kept. Two main
configuration files are stored here:
a. n2os.conf: for automatically learned configurations
b. n2os.conf.user: for additional user-provided configurations.
2. data: working directory for the embedded relational database, used for all persistent data
3. traces: where all traces are kept and rotated when necessary.
4. rrd: this directory holds the aggregated network statistics, used for example for the Traffic on page
76.
Core Services
There are some system services that you need to know for proper configuration and troubleshooting:
1. n2osids, the main monitoring process. It can be controlled with
(<operation> can be either start or stop. After a stop the service will restart automatically. This
holds true for every service.) Its log files are under /data/log/n2os and start with n2os_ids*.
2. n2ostrace, the tracing daemon. It can be controlled with
Its log files start with n2os_trace* and are located under /data/log/n2os.
| Maintenance | 193
3. n2osva, the Asset Identification and Vulnerability Assessment daemon. It can be controlled with
Its log files start with n2os_va* and are located under /data/log/n2os.
4. n2ossandbox, the file sandbox daemon. It can be controlled with
Its log files start with n2os_sandbox* and are located under /data/log/n2os.
5. nginx, the web server behind the web interface. It copes with unicorn to provide the https service up
and secured. It can be controlled with
In order to be able to perform any operation on these services, you need to obtain the privileges using
enable-me. For instance, the following commands allow to restart the n2osids service:
enable-me
service n2osids stop
Several other tools and daemons are running in the system to deliver N2OS functionalities.
Full Backup
Command line
To create a new backup, go to a terminal and execute the command:
n2os-fullbackup
scp admin@<appliance_ip>:/data/tmp/<backup_hostname_date.nozomi_backup> .
Web application
The graphical interface for creating a backup is available under Administration > Backup/
Restore. You can generate and download a backup on-demand (by clicking the Download button) or
you can schedule a backup for a chosen date or recurrence (by clicking the Schedule backup button).
| Maintenance | 194
When scheduling a backup, you can configure the recurrence, the maximum number of backups to
keep, and the location where backup files are stored; the location can be local or remote.
In the case of local locations, backup files are stored under the /data/backups/ folder on the
appliance.
In the case of a remote location, backup files are stored on a dedicated host; this host must provide
a user/password authentication method through one of the listed protocols, and the user must have
permissions to list, read, and write within a folder that will store the backup files. During the backup
process, the backup file is generated locally and then uploaded on the remote folder. When restored,
the backup file is first downloaded from the remote folder and then used for the restore process.
When a new scheduled backup is about to be generated, the system checks if the number of maximum
backups to keep is about to be exceeded, and if necessary, eliminates the oldest backup.
By default, traces are not included inside backups, but you can include them by checking the include
traces option, also available for scheduling.
Full Restore
Command line
In order to restore from a full backup you may do the following:
| Maintenance | 195
1. Copy via SFTP the backup archive from the location where it was saved to the
admin@<appliance_ip>:/data/tmp/<backup_hostname_date.nozomi_backup> path of
the appliance. For instance, using the scp command line:
scp <backup_location_path>/<backup_hostname_date.nozomi_backup>
admin@<appliance_ip>:/data/tmp/<backup_hostname_date.nozomi_backup>
2. Go to a terminal and execute this command:
n2os-fullrestore /data/tmp/<backup_hostname_date.nozomi_backup>
Note: Use the --etc_restore option to restore the files from the /etc folder, the feature can be
used with a backup produced from version 20.0.1 and newer.
Web application
If automatically scheduled backups are present on the disk, they will be listed in the table of the section
named 'Restore Previous Backup'.
This action will delete the selected backup file from the disk.
Finally, it is possible to upload a backup archive from your local machine, for instance a previously
produced backup via command-line, or downloaded with the UI.
Environment Backup
In this section you will learn how to backup the Environment backup of an existing installation.
1. Issue the save command from the CLI
2. Copy via SFTP the content of the /data/cfg folder to a safe place.
Environment Restore
In this section you will learn how to restore a Nozomi Networks Solution Environment to an existing
installation.
1. Copy the saved content of the cfg folder to the /data/cfg folder into the appliance.
2. From the console, issue the service n2osids stop command.
In addition, both commands can be entered in the text console or inside an SSH session.
To reboot the system issue the following command:
enable-me
shutdown -r now
enable-me
shutdown -p now
| Maintenance | 197
ssh admin@<appliance_ip>
enable-me
install_update /data/tmp/VERSION-update.bundle
| Maintenance | 198
The appliance will now reboot with the new software installed.
rollback
2. Answer y to the confirmation message and wait while the system is rebooted. All configuration and
historical data will be automatically converted to the previous version, thus no manual intervention
will be required.
n2os-datafactoryreset -y
2. The system will start over with a fresh data partition. Refer to Setup Phase 2 on page 19 to
complete the configuration of the system.
n2os-datasanitize -y
2. The system will start over with a fresh data partition. Refer to Setup Phase 2 on page 19 to
complete the configuration of the system.
n2os-fullfactoryreset -iknowwhatimdoing
2. The system will start over and it will require to be reconfigured from scratch. Refer to Setup Phase 1
on page 17 to configure the system.
Support
In this section you will learn how to generate the archive needed to ask support to Nozomi Networks.
Go to Administration > Support click on download button and your browser will start
downloading the support archive file. Send an email to support@nozominetworks.com attaching
the file.
The Anonymize option removes sensitive network information from the generated.
Note: An anonymized support archive does not contain sensitive information about the network. It
should be used only when the normal archive cannot be shared.
Chapter
11
Central Management Console
Topics: In this section we will cover the Central Management Console
product, a centralized monitoring variant of the standalone
• Overview Appliance.
• Deployment
The main idea behind the Central Management Console is to deliver
• Settings a unified experience with the Appliance, consequently the two
• Connecting Appliances products appear as similar as possible.
• Troubleshooting
• Propagation of users and user
groups
• CMC or Vantage connected
appliance - Date and Time
• Appliances List
• Appliances Map
• HA (High Availability)
• Alerts
• Functionalities Overview
• Updating
• Single-Sign-On through the
CMC
| Central Management Console | 202
Overview
The Central Management Console (CMC) has been designed to support complex deployments that
cannot be addressed with a single Appliance.
A central design principle behind the CMC is the Unified Experience, that allows to access information
in the same manner as the Appliance. Some additional functionalities have been added to allow
the simple management of hundreds of appliances, and some other functionalities relying on live
traffic availability have been removed to cope with real-world, geographic deployments of the Nozomi
Networks Solution architectures. In Functionalities Overview on page 215 a detailed overview of
differences will be given.
In the Appliances page all connected appliances can be seen and managed. A graphical
representation of all the hierarchical structure of the connected Appliances and the Appliance Map is
presented to allow a quick health check on a user-provided raster map. In Appliances List on page
207 and Appliances Map on page 210 these functionalities will be explained in detail.
Once Appliances are connected, they are periodically synchronized with the CMC. In particular, the
Environment of each Appliance is merged into a global Environment and Alerts are received for a
centralized overview of the system. Of course, Alerts can also be forwarded to a SIEM directly from the
CMC, thus enabling a simpler decoupling of components in the overall architecture. To synchronize
data, the Appliances must be running the same major release or one of the two prior major ones. For
example, if the CMC is running the version 19.0.x (the major is 19.0), Appliances can synchronize if
running one of the following versions: 19.0.x, 18.5.x or 18.0.x.
Firmware update is also simpler with a CMC. Once the new Firmware is deployed to it, all connected
Appliances are also automatically updated. In Updating on page 216 an overview of the update
process is provided for the CMC scenario.
| Central Management Console | 203
Deployment
The first step to setup a CMC is to deploy its Virtual Machine (VM).
The CMC VM can be deployed following the steps provided in Installing the Virtual Machine on page
13. The main difference here is that the CMC version of N2OS must be used in the installation.
The difference is during the Initial Setup phase: you have to locate and configure the management NIC
but not the sniff interfaces. The reason is that the CMC does not have to sniff live traffic.
Deployment to AWS
Before starting, please request access to the CMC Amazon Machine Image (AMI) by emailing
your organization's AWS account ID and the AWS region where this AMI will be deployed to
support@nozominetworks.com. For information about finding your AWS ID, please refer to Amazon's
documentation on AWS identifiers. We'll grant access upon receiving your request.
8. Log in to the console. The default console credential has no password initially and must be changed
upon first login. The console will display a prompt with the text "N2OS - login:". Type admin and
then press [Enter].
9. Elevate the privileges with the command: enable-me
10.Now launch the initial configuration wizard with the command:
data_enlarge
12.You can login to the Web UI with:
username: admin
Password: nozominetworks
| Central Management Console | 205
Settings
The Administration > Synchronization settings page allows you to customize all the
Vantage or CMC related parameters.
Sync token The token that must be used by all the appliances allowing for
synchronization to the CMC.
Appliance ID The current Appliance ID, also known as CMC ID, which will
be shown in the CMC we want to replicate data with. This
information is also required when connecting an appliance to
Vantage.
CMC context A CMC's context is either Multi-context or All-in-
one. Multi-context indicates that the data gathered from
the appliances connected to the CMC will be collected and
kept separately, whereas All-in-one indicates that the
information will be merged:
• In Multi-context mode, the user can focus on a single
Guardian to access their data in their separate contexts.
This is the default operational mode; it allows the highest
scalability and supports multitenancy (ideal for MSSPs).
• In All-in-one mode, the user gets a unique, merged
Environment section.
The Alerts and Asset View is common to both modes.
Appliance update policy Determines whether the appliances connected to the CMC
will automatically receive updates when a new version of the
software is available.
Remote access to connected Enables/disables remote access of an appliance by passing
Appliances through the CMC.
Allow remote to replicate on When a CMC attempts to replicate data on the current CMC, its
this CMC Sync ID is shown in the corresponding text-field. This validates
that the CMC that is trying to replicate is really the one that you
intended to work with.
HA (High Availability) The High Availability mode allows the CMC to replicate its own
data on another CMC. In order to activate it, you must insert
the other CMC Host and Sync Token.
| Central Management Console | 206
Connecting Appliances
To start connecting an Appliance to a CMC open the web console of a CMC, go to Settings on page
205.
Copy the Sync Token, which you will need for configuring the Appliance.
To connect an Appliance to the CMC you can use the Upstream connection section on the same
page.
In this section you can enter the parameters to connect the Appliance:
Host The CMC host address (the protocol used will be https). If no CA-emitted
certificates are used you can make the verification of certificates optional.
Sync token The Synchronization token necessary to authenticate the connection, the
pair of tokens can be generated from the CMC.
Use proxy Enables connecting to the CMC through a proxy server.
connection
The Check connection button indicates if the pairing between the CMC and the appliance is valid.
After entering the endpoint and the Sync token. Click Save to keep the configuration and open the web
console of the CMC, navigating to Appliances
The table will list all the connected Appliances. When an Appliance is connected for the first time, it
will notify its status and receive Firmware updates. However, it will not be allowed to perform additional
actions. To enable a complete integration of the Appliance you will need to "allow" it (see Appliances
List on page 207 for details).
To configure the synchronization intervals between an Appliance and the CMC see Configuring
synchronization on page 275.
Troubleshooting
In this section a list of the most useful troubleshooting tips for the CMC is given.
1. If the Appliance is not appearing at all in the CMC:
• Ensure that firewall(s) between the Appliance and the CMC allows traffic on TCP/443 port
(HTTPS), with the Appliance as Source and the CMC as the Target
• Check that the tokens are correctly configured both in the Appliance and the CMC
• Check in the /data/log/n2os/n2osjobs.log file for connection errors.
2. The Appliance ID is stored in the /data/cfg/.appliance-uuid file. Please do not edit this
file after the appliance is connected to the CMC or Vantage, since it is the unique identifier of the
Appliance inside the CMC and Vantage. In case a forceful change of the Appliance ID is needed,
you will need to remove the old data from the CMC or Vantage by removing the old Appliance ID
entry.
3. If an issue occurs during the setup of an Appliance, follow the instructions at Appliances List on
page 207 to completely delete the Appliance or just to clear its data from the CMC or Vantage.
| Central Management Console | 207
Appliances List
| Central Management Console | 208
The Appliances section shows the complete list of appliances connected to the current CMC. For each
appliance, you can see some information about its status (system, throughput, alerts, license and
running N2OS version).
Actions on appliances:
Allow/Disallow an Appliance
Focus on appliance
Allows to filter out only the appliance chosen data, such as Alerts and Environment.
When locked, the Appliance will not automatically update its software.
Delete a appliance
Clear all data received from the selected Appliance and delete it from the list. If the Appliance tries to
sync with the CMC again, it appears disallowed in the list.
Appliances Map
In this page you can upload the Appliances Map by clicking on Upload map and choosing a .jpg file
from your computer.
You can inspect the appliances information in the Info pane. In the map each appliance is identified
by its own ID. The appliance marker color is related to the risk of its alerts and near the ID there is the
number of the alerts in the last 5 minutes (if greater than 0). If the alerts in last 5 minutes grows, the
appliance marker will blink for 1 minute.
If the site has been specified in the Administration/General section of the appliance, it is possible to
enable the "group by site" option. The appliances with the same site will be grouped to deliver a simpler
view of a complex N2OS installation.
HA (High Availability)
This feature allows a CMC to replicate all its data on another CMC called replica.
Note: In order to enable the highest level of resiliency, the two CMCs must be replicating each
other. In case a CMC stops working, the connected appliances will continue to send their data
to the replica CMC.
To connect another CMC as HA (High Availability) replica, go to Administration /
Synchronization settings page.
Enable the feature by clicking the ON button and then fill the form with the Host and the Sync Token
field of the endpoint you want to replicate it with.
If the destination endpoint doesn't provide CA-Emitted TLS certificate, remember to click on Optional
so the certificates will not be verified (this option isn't recommended).
The Sync token can be found in Administration / Synchronization settings page of the
destination endpoint.
After Save, in order to confirm the connection to the two CMCs, go to Administration /
Synchronization settings page of the destination endpoint and verify the Sync ID shown is the
one of the current machine, and click on Allow button .
| Central Management Console | 213
To verify that everything is configured correctly and it's working, see the Replication status in
the Administration / Health. Here, you can see if the various entities are synchronized, e.g.
AuditItems are elements generally with a low creation frequency, it will be 'In Sync'.
| Central Management Console | 214
Alerts
Alerts management in the centralized console is equivalent to alerts management in an appliance (for
more information about this go to Alerts on page 59). This allows for you to have all the alerts from all
the appliances in one place.
In an appliance, you can create a query (Queries on page 82) and therefore an assertion (Custom
Checks: Assertions on page 144) that involves all the nodes/links/etc of your overall infrastructure.
In the centralized console you have the ability to create a "Global Assertion": you can make one or
more groups of assertions that can be propagated to all the appliances. The appliances cannot edit nor
delete these assertions, only the CMC has control over them.
As mentioned previously, it is possible to configure the centralized console to forward alerts to a SIEM
without having to configure each appliance (for more information on this topic, see Data Integration on
page 107).
| Central Management Console | 215
Functionalities Overview
The unified experience offered by the CMC lacks some of the features found in the appliance user
interface.
As stated above, the Nodes table in a CMC offers only the Show alerts and Navigate actions (the
same table on a appliance has also Configure node, Show requested trace and Request a trace
actions).
In the Environment Links table only the Show alerts and Navigate actions are available (the same
table on an appliance has also Configure link, Show requested trace, Request a trace and Show
events actions).
In Process View Variables table the Configure variable action is not allowed, but the other actions
(Variable details, Add to favourites and Navigate) are. You have a detailed explanation in Process
Variables on page 77.
Configuration actions and trace request functionalities are available only in the appliance user
interface.
| Central Management Console | 216
Updating
In this section we will cover the release update and rollback operations of a Nozomi Networks Solution
architecture, comprised of a Central Management Console and one or more Appliance(s).
The Nozomi Networks Solution Software Update bundle is universal (except for the Container) -- it
applies to both the Guardian and the CMC, and will work for all the physical and virtual appliances to
make for a user-friendly update experience.
Once an Appliance is connected to the Central Management Console, updates are controlled from
there. The software bundle is propagated from the CMC and, once the bundle is received by the
Appliance, the update can be performed automatically or manually. Configure this behavior on the
Synchronization settings page; select an option under Let the user perform the update on
the appliances, as shown below.
If the CMC is configured to allow manual updates, the Appliance's status bar displays a message
notifying the user as soon as the Appliance receives the update bundle (see the next figure).
The update process from the Central Management Console can proceed as explained in Software
Update and Rollback on page 197. After the Central Management Console is updated, each Appliance
will receive the new Software Update.
If an error occurred during the update procedure, a message appears next to the related Appliance's
version number on the Appliances page.
To Rollback, first rollback the Central Management Console, and then proceed to rollback all the
appliances as explained in Software Update and Rollback on page 197.
However, if the CMC is also accessible via its FQDN, and the identity provider was previously set
using the FQDN, you must replace the IP address with the correct FQDN in the configuration rule (for
example, cmc identity_provider_url https://machine.address). Note that to make the change effective
you also have to reboot or restart all of the services.
| Central Management Console | 217
Once the CMC has been configured, you should be able to obtain the identity provider metadata in /
idp/saml/metadata endpoint of the CMC. Continuing with the CMC in the example above, you will
find the metadata file at https://192.168.1.8/idp/saml/metadata. This file is important as it has to be
uploaded on all the appliances on which you want to have the SSO login.
The last remaining step is to configure the appliances to point to the CMC when performing SSO
operations. Specifically, you must use the following data:
• SAML role: https://nozominetworks.com/saml/group-name
• Metadata XML: the file downloaded from the CMC in the previous step
following what is described at SAML Integration on page 41
Note: When you use the FQDN as the Nozomi URL, the appliance's hostname (General on page
116) must be the same value as the configured Nozomi URL, otherwise the CMC will not be able to
authorize the login request.
For example, given a Nozomi URL like "https://appliance.address", the hostname must be
"appliance.address"
At this point everything should be setup, allowing you to be able to perform SSO via the CMC on the
configured appliances.
Note that if you have a hierarchy of CMCs in your installation, you can also setup SSO in a composable
way in order to have a SSO chain. For example, in the following scenario:
• the CMC1 is configured to perform SSO on ExternalIdP
• the CMC2 is attached to CMC1
• the Guardian G1 is attached to CMC2
We can have a SSO chain starting at G1, passing through CMC2, then through CMC1 and ending at
ExternalIdP by configuring each pair of machines as described above. In particular we want to have:
• CMC1 has an identity_provider_url specified in n2os.conf.user and it is configured to perform
SSO on ExternalIdP
• CMC2 has an identity_provider_url specified in n2os.conf.user and it is configured to perform
SSO on CMC1
• G1 is configured to perform SSO on CMC2
Assuming that you want to login into G1 by using ExternalIdP, you will be redirected through all the
configured machines. Once logged in the ExternalIdP, you will be automatically redirected back to G1.
Chapter
12
Remote Collector
Topics: In this section we will cover the Remote Collector product, an
appliance that is intended to be used to collect and forward traffic to
• Overview a Guardian.
• Deployment
A Remote Collector is a low-demanding and low-throughput
• Using a Guardian with appliance suitable for installation in isolated areas (e.g., windmills,
connected Remote Collectors solar power fields), where many small sites are to be monitored.
• Troubleshooting
• Updating
• Disabling a Remote Collector
| Remote Collector | 220
Overview
The Remote Collector has been designed to be deployed in installations that require monitoring of
many isolated locations. Remote Collectors connect to a Guardian and act as "remote interfaces",
broadening its capture capability, and thus allowing a Guardian to be applied in simple but highly-
distributed scenarios.
A Remote Collector is an appliance meant to run on a less performant hardware than the Guardian or
the CMC, and its main task is that of just "forwarding" traffic to a Guardian. In some sense a Remote
Collector is to a Guardian as a Guardian is to a CMC. There are some key differences though. First of
all, a Remote Collector does not process sniffed traffic in any way, it just forwards it to the Guardian it
is attached to. Second, a Remote Collector has no graphical user interface. Finally, as it runs on less
performant hardware than the Guardian, a Remote Collector has a limitation on the bandwidth that it
can process.
A Guardian can be enabled to receive traffic from the Remote Collectors. When enabled it provides
an additional (virtual) network interface, called "remote-collector", which aggregates the traffic of the
Remote Collectors connected to it. The currently connected Remote Collectors can be inspected from
the "Appliances" tab.
Each Remote Collector is entitled to forward the traffic it sniffs to a set of Guardians. Several Remote
Collectors can connect to a Guardian. Traffic is encrypted with high security measures over the
channel (TLS), so that it cannot be intercepted by a third-party. The Firmware of a Remote Collector
receives automatic updates from the Guardian it is connected to.
| Remote Collector | 221
Deployment
The first step to setup a Remote Collector is to deploy its Virtual Machine (VM) or its Container.
The Remote Collector VM can be deployed following the steps provided in Installing the Virtual
Machine on page 13 for the Guardian edition. The main difference is that the Remote Collector version
of the image must be used in the installation.
Alternatively, a Remote Collector Container can be deployed following the steps in Installing the
Container on page 15, changing the container name, e.g.:
docker build -t nozomi-rc .
Connecting to a Guardian
Each Remote Collector has to be configured via terminal (ssh or console). First, configure the Remote
Collector network setting by following the same procedure as used for Guardian, which is described in
Setup Phase 1 on page 17. Once you have completed that step, proceed to connecting it to Guardian
as described below. The following assumes that 1.1.1.1 is the IP address of the Remote Collector.
1. Run command n2os-enable-rc
This command will open port 6000 on the firewall, which the Remote Collector uses to send the
traffic it sniffs. Moreover, a new interface called "remote-collector" will appear in the list of "Network
Interfaces".
2. The synchronization of a Remote Collector towards the Guardian for the purpose of software update
is now enabled as shown in Administration / Synchronization settings. Note down the
Sync token.
| Remote Collector | 222
4. From the previous menu, select the "Set Connection Sync Token" menu. Insert the token you have
noted down during the Guardian configuration step.
| Remote Collector | 224
5. Optionally, a bpf-filter can be added by selecting the "Set BPF Filter" menu from the previous menu.
Enable Multiplexing
In addition to a primary Guardian, the Remote Collector can multiplex traffic to a set of secondary
Guardians. Every Guardian will receive the same traffic information from the Remote Collector.
To enable multiplexing it is sufficient to configure at least one secondary guardian. In the following
assume that 1.2.3.4 is the ip address of the secondary Guardian to connect to, and ABCD is the
token you have noted down during the Guardian configuration step. To configure the secondary
Guardian, add the following lines to the n2os.conf.user:
Although each guardian receives the same traffic information, only the primary is authorized to
change its settings. At each sync, in case of communication failure with the primary Guardian, the first
secondary Guardian that connects successfully will acquire the configuration capabilities.
2. Click it and inspect the pane on the right. The "Last seen packet" property indicates whether traffic
is being forwarded.
Note that it takes few minutes to complete the exchange and the last step is completed only once
the Remote Collector sends the first encrypted packet to the appliance. If no trafic is being sniffed
(and therefore forwarded), the procedure remains stuck in the connecting (i.e. spinning wheel) step.
Final configuration
After all the appliances have been configured it is necessary to reboot them for the configuration to
take effect. Alternatively, it is sufficient to perform the following commands
1. service n2osrc stop
on the Guardian
2. service n2osrs stop
on each Remote Collector
The provenience of the packets is tracked internally by the Guardian and it is displayed in several
locations, such as in the the "Nodes" tab of "Network View",
Troubleshooting
In this section a list of the most useful troubleshooting tips for the RC is given.
1. If a Remote Collector is not appearing at all in the Appliances tab:
• Ensure that firewall(s) between the Guardian and the Remote Collector allows traffic on TCP/443
port (HTTPS), with the Remote Collector as Source and the Guardian as the Target
• Check that the tokens are correctly configured both in the Guardian and the Remote Collector
• Check the /data/log/n2os/n2osjobs.log file of the Remote Collector for connection
errors.
2. If a Remote Collector appears in the Appliances tab, but it sends no traffic (last seen packet is
empty or does not update its value):
• Ensure that firewall(s) between the Guardian and the Remote Collector allows traffic on
TCP/6000 port, with the Remote Collector as Source and the Guardian as the Target
• Check that the certificates have been correctly exchanged between the Guardian and the
Remote Collector, i.e., that the certificate at /data/ssl/https_nozomi.crt of an appliance
appears listed in /data/ssl/trusted_nozomi.crt of the other appliance, or that the
certificate chain has been trusted
• Check the /data/log/n2os/n2os_rs.log file of the Remote Collector for connection
errors. In particular errors related to certificates are logged with the error code coming directly
from the openssl library. Once identified the code it is possible to check for the corresponding
explanation at the following page: https://www.openssl.org/docs/man1.1.0/man3/
X509_STORE_CTX_get_error.html
• Make sure to restart n2osrc and n2osrs services everytime a change in the config or the
certificates is performed
| Remote Collector | 229
Updating
In this section we will cover the release update and rollback operations of a Remote Collector.
Remote Collectors receive automatic updates from the Guardian they are attached to: as for the
Guardian to the CMC, the Remote Collector updates to the version of the Guardian if the current
firwmare version is older than the Guardian's.
Note that Remote Collector Container does not update automatically.
A Remote Collector has no graphical interface. The only other method for changing the version of a
Remote Collector is to use the manual procedure described at Software Update and Rollback on page
197.
2. If you remove all the remote collectors in your environment, you can prevent any remote collectors
from sending data to Guardian. This hardening measure can make your environment more secure.
To do so log into the shell of the Guardian that receives data from the Remote Collector, go to
privileged mode, and run
n2os-disable-rc
Chapter
13
Configuration
Topics: This section describes the configuration of Nozomi Networks
Solution components in detail.
• Features Control Panel
Some features can be quickly configured using the Features Control
• Editing Configuration files
Panel (see Features Control Panel on page 232).
• Basic configuration rules
• Configuring the Garbage Other configuration rules can be inserted via shell by editing the
Collector configuration file (see Editing Configuration files on page 232) or
by inserting the rule through the CLI. To access the cli, either run
• Configuring alerts the cli command in a shell or click Administration > CLI in
• Configuring nodes the web GUI.
• Configuring links
For each configuration rule, we will cover all the required details.
• Configuring variables
• Configuring protocols
• Configuring decryption
• Configuring trace
• Configuring Time Machine
• Configuring retention
• Configuring Bandwidth
Throttling
• Configuring Remote Collector
Bandwidth Throttling
• Configuring synchronization
• Configuring session hijacking
protection
| Configuration | 232
The Retention tab allows to select a specific number (aka Retention level) for historical data
persistence. In some cases, you can completely disable a feature's retention.
Expiration: allows to select a specific number of days for historical data persistence. It is allowed to
persist the data forever.
Space retention level: allows to select a specific space size for historical data persistence.
Products Guardian
Syntax mgmt_filters <on|off>
Description With this rule you can switch off the filters on packets that come from/to
N2OS itself.
Parameters • on|off: choose 'off' if you want to disable the management filters (default:
on).
Products Guardian
Syntax probe deduplication enabled <status>
Description It can enable or disable the deduplication analysis that N2OS does on TCP/
UDP packets.
Parameters • status: it can be either true, to enable the feature, or false, to disable it.
(default: true)
Products Guardian
Syntax probe deduplication tcp_max_delta <delta>
Description Set the desired maximum time delta, in milliseconds, to consider duplicated
a TCP packet.
Parameters • delta: the value of the maximum time delta. (default: 1)
Products Guardian
Syntax probe deduplication udp_max_delta <delta>
Description Set the desired maximum time delta, in milliseconds, to consider duplicated
an UDP packet.
Parameters • delta: the value of the maximum time delta. (default: 1)
Products Guardian
Syntax ids configure vi zones default <private|public>
<zone_name>
Description Set the private or public fallback zone name, for nodes not matching any
zone. Details on zones feature can be viewed in Network Graph on page 66.
Remark: zones can be configured through the GUI, which is the preferred
way. Refer to Zone configurations on page 114
Add Zone
Products Guardian
Syntax conf.user configure vi zones add <subnet>[,<subnet>,...]
<zone_name>
Description Add a new zone containing all the nodes in one or more specified
subnetworks. More subnetworks can be concatenated using commas. The
subnetworks can be specified using the CIDR notation (<ip>/<mask>) or
by indicating the end IPs of a range (both ends are included: <low_ip>-
<high_ip>).
Remark: zones can be configured through the GUI, which is the preferred
way. Refer to Zone configurations on page 114
Parameters • subnet: the subnetwork or subnetworks assigned to the zone; both IPv4
and IPv6 are supported
• zone_name: the name of the zone
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi zones setlevel <level>
<zone_name>.
| Configuration | 235
Description Assigns the specified level to a zone. All nodes pertaining to the given zone
will be assigned the level.
Remark: zones can be configured through the GUI, which is the preferred
way. Refer to Zone configurations on page 114.
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi zones setis_public
<nodes_ownership> <zone_name>.
Description Sets the specified nodes ownership for a zone. All nodes belonging to the
given zone are overwritten inheriting the value.
Remark: zones can be configured through the GUI, which is the preferred
way. Refer to Zone configurations on page 114.
Parameters • nodes_ownership: the nodes ownership of the nodes in the zone. It can
be either true, for public ownership, or false, for private ownership
• zone_name: the name of the zone
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi zones setsecprofile
<security_profile> <zone_name>.
Description Assigns the specified security profile to a zone. The visibility of the alerts
generated within the zone will follow the configured security profile.
Refer to Security Profile .
Parameters • security_profile: the security profile assigned to the zone. Values: low,
medium, high, paranoid
• zone_name: the name of the zone
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe custom-protocol <name>
<transport> <port>
Description Add a new protocol specifying a port and a transport layer
| Configuration | 236
Parameters • name: the name of the protocol, it will be displayed through the user
interface; DO NOT use a protocol name already used by SG. E.g. one
can use MySNMP, or Myhttp
• transport: the transport layer, choose "udp" or "tcp"
• port: the transport layer port used to identify the custom protocol
Where In CLI.
To apply It is applied automatically
Disabling a protocol
Products Guardian
Syntax conf.user configure probe protocol <name> enable false
Description Completely disables a protocol. This can be useful to fine tune the appliance
for specific needs.
Parameters • name: the name of the protocol to disable
Where In CLI.
To apply It is applied automatically
Set IP grouping
Products Guardian
Syntax probe ipgroup <ip>/<mask>
Description This command permits to group multiple ip addresses into one single
node. This command is particularly useful when a large network of clients
accesses the SCADA/ICS system. To provide a clearer view and get an
effective learning phase, you can map all clients to a unique node simply by
specifying the netmasks (one line for each netmask). The Trace on page 48
will still show the raw IPs in the provided PCAP files.
Warning: This command merges all nodes information into one in an
irreversible way, and the information about original nodes is not kept.
Products Guardian
Syntax probe ipgroup public_ips <ip>
Description This command permits to group all public IP addresses into one single node
(for instance, use 0.0.0.0 as the 'ip' parameter). This command is particularly
useful when the monitored network includes nodes that have routing to the
Internet. The Trace on page 48, will still show the raw IPs in the provided
PCAP files.
Warning: This command merges all nodes information into one in an
irreversible way, and the information about original nodes is not kept.
Products Guardian
Syntax probe ipgroup public_ips_skip <ip>/<mask>
Description This is useful when the monitored network has a public addressing that has
to be monitored (i.e. public addressing used as private or public addresses
that are in security denylists).
Parameters • ip/mask: the subnetwork identifier to skip
Products Guardian
Syntax vi private_ips <ip>/<mask>
Description This rule will set the is_public property of nodes matching the provided mask
to false. This is useful when the monitored network has a public addressing
used as private (e.g. violation of RFC 1918).
Parameters • ip/mask: the subnetwork identifier to treat as private; both IPv4 and IPv6
are supported
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol syslog capture_logs
<true | false>
Description With this configuration rule you can enable the passively capture of the
syslog events. It is useful when you want to forward them to a SIEM, for
further details see Syslog Forwarder on page 111
| Configuration | 238
Parameters • <true | false>: true in case you want to enable it, false otherwise.
Where In CLI.
To apply It is applied automatically
Enable Guardian HA
Products Guardian
Syntax conf.user configure guardian replica-of <other Guardian
id>
Description With this configuration rule you can enable the Guardian HA mode for two
Guardians that sniff the same traffic and are connected to the same CMC.
During normal operations, only the primary Guardian syncs with the CMC;
if it stops synchronizing the secondary Guardian will start synchronize the
records from the last primary Guardian update. This rule should only be
configured on the secondary appliance.
Parameters • <other Guardian id>: the id of the other Guardian, it can be found
on the CMC with the query appliances | where host ==
<appliance_hostname> | select id
Where In CLI.
To apply service n2osjobs stop
Products Guardian
Syntax conf.user configure va_notification matching
<key>=<value> discard
Description With this configuration rule you can disable Vulnerability Assessment for
node matching the specified rules. The effect of this configuration rule is to
discard the matching of CVE identifiers.
Parameters • key can be one from these values:
• id: the id of a node, it can be an IP address, a netmask in the CIDR
format or a MAC address.
• label: the label of a node.
• zone: the zone in which a node is located.
• type: the type of a node.
• vendor: the vendor of a node.
• value: if a simple string is specified the match will be performed with an
"equal to" case-sensitive criterion. The matching supports two operators:
• ^: starts with.
• [: contains.
These operators must be specified right after the = symbol and their
match is case-insensitive.
Examples:
• va_notification matching id=192.168.1.123 discard
• va_notification matching id=192.168.1.0/24 discard
• va_notification matching label=^abc discard
Where In CLI.
To apply service n2osva stop
| Configuration | 239
Products Guardian
Syntax conf.user configure va cve enable false
Description With this configuration rule you can disable CVE generation. CPE
generation will still be active, as a consequence CVEs on the CMC will be
calculated. This setting is useful for saving resources on a Guardian when
CVEs are only used at the CMC level.
Parameters
Where In CLI.
To apply service n2osva stop
Products Guardian
Syntax conf.user configure vi ipv6_assets enabled
Description With this configuration rule you can enable assets generation also when
nodes are IPv6.
Parameters
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi persistence skip_links true
Description With this configuration rule you can disable the persistence of links, thus
saving disk space in cases with a large number of links.
Parameters
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi machine_limits_variables_quota N
Description With this configuration rule you can change the maximum percentage of
Variables in the Network Elements pool, the default is 0.6 meaning that no
more than 60% of Network Elements can be Variables.
Parameters • N: the percentage of variables expressed as a number from 0.0 to 1.0,
e.g. vi machine_limits_variables_quota 0.7.
Where In CLI.
To apply service n2osids stop
Description With this configuration rule you can change the number of Unicorn Web
Server workers. With an higher workers count the CMC/Guardian can
handle more Web UI requests concurrently but will increase the memory
usage by 600MB per worker on average.
Parameters • N: the new number of workers.
Where In CLI.
To apply service unicorn stop
| Configuration | 241
Products Guardian
Syntax conf.user configure vi gc old_ghost_nodes <seconds>
Description Set the threshold after which idle nodes that are also not confirmed and not
learned are discarded by the garbage collector.
Parameters • seconds: number of seconds after which cleanup occurs (the default is
3600, the equivalent of one hour).
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi gc old_public_nodes <seconds>
Description Determines how long to keep public nodes that are inactive. Expressed in
seconds.
Note: This cleanup strategy only applies to nodes that are not learned.
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi gc old_ghost_links <seconds>
Description Determines how long to wait before removing links that are not real (for
example, a connection try whose endpoint is not responding on the specified
port). Expressed in seconds.
Parameters • seconds: number of seconds after which clean up occurs. By default, this
rule is disabled.
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi gc sessions_may_expire_after
<seconds>
| Configuration | 242
Description Determines how long to wait before a session is considered stale and it's
resources may be collected. Expressed in seconds.
Parameters • seconds: number of seconds after which clean up may occur. By default,
set to 100 seconds.
Where In CLI.
To apply It is applied automatically
| Configuration | 243
Configuring alerts
Products Guardian
Syntax conf.user configure alerts max_victims <num>
Description Define the maximum number of victims that each alert can contains. Victims
exceeding the given value are not stored. Default value is 1000
Parameters • num: maximum number of victims stored for each alert.
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure alerts max_description_length
<nchars>
Description Define the maximum number of characters that can contain the description
of each incident. When an incident is appendding an alert description, the
append is performed only if the incident description length is smaller then
the limit.
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax for conf.user configure alerts mitre_attack ics_mapping
MITRE ATT&CK <path>
for ICS
mappings
Syntax for conf.user configure alerts mitre_attack
MITRE ATT&CK enterprise_mapping <path>
Enterprise
mappings
Description Customize the rules used to assign MITRE ATT&CK techniques to alerts
by means of an external file. The file has the following format. Each line
defines a rule; the rule specifies an alert type ID followed by a semicolon
and a comma-separated list of MITRE ATT&CK technique IDs. For instance,
the line SIGN:PROGRAM:UPLOAD;T0843,T0853 instructs Guardian that
alerts of type SIGN:PROGRAM:UPLOAD must be assigned both the T0843
and T0853 MITRE ATT&CK techniques.
Where In CLI.
To apply It is applied automatically
| Configuration | 244
SIGN:MULTIPLE-ACCESS-DENIED
In this section we will configure the visibility of credentials
Products Guardian
Syntax conf.user configure alerts hide_username_on_alerts
<true|false>
Description This flag determines whether usernames should be presented or not in the
the alert. By default, the credentials are visible.
Where In CLI.
To apply It is applied automatically
| Configuration | 245
SIGN:MULTIPLE-UNSUCCESSFUL-LOGINS
In this section we will configure the visibility of credentials
Products Guardian
Syntax conf.user configure alerts hide_username_on_alerts
<true|false>
Description This flag determines whether usernames should be presented or not in the
the alert. By default, the credentials are visible.
Where In CLI.
To apply It is applied automatically
| Configuration | 246
SIGN:OUTBOUND-CONNECTIONS
In this section we will configure the outbound connections limit.
Guardian can detect a sudden increase of outbound connections from a specific learned source node.
An alert is raised by default when 100 new outbound connections are observed over a 60-seconds
interval.
By default, the detection is only performed when the node is being protected. Optionally, the detection
can also be performed when the node is being learned.
Optionally, we can prevent the system from creating additional destination nodes in order to preserve
resources. Such nodes creation limit is disabled by default.
Some of the configuration parameters listed below can be applied either globally or to individual nodes.
The configuration of an individual node has more priority and overrides the global configuration.
Products Guardian
Syntax conf.user configure vi outbound_connections_limit
learning <value>
Description Specify whether the detection has to be performed also when the source
node is being learned or only when it is being protected.
Parameters • value: either true (detection also when source node is being learned) or
false (default: detection only when source node is being protected)
Where In CLI
To apply It is applied automatically
Products Guardian
Syntax global conf.user configure vi outbound_connections_limit
enabled <value>
Syntax conf.user configure vi node <ip>
individual node outbound_connections_limit enabled <value>
Description Enable/disable the destination nodes creation limit.
Parameters • ip: the IP of the source node
• value: either true (enabled) or false (disabled)
Where In CLI
To apply It is applied automatically
Products Guardian
Syntax global conf.user configure vi outbound_connections_limit
connections <count>
Syntax conf.user configure vi node <ip>
individual node outbound_connections_limit connections <count>
Description Set the outbound connections limit, in number of connections.
Parameters • ip: the IP of the source node
• count: the amount of outbound connections from a node to be observed
in order to trigger the detection (default: 100)
| Configuration | 247
Where In CLI
To apply It is applied automatically
Products Guardian
Syntax global conf.user configure vi outbound_connections_limit
interval <value>
Syntax conf.user configure vi node <ip>
individual node outbound_connections_limit interval <value>
Description Set the outbound connections observation interval, in seconds.
Parameters • ip: the IP of the source node
• interval: the time interval during which the new outbound connections are
observed.
Where In CLI
To apply It is applied automatically
For example, we can configure the outbound connections limit to prevent a source node from creating
additional destination nodes when 70 outbound connections are observed during a 30-seconds interval
with the following configuration commands:
SIGN:PASSWORD:WEAK
In this section we will configure the visibility of weak credentials
Products Guardian
Syntax conf.user configure alerts hide_username_on_alerts
<true|false>
conf.user configure alerts hide_password_on_alerts
<true|false>
Description These flags determine whether usernames and passwords should be
presented or not in the description of the weak credentials alerts. By default,
the credentials are visible.
Where In CLI.
To apply It is applied automatically
| Configuration | 249
SIGN:TCP-SYN-FLOOD
In this section we will configure the TCP SYN flood detection.
A node is considered to be under a TCP SYN flood attack when:
• The number of incoming connection attempts during the observation interval is greater than the
detection counter
• And, during the observation interval, the ratio between established connections and total number of
connection attempts falls below the trigger threshold
A TCP SYN flood attack is considered terminated when:
• The number of incoming connection attempts during the observation interval returns below the
detection counter
• Or, during the observation interval, the ratio between established connections and total number of
connection attempts returns above the exit threshold
Products Guardian
Syntax conf.user configure vi tcp_syn_flood_detection counter
<value>
Description Set the connection attempts counter, in number of connections.
Parameters • value: the amount of connection attempts to be observed in order to
trigger the detection (default: 100)
Where In CLI
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi tcp_syn_flood_detection interval
<value>
Description Set the observation interval, in seconds.
Parameters • value: the time interval during which the connection attempts are
observed, in seconds (default: 10).
Where In CLI
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi tcp_syn_flood_detection
trigger_threshold <value>
Description Set the trigger threshold.
Parameters • value: the ratio between established connections and connections
attempts, which when it is reached triggers the flood detection (default:
0.1).
Where In CLI
To apply It is applied automatically
| Configuration | 250
Products Guardian
Syntax conf.user configure vi tcp_syn_flood_detection
exit_threshold <value>
Description Set the exit threshold.
Parameters • value: the ratio between established connections and connections
attempts, which when it is reached terminates the flood detection
(default: 0.4).
Where In CLI
To apply It is applied automatically
For example, with the commands below the TCP SYN flood detection would trigger when 200
connection attempts are observed during a 15-seconds observation interval and the ratio between
established connections and connection attempts falls below 0.3. Then the detection would terminate
when the ratio returns above 0.5.
SIGN:UDP-FLOOD
In this section we will configure the UDP flood detection.
The detection is enabled by default and it triggers when a victim receives 20'000 UDP packets per
second for at least 10 seconds.
Enable/disable detection
Products Guardian
Syntax conf.user configure vi udp_flood_detection enabled
<value>
Description Enable/disable the UDP flood detection.
Parameters • value: either true (enabled) or false (disabled)
Where In CLI
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi udp_flood_detection
packets_per_second <threshold>
Description Set the UDP flood detection threshold, in packets per second.
Parameters • threshold: the amount of UDP packets per second to be transmitted to
a victim for at least 10 seconds in order to trigger the detection (default:
20000)
Where In CLI
To apply It is applied automatically
For example, we can configure the UDP flood detection to trigger when a victim receives 40'000 UDP
packets per second for at least 10 seconds with the following configuration command:
Configuring nodes
Products Guardian
Syntax ids configure vi node <ip> label <label>
Description Set the label to a node in the Environment, the label will appear in the
Environment > Network View > Graph, in the Environment >
Network View > Nodes and in the Environment > Process View >
Variables
Parameters • ip: the IP address of the node
• label: the label that will be displayed in the user interface
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax ids configure vi node <ip> device_id_with_priority
<device_id>;<priority>
Description Adds the Device ID to the set of node Device IDs. The final Device ID, used
for node grouping under Assets is the one with the highest priority
Parameters • ip: the IP address of the node
• device_id: the Device ID to add
• priority: the priority of the Device ID. If missing, it will be se to the lowest
priority value
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax ids configure vi node <ip> device_id_override
<device_id>
Description Adds the Device ID to the set of node Device IDs, giving it the maximum
priority value. This Device ID will be used for node grouping under Assets
Parameters • ip: the IP address of the node
• device_id: the Device ID to add (with the maximum priority)
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax ids configure vi node <ip> state <state_value>
Description This directive permits to disable a node. This setting has effect in the graph:
a disabled node will not be displayed.
| Configuration | 253
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax check_multiple_macs_same_ip enable <true|false>
Description This directive permits to enable the separation of L3 nodes with same IP
but different MAC address. The nodes with the desired IP addresses will be
treated as L2 nodes and appear as distinct assets. If the nodes already exist
as L3 nodes upon the application of the configuration, they will be deleted
and the new logic will start to execute with empty statistics.
Parameters • true | false: enable or disable the feature
Products Guardian
Syntax check_multiple_macs_same_ip ip <ip_address>
Description Selects the ip of the nodes which should be separated as per the strategy
described in the previous box.
Parameters • ip_address: ip of the node to be configured
Delete node
Products Guardian
Syntax ids configure vi node <ip> :delete
Description Delete a node from the Environment
Parameters • ip: the IP of the node to delete
Where In CLI.
To apply It is applied automatically
Define a cluster
Products Guardian
Syntax conf.user configure vi cluster <ip> <name>
Description This command permits to define an High Availability cluster of observed
nodes. In particular, this permits to: accelerate the learning phase by joining
the learning data of two sibling nodes, and to group nodes by cluster in the
graph.
| Configuration | 254
Where In CLI.
To apply It is applied automatically
| Configuration | 255
Configuring links
Products Guardian
Syntax conf.user configure vi link <ip1> <ip2>
<protocol> :check_last_activity <seconds>
Description Set the last activity check on a link, an alert will be raised if the link remains
inactive for more than the specified seconds
Parameters • ip1, ip2: the IPs of the two nodes involved in the communication
• protocol: the protocol
• seconds: the communication timeout
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi link <ip1> <ip2>
<protocol> :is_persistent
Description Set the persistency check on a link, if a new handshake is detected an alert
will be raised
Parameters • ip1, ip2: the IPs of the two nodes involved in the communication
• protocol: the protocol
Where In CLI.
To apply It is applied automatically
Delete link
Products Guardian
Syntax ids configure vi link <ip1> <ip2> :delete
Description Delete a link
Parameters • ip1, ip2: the IPs identifying the link
Where In CLI.
To apply It is applied automatically
Delete protocol
Products Guardian
Syntax ids configure vi link <ip1> <ip2> <protocol> :delete
Description Delete a protocol from a link
Parameters • ip1, ip2: the IPs identifying the link
• protocol: the protocol of the link to delete
Where In CLI.
To apply It is applied automatically
| Configuration | 256
Products Guardian
Syntax ids configure vi link <ip1> <ip2> <protocol> fc
<func_code> :delete
Description Delete a function code from a protocol
Parameters • ip1, ip2: the IPs identifying the link
• protocol: the protocol of the link
• func_code: the function code to delete
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi link_events <enabled|disabled>
Description Enable or disable the generation of link_events records, this feature can
have an impact on performance, enable it carefully
Where In CLI.
To apply It is applied automatically
| Configuration | 257
Configuring variables
Products Guardian
Syntax ids configure vi variable default history <enabled |
disabled>
Description Set if the variable history is enabled or not, when not set it's disabled.
The amount of the history maintained can be configured in "Variable history
retention" section in Configuring retention on page 271
Note: Enabling this functionality can negatively affect Guardian's
performance, depending on the amount of variables and the update rate.
Parameters • <enabled | disabled>: use "enabled" when you want to enable it,
"disabled" otherwise
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax ids configure vi variable <var_key> history <enabled |
disabled>
Description <enabled | disabled> Define the amount of samples shown in the graphical
history of a variable.
Parameters • var_key: the variable identifier
• <enabled | disabled>: Set if the variable history is enabled or not, when
not set it's disabled.
The amount of the history maintained can be configured in "Variable
history retention" section in Configuring retention on page 271
Note: Enabling this functionality can negatively affect Guardian's
performance, depending on the update rate of the variable.
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax ids configure vi variable <var_key> label <label>
Description Set the label for a variable, the label will appear in the Environment >
Process View sections
Parameters • var_key: the variable identifier
• label: the label displayed in the user interface
Where In CLI.
To apply It is applied automatically
| Configuration | 258
Products Guardian
Syntax ids configure vi variable <var_key> unit <unit>
Description Set a unit of measure on a variable.
Parameters • var_key: the variable identifier
• unit: the unit of measure displayed in the user interface
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax ids configure vi variable <var_key> offset <offset>
Description The offset of the variable that will be used to map the 0 value of the variable.
Parameters • var_key: the variable identifier
• offset: the offset value used to calculate the final value of the variable
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax ids configure vi variable <var_key> scale <scale>
Description The scale of the variable that is used to define the full range of the variable.
Parameters • var_key: the variable identifier
• scale: the scale value used to calculate the final value of the variable
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure vi variable
<var_key> :check_last_update <seconds>
Description Set the last update check on a variable, if the variable value is not updated
for more than the specified seconds an alert is raised
Parameters • var_key: the variable identifier
• seconds: the timeout after which a stale variable alert will be raised
Where In CLI.
To apply It is applied automatically
Products Guardian
| Configuration | 259
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure cs variable <id> <var_key> [<|>|=]
<value>
Description Define a new custom critical state on a single variable that will raise on
violation of defined range.
Parameters • id: a unique ID for this critical state
• var_key: the variable identifier
• operator: the operand to evaluate for the critical state to rise. For
instance, if the > operator is specified, the variable will have to be higher
than value to trigger the critical state.
• value: the variable value to check for
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure cs multi <id> variable c1 <var_key>
[<|>|=] <value> ^ variable c2 <var_key> [<|>|=] <value>
[^ ...]
Description Creates a multi-valued critical state, that is an expression of "variable critical
states", described above. The syntax is and AND (^) expression of the
single-variable critical state.
Parameters • id: a unique ID for this critical state
• var_key: the variable identifier
• operator: the operand to evaluate for the critical state to rise. For
instance, if the > operator is specified, the variable will have to be higher
than value to trigger the critical state.
• value: the variable value to check for
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol <name>
variables_extraction <disabled|enabled|advanced|global>
| Configuration | 260
Description It allows the application of a variable extraction policy different from the
global policy on a protocol basis. Note that if the Global policy is set to
Disabled, it prevails on any protocol-specific setting. However, protocol
specific policies prevail.
Parameters • name: the name of the target protocol
• mode: whether variables extraction is disabled, enabled, enabled with
advanced heuristics (advanced) or it should inherit the global policy
(global).
Where In CLI.
To apply It is applied automatically
| Configuration | 261
Configuring protocols
Products Guardian
Syntax conf.user configure probe protocol iec101 ca_size <size>
Description iec101 CA size can vary across implementations, with this configuration rule
the user can customize the setting for its own environment
Parameters • <size>: the size in bytes of the CA
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec101 la_size <size>
Description iec101 LA size can vary across implementations, with this configuration rule
the user can customize the setting for its own environment
Parameters • <size>: the size in bytes of the LA
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec101 ioa_size
<size>
Description iec101 IOA size can vary across implementations, with this configuration
rule the user can customize the setting for its own environment
Parameters • <size>: the size in bytes of the IOA
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec101 bytes_to_skip
<amount>
Description Based on the hardware configuration iec101 can be prefixed with a fixed
amount of bytes, with this setting Guardian can be adapted to the peculiarity
of the environment.
Parameters • <amount>: the amount of bytes to skip
Where In CLI.
To apply It is applied automatically
| Configuration | 262
Products Guardian
Syntax conf.user configure probe protocol iec102 ree <enabled|
disabled>
Description There is a standard from Red Electrica Espan#ola which changes the
semantic of the iec102 protocol, after enabling this setting the iec102
protocol decoder will be compliant to the REE standard.
Parameters • <enabled|disabled>: specify enabled to enable the Red Electrica
Espan#ola semantic
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec102 subnet
<subnet>
Description The detection of iec102 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific subnet
Parameters • <subnet>: a subnet in the CIDR notation
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec102 port <port>
Description The detection of iec102 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific port
Parameters • <port>: the TCP port
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec103 subnet
<subnet>
Description The detection of iec103 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific subnet
Parameters • <subnet>: a subnet in the CIDR notation
Where In CLI.
To apply It is applied automatically
| Configuration | 263
Products Guardian
Syntax conf.user configure probe protocol iec103 port <port>
Description The detection of iec103 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific port
Parameters • <port>: the TCP port
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec103
force_iec101_semantics true
Description Forces change of semantics for iec103 protocol to use ASDUs of iec101
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol iec103
accept_on_fragmented true
Description Allow to accept as iec103 those packets that are always incomplete,
thus allowing situations where the protocol is heavily fragmented to be
recognized.
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol http
detect_uri_passwords <true|false>
Description Guardian is able to detect if plain text passwords and login credentials
are present in HTTP payloads, such as strings containing 'ftp://
user:password@example.com'. The feature is disabled by default.
Parameters • <true|false>: a boolean to enable or disable the feature
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol tg102 subnet <subnet>
Description The detection of tg102 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific subnet
| Configuration | 264
Where In CLI.
To apply It is applied automatically
Set the port range in which the tg102 protocol will be enabled
Products Guardian
Syntax conf.user configure probe protocol tg102 port_range
<src_port>-<dst_port>
Description The detection of tg102 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific port range
Parameters • <src_port>: the starting port of the range
• <dst_port>: the ending port of the range
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol tg800 subnet <subnet>
Description The detection of tg800 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific subnet
Parameters • <subnet>: a subnet in the CIDR notation
Where In CLI.
To apply It is applied automatically
Set the port range in which the tg800 protocol will be enabled
Products Guardian
Syntax conf.user configure probe protocol tg800 port_range
<src_port>-<dst_port>
Description The detection of tg800 can lead to false positives, this rules give the
possibility to the user to enable the detection on a specific port range
Parameters • <src_port>: the starting port of the range
• <dst_port>: the ending port of the range
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol s7 exclude <area>
<type>
Description For performance reasons or to reduce noise it's possible to selectively
exclude variables extraction for some areas and type.
| Configuration | 265
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe tls-inspection enable <true|
false>
Description TLS inspection is normally performed only on https and iec104s traffic.
Enabling the full inspection mode provides the following additional features:
• TLS traffic found on any TCP port is inspected
• an alert is raised when TLS-1.0 is used (when this mode is disabled, this
is an https only check)
• an alert is raised on expired certificates
• an alert is raised on weak cipher suites
• session ID, cipher suite and certificates are extracted into the relative link
events
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure probe protocol ethernetip-implicit
persist-connection <true|false>
Description The Ethernet/IP Implicit decoder of Guardian is able to detect handshakes
that are then used to decode variables. In some scenarios these
handshakes are not common but it's very important to persist them so that
Guardian can continue to decode variables after a reboot or an upgrade.
By enabling this option Guardian will store on disk the data needed to
autonomously reproduce the handshake phase after a reboot.
Parameters • <true|false>: a boolean to enable or disable the feature
Where In CLI.
To apply It is applied automatically
| Configuration | 266
Configuring decryption
The following sections decribe the configuration of Guardian's decryption capabilities for links. For
more decryption details beyond the scope of this manual, contact Nozomi Networks.
Configuring IEC-62351-3
The following steps assume we're decoding the communication of a TLS server with the address
192.168.1.26.
1. Upload the TLS server’s private key to /data/cfg. The file name must match the server's address.
In our case, the file must be named 192.168.1.26.key.
Your key should be similar to the following:
2. In Guardian's Features Control Panel, enable link events; this provides visibility to the TLS decoded
handshakes; for example:
| Configuration | 267
3. Specify the key file's location by defining it in the /data/cfg/n2os.conf.user file. To continue
our example, we would use the following string:
Configuring trace
Retention
The number of traces the Guardian can keep is limited. It is possible to configure the maximum number
of traces saved on disk and the minimum percentage of disk free before the old traces will be deleted.
Trace parameters
The parameters involved in the process of saving a trace can be configured in the file /data/cfg/
n2os.conf.user, here is an explanation of each parameter:
trace trace_request_timeout 60
trace max_pcaps_to_retain 200
trace min_disk_free 25
| Configuration | 270
Products Guardian
Syntax tm snap on_alert <status>
Description It can enable or disable the possibility to take a snapshot for each alert.
Parameters • status: it can be either true, to enable the feature, or false, to disable it.
(default: false)
Configuring retention
Retention of historical data is controlled for each persisted entity by a configuration entry. Modify it to
extend or reduce the default retention.
By default, the CMC retains 500,000 alerts. Note that retaining large numbers of alerts can impair
performance. We recommend limiting the number of alerts generated rather than retaining more data.
If you want to retain more alerts, we recommend an iterative approach of incrementally increasing
this value and evaluating the system's performance. In some cases, you may want to send alerts to a
different system using our data integration features instead of retaining the alerts in the appliance.
Alerts retention
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure retention trace_request rows
<rows_to_retain>
Description Set the amount of trace requests to retain
Parameters • rows_to_retain: the number of rows to keep (default: 10000)
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure retention link_event rows
<rows_to_retain>
Description Set the amount of link events to retain
Parameters • rows_to_retain: the number of rows to keep (default: 2500000)
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure retention captured_urls rows
<rows_to_retain>
Description Set the amount of captured "urls" (http queries, dns queries, etc) to retain
Parameters • rows_to_retain: the number of rows to keep (default: 10000)
| Configuration | 272
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure retention variable_history rows
<rows_to_retain>
Description Set the amount of variable historical values to retain
Parameters • rows_to_retain: the number of rows to keep (default: 1000000)
Where In CLI.
To apply It is applied automatically
Products Guardian
Syntax conf.user configure retention node_cve rows
<rows_to_retain>
Description Set the maximum amount of node_cve entries to retain
Parameters • rows_to_retain: the number of rows to keep (default: 100000)
Where In CLI.
To apply service n2osva stop
Products Guardian
Syntax conf.user configure retention input_pcap rows
<files_to_retain>
Description Set the amount of PCAP files to retain
Parameters • files_to_retain: the number of files to keep (default: 10)
Where In CLI.
To apply It is applied automatically
| Configuration | 273
For example, we can set a limit of two megabytes with the following configuration command:
Notice that this command affects only the appliance on which it is executed, its effects are not
propagated to other appliances.
It is possible to exclude from the limitation of the bandwidth specific IPs.
Notice that this command affects only the appliance on which it is executed, its effects are not
propagated to other appliances.
| Configuration | 274
For example, we can set a limit of 100 Kilobytes per second with the following configuration command:
remote_sensor_max_bandwidth_kb_per_sec 100
Notice that this command affects only the appliance on which it is executed, its effects are not
propagated to other appliances.
| Configuration | 275
Configuring synchronization
In this section we will configure the synchronization between appliances at different levels.
Products CMC
Syntax cmc sync interval <interval_seconds>
Description Set the desired global synchronization interval for the in-scope appliance.
Configuration is defined on the parent appliance; synchronization starts at
child appliances and flows upstream.
Each and every sync takes place following a notification message sent by
the child appliance, stating that the child appliance is ready to synchronize
data to its parent. The notification messages act as global synchronization
settings, working together with the following settings as well.
Note: In a multi-level deployment (e.g., one with root CMC, local CMC, and
Guardian), the setting must be applied at each parent level (e.g., at the root
CMC as well as at the local CMC).
Products CMC
Syntax cmc sync_fs_interval <interval_seconds>
| Configuration | 276
Description Set the desired interval between filesystem synchronizations for the
appliance in scope, from its child appliances. The setting applies to each
filesystem element subject to synchronization (e.g., nodes, links, and
variables). As the interval expires, the filesystem entries are synchronized at
the next notification message.
Note: In a multi-level deployment (e.g., one with root CMC, local CMC, and
Guardian), if the setting is applicable, it must be applied at each parent level
(e.g., at the root CMC as well as at the local CMC).
Products CMC
Syntax cmc sync_binary_files_interval <interval_seconds>
Description Set the desired interval between binary files synchronizations for the
appliance in scope, from its child appliances. The setting applies to each
binary file element subject to synchronization (e.g., PDF reports). As
the interval expires, the binary file entries are synchronized at the next
notification message.
Note: In a multi-level deployment (e.g., one with root CMC, local CMC, and
Guardian), if the setting is applicable, it must be applied at each parent level
(e.g., at the root CMC as well as at the local CMC).
When closing sessions the web management interface will record in the audit log this error text
14
Compatibility reference
Topics: In this chapter you will receive compatibility information about
Nozomi Networks products.
• SSH compatibility
SSH compatibility
Function Algorithms
Key exchange curve25519-sha256@libssh.org
diffie-hellman-group-exchange-sha256
diffie-hellman-group14-sha256
diffie-hellman-group16-sha512
diffie-hellman-group18-sha512
Ciphers chacha20-poly1305@openssh.com
aes128-gcm@openssh.com
aes256-gcm@openssh.com
aes128-ctr
aes192-ctr
aes256-ctr
MACs hmac-sha2-256
hmac-sha2-512
umac-128-etm@openssh.com
hmac-sha2-256-etm@openssh.com
hmac-sha2-512-etm@openssh.com
hmac-sha2-512@openssh.com