ServiceDesk Plus 是深受全球客户信赖的强大的IT 服务管理软件。各类客户的系统都存在着极为敏感的数据交互,此类数据的安全性不容妥协,因为这可能会使组织面临严重风险。ServiceDesk Plus 提供严密的数据安全性,从安装开始一直到产品使用的每个阶段,包括用户身份验证、数据传输和存储。除以下已实现的安全措施外,ManageEngine 还在不断努力地增强ServiceDesk Plus的安全性能。
本文档为您介绍ServiceDesk Plus的安全规格说明。
安全层级
加密机制
ServiceDesk Plus 中使用以下加密算法:
- AES-256
- bcrypt
- SHA-256
认证和授权
- 与Microsoft Active Directory和各类LDAP的目录服务集成
- 使用 bcrypt 算法的本地认证机制
- 本地身份验证的强制重置密码功能
- 禁用并发登录的选项
- 单点登录 (SSO)
- SAML 2.0 单点登录
数据的完整性
- 用户数据经过加密并通过 HTTPS 发送
- 客户端连接的SSL模式
- 受密码保护的文件附件
访问控制措施
- 细粒度的访问控制机制
- 审计跟踪
可用性机制
- 支持故障转移服务
- 适用于iOS和Android的应用程序
灾难恢复
- 定期数据库备份
- 受密码保护的备份文件
安全功能
加密机制
应用服务中的加密措施
- ServiceDesk Plus 使用 AES-256 算法加密(已知最强的加密算法)来存储所有敏感信息。
- 所有用户密码使用 bcrypt 算法存储,该算法旨在防止黑客解密用户密码。
- 为避免与明文密码相关的漏洞,密码在客户端(浏览器)被加密,同时将用户凭据提交给 ServiceDesk Plus 服务器。用于密码加密的加密密钥对每个安装的 ServiceDesk Plus 都是唯一的,并安全地存储在应用程序中。
数据库中的加密
- ServiceDesk Plus 数据库自动为每次 ServiceDesk Plus 安装生成的唯一密钥进行保护,该密钥安全地存储在应用程序中。
- 用户可以选择 MSSQL 作为后端数据库并启用安全的数据库连接。内置的 Postgres 数据库缺省配置仅接受本地主机连接。
企业服务管理 (ESM)
- ServiceDesk Plus 的 ESM 功能允许在不同服务台之间进行安全的数据分段。数据分段是在 RDBMS 中的数据库行级别实现的。
- 每个需要数据分段的服务台实例都在每行数据提供了唯一标识及一个范围。在特定帮助台实例上执行的数据库操作都会自动限制在该值所设置的限定范围内。

认证和授权
强大的应用程序级身份验证
ServiceDesk Plus 有四个用于访问应用程序的身份验证选项。
- 与其它身份存储中心集成:ServiceDesk Plus 可与外部身份存储中心(例如 Microsoft Active Directory 及各类LDAP 等目录服务)无缝集成。用户在身份存储中通过其相应的帐户进行识别,并可导入到服务台。用户可以选择他们想要使用的身份验证机制。
- 唯一性帐户和强大的本地身份验证:ServiceDesk Plus 带有本地身份验证机制,其中为用户创建唯一帐户。可以使用个人凭据访问该应用程序。ServiceDesk Plus 采用 bcrypt 算法存储密码,确保每个登录密码都是加密不可逆的。
- 本地身份验证强制重置密码:作为安全性的预防措施,ServiceDesk Plus 要求用户在首次使用应用程序时重置本地身份验证密码。
- 集成 SAML:ServiceDesk Plus 提供对 SAML 2.0 的支持,这有助于与联合身份管理等用于SSO的解决方案进行集成。这其中,服务台工具充当服务提供者 (SP)角色,使用 SAML 2.0 集成到身份提供者 (IdP) 。这种集成可在 SP 和 IdP 之间交换认证信息,它允许用户直接从 IdP 登录到服务台,无需再次输入他们的登录凭据。
数据的完整性
数据传输
- ServiceDesk Plus 用户端和服务器之间的数据传输经过加密并通过 HTTPS 进行。
- 数据流图

