如果你是一名技术专家,而且你不是生活在岩石下,你会听说心跳加速,这是一个严重性:在广泛部署的OpenSSL软件中的启示性错误。心跳让任何能够找到命令行的人都可以从受影响的系统中读取加密密钥、密码和其他私有数据。如果你不记得在过去48小时内解决了这个问题立即关闭这个窗口,开始工作.

不过,现在我们已经度过了紧急恐慌阶段,我想分享一些经验教训。安全专家可以比我更多地告诉您,这对高关键性安全库中良好的C代码实践意味着什么。我想花点时间谈谈它的营销方面:关于心跳病的知识是如何在一天内传播开来的,是如何让成千上万的人来解决这个问题的。

Heartbleed的市场营销比OSS社区的典型营销要好得多,主要是因为它有一个名称、一个徽标和一个专用的web站点。

名字里有什么

还记得CVE-2013-0156吗?伙计,那些日子很黑暗,对吧?

当然你不记得CVE-2013-0156。

安全社区通过数字而不是名称来指代漏洞。这确实有一些优势,比如精确性和谷歌搜索并随时获得有意义的结果的能力,但这使得实际的人类很难就这些问题进行沟通。

CVE-2013-0156是Rails YAML反序列化漏洞。“哦!我记得那个!”房间里的技术专家说。你的老板不会。听到“Rails YAML反序列化漏洞”这句话,您的老板/利益相关者/客户/家人等也无法立即理解互联网的大部分几乎死于火灾。在我写了一个邮递关于这个漏洞,几周来,沮丧的技术专家告诉我,例如VP由于不了解其重要性而拒绝补救工作。这是营销的失败。

将“心跳”与CVE-2014-0160进行比较,这显然是该错误的官方分类。(我说“显然”是因为我没有足够的关心,没有花一分钟来验证这一点。)克里基,这真是个好名字。

  • 它引用了漏洞的实际潜在技术现实,即心跳协议期间的数据泄漏。
  • 这很能唤起人们的情感共鸣。想想你的联想——“我的心为你流血”、圣心和相关的肖像画等等。
  • 听起来很严重和/或致命.

极客们有时不喜欢以情绪化的方式描述技术事实。如果是为了扭曲,我会同意,但“如果使用OpenSSL 1.0.1a-f,则可能会泄漏服务器内存”实际上是严重的和/或致命的因此,这样描述它有助于人们寻求立即解决方案,这应该是我们作为技术专家的目标.

唯一的名称(“心跳”是唯一的,因为您很难找到任何在漏洞出现之前提到它的地方)对于人们之间交流共享的概念非常有用。我最近几天的推特流是人们明智地讨论的话题,例如“别忘了,在客户端环境下你可能会心碎”,“你如何在Ubuntu上修复心跳?”“取决于-旧版本不易受到攻击,新版本只能进行适配更新和升级”“谢谢!”

这是对我之前关于漏洞的对话的实质性改进,在之前的对话中,你经常会讨论,例如“Rails bug”。哪一个?你知道,虫子。等等,是虫子还是其他虫子?YAML错误。等等,XML处理中的YAML错误或YAML反序列化导致的错误类别?伙计,如果我们都在谈论DeserialKiller,那这个月会不会轻松一些。

不涉及“OpenSSL 1.0.1g”等神秘琐事的名称也很容易与非技术利益相关者沟通。如果你昨天发布了一个产品,而你不得不在确定发布日期和修复Heartbleed之间做出选择,那么你绝对应该取消发布。 我们都在争夺环路,获得第二名的奖品是“我们的客户的安全受到了严重的滥用”要真正取消产品发布,您可能需要说服一位经理,尽管该公司在一次引人注目的广告活动中花费了10万美元,但心跳是第一要务。与CVE号码相比,你的鲜血流淌的画面更有可能成功实现这一点。

清晰的通信

《心跳宣言》应该在技术写作课程中讲授。这是一种巧妙的沟通。让我快速摘录前三段:

心跳错误是流行的OpenSSL加密软件库中的一个严重漏洞。此漏洞允许在正常情况下窃取受SSL/TLS加密保护的信息,该加密用于保护互联网安全。SSL/TLS为web、电子邮件、即时消息(IM)和一些虚拟专用网络(VPN)等应用程序提供了互联网上的通信安全和隐私。

心跳错误允许互联网上的任何人读取受易受攻击的OpenSSL软件版本保护的系统的内存。这会破坏用于识别服务提供商和加密流量、用户名称和密码以及实际内容的密钥。这使得攻击者能够窃听通信,直接从服务和用户窃取数据,并模拟服务和用户。

实践中有什么漏洞?

我们已经从攻击者的角度测试了我们自己的一些服务。我们从外面攻击自己,没有留下任何痕迹。在不使用任何特权信息或凭据的情况下,我们可以从自己手中窃取用于X.509证书、用户名和密码、即时消息、电子邮件和业务关键文档以及通信的密钥。

