Niagara AX Hardening Guide
Niagara AX Hardening Guide
Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
• Change the default Platform Credentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
• Use the Password Strength Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
• Enable the Account Lockout Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
• Expire Passwords . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
• Use the Password History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
• Use the Password Reset Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
• Leave the “Remember These Credentials” Box Unchecked . . . . . . . . . . . . . . . . . . . . . 12
Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
• Use “Digest” Authentication in the FoxService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
• Set the FoxService Legacy Authentication to “Strict” . . . . . . . . . . . . . . . . . . . . . . . . . . 19
• Use “cookie-digest” Authentication in the WebService . . . . . . . . . . . . . . . . . . . . . . . . 19
JACE-8000 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
• System Password Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
• Use TLS to set the system passphrase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
• Choose a truly strong passphrase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
• Protect the system passphrase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
• Disable SSH/SFTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Additional Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
• Disable FTP and Telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
• Disable Unnecessary Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
• Configure Necessary Services Securely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
• Blacklist Sensitive Files and Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
• Update Niagara AX to the Latest Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
External Factors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
• Install JACEs in a Secure Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
• Make Sure that Stations Are Behind a VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
• Passwords
• Authentication
• JACE-8000 Settings
• Additional Settings
• External Factors
Please note that while all of these steps should be taken to protect your Niagara AX system, they do not
constitute a magic formula. Many factors affect security – and vulnerabilities in one area can affect security in
another; it doesn’t mean much to configure a system expertly if your JACE is left physically unsecured where
anyone can access it.
Passwords
The Niagara AX system uses passwords to authenticate “users” to a station or platform. It is particularly im-
portant tohandle passwords correctly. If an attacker acquires a user’s password, they can gain access to the
Niagara AX system and will have the same permissions as that user. In the worst case, an attacker might gain
access to a Super User account or platform account and the entire system could be compromised.
Here are some of the steps that can be taken to help secure the passwords in a Niagara AX system:
• Expire Passwords
These default credentials are the same for all JACEs, and make it easy to set up a new JACE and quickly
connect to it. However, these credentials provide the highest level of access. If left unchanged, anyone who
knows the default credentials could potentially make a platform connection and gain complete control of the
controller. It is essential to change the default credentials as soon as possible, before exposing the JACE to an
open network.
1. Open a platform connection to the JACE and go to the Platform Administration view.
2. Click the “Update Authentication” button. An authentication dialog box will appear.
In NiagaraAX-3.8, password strength is enforced by the “Password Strength” property on the UserService,
and the required password strength can be customized to meet the needs of each particular system. By
default, passwords are required to be at least 10 characters in length, and contain at least 1 digit, 1 uppercase
and 1 lowercase character. At the time of the writing of this document, this is the recommended industry stan-
dard for most applications. However, systems with higher security requirements can configure the “Password
Strength” property to require a password strength that meets their needs.
To change the required password strength, follow the steps described below.
2. Expand the “Password Strength” property, and edit the fields as appropriate.
Note: This does not force a user whose password no longer meets the password strength requirement to
change their passwords. If that user changes their password after the password strength requirements are
modified, their new password will have to meet the new requirements.
Strong Passwords
In NiagaraAX-3.7 or newer systems, user accounts can be flagged to require the user to change their pass-
word on their next login. When “Require Strong Passwords” is set to true, users are required to choose pass-
words that are at least eight characters that are not ALL characters or ALL digits.
Stronger Passwords
Even with the “Required Strong Passwords” option enabled, there are some passwords that are stronger than
others. It is important to educate users on password strength. Password strength requirements are not suf-
ficient to ensure that actually strong passwords are used. For example, “Password10” satisfies all the require-
ments, but is actually a weak, easily crackable password. When creating a password, the following guidelines
can help generate stronger passwords:
• A long, nonsensical sentence (e.g. “I happily tarnished under 21 waterlogged potatoes, which meet up on
Sundays”) can be used as is. For systems that restrict password length, it can be contracted to include only
the first character of each word (e.g. “Ihtu21wp,wmuoS”). These are difficult for attackers to guess, but are
typically easy (albeit silly) for users to remember.
Note: when picking a sentence as a passphrase, it is best to avoid well-known phrases and sentences, as these
may be included in dictionary attacks (e.g. “Luke, I am your father”).
• A string of random words (e.g. “coffee Strange@ Halberd 11 tortoise!”) provides a much longer password
that a single word or a random string of characters. However, password crackers are becoming more aware
of this technique, and inserting few random numbers and symbols in there can help.
Remember, a good password is easy for a user to remember, but difficult for an attacker to guess.
Account Lock Out is enabled by default, but if it is not currently enabled, you can enable it as described
below:
• Lock Out Period. This determines how long the user is locked out for. Even short periods (for example, 10
seconds) can be quite effective at blocking “brute force” attacks without inconveniencing users. However,
more sensitive systems may warrant a longer lockout period.
• Max Bad Logins Before Lock Out. This determines how many login failures are required before locking
out the user.
• Lock Out Window. The user is only locked out if the specified number of login failures occurs within the
time set in the Lock Out Window. This helps separate suspicious activity (for example, 10 login failures in
a few seconds) from normal usage (for example, 10 login failures over a year).
Expire Passwords
Starting in NiagaraAX-3.7, user passwords can be set to expire after a specified amount of time or on a set
date. This ensures that old passwords arenot kept around indefinitely. If an attacker acquires a password, it is
only useful to them until the password is changed. You need to make sure that expiration settings are config-
ured on the Password Configuration property sheet as well as on individual user properties.
Configure general password expiration settings in the UserService property sheet, as described below:
1. Go to the UserService’s property sheet and expand the “Password Configuration” property.
• Expiration Interval. This property setting determines how long a password is used before it needs to be
changed. The default is 365 days. You should change this to a lower value; ninety days is standard for
many situations. NOTE: You must also set individual user password expiration dates (See Password Expira-
tion: Edit Users dialog box).
• Warning Period. Users are notified when their password is about to expire. The Warning Period specifies
how far in advance the user is notified. Fifteen days generally gives the user enough time to change their
password.
1. Select the User Manager view on the UserService (Station > Config > Services > UserService).
2. In the User Manager view, select one or more users and click the Edit button to open the Edit dialog box.
NOTE:
• The default user “Password Expiration” property value is “Never Expires”. To create new users with expiring
passwords enabled, set the Password Configuration “Expiration” property (UserService > User Prototypes
> Default Prototype > Password Configuration) to ”Expires On” under the “Default Prototype” but be sure
to actually set the “Expires On” date for each user.
• You could set the “Expires On” date to an arbitrary date far enough into the future that the user will likely
have logged into the system before expiring and also set the “Force Reset At Next Login” to true so the
user is forced to change their password on first login. This would then get their expiration in sync.
4. Save the changes. The next time the user changes their password, the expiration date is automatically
updated to the UserService’s “Expiration Interval” added to current date and time.
Set the “Password History Length” property to a non-zero value. This determines how many passwords
are remembered. The maximum password history length is 10.
The following steps describe how to force a user to reset their password:
4. The next time the user logs in they will be prompted to reset their password, as shown below. The user
cannot access the station until resetting the password.
This option is provided for convenience. However, it is important to be aware that, if the box is checked,
anyone with access to that workbench is able to log in using those credentials. For highly sensitive systems,
privileged accounts, or unsecure computers, you should always leave the box unchecked.
NOTE: Starting in NiagaraAX-3.7, there is a “Allow User Credential Caching” property on the “General” tab in
the Workbench Options dialog box (Tools > Options) which defaults to true. If you set that property to false, it
will prevent a user from being able to even select the “Remember these credentials” check box in the login
dialog.
Some steps to help correctly manage user accounts are listed below.
There are many reasons for each user to have their own individual account:
• If each user has their own account, audit logs will be more informative. It will be easy to determine exactly
which user did what. This can help detect if an account has been compromised. In the example below, it
is easy to determine which changes were made by the user “admin”, and which were made by the user
“mreynolds.”
• If an account is removed, it does not inconvenience many users. For example, if a user should no longer
• If each user has their own account, it is much easier to tailor permissions to precisely meet their needs. A
shared account could result in users having more permissions than they should.
• A shared account means a shared password. It is an extremely bad security practice to share passwords. It
makes it much more likely for the password to be leaked, and makes it more difficult to implement certain
password best practices, such as password expiration.
Each different user should have a unique individual account. Similarly, users should never use accounts in-
tended for station-to-station connections. Station-to-station connections should have their own accounts.
2. In the user creation pop up dialog, set the “Expiration” property to the date the user will no longer require
access.
2. Edit the “Expiration” property to be the date the user will no longer require access.
Consider the following example of how you can minimize the risk of using the Niagara AX TunnelingService:
If a station is using the TunnelService (if not used, disable it!) this can increase security risk because Station
login from the Niagara client-side applications (serial tunnel and Lon tunnel) uses “basic authentication.” This
means that the password is transmitted in the clear. You can minimize this risk by using a special category to
which you assign only the TunnelService component. Then create a new station user, and assign permissions
only on that one category (admin write). By using only this (new) user for login from the serial tunnel or Lon
tunnel client application, tunneling is allowed, but with minimal impact if credentials are compromised.
For more information on setting categories and permissions, refer to the “Security model overview” section
and various subsections in the NiagaraAX User Guide.
Although it can be very tempting to take the easy route and check the Super User box for each user, doing so
puts your system at risk. Instead, create users with the appropriate permissions.
While Program Objects are restricted to Super Users by default, it is possible to lift this restriction by editing
the <niagara_home>\lib\system.properties file. To ensure that the restriction is in place, verify that the line
“niagara.program.requireSuperUser=false” is commented out (using the # character) as shown below:
NOTE: Although only Super Users should be allowed to edit Program Objects, it can be acceptable for other
users to invoke the Program Object’s “Execute” action.
NOTE: References in this section are to permissions on the external server, and not permissions on the Niagara
AX station.
These and any other external accounts should always have the minimum permissions needed for the required
functionality. That way, if the station is compromised or an exploit is discovered, the external server is better
protected: an attacker gaining control of an SQL administrator user could wreak havoc, reading confidential
information or deleting important data; on the other hand, an attacker gaining control of a restricted user has
much less power.
When configuring a Niagara AX station, be sure to understand exactly what tasks the external account needs
to be able to perform, and create a user with the minimum rights and permissions required to perform those
tasks.
Authentication
Niagara AX stations offer several authentication policy options. These options determine how a client talks
to the station and how the user’s password is transmitted to the station for proof of identity. Be sure to use
the strongest authentication policies to increase protection for user passwords, keeping those accounts safer
from attacks.
Unless otherwise required, the authentication policy should always be set to Digest. One exception to this is use
of the LdapUserService, which cannot do digest authentication for LDAP users.
1. Open the Drivers > NiagaraNetwork > Fox Service’s property sheet.
NOTE: In later releases of NiagaraAX-3.5, 3.6, and 3.7, Digest is the default setting.
To enable stations with digest authentication to talk to older clients, the “Legacy Authentication” property has
been added to the FoxService. If set to “Always Relaxed”, or “Relaxed Until”, the station will degrade authentica-
tion to basic to allow the older client to authenticate. If the client can do the new digest, the new digest is used.
If the client cannot do the new digest, basic is used. It only degrades for older clients. In the “Relaxed Until”
case, it only allows this to happen until the specified date.
This feature is only intended for temporary use, to allow stations to continue to communicate while they are in
the process of being upgraded.
Unless otherwise required, the authentication policy should always be set to cookie-digest. One exception to
this is use of the LdapUserService, which cannot use cookie-digest authentication for LDAP users.
To set the authentication policy to (the default) cookie-digest option, follow these steps:
Transport Layer Security (TLS) provides communication security over a network by encrypting the communi-
cation at a lower level than the actual data being communicated. This allows secure transmission of unen-
crypted data (for example, the username and password in fox Basic authentication) over an encrypted con-
nection. TLS as a protocol replaces its predecessor, Secure Sockets Layer (SSL); however, because TLS
originally evolved from the SSL standard, the terms “TLS” and “SSL” are often used interchangeably. Although
many people still refer to TLS as “SSL”, it is important to know that the latest version of SSL as a protocol
(SSLv3) is not considered secure, and it is important to use the latest version of TLS available.
Using TLS protects data from anyone who might be eavesdropping and watching network traffic. It also
provides proof of identity, so that an attacker cannot impersonate the server to acquire sensitive data. When
possible, always use TLS.
Niagara AX provides several opportunities for using TLS. Starting in NiagaraAX-3.7, a number of additional
options are available. You should use these options whenever they are feasible. Niagara AX TLS options are
listed below:
• Set Up Certificates
NOTE: NiagaraAX-3.6 and JACE2/4/5 hosts in NiagaraAX-3.7 and NiagaraAX-3.8 previously supported SSLv3
for the WebService. However SSLv3 has been shown to be broken, and support for SSL in the legacy crypto
module has been removed. Hosts that do not support TLS should be upgraded to a platform and version that
supports TLSv1.0 or better.
2. Navigate to the “Platform Administration” view, and select “Change TLS Settings” (“Change SSL Settings”
from pre AX-3.8U1 installations).
3. A “Platform TLS Settings” dialog opens. Select “TLS Only” (“SSL Only” from pre AX-3.8U1 installations)
from the “State” drop down menu.
NOTE: If “State” is set to “Enabled” rather than “TLS Only,” regular platform connections (not over TLS) are still
be permitted. Unless absolutely required, this should not be allowed, because it places the burden of remem-
bering to use TLS on the user initiating the connection – this can easily be forgotten, compromising security.
With TLS enabled for platform connections, a platform connection over TLS can be opened, as described
below:
1. From the File menu, open the “Open Platform” dialog box.
2. Under the “Session” section, change the “Type” field to “Platform TLS Connection.” Note that the dialog is
updated.
3. Enter the IP, port and credentials for the platform and click “OK.”
NOTE: If “Foxs only” is not set to true, regular fox connections (not over TLS) are permitted. Unless absolutely
required, this configuration should not be allowed, because it places the burden of remembering to use TLS on
the user initiating the connection. This can easily be forgotten, compromising security. Leaving the “Fox
Enabled” property set to true with “Foxs Only” also set to true provides a redirect to the Foxs port if a client
attempts to make an unsecure Fox connection.
Now that TLS is enabled, a Foxs (Fox over TLS) connection can be opened, as described below:
2. Under the “Session” section, change the “Type” field to “Station TLS Connection.” Note that the dialog
box is updated.
3. Enter the IP, port and credentials for the station and click “OK”.
NOTE: A fox connection over TLS has a tiny lock on the fox icon ( ).
The steps to follow to enable TLS over HTTP are outlined below:
NOTE: That if “Https only” is not set to true, regular http connections (not over TLS) will still be permitted.
Unless absolutely required, this should not be allowed, because it places the burden of remembering to use
TLS on the user initiating the connection – this can easily be forgotten, compromising security.
1. Open a browser.
2. Navigate to the station’s login page. If the server’s certificate was signed by a valid CA then you probably
will not see a prompt.
3. If prompted, you need to make your decision on whether or not to accept the Certificate based on an un-
derstanding of the circumstances. See the NiagaraAX SSL Connectivity Guide for more details.
The following points concern using Web TLS only in NiagaraAX-3.6, NiagaraAX-3.5, or any J9 JVM host
(JACE-2/4/5, regardless even if 3.7).
• For security purposes, Hx access to the station is preferred over Wb Web Profile access.
• Both profiles use HTTPS to pass user credentials, however, with Wb Web Profile, some data (not user
credentials) is passed over an insecure Fox connection.
See NiagaraAX SSL Connectivity Guide and NiagaraAX User Guide for details about setting up email with TLS
features.
Set Up Certificates
Starting in NiagaraAX-3.7, new tools are included to help with certificate management. Certificates are required
for TLS, and should be set up properly.
NOTE: Default certificates are self signed and can only be used for encryption, not for server identity verifica-
tion. This is true for both the legacy crypto features and the new 3.7 and up TLS features.
There are many things to consider when setting up certificates, and a full discussion is beyond the scope of this
document. See the NiagaraAX SSL Connectivity Guide for more information about correctly setting up certifi-
cates for a NiagaraAX system.
In order to protect it, the sensitive data is encrypted using the system passphrase. The system passphrase is
not associated with a user; it is used by the system to encrypt files. Because the passphrase is known by a hu-
man user, the data can be moved to another unit and decrypted there, provided the new system is provided
with the correct system passphrase.
TLS should always be used when setting the system passphrase. This wraps the entire communication in a
layer of encryption, preventing the attacker from reading the passphrase as it is set.
• At least 1 digit
As described in “Stronger Passwords” on page 6, passphrase strength requirements are not sufficient to
ensure that actually strong passphrases are used. For example, “Password10” satisfies all the requirements,
• A random string of characters, including digits and uppercase, lowercase and special characters, (e.g.
s13pj96t!cD) is typically a strong password. However, these can be hard to remember.
• A long, nonsensical sentence (e.g. “I happily tarnished under 21 waterlogged potatoes, which meet up on
Sundays”) can be used as is. For systems that restrict password length, it can be contracted to include only
the first character of each word (e.g. “Ihtu21wp,wmuoS”). These are difficult for attackers to guess, but are
typically easy (albeit silly) for users to remember.
Note: when picking a sentence as a passphrase, it is best to avoid well-known phrases and sentences, as these
may be included in dictionary attacks (e.g. “Luke, I am your father”).
• A string of random words (e.g. “coffee Strange@ Halberd 11 tortoise!”) provides a much longer password
that a single word or a random string of characters. However, password crackers are becoming more aware
of this technique, and inserting few random numbers and symbols in there can help.
Disable SSH/SFTP
SFTP (Secure File Transfer Protocol) and SSH (Secure Shell) access to a JACE-8000 are disabled by default
and should remain disabled unless necessary for troubleshooting or as directed by Tridium technical support.
This helps prevent unauthorized access to the JACE. Enabling SFTP or SSH on a JACE-8000 poses a very
significant security risk.
To ensure that SFTP and SSH are disabled on a JACE-8000, follow these steps:
Additional Settings
In addition to the settings discussed in previous sections, there are a few general settings to configure in or-
der to secure a Niagara AX system. These don’t fall under a specific category like TLS or passwords, but are
nonetheless important to security.
To ensure that FTP and Telnet are disabled on a JACE, follow these steps:
When the “FTP and Telnet Settings” dialog box opens, make sure that the “FTP Enabled” and “Telnet En-
abled” boxes are not selected.
For example, if the station is not intended to be accessed via the web, the WebService you should disable it.
This will prevent potential attackers from using the web to attempt to penetrate the station. The same
consideration should be given to the TunnelService and others. See the NiagaraAX Drivers Guide for information
about minimizing possible risks involved with tunneling.
To disable a service, either remove it from the station by deleting it, or go to the service’s property sheet and
look for an “Enabled” property. If one exists, set it to false, as shown below for WebService, or possibly for
unused TunnelService.
Figuring out what services are required means planning ahead of time how the station is intended to be used.
Remember, a service can always be added or enabled, so it is best to start with only the services known to be
required, and add services later as necessary.
For example, when configuring the WebService, in addition to configuring TLS, the following settings should
be on considered:
• The ‘X Frame Options’ property should be set to ‘SameOrigin’ or ‘Deny’ when possible to protect against
Cross Frame Scripting (XFS) attacks. This is available in 3.6u4, 3.7u1, 3.8 and 4+.
• Show Stack Traces’ should be set to false unless specifically debugging an issue, as a stack trace could re-
veal information that an attacker could use. This is available in 3.6.u4, 3.7u1, 3.8 and 4+.
Some folders are always blacklisted, such as the following: /backups, /bin, /daemon, /files, /jre, /modules, /
registry, /security, /users and /workbench.
Refer to the “system.properties security notes” section in the NiagaraAX Platform Guide for more details about
Additional files may be blacklisted by editing the system.properties files, as described below:
2. Uncomment the “niagara.remoteBlacklist.fileNamePatterns” line and add any file patterns that should be
blacklisted (for example, *.bog).
3. Uncomment the “niagara.remoteBlackList.filePaths” line and add any folders that should be blacklisted
(for example, !lib)
The additional file patterns or folders to blacklist depend on the particular Niagara AX installation. Think
about what needs to be protected and does not absolutely need to be accessed remotely via a fox or web
connection.
Do not assume that because you have not shared the station’s IP address with anyone that it cannot be dis-
covered – that is not the case. A clever attacker can discover exposed Niagara AX systems without knowing
the IP addresses beforehand.
Niagara, Niagara Framework, Niagara AX, Workbench and JACE are trademarks of Tridium, Inc.