Securing Process Director

Like any system that is exposed publicly, whether it's to the Internet or to a corporate intranet, security should be a primary administrative concern. There are a number of security practices that can be implemented to protect a Process Director installation from unauthorized access. This especially important for systems that may contain sensitive data such as Personally Identifiable Information (PII) or data that is covered under HIPAA.

Process Director includes a number of features and settings that assist you with tightening security to the product. To properly secure your Process Director installation, consider implementing the practices below.

Cross Site Scripting Protection #

For users of Internet Explorer, Chrome, or Safari, Process Director v3.54 and higher implements cross-site scripting protection by implementing the XSS filter in the HTTP header, with the setting:

X-XSS-Protection: 1; mode=block

When the browser detects a cross-scripting attempt, it will stop rendering the page completely, rather than attempting to sanitize the attack and render the page.

Important The Firefox browser does not support cross-site scripting protection via the XSS filter.

Starting with Process Director v3.78, Cross-Site Request Forgery (CSRF) protection is enabled by setting the fEnableReferrerProtection custom variable. When set to "true," this variable enables Process Director to screen for CSRF by ensuring that the HTTP Referrer header is valid.

HTTP Strict Transport Security #

For Process Director v4.54 and higher, HTTP Strict Transport Security (HSTS) has been implemented to protect against "man in the middle" attacks, like protocol downgrade or cookie hijacking attacks. The HSTS setting is sent to the browser via an HTTPS response header field named "Strict-Transport-Security", and specifies a time period during which the browser can only access the server via a secure transport layer.

Properties Settings #

On the Properties page of the Installation Settings section of the IT Admin area, there are two properties to which you should pay special attention.

Custom Variable Settings #

When using Cloud installations or on-Premise installations with the Compliance Edition, Process Director will keep an external audit trail of all activity. There are configuration options that should understand so that the settings you are using are implemented by design, rather than simply using the product defaults.

These values are configured in the /custom/vars.cs.asmx file in the PreSetSystemVars() function. Detailed information on how to set custom variables, with the appropriate syntax, are available in the Developer's Guide.

Auditing Variables

User Authentication Variables

If you are using built-in user authentication with Cloud installations or on-Premise installations with the Compliance Edition, BP Logix recommends that you use the password enforcement options. This will require that any user passwords conform to the enforcement options.

Testing Variables

User Settings #

Users can be given administrative privileges in the User Administration section of the IT Admin area. There are some privileges that are very sensitive, and so should be used very sparingly, and only with an understanding of the capabilities these settings will give the user. Also, remember that these privileges can be given indirectly by granting them to a group to which the user is also a member.

On production systems, the best practice is to give no administrative rights to any “normal” user. Instead, build in a privileged user identity for each administrator, to which they should explicitly log in for the purpose of executing administrative tasks, and for no other reason.

User Permissions Page #

Administrators of Cloud installations or on-Premise installations with the Compliance Edition will notice an additional User Perms page in the User Administration section of the IT Admin area.

The User Perms page enables you to find users and view a report of permissions that are applicable to that user.

The top section of the user permissions screen provides a number of search fields that you can fill out to filter the users returned by the permissions search. The filter criteria will accept all or part of a User ID or User Name, or the GUID of an external user. Once you have entered the filter criteria you desire, click the Search button to see a list of all the users that match your filter criteria, as well as the permissions granted to the users.

The User Perms page is very useful for manually auditing the permissions granted to any user.

Built-In User Authentication Options #

When using Cloud installations or on-Premise installations with the Compliance Edition, there are several callout points in the /custom/vars.cs.asmx file that allow you to control access to the system, password changes, etc.

More detail on these functions can be found in the Developer's Guide.

Audit Log Monitoring #

When using Cloud installations or on-Premise installations with the Compliance Edition, and when storing audit logs in the database, you can search for various events. In the Troubleshooting section of the IT Admin area, there is an Audit Logs page containing a search function that allows you to find specific audit log types. BP Logix recommends that you periodically check audit logs for certain privilege changes to ensure that these privileges are the ones expected on the production system.

  • AdminPageAccess
  • PermissionAdded
  • PermissionRemoved
  • PermissionUpdated
  • PermissionReplicated
  • UpdateUser
  • AdminPageAccess
  • ImpersonateOn

Content List Permissions #

When setting up permissions in the Content List on a production system you want to grant only the minimum permissions required. For instance, users don't need to be explicitly given View or Modify permission to form instances to participate in a process task. The system will automatically grant them the appropriate level of permission on the form instance to complete a task that is assigned to them. When the user completes the task, the configured permissions are then used for that form instance.

Permissions shouldn't generally be configured on individual objects in the Content List, except in special cases that require that level of granularity. Normally, permissions should only be configured at the folder level. Preparation and thought is necessary during the initial implementation to ensure that you structure the objects across folders based on object types and how permissions will be established.

For example, don't create a folder that contains all Knowledge Views and Reports and then configure the permissions on each individual object to identify who is able to run it.  Instead create multiple folders and group the objects by the type of access required. For instance, you might create an “Admin Knowledge Views” folder that only administrators can access, and a “Knowledge Views” folder than can be accessed by other end users. Segregating the access by folder will assist in the deployment of new objects from a non-production system to your production system, because:

  1. Imported objects inherit the permission of the parent folder into which objects are being imported, and
  2. Permissions aren't carried across in the XML export.

Your production system shouldn't grant delete permission to any users. Instead, have a limited set of partition administrator users, as partition administrators can perform functions in the Content List regardless of its configured permissions. Users should only login with these partition administrator user IDs when performing specific administrative functions, like deleting objects or importing XML files from a non-production system.

Data Encryption #

When using Cloud installations or on-Premise installations with the Compliance Edition, you have the option to encrypt fields using the Form Field Properties settings of a control, which is located in the Form Controls tab of every Form definition. Simply select the Encrypt check box.

Checking the Encrypted Field check box will cause Process Director to save the field value in an encrypted format in the database. You may wish to consider this for fields that contain passwords, PII, HIPAA, or other sensitive data. Keep in mind, however, that you may not be able to search for data stored in encrypted form.