对于每个受影响的服务器,需要考虑的不仅仅是新证书(或者更确切地说是新密钥对)。这也意味着:
- 将受影响的系统修补到 OpenSSL 1.0.1g
- 撤销刚刚被取代的旧密钥对
- 更改所有密码
- 使所有会话密钥和 cookie 无效
- 评估易受攻击的服务器处理的可能泄露的实际内容,并做出相应的反应。
- 评估可能泄露的任何其他信息,例如内存地址和安全措施
Neel Mehta(最先报告该漏洞的谷歌安全工程师)在推特上写道:
堆分配模式使得#heartbleed #dontpanic 不太可能暴露私钥。
Tomas Rzepka(可能来自瑞典安全公司Certezza)回复说他们必须做些什么来恢复密钥:
重启 apache 并使用 ssltest.py 发出第一个请求后,我们可以在 FreeBSD 上成功提取私钥
CloudFlare Challenge也证明了私钥被盗。
推特用户makomk附和:
我已经从 Gentoo 上的 Apache 恢复它作为二进制文件中的一个主要因素,但你的演示更清晰......它的成功率很低,在同一连接上进行更多尝试没有帮助,重新连接可能,重新启动可能赢了't...具有良好堆利用技能的人可能会提高可靠性。我真的没有那么努力。
我从heartbleed.com总结了上面的要点(强调我的):
什么是泄露的主键材料,如何恢复?
这些是皇冠上的宝石,加密密钥本身。泄露的密钥允许攻击者解密任何过去和未来到受保护服务的流量,并随意冒充服务。可以绕过 X.509 证书中的加密和签名提供的任何保护。从此泄漏中恢复需要修补漏洞、撤销受损密钥以及重新发布和重新分发新密钥。即使做所有这些仍然会使过去被攻击者拦截的任何流量仍然容易被解密。所有这些都必须由服务的所有者完成。
什么是泄露的二级密钥材料,如何恢复?
例如,这些是易受攻击的服务中使用的用户凭据(用户名和密码) 。从此泄漏中恢复需要服务的所有者首先根据上述步骤恢复对服务的信任。在此之后,用户可以根据受到损害的服务所有者的指示开始更改他们的密码和可能的加密密钥。所有会话密钥和会话 cookie 都应无效并被视为已泄露。
什么是泄露的受保护内容以及如何恢复?
这是易受攻击的服务处理的实际内容。它可能是个人或财务详细信息、私人通信(如电子邮件或即时消息)、文档或任何值得通过加密保护的东西。只有服务的所有者才能估计泄露的可能性,他们应该相应地通知用户。最重要的是恢复对如上所述的主要和次要密钥材料的信任。只有这样才能在未来安全使用受感染的服务。
什么是泄露的抵押品以及如何恢复?
泄露的抵押品是在泄露的内存内容中暴露给攻击者的其他细节。这些可能包含技术细节,例如内存地址和安全措施,例如用于防止溢出攻击的金丝雀。这些只有当代价值,当 OpenSSL 升级到固定版本时,它们对攻击者将失去价值。