This article covers best practices for Creatio settings related to information security.
Unified organization password policy
Make sure the password and login settings comply with your company's security policy. You can use the recommended values if the policy does not specify the exact requirements.
Password length. We recommend using passwords that are at least 9 characters long. Set up the desired password complexity in the following system settings:
- “Password complexity: Minimum length” (“MinPasswordLength” code)
- “Password complexity: Minimum quantity of lower case characters” (“MinPasswordLowercaseCharCount” code)
- “Password complexity: Minimum quantity of upper case characters” (“MinPasswordUppercaseCharCount” code)
- “Password complexity: Minimum quantity of digits” (“MinPasswordNumericCharCount” code)
- “Password complexity: Minimum quantity of special characters” (“MinPasswordSpecialCharCount” code)
Password history. Creatio compares previous user passwords to the new password to ensure they do not match. Specify how many previous passwords to compare in the “Quantity of analyzed passwords” (“PasswordHistoryRecordCount” code) system setting.
The number of permitted login attempts and user lockout time. We recommend permitting 5 login attempts and setting the lockout time to 15 minutes. Configure the lockout behavior in the following system settings:
- “Number of logon attempts” (“LoginAttemptCount” code). Sets the number of permitted login attempts.
- “Quantity of login attempts for warning message“ (“LoginAttemptBeforeWarningCount” code). Sets the number of failed login attempts after which Creatio displays the warning message that contains the number of login attempts remaining before lockout.
- “User locking time“ (“UserLockoutDuration” code). Sets the period in minutes during which the user cannot log in to Creatio if they run out of specified login attempts.
Learn more in a separate article: Unblock a user.
Login failure and possible user lockout messages. We recommend displaying a unified message that does not specify the exact issue. To do this, make sure the values of the following system settings are “false:”
- “Show message about locking account during logging in” (the “DisplayAccountLockoutMessageAtLogin” code)
- “Show message about incorrect password during logging in” (the “DisplayIncorrectPasswordMessageAtLogin” code)
Session expiration time
Set up the user inactivity period in minutes after which to close the session in the “User session timeout” (“UserSessionTimeout” code) system setting. By default, “60.”
TLS protocol for Creatio on-site
Creatio supports TLS 1.2 protocol out-of-the-box. Deprecated TLS 1.0 and 1.1 protocols are a security vulnerability.
Secure HTML header configurations for Creatio on-site
Ensure browsers are not susceptible to preventable vulnerabilities. To do this, enable the following headers that comply with OWASP (Open Web Applications Security Project) Secure Headers Project:
HTTP Strict Transport Security (HSTS). Enable the Strict-Transport-Security header and set the time to store the parameter in browser memory to 1 year:
Clickjacking protection. Enable the X-Frame-Options header and set it to allow pages to be embedded only on addresses that have the same location as your Creatio application:
Cross-site scripting attack (XSS) protection. Disable the X-XSS-Protection header. The X-XSS-Protection header has been deprecated by modern browsers and its use can introduce additional security issues on the client side. As such, OWASP recommends to set the header as X-XSS-Protection: 0 in order to disable the XSS Auditor, and not allow it to take the default behavior of the browser handling the response.
MIME-sniffing protection. Enable the X-Content-Type-Options header and set its mode to “nosniff.” The mode prevents the browser from trying to determine the content type of a resource different from the declared content type:
Referrer Policy. Enable the Referrer-Policy header and set it to “origin-when-cross-origin.” The header specifies how much referrer information (sent with the Referrer header) to include in requests:
Content Security Policy. Enable the Content Security Policy header and configure it as follows:
Content-Security-Policy: default-src 'self'; script-src 'unsafe-inline' 'unsafe-eval'; script-src-elem 'self' 'unsafe-inline'; style-src 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; child-src 'self' *.creatio.com; img-src 'self' data: *.tile.openstreetmap.org; font-src 'self' data:; connect-src 'self' *.creatio.com; frame-ancestors 'self'; form-action 'self'; object-src 'none'
Request responses for Creatio on-site
Limit the amount and type of information available in responses. To do this, modify the Web.config file in Creatio root directory as follows:
<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer>
Disable X-AspNet-Version. To do this, make changes to every httpRuntime section of the Web.config files in the Creatio root directory and Terrasoft.WebApp directory.
<httpRuntime enableVersionHeader="false" />
Disable Server Header (available for IIS version 10 and later).
<system.webServer> <security> <requestFiltering removeServerHeader ="true" /> </security> </system.webServer>
Redis setup for Creatio on-site
We recommend using a combination of stable Debian and up-to-date Redis versions.
We also recommend setting up authentication on the Redis server.
- Use the password authentication on the Redis server for version 8.0.1 and earlier.
- Use any authentication option on the Redis server for version 8.0.2 and later.
Learn more in a separate article: Set up secure connection to Redis.