CVE-2018-17612:没想到吧?买个耳机也有潜在的安全风险

Sennheiser(森海塞尔)是世界四大耳机品牌之一,在Hifi圈内有很高的知名度。但很多人可能想不到,在买耳机的时候就会埋下安全隐患,这一切的根源都出在官方配套的应用程序中。在Sennheiser用户安装官方提供的HeadSetup应用时,几乎无人发现该应用将根证书安装到了受信任的根CA证书列中,并且更严重的是该应用还安装了不安全的证书加密私钥。

 

故事背景

与联想在Superfish广告软件上的失误类似(在笔记本出厂后预装Superfish,该应用可在计算机上安装其他程序,并且当时网站已经遭受攻击,黑客可利用其安装各种恶意软件,详情可见安全客往期相关资讯),对于安装Sennheiser应用每个用户来说,他们的证书及其关联的私钥都是一模一样的。因此,这种行为可以使能够解密私钥的攻击者在监督者监管不到的地方发布欺诈性证书。这会造成攻击者可以在用户访问这些站点时嗅探流量,执行中间人攻击。

当用户卸载HeadSetup时,其普通的证书文件会被删除,但是受信任的根证书不受任何影响,将依然存在。因此,即使用户卸载了该应用,攻击者依然可以通过自己拥有的私钥继续进行攻击。

此次漏洞(CVE-2018-17612)是安全咨询公司Secorvo在对计算机受信任的根证书CA存储进行随机检查时发现的,他们在报告中声称:在对Trusted Root CA进行检查后,他们偶然发现了两个不同寻常的根证书,这两个证书中的发行人名称表明他们与系统上安装的Sennheiser HeadSetup应用有关系。

当用户安装HeadSetup后,它会将两个证书安装到计算机上。应用会使用这些证书通过TLS加密与耳机连接。名为SennComCCCert.pem的第一个证书是根证书,SennComCCKey.pem是此证书的私钥。

当研究人员对私钥进行分析时,发现它们是用AES-128-CBC加密的,需要找到正确的密码才能解密它。由于HeadSetup在使用时也需要解密密钥,这意味着密钥必须存储在某个文件中,通过分析发现它位于一个名为WBCCListener.dll的文件中。为了解密文件,研究人员需要知道加密算法和用于加密的密钥才可以进行解密,因此他们猜测供应商采用了CBC模式下128位密钥的通用AES加密算法。在将私钥解密为标准的OpenSSL PEM后仍需一个密码解密才可使用,此密码则存储在配置文件WBCCServer.properties 中,如下所示。

完成上述步骤以后即可访问根证书私钥了,这时可以生成一个证书适配来自google.com,sennheiser.com,以及其他部分耳机厂商如jbl.com, harmankardon.com和bose.com的流量 。

安装了此应用的所有计算机上证书都相同,因此其他计算机也容易受到此证书的攻击。然后,攻击者可以利用它进行中间人攻击以嗅探并修改相关站点的流量。这可能导致敏感信息泄露等众多安全问题。

 

安全更新

Secorvo公司向Sennheise披露了CVE-2018-17612漏洞。Sennheiser表示,HeadSetup应用的更新版本将在11月底发布。更新后,应用将删除受信任的根证书,并确保在删除软件时不会遗留任何证书。与此同时,Sennheiser 在新版本发布前临时发布了一个批处理文件,此文件可用于立即删除证书。安全人员强烈建议所有的HeadSetup用户立刻下载并执行此脚本以删除易受攻击的证书。

同时微软发布了安全公告ADV180029,并且发布了一个更新的证书信任列表,该列表取消了对上述两个不安全证书的信任。

(完)