网络安全产品生产商Fortinet花了10到18个月的时间删除了旗下三种产品中的硬编码加密密钥,这些密钥可能会导致客户数据遭到严重泄露。
此次事件涉及的硬编码加密密钥主要存在于FortiGate防火墙和FortiClient endpoint保护软件(防病毒软件),Mac和Windows版本都受到影响。
除了硬编码密钥,这三个产品都使用弱加密算法(XOR)与各种FortiGate云服务进行通信。
具体来说,硬编码密钥涉及FortiGuard网页过滤功能,FortiGuard反垃圾邮件功能和FortiGuard反病毒功能中的用户流量。
一旦攻击者截获到受害者的通信流量,就可以通过硬编码密钥和XOR解密这个弱加密的数据流。攻击者可借此窥探到:
用户访问的网页
电子邮件数据
反病毒数据
更重要的是,除了嗅探用户流量,攻击者还可以使用相同的硬编码密钥来篡改服务器响应,破坏恶意软件和URL的检测功能。
修复周期较长
这些漏洞是在2018年5月由SEC Consult的安全研究员Stefan Viehböck发现的。而Fortinet解决这些漏洞的过程异常漫长和缓慢。
在Fortinet收到漏洞报告的三周后,其中一名员工才参与进来。
而修复这些漏洞则花费了更长的时间。直到2019年3月,也就是漏洞上报10个月后,Fortinet才在最新版本的FortiOS中移除了硬编码密钥。
然后又花了8个月的时间移除了旧版本中的硬编码密钥,相关补丁已于本月早些时候发布。
以下是受影响的Fortinet产品:
FortiOS 6.0.6及以下
FortiClientWindows 6.0.6及以下
FortiClientMac 6.2.1及以下
服务器管理员应及时将软件升级到以下版本:
FortiOS 6.0.7或6.2.0
FortiClientWindows 6.2.0
FortiClientMac 6.2.2
在本文发表之前,Fortinet还没有回复本站的评论请求。漏洞发现者也展示了相关利用代码。Fortinet官方的安全建议可点击这里。
from itertools import cycle
def forti_xor(s1):
xor_key = **出于保密隐藏**
message = ''.join(chr(c ^ k) for c, k in zip(s1, cycle(xor_key)))
return message
r1=bytes.fromhex('6968766f606e776c2d2d21262138475c5b5a475b545e475c6b6a776b646e776c6b6a772b646e776c6b6a776b646e776c6b6a776bbadf04036b6a776c616a846f')
print(repr(forti_xor(r1)))
假设密文为:
\x02\x02\x01\x04\x04\x00\x00\x00FGVMEV0000000000\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00...
则原文为:
\x02\x01\x02\x04úI\x03\x00FG100D3G00000000\x00\x00\...x00\x00+https://v10.vortex-win.data.microsoft.com/\x00
更多详细信息可到Fortinet官网查看。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://www.zdnet.com/article/some-fortinet-products-shipped-with-hardcoded-encryption-keys/