当前位置: 首页 > news >正文

SolarWinds Web Help Desk漏洞曝光:攻击者可访问存储密码

image

SolarWinds 的 Web Help Desk 软件中存在一个严重漏洞(CVE-2024-28989),攻击者可以通过其 AES-GCM 实现中的加密弱点解密敏感凭据,包括数据库密码和 LDAP/SMTP 认证密钥。该漏洞在 12.8.5 版本中得到了修复,其根源在于可预测的加密密钥和 nonce 重用,使得即使没有直接系统访问权限,也能解密存储的秘密信息。

Web Help Desk 加密设计缺陷

据 NetSPI 团队称,该漏洞存在于com.solarwinds.whd.symmetric.AESGCMSymetricCryptoProvider类中,该类负责管理存储在数据库备份和配置文件中的凭据的 AES-GCM 加密。研究人员发现了两个主要缺陷:

静态且可预测的加密密钥

默认的 AES-GCM 密钥(defaultKey)被硬编码在whd-crypto.jar文件中的cryptconfig.properties中。这使得无需进一步访问系统即可轻松解密标记为{AES}<base64>的秘密信息。

例如,.whd.properties中嵌入的 PostgreSQL 密码使用了此密钥:

第二个密钥派生机制进一步加剧了风险。SecretKeyServiceImpl类使用数据库中init_code值与静态十六进制值(0xBABEFACE)进行异或运算来生成密钥。

由于init_code通常低于 0x10000,暴力破解变得计算上轻而易举:

Nonce 重用与密钥流恢复

AES-GCM 的安全性依赖于每次加密使用唯一的 nonce。然而,Web Help Desk 在操作中复用了 nonce,使得攻击者可以通过已知的明文-密文对恢复密钥流。

攻击者可以将已知的凭据(例如Password1)与其密文进行异或运算以提取密钥流,然后解密使用相同 nonce 加密的其他秘密信息:

漏洞利用途径

提取硬编码密钥:反编译 JAR 文件以从cryptconfig.properties中获取defaultKey
暴力破解转换后的密钥:计算init_code ^ 0xBABEFACE,针对订阅者 ID(≤ 65,535 种可能)。
解密秘密信息:使用派生密钥解密备份或.whd.properties中的 AES-GCM 密文。

例如,使用密钥 19950 解密frcLMeS3nchpg_Ucxz…后得到了Password1,展示了低熵密钥如何使实际攻击成为可能。

在一次渗透测试中,NetSPI 团队解密了一个oauth2_client_secret和 LDAP 查询账户密码。这些凭据允许通过Connect-AzAccount访问 Azure AD,并在网络内进行横向移动。

缓解措施

升级至 12.8.5 版本:SolarWinds(SolarWinds 公司)已对密钥生成逻辑进行了修复,并强制实施了恰当的随机数(随机数一次性值)随机化处理。
限制备份访问权限:将 .zip 和 .properties 文件的访问权限仅授予必要的人员。
轮换所有嵌入式机密信息:在升级完成后,重置数据库密码、应用程序编程接口(API)密钥以及轻量级目录访问协议(LDAP)/ 简单邮件传输协议(SMTP)的凭据。
审计 AES-GCM 的使用情况:确保每次加密所使用的随机数(随机数一次性值)都是唯一的(例如,使用基于计数器的随机数或具有 96 位熵的随机随机数)。

尽管进行漏洞修复可以消除当前的直接风险,但各机构仍必须采用深度防御策略,对凭据泄露情况进行监控,对备份存储进行分区,并实施健全的密钥生命周期管理措施。

随着攻击者越来越多地利用加密配置错误发动攻击,主动强化加密措施已变得不可或缺。

相关文章:

  • 动态IP vs 静态IP:终极对比一览表
  • 使用LiteFlow实现阻塞审批工作流
  • 前端面试:React hooks 调用是可以写在 if 语句里面吗?
  • JavaScript性能优化实战指南
  • 软件工程概述、软件过程模型、逆向工程(高软45)
  • HTML5拼图游戏开发经验分享
  • Pycharm(五)序列的操作
  • 网络VLAN技术详解:原理、类型与实战配置
  • Elasticsearch Java High Level Client [7.17] 使用
  • K8S学习之基础二十八:k8s中的configMap
  • Interview preparation.md
  • RabbitMQ从入门到实战-知识详情总结
  • 2024下半年真题 系统架构设计师 论文写作 答案解析
  • 基于全局分析SpringCloud各个组件所解决的问题?
  • 框架源码私享笔记(02)Mybatis核心框架原理 | 一条SQL透析核心组件功能特性
  • 证券交易系统的流程
  • T2.小牛架炮 - 美团机试真题题解
  • qt c++线程中的同步和异步
  • Linux入门 全面整理终端 Bash、Vim 基础命令速记
  • Python----数据可视化(pyecharts二:绘图一:条形图,直方图,折线图,散点图,箱图,饼图,热力图)
  • 新疆多地市民拍到不明飞行物:几秒内加速消失,气象部门回应
  • 终于,俄罗斯和乌克兰谈上了
  • 商务部:今年前3月自贸试验区进出口总额达2万亿元
  • 由我国牵头制定,适老化数字经济国际标准发布
  • 横跨万里穿越百年,《受到召唤·敦煌》中张艺兴一人分饰两角
  • 广东省原省长卢瑞华逝世,享年88岁