# Security specifications for ServiceDesk Plus Ensure data security in your service desk ServiceDesk Plus is robust IT service management software trusted by clients around the globe. A large clientele comes with the exchange of a hefty amount of sensitive data every day. There's no room for compromise on the security of such data, as that could potentially expose organizations to serious risks. ServiceDesk Plus is designed to offer tight data security starting at the time of installation and following into every phase of product usage, including user authentication, data transmission, and storage. In addition to the following summary of security measures already in place, ManageEngine constantly strives to enhance the security features in ServiceDesk Plus. This document outlines the security specifications of ServiceDesk Plus. ## Security at various levels ### Encryption mechanism The following encryption algorithms are used in ServiceDesk Plus: - AES-256 - bcrypt - SHA-256 ### Authentication and authorization - Integration with Microsoft Active Directory and LDAP-compliant directory services - Local authentication mechanism with bcrypt algorithm - Enforced password resets for local authentication - Option to disable concurrent logins - Single sign-on (SSO) - SAML 2.0 SSO ### Data integrity - User data is encrypted and sent over HTTPS - SSL mode for client connections - Password-protected file attachments ### Access control measures - Granular access control mechanism - Audit trails ### Availability mechanism - Failover server support - Native apps for iOS and Android ### Disaster recovery - Periodic database backup - Password-protected backup files ## Security features ### Encryption mechanism #### Encryption in the application server - ServiceDesk Plus uses AES-256 encryption (the strongest known encryption, approved by the US government) to store all sensitive information. - All user passwords are stored using the bcrypt algorithm, which is designed to prevent hackers from decrypting user passwords. - To avoid vulnerabilities related to clear text passwords, the password is encrypted at the client side (browser) while submitting user credentials to the ServiceDesk Plus server. The encryption key used for password encryption is unique to every ServiceDesk Plus installation and is stored securely in the application. #### Encryption in the database server - Only personal and sensitive data are encrypted in ServiceDesk Plus' database and are secured through a unique, auto-generated key for every installation, which is stored securely in the application. - The user can choose MSSQL as the back-end database and enable a secure database connection. The bundled Postgres database is designed to accept only local host connections. #### Enterprise Service Management (ESM) - ServiceDesk Plus' ESM feature allows secure data segmentation between different service desks. The segmentation is implemented at the database row level in the RDBMS. - Each service desk that requires data segmentation is provided with a value range for the unique identity of each row. All database operations performed for that help desk are automatically restricted to that value range. ## Product architecture ![](https://www.manageengine.com/products/service-desk/images/sdp-work-frame1.jpg) ### Authentication and authorization #### Strong application-level authentication ServiceDesk Plus has four authentication options for accessing the application. - **Integration with identity stores**: ServiceDesk Plus seamlessly integrates with external identity stores such as Microsoft Active Directory and LDAP-compliant directory services. Users are identified in the identity stores by their corresponding accounts and can be imported to the service desk. They can choose the authentication mechanism they'd like to use. - **Unique accounts and strong local authentication**: ServiceDesk Plus comes with a local authentication mechanism in which unique accounts are created for users. The application can be accessed with personal credentials. ServiceDesk Plus employs the bcrypt algorithm to store passwords, which ensures that each login password is irreversibly secure. - **Enforced password resets for local authentication**: As a security precaution, ServiceDesk Plus requires users to reset the local authentication password when they first start using the application. - **SAML-compliant services**: ServiceDesk Plus offers support for SAML 2.0, which facilitates integration with Federated Identity Management Solutions for SSO. The service desk tool acts as the service provider (SP) and integrates with identity providers (IdPs) using SAML 2.0. This integration involves exchanging information between the SP and the IdP, and it allows users to log in to the service desk directly from the IdP without presenting their login credentials again. ### Data integrity #### Data transmission - Data transmission between the ServiceDesk Plus user interface and the server is encrypted and takes place through HTTPS. - Data flow diagram ![](https://www.manageengine.com/products/service-desk/images/data-integrity-flow-diagram.png) - Data transmission between the ServiceDesk Plus server and the MSSQL database occurs over SSL. - Communication between ServiceDesk Plus and Endpoint Central (formerly Desktop Central): ServiceDesk Plus requires installing ManageEngine Endpoint Central (formerly Desktop Central) for scanning of Windows, Linux, and macOS machines. Endpoint Central (formerly Desktop Central) allows the deployment of agents that can connect to the server. Data transmission between the ServiceDesk Plus server and Endpoint Central (formerly Desktop Central) takes place over SSL with key-based authentication. Any data transfer from the agent application to the server happens using strong encryption protocol, HTTPS. - Communication between ServiceDesk Plus and remote servers: Data transmission between ServiceDesk Plus and remote servers takes place over SSL with key-based authentication. The remote server accepts connections only from the ServiceDesk Plus server. The remote server sends the data as a ZIP file to the ServiceDesk Plus server, which checks the ZIP file for the Zip Slip vulnerability before processing the file. - Communication between the ServiceDesk Plus server and mobile apps: Data transmission between ServiceDesk Plus and mobile apps occurs over SSL. Mobile apps connect to the ServiceDesk Plus server using an auth token. - Communication between ServiceDesk Plus and other integrated ManageEngine products: Data transmission between ServiceDesk Plus and the remote server occurs over SSL. ManageEngine products connect to the ServiceDesk Plus server using an auth token. #### Data storage with encryption - ServiceDesk Plus is designed as a web application with a web server for business logic and an RDBMS for data storage. - The encrypted additional fields data is pushed to the RDBMS for storage using SQL queries. #### Web GUI input validation - ServiceDesk Plus validates all inputs in the GUI. Usage of special characters and HTML code are filtered, and the application is guarded against common attacks such as SQL injection, cross-site scripting (XSS), and buffer overflow. ### Access control measures #### Data access control - All data access in ServiceDesk Plus is subjected to the role-based access control mechanism. #### Audit trails - In ServiceDesk Plus, alerts and notifications can be set for various events, including access, modification, deletion, or a change in permissions. - The audit module records all user actions. - Audit information, which contains details such as what operation was performed, the person responsible for it, and the time and location of the action, is stored in the database. #### Deduction capabilities - ServiceDesk Plus has the capability to detect the following attacks: 1. Brute-force attacks 2. Malicious requests and DoS attacks ### Availability mechanism #### Failover server - Constant access to the service desk tool is crucial to maintain uninterrupted IT services. Unexpected hardware or software failure can lead to downtime in the service desk, which could potentially have a huge impact on business. ServiceDesk Plus' Fail Over Service feature addresses this issue and ensures the application is available even during a software or hardware failure. - At any point in time, data in both the primary and secondary servers will be in sync with each other. Data replication happens through a secure, encrypted channel. #### Offline access - ServiceDesk Plus facilitates secure export of reports as password-protected files for offline access. The password is stored securely in the database server. #### Mobile access - ServiceDesk Plus' native apps for iOS and Android enable quick access and easy use of the service desk on the go without compromising data security. ### Disaster recovery #### Provision for backup - ServiceDesk Plus offers a provision for database backup as well as periodic backup through scheduled tasks. - All sensitive data, such as personal information in the backup file, is stored in encrypted form in a ZIP file in `` or under the destination directory configured by the admin. #### System failure and recovery - In the event of a disaster leading to data loss, users can quickly carry out a fresh install of the same version of ServiceDesk Plus and restore the backed-up data to the database. ## Security configurations ### How to enable secure data transmission - Configure HTTPS under **Admin > General > Security Settings** to avoid man-in-the-middle attacks. - Buy and apply a genuine SSL certificate under **Admin > General > Security Settings**. - Apply the recommended TLS protocol and ciphers. ![](https://www.manageengine.com/products/service-desk/images/ciphers.png) - ServiceDesk Plus is free from the below SSL vulnerabilities after applying strong TLS and ciphers: 1. Sweet32 (CVE-2016-2183) 2. BEAST (CVE-2011-3389) ### How to configure security response headers **Content-Security-Policy (CSP)** is an added layer of security that helps detect and mitigate certain types of attacks, including XSS and data injection attacks. CSP gives you control over both inline and external scripts, which can pose a threat to your website's security. In case of an attack, the scripts will be blocked by CSP. **Recommended value (Version 14920 or above):** ``` default-src 'self' data: https://salesiq.zoho.com https://js.zohostatic.com https://outlook-1.cdn.office.net https://css.zohostatic.com https://salesiq.zohopublic.com https://appsforoffice.microsoft.com https://img.zohostatic.com https://www.manageengine.com https://manageengine.com https://connect.zoho.com https://www.youtube.com https://s.ytimg.com ws://vts.zohopublic.com https://i.ytimg.com; script-src 'self' 'nonce-${csp_nonce}' https://appsforoffice.microsoft.com https://ajax.aspnetcdn.com; style-src 'self' 'unsafe-inline'; img-src http: https: data: blob:; media-src 'self' blob:; frame-src 'self' blob:; worker-src 'self' blob:; ``` **Previous versions:** ``` default-src 'unsafe-inline' 'unsafe-eval' 'self' data: https://salesiq.zoho.com https://js.zohostatic.com https://css.zohostatic.com https://salesiq.zohopublic.com https://img.zohostatic.com https://www.manageengine.com https://manageengine.com https://connect.zoho.com https://www.youtube.com https://s.ytimg.com ws://vts.zohopublic.com ws://server-name:port wss://server-name:port ``` **Note:** Find the highlighted text in the header configuration and replace "server-name" and "port" with ServiceDesk Plus server's name/IP and ServiceDesk Plus server's port respectively. **HTTP Strict-Transport-Security** is a response header (often abbreviated as HSTS) that enables browsers to access websites only using HTTPS instead of HTTP. Recommended value: ``` max-age=31536000;includeSubDomains;preload ``` On configuring this header, ServiceDesk Plus is free from the Strict TLS vulnerability as well as CWE-523. HSTS headers are valid only over HTTPS connections, which guarantees that no unencrypted HTTP traffic is received. Combined with preloading, HSTS also improves page load time by eliminating server redirects from HTTP to HTTPS. **Cache-Control** holds directives (instructions) for caching in both requests and responses. Recommended value: ``` public,max-age=8640000 ``` Benefits of configuring this header: - Minimize bandwidth by reducing the number of network hops required to satisfy a request. - Reduce latency by satisfying requests closer to the client. - Cut down server load by allowing caches to serve requests. - Increase robustness by allowing caches to serve content, even if the origin server is unavailable. **X-Content-Type-Options** is used to protect against MIME sniffing vulnerabilities, which occur when a website allows users to upload malicious content, creating an opportunity for XSS to compromise the integrity of the website. Recommended value: ``` nosniff ``` On configuring this header, ServiceDesk Plus is free from content sniffing vulnerabilities. **X-Frame-Options** can be used to indicate whether a browser should be allowed to render a page in a ``, `