这是一种紧凑、精确、有力的写作,我们通常将其与记者联系在一起,而不是与密码学家或软件工程师联系在一起。如果你不是技术专家,它在技术上是准确的,但也可以理解。它并没有掩盖关于严重性的指责:“流行的$MUMBOJUMBO软件库”“允许窃取”您的“web、电子邮件、IM和虚拟专用网络”上“受保护的信息,而不留下任何痕迹”,包括“用户名和密码、即时消息、电子邮件以及业务关键文档和通信”

该网站继续提供技术细节和补救建议,但你已经可以告诉你的老板“老板,我今天不能这么做。我们必须回复heartleed.com。”如果他花30秒浏览执行摘要,他会说“哎哟,是的。”我特别喜欢人们认识到,对心跳病的大多数补救将由企业完成,这可能就是为什么作者关注的是“关键业务文档”,而不是更无痛的“数据”。“数据会被千兆字节衡量,但关键业务文档在受到威胁时会立即采取行动。”。

专用网络呈现的好处

我经常告诉OSS从业者,在他们认为重要的项目中使用专用的web显示,而不是让他们离开Github(不失通用性)。为什么?

人们通常会尝试链接到一些东西来描述项目/漏洞/等,而拥有一个简单且明显可链接的规范描述既有利于清晰,也有利于您作为项目/等创建者的个人利益。Heartbleed.com是对Heartbleed的经典解释,这是因为人们信任8.95美元的域名,也是因为它首次发布,带有设计/徽标和综合信息,并且在性质上具有适当的权威性。

将其与您可以找到的关于CVE-2013-0156的最佳规范参考进行比较。那将是一个存档副本一封明文电子邮件,托管在谷歌群组上。它并不是特别引人注目,无论是对技术还是非技术受众来说都不是真正的“可引用”,并且是为相当少的从业者而优化的,而不是为本应关心CVE-2013-0156的更多受众而优化的。

视觉识别很重要

Heartbleed徽标可能是软件安全历史上最高的投资回报率之一,约200美元。(我实际上不知道他们是否花了200美元完成了这项工作,但这大约是我上次为OSS项目做徽标时花的钱。)

心跳标志

我在推特上看到了一些抱怨,大意是徽标设计者在Ubuntu和RedHat等发行版维护者之前就听说了Heartbleed。这种指责是错误的,因为标志设计者只需要说明“我们有一个名为Heartbleed的项目。拿出一个标志,上面写着严重危险”而不是“毫无意义,主要是非技术性的徽标设计者,OpenSSL 1.0.1a到1.0.1f中的心跳协议已经被fubared了两年了。不过不要告诉Ubuntu的家伙,我们正在努力保守秘密!”

(就其价值而言,我完全不知道谁应该优先访问与特定项目有关的即将出现的漏洞的信息。这让我感到震惊,因为如果你关心它,那么应该从维护人员/安全研究人员那里购买一些东西,但我对此的承诺并不坚定。)

为什么要花额外的钱买一个标志?因为它意味着专业性和专注性,因为它将在媒体对漏洞的报道中被彻底使用,因为它进一步加深了漏洞、名称、徽标和规范web显示的品牌关联,并且因为它也意味着危险。它是历史上最好的标志吗?没有。这个不会赢得设计奖。但它确实能沉着地完成任务。

OSS项目通常没有徽标,或者,啊哼,没有像他们投入产品那样投入技术卓越的水平。我将避免在这里引用示例来说明我的观点。

营销有助于实现合法目标

OSS社区中存在着巨大的文化潜流,这表明市场营销是其他人做的一些不太体面的事情,这与世界上一切美好而正确的事物都是对立的,比如开源软件。营销只是一种工具,它也可以用于真理和正义的事业。

作为技术专家,心跳漏洞带来了即时的协调问题。我们必须说服成千上万的人采取行动立即。不立即采取行动的后果将是灾难性的。它们不仅限于“单纯”侵犯计算机安全,而且会在真实世界生计(很可能还有生命)岌岌可危。

考虑到这一点的重要性,作为负责任的专业人士,我们有责任不仅生产出能够纠正问题的工程工件,而且提倡立即采用它们成功地。如果我们在“努力工作”中获得A,但由于我们坚持我们通常的“在无处不在的服务器上张贴愚蠢的通知”游戏计划而没有真正获得采纳,对手赢了。他们妥协的工程现实不能被我们通过不让营销弄脏我们的双手而获得的努力或自以为是的感觉所阻挠,它只能被成功修补的系统所阻挠。

这使营销成为一门工程学科。我们必须做好这件事,否则我们会让自己、利益相关者、我们的社区和更广泛的世界失望。

更多OSS营销,如心跳。