85% 的财富 500 强企业都在使用 ServiceNow,目前有超过 1000 个实例设置错误。许多拥有多个 ServiceNow 实例的组织被发现始终错误地配置了知识库访问控制,这表明这些设置要么是跨实例克隆的,要么存在对它们工作方式的根本误解。
AppOmni SaaS 安全研究主管 Aaron Costello 表示:“这凸显了企业迫切需要定期检查和更新其安全配置,以防止未经授权的访问并保护其数据资产。
“了解这些问题以及如何缓解这些问题对于在企业 SaaS 环境中保持强大的安全性至关重要。”
这不是 ServiceNow 第一次被发现由于用户配置错误而暴露敏感数据。2020 年,另一位研究人员报告了类似的发现,即知识库文章可以通过现在安全的 UI 页面公开访问。
ServiceNow 首席信息安全官 Ben De Bont 表示:“ServiceNow 致力于促进与安全社区的合作。我们致力于保护客户的数据,而安全研究人员是我们不断努力提高产品安全性的重要合作伙伴。
什么是知识库配置错误?
AppOmni 发现,企业在三种情况下将其 ServiceNow 知识库置于泄露风险中:
- 如果使用旧版本的 ServiceNow,其中知识库的默认设置允许在未设置用户条件时进行公共访问。
- 如果将“Any User”和“Any user for kb”用户标准用作允许列表。这两者都向未经身份验证的用户授予访问权限,而管理员可能没有意识到这一点。
- 如果管理员未配置拒绝列表,则允许外部用户绕过访问控制。
攻击者如何获得对知识库的访问权限
根据 Costello 的概念验证,攻击者可以通过公共小部件访问配置错误的知识库,例如“知识库文章页面”小部件,它显示特定知识库文章中的内容。
攻击者可以使用名为 Burp Suite 的工具自动请求通过小部件查找和访问文章。使用知识库文章页面 Widget 可以更轻松地实现这一点,该 Widget 对文章 ID 使用可预测的格式“KBXXXXXXX”,其中 X 表示正整数。
Burp Suite 的 Intruder 功能可以快速迭代这些整数并识别可能无意中暴露的文章。然后,它可以返回正文文本,其中可能同时包含多个不安全文章的敏感数据。
如何保护知识库免受未经授权的访问
对知识库访问控制运行定期诊断
ServiceNow 的用户条件诊断工具允许管理员确定哪些用户(经过身份验证和未经身份验证)能够访问知识库和单个文章。
导航到 /get_public_knowledge_bases.do 以识别公共知识库,并导航到 /km_diagnostics.do 上的完整诊断工具以识别公共和非公共用户对单个文章的访问级别。
默认情况下,使用业务规则拒绝对知识库的未经身份验证的访问
确保为知识库激活“sys_id 6c8ec5147711111016f35c207b5a9969”业务规则(将来宾用户添加到“无法读取且无法贡献”用户条件)。