显然, 错误本身及其修复 为什么内核、libc或编译器中的对策没有阻止这一点,或者静态分析工具是如何没有捕捉到这一点的 在这里 和 在这里 ) 协议设计–有些人想知道为什么在这样一个关键的安全协议中包含一个看似应用程序级的功能,以及为什么在身份验证完成之前该功能可用。 有趣的是,该功能的声明目的之一是 DTLS的PMTU发现 但它也支持普通TLS 不仅是服务器易受攻击– 同样脆弱的客户 由于没有记录此故障情况,因此无法检测到攻击 OpenSSL项目的运行状况, 谈论其开发人员不负责任 当涉及到他们的开发实践时 错误是如何引入的 ,涉及多少代码审查或测试。 (更新: 代码原作者的评论 ) 认识到我们行业中很少有人积极投资这个项目,而这个项目得到了很多人的信任 OpenSSL是否是每个人都应该依赖的库的问题,它应该是NSS还是GnuTLS 像OpenSSL这样的东西如何成为web服务体系结构的关键部分 即使服务是通过诸如以下技术实现的。 净值 如果SSL漏洞具有如此深远的影响,我们是否将所有鸡蛋放在一个篮子里 漏洞暴露了多少数据,例如私钥、用户名和密码、其他敏感数据,以及在修补之前,掌握这些知识的坚定、资源充足的攻击者可能会泄露多少数据 这个 证书撤销措施的效力 保护用户免受可能受损的证书的影响 怎么 完美远期安全是一项重要的缓解措施 针对此类漏洞 这个 一个站点声称可以在其日志中检测到攻击 ,在漏洞公开前两周,有人利用了该漏洞。 (Thierry Carrez指出了对这篇文章的更新,它说“其他工具[…]可以在SeaCat服务器日志中生成相同的模式”) 怎么 我们对这种脆弱性的认识已经改变 现在我们知道了情报机构(国家安全局和其他机构)在人口监测和监测方面的积极性。 这次FOSDEM演讲相当有先见之明 将OpenSSL描述为NSA的“皇冠宝石”。 (更新: 声称国家安全局在引入该漏洞后不久就知道该漏洞并加以利用 ) 披露漏洞的方法、披露过程的责任以及进一步推迟披露的利弊。 显然,CloudFlare是在公开披露之前披露的,而Red Hat等供应商则没有 (更新: Kurt Seifried关于披露时间表的更多细节 )(另一个更新: OpenSSL的时间表官方视图 )(另一个更新: Codenomicon的David Chartier访谈 ) 像Linux发行版这样的实体在帮助快速修补漏洞方面的效率如何(参见 Stripe去构建了自己的补丁包 而不是等待Ubuntu包) 由于应用程序捆绑OpenSSL,修补这一问题的难度要大得多,如果捆绑的做法更加广泛,情况可能会更糟 影响 令人印象深刻的营销 –例如,一个很酷的名字,而不是一个CVE编号、一个徽标、清晰的技术文字来表达业务影响等–影响了补丁的部署速度
关于“心跳”的12点思考
-
>*OpenSSL项目的健康状况,谈到它的开发人员不负责任 >进入他们的发展实践 >*认识到我们行业中很少有人积极投资这个项目 >许多人对 >*关于OpenSSL是否是每个人都应该依赖的库的问题, >应该是NSS还是GnuTLS >*如果SSL,我们是否将所有鸡蛋放在一个篮子里 >漏洞具有如此深远的影响 我觉得这四个方面都是同一点的不同方面。 特别是最后一个问题提出了一个相当困难的难题。 传统观点认为,把所有鸡蛋放在一个篮子里是一件坏事,因为当出现问题时会产生影响。 然而,对于密码学,我不确定传统的智慧在实践中是否奏效。 很明显,编写安全的加密库是一项非常困难的工作,社区/行业的熟练和感兴趣的开发人员非常有限。 如果我们通过10个广泛使用的加密库而不是3个主要的开放源代码实现(OpenSSL、NSS、GNUTLS)来传播我们的鸡蛋,那么我们将把有限的开发资源池传播得更薄。 最终的结果可能是,图书馆的整体质量较低,从而实际上增加了我们的整体安全风险。 如果有更多的库需要审计,那么审计加密库的人员也将有更多的工作要做。 应用程序开发人员将面临更困难的决策——他们是只选择一个,还是尝试支持一大堆不同的库,这会增加他们将其集成搞砸而导致更多安全缺陷的可能性。 3个鸡蛋是我们篮子里合适的鸡蛋数量吗?IMHO,考虑到进一步多样化所固有的其他问题,现在可能是这样。 我认为第二点是这里要考虑的关键点。 IMHO有太多的公司在运送和依赖我们的三个主要开源TLS库,而没有为其开发和测试贡献足够的资源——这是一个投资的集体失败,因为它不是一个“性感”的头条新闻项目,比如说OpenStack。 统计过去2年中有多少开发公司投入了OpenStack,然后计算GNUTLS/OpenSSL/NSS项目的投入量… 尽管如此,以及今年的另外两个TLS impl漏洞都很严重,但我们必须记住(除了NSA)TLS/SSL实际上在过去10-15年里在保护互联网流量方面做了出色的工作。 由于斯诺登事件的曝光,互联网似乎正在经历一段态度调整的时期,人们对审计安全敏感代码(包括我们的TLS impls)的兴趣/活动越来越大,导致发现的漏洞显著增加。 希望这将导致更好的开发和测试实践,以及每个相关人员和依赖他们在安全工作方面的更大长期投资。 -
下面是一篇关于使用systemd cgroup在野外帮助解决此问题的酷文章 https://www.getpantheon.com/heartleed-fix(网址:https://www.getpantheon.com/heartleed-fix) -
>为什么内核、libc或编译器中的对策没有阻止这一点,或者静态分析工具是如何没有捕捉到这一点的 因为OpenSSL具有利用缓解措施,以确保其可被利用。 是的,这不是玩笑: http://article.gmane.org/gmane.os.openbsd.misc/211963 -
海猫日志可能是假阳性,但似乎有更古老的烟枪 https://www.eff.org/deplinks/2014/04/wild-heart-were-intelligence-agencies-using-heartbleed-november-2013 -
是的,谢谢clopez——我已经在“谈论开发人员不负责任”一文中链接到了那篇帖子 -
重新进行静态分析,我发现openssl已在此处注册,最后一次运行是在一年前,但结果尚未公开: https://scan.coverity.com/projects/294?tab=概述 虽然如果静态检查在这里指出了任何问题,并且检查了d1_both.c的覆盖扫描,我会感到惊讶。 我想安全机构会有更集中的工具。 搜索服务器堆栈/堆标记值的客户端将是一个破解101工具。 -
马克,这是一个很棒的列表。我还要补充: *openssl在嵌入式设备中的流行不会得到更新,但从现在开始看起来是安全的。 -
您可能还对OpenSSL开发人员关于OpenBSD开发人员提出的利用漏洞缓解对策问题的评论感兴趣: http://thread.gmane.org/gmane.comp.encryption.openssl.devel/24208 -
Pingback: OpenStack社区每周新闻稿(4月4日至11日)»OpenStack博客 -
与我的团队一起,在TrustInSoft,我们刚刚对开源SSL堆栈进行了数学验证。 这个SSL堆栈现在对类似心跳的安全缺陷免疫。 我鼓励您查看正式方法,看看它们如何帮助构建更可靠的互联网: http://trust-in-s.com/no-more-hartbleake -
Pingback: 心跳反射列表| Leonid Mamchenkov博客 -
在静态分析主题之后,我看到coverity已经写下了此处所需的“污点分析”: http://blog.regehr.org/archives/1128