- ServiceDesk Plus 服务器和 MSSQL 数据库之间的数据传输通过 SSL 进行。
- ServiceDesk Plus 和 Desktop Central 之间的通信:ServiceDesk Plus 需要安装 ManageEngine Desktop Central 以扫描 Windows、Linux 和 macOS 机器。所部署的 Desktop Central 代理应允许连接到服务器。ServiceDesk Plus 服务和 Desktop Central 服务之间的数据传输通过 SSL 以及基于密钥的身份验证进行。从代理到服务器的任何数据传输都使用强加密协议 - HTTPS。
- ServiceDesk Plus 和远程服务器之间的通信:ServiceDesk Plus 和远程服务器之间的数据传输通过 SSL 和基于密钥的身份验证进行。远程服务器仅接受来自 ServiceDesk Plus 服务器的连接。远程服务器将数据整理为 ZIP 文件发送到 ServiceDesk Plus 服务器,后者在处理文件之前会检查 ZIP 文件中是否存在 Zip Slip 漏洞。
- ServiceDesk Plus 服务器和移动应用程序之间的通信:ServiceDesk Plus 和移动应用程序之间的数据传输通过 SSL 进行。移动应用程序使用身份验证令牌连接到 ServiceDesk Plus 服务器。
- ServiceDesk Plus 与其他集成 ManageEngine 产品之间的通信:ServiceDesk Plus 与远程服务器之间的数据传输通过 SSL 进行。ManageEngine 产品使用身份验证令牌连接到 ServiceDesk Plus 服务器。
加密数据存储
- ServiceDesk Plus作为一个web应用程序,拥有用于业务逻辑的web服务器和用于数据存储的RDBMS。
- 使用 SQL 语句将加密的附加字段数据推送到 RDBMS 进行存储。
Web GUI 输入验证
- ServiceDesk Plus 会验证用户界面中的所有输入。过滤特殊字符和 HTML 代码,保护应用程序免受 SQL 注入、跨站点脚本 (XSS) 和缓冲区溢出等常见攻击。
访问控制措施
数据访问控制
- ServiceDesk Plus 中的所有数据访问都遵循基于角色的访问控制机制。
审计跟踪
- 在 ServiceDesk Plus 中,可以为各种事件设置告警和通知,包括访问、修改、删除或权限更改。
- 审计模块会记录所有用户操作。
- 审计信息存储在数据库中,其中包含详细信息,例如执行的操作、操作人以及操作的时间和地点。
演绎能力
- ServiceDesk Plus 能够检测以下攻击:
- 暴力破解攻击
- 恶意请求和 DoS 攻击
可用性机制
故障转移服务器
- 可持续访问对于服务台维持不间断的 IT 服务至关重要。意外的硬件或软件故障可能导致服务台停机,这可能会对业务产生巨大影响。ServiceDesk Plus 的故障转移服务功能帮助解决这个问题,并确保即使在软件或硬件故障期间应用程序也可用。
- 在任何时候,主服务器和备服务器中的数据都将彼此同步。数据复制通过安全、加密的通道进行。
离线访问
- ServiceDesk Plus 有助于将报表安全导出为受密码保护的文件以供离线访问。密码安全地存储在数据库服务器中。
移动接入
- ServiceDesk Plus 适用于 iOS 和 Android 的移动程序支持在旅途中快速访问和轻松使用服务台,而不会影响数据安全。
灾难恢复
提供备份
- ServiceDesk Plus 提供数据库备份,以及通过计划任务的定期备份。
- 所有敏感数据,例如备份文件中的个人信息,都以加密形式存储在 ZIP 文件中
或在管理员配置的目标目录下。
系统故障和恢复
- 在发生灾难导致数据丢失时,用户可以快速全新安装相同版本的ServiceDesk Plus,并将备份的数据恢复到数据库中。
安全配置
如何启用安全数据传输
- 在管理 > 常规设置 > 安全设置下配置 HTTPS以避免中间人攻击。
- 在管理 > 常规设置 > 导入SSL证书下导入 SSL 证书。
- 使用推荐的 TLS 协议和密码。

- 应用强大的 TLS 和密码后,ServiceDesk Plus 可消除以下 SSL 漏洞:
- Sweet32 (CVE-2016-2183)
- BEAST (CVE-2011-3389)
如何配置安全响应头
Content-Security-Policy (内容安全策略CSP) 是一个附加的安全层,可帮助检测和缓解某些类型的攻击,包括 XSS 和数据注入攻击。
推荐值:
default-src 'unsafe-inline' 'unsafe-eval' <protocol>:// <server-name>:<port> 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://www.youtube.com/iframe_api https://s.ytimg.com ws://vts.zohopublic.com
注意:在更新以上的数据之前需更新服务器红色记号标出的详细信息。
CSP 可以控制对您网站有安全威胁的内部和外部脚本。如果发生攻击,CSP 将阻止脚本。
HTTP Strict-Transport-Security 是一个响应头(通常缩写为 HSTS),它能够约束浏览器仅使用 HTTPS 而不是 HTTP 来访问网站。
推荐值:
max-age=10368000 includesubdomains preload
配置此标头,ServiceDesk Plus 不受 Strict TLS 漏洞和 CWE-523 的影响。HSTS 标头仅在 HTTPS 连接上有效,这保证不会收到未加密的 HTTP 流。结合预加载,HSTS 还可以通过消除从 HTTP 到 HTTPS 的服务器重定向来缩短页面加载时间。
Cache-Control 包含用于在请求和响应中缓存的指令(指令)。
推荐值:
public no-cache max-age=0 proxy-revalidate
配置此标头的好处:
- 通过减少满足请求所需的网络跃点数来最小化带宽。
- 通过满足更接近客户端的请求来减少延迟。
- 通过允许缓存服务请求来减少服务器负载。
- 即使源服务器不可用,也可以通过允许缓存提供内容来提高稳健性。
X-Content-Type-Options 用于防止 MIME 嗅探漏洞,当网站允许用户上传恶意内容时会发生这种漏洞,这为 XSS 破坏网站的完整性创造了机会。
推荐值:
nosniff
在配置此标头时,ServiceDesk Plus 可消除内容嗅探漏洞。
X-Frame-Options 可用于指示是否应允许浏览器在 <frame>、<iframe>、<embed> 或 <object> 中呈现页面。站点可以使用此功能通过确保其内容未嵌入其他站点来避免点击劫持攻击。
推荐值:
SAMEORIGIN
在配置此安全响应标头时,ServiceDesk Plus 可避免点击劫持漏洞 。
X-XSS-Protection 旨在启用内置于 Web 浏览器中的 XSS 过滤器。
推荐值:
1;mode=block
在配置此标头时,ServiceDesk Plus 可避免反射 XSS 漏洞的。
Access-Control-Allow-Origin 指示是否可以通过从给定来源请求代码来共享响应。
推荐值:
https://www.zoho.com,https://www.google.com
要允许跨源请求,需要将“Access-Control-Allow-Origin”标头值设置为“trusted”
trusted
Referrer-PolicyHTTP标头控制多少referrer信息(经由Referrer头中发送)应包含在请求中。
推荐值:
same-origin
在 Expect-CT 让网站选择报告和执行证书透明度要求,以防止该站点使用错误颁发的证书。
推荐值:
enforce,max-age=300
如何防止暴力攻击
暴力攻击使用试错法来猜测登录信息或加密密钥,或找到隐藏的网页。黑客通过所有可能的组合来希望得到正确的结果。
解决方案:在管理 > 常规设置 > 安全设置 > 高级下启用配置帐户锁定阈值和持续时间的安全配置 。
如何禁用并发用户登录
并发登录可能会导致非法人员使用有效凭据来验证对网络的访问。这可能会导致组织内出现多个安全问题,例如滥用合法用户的个人信息和资源来执行未经授权的操作。
解决方案:在管理 > 常规设置 > 安全设置下启用 禁止并发登录 安全配置 。
如何启用加密密码传输
明文密码是一个严重的安全风险,不能在任何情况下直接进行传输。
解决方案:打开 product-config.xml 并通过将以下配置值更改为“true”来启用密码加密。您必须重新启动 ServiceDesk Plus 才能应用此配置。
<configuration name="user.password.encrypt" value="true"/>
如何禁用保持登录功能
保持登录功能会降低应用程序的安全性,最好避免,因为选择“保持登录”会永久存储会话令牌,黑客可以找到并使用它来访问应用程序。
解决方案:禁用“管理”>“常规设置”>“安全设置”下的“保持登录”功能 。
如何解决域枚举安全问题 (CVE-2018—7248)
未经身份验证的用户可以通过向 API 端点发送包含用户名的请求来验证域用户帐户,如果帐户存在,API 端点会发回用户的登录域。
解决方案:在管理 > 常规设置 > 安全设置> 高级中禁用登录安全配置期间启用域下拉菜单 。
如何避免使用未经身份验证的 URL
通常,应用会生成一个免登录 URL 将资产详细信息上传到 ServiceDesk Plus。建议在以下情况下禁用此 URL:
- ServiceDesk Plus 中未使用资产管理。
- ServiceDesk Plus 中未使用基于脚本的扫描。
- ServiceDesk Plus 未与 Desktop Central 集成。
- ServiceDesk Plus 配置为通过互联网访问(云版本)。
要禁用此 URL,请在管理 > 常规设置 > 安全设置下启用停止通过免登录 URL 上传扫描的 XML 安全配置 。
提供免登录 URL 以供批准。建议所有免登录审批页面都启用登录。
要启用登录,请单击“管理”>“自助服务门户设置”下的“仅允许来自登录用户的批准操作 ”。
如何禁用在密码输入字段中复制和粘贴的选项
要禁用复制和粘贴选项,请在管理 > 常规设置 > 安全设置 >高级下启用 禁止向密码字段中粘贴内容 。
如何删除易受攻击的 HTTP 方法
一些 HTTP 方法已被识别为易受攻击的方法,可以在 ServiceDesk Plus 中禁用。
解决方案:按照以下步骤禁用易受攻击的 HTTP 方法。
步骤 1:在数据库查询控制台中执行以下更新查询:update GlobalConfig SET PARAMVALUE = 'OPTIONS,TRACE' where PARAMETER = 'DISABLED_HTTP_METHODS';
第二步:重启应用服务器。
如何防止 Logjam 安全问题 (CVE-2015-4000)
漏洞描述:Diffie-Helmen 组强度不足 1024 位或 83875 - SSL/TLS Diffie-Hellman 模数 <= 1024 位
将 Java 配置为使用 Diffie-Hellman 2048 位组。在 JVM 参数中将 jdk.tls.ephemeralDHKeySize 设置为“2048”(例如,-Djdk.tls.ephemeralDHKeySize=2048)。
按照以下步骤配置 JVM 参数。
步骤 1:打开 wrapper.conf 文件,该文件位于 conf 目录下。
第 2 步:在 wrapper.conf 文件中添加以下屏幕截图中标记的行。

如何防止 BREACH 攻击 (CVE-2013-3587)
要防止 BREACH 攻击,请在管理 > 常规设置 > 安全设置 下勾选禁用 HTTP 压缩安全配置 。
如何重置默认密码
建议在这些区域重置默认密码:
- 管理员帐号用户密码
- 来宾帐户用户密码
- 备份文件密码
解决方案:使用更改密码选项重置内置的用户帐户。在管理 > 常规设置 > 备份计划重置备份密码 。
如何重置普通用户密码
在 ServiceDesk Plus 中,所有新导入的用户都将拥有一个通用密码,可用于访问彼此的帐户。
解决方案:选择启用首次登录时强制重置密码安全配置,强制所有新用户重置密码。此功能在管理 > 常规设置 > 安全设置 > 密码策略下开启 。
如何为附件启用密码保护
在 ServiceDesk Plus 中配置多个帮助台实例时,所有实例的文件附件都存储在 ServiceDesk Plus 服务器中。这使所有实例的用户都可以访问这些文件。为防止出现这种情况,请为文件附件启用密码保护。
解决方案:在管理>常规>安全设置下选择 为所有附件启用密码保护 配置 。
如何为所有导出的报表文件启用密码
向未经授权的用户发送报表会导致安全问题,为报表附件启用密码保护可防止这种情况。
解决方案:在管理 > 常规设置 > 隐私设置下选择 启用文件保护密码 。
如何加强用户密码策略
密码策略是一组规则,旨在通过鼓励用户使用强密码并正确使用它们来增强 ServiceDesk Plus 的安全性。
解决方案:在管理 > 常规设置 > 安全设置 > 密码策略下启用密码策略功能 。
如何为敏感 cookie 启用 Secure 和 HttpOnly 属性
ServiceDesk Plus 为所有包含敏感信息的 cookie 提供安全和 HttpOnly cookie 属性。
会话劫持漏洞
黑客可以对活动会话发起攻击并劫持它们。因此,必须为每个会话设置过期设置。ServiceDesk Plus 对会话过期的限制不足会增加其他基于会话的攻击的风险。为避免这种情况,请在管理 > 常规设置 > 安全设置下配置会话超时 。
ServiceDesk Plus 没有以下安全问题:
- 会话固定
- SQL注入
- 身份验证失效
- 敏感数据暴露
- XML 外部实体注入
- 损坏的访问控制
- 不安全的反序列化
- 为所有密码字段启用自动完成
- 本地文件包含
- 远程文件包含
- 权限提升
- 日志文件中打印的敏感信息
- 通过原始欺骗绕过访问限制
- 剪贴板数据窃取攻击
- 远程代码执行 (RCE)
- Apache Commons FileUpload 库中报表的拒绝服务 (DoS) 攻击(CVE-2014-0050 和 CVE-2016-3092)
- Apache Commons FileUpload RCE 漏洞 (CVE-2016-1000031)
- Semmle 发现的 Apache Struts RCE 漏洞 (CVE-2018-11776)
- Apache Struts 1.1 中的类加载器漏洞 (CVE-2014-0114)
- Apache Struts 验证器框架中的漏洞(CVE-2016-1182、CVE-2016-1181、CVE-2015-0899 和 CVE-2012-1007)
- Zip Slip 漏洞
- TRACE方法中的漏洞
- jQuery 框架中的多个漏洞(CVE-2016-7103 和 CVE-2015-9251)
- 主机头注入 (CWE-644)
- HTTP 标头注入
- DOMPurify 框架中的多个漏洞
- Bootstrap 框架中的多个漏洞(CVE-2019-8331、CVE-2018-14041、CVE-2018-14040、CVE-2018-14042 和 CVE-2018-20677)
- 内置的 moment JS (2.11.0) 正则表达式 DoS 漏洞 (CVE-2016-4055)
- Handlebars 框架中的多个漏洞 (v4.5.7)
- 路径过于宽泛的 Cookie
- Moment 模块(2.19.3 之前)通过特定制作的日期字符串用于 Node.js 正则表达式的拒绝服务问题 (CVE-2017-18214)
内置的 Tomcat 服务器 (9.0.34) 没有以下安全问题:
- Tomcat RCE 漏洞(CVE-2017-12615、CVE-2017-12617 和 CVE-2019-0232)
- Slowloris DoS 漏洞 (CVE-2012-5568)
- Apache Struts Jakarta RCE 漏洞 (CVE-2017-5638)
- ETag Inode 编号漏洞 (CVE-2003-1418)
- Ghostcat 漏洞 (CVE-2020-1938)
- HTTP 请求走私(CVE-2020-1935 和 CVE-2019-17569)
- RCE 攻击 (CVE-2020-9484)
内置的 Postgres 服务器 (10.12) 没有以下漏洞:
- CVE-2017-12172:启动脚本允许数据库管理员修改 root 拥有的文件
- CVE-2017-15098:JSON 函数中的内存泄露
- CVE-2017-15099:INSERT ... ON CONFLICT DO UPDATE 无法强制执行 SELECT 权限
可能的 RCE 漏洞
ServiceDesk Plus 中的以下功能允许用户运行操作系统命令以满足用户需求,因此不被视为安全问题。
- 请求自定义菜单
- 请求自定义触发器
- 自定义触发器
- 自定义函数
- 自定义时间表
进一步保护这些功能的建议:
- 通过配置强密码策略,在管理员帐户的安全性问题上不做妥协。
- 不要共享管理员凭据。
- 保存管理配置时启用OTP。
网页定制中可能存在的 XSS 漏洞
ServiceDesk Plus 中的以下功能允许用户编辑或定制 HTML 内容,这可能允许易受攻击的 HTML 内容嵌入这些页面。
- 自助服务门户定制
- 页面脚本
- ESM 门户定制
- 自定义登录页面
克服此漏洞的解决方案:
- 通过配置强密码策略,在管理员帐户的安全性问题上不做妥协。
- 不要共享管理员凭据。
- 保存管理配置时启用OTP。
如果您有任何问题,请随时联系我们。










