Security.txt:让漏洞更容易被报告

790 阅读4分钟

我们都知道,所有的软件都有漏洞,安全是很难的,但不知为什么,当我们看到新的漏洞时,还是会感到惊讶。

漏洞

一个应用程序、系统、设备或服务的错误、缺陷、弱点或暴露,可能导致保密性、完整性或可用性的失败。

在2020年,有18395个漏洞被报告,这意味着每天有大约50个新漏洞被报告。这些数字只包括已经报告给MITRE的通用漏洞和暴露(CVE)数据库的内容,这意味着实际值可能要高得多。每年我们都会向世界上添加更多的软件,所以这些数字只会增加。我把这个数字列在这里并不是为了吓唬你;更确切地说,它们是生活中的一个事实,我们都需要意识到如何处理它们。

报告漏洞

漏洞的处理方式与典型的软件错误不一样。一个处理得当的漏洞会被私下报告给项目的维护者,然后在有关该漏洞的任何信息被公开之前被修复和发布。在GitHub Issues上报告一个安全问题似乎是个好主意,但事实并非如此。私下处理漏洞似乎有违直觉,尤其是对于一切都公开的开源项目,但这不仅是一种好的礼仪,更重要的是它减少了使用项目的所有人的潜在风险。

好吧,如果不是公开的问题跟踪器,那么你在哪里报告这个问题?

你在哪里报告一个漏洞

实际的 "你在哪里报告漏洞 "是事情变得复杂的地方;每个项目和公司都有不同的处理漏洞的过程。要想知道向谁报告一个问题往往是一件令人沮丧的事情;试着浏览一个网站,进行谷歌搜索,甚至可能在HackerOneBugcrowd等漏洞赏金网站上寻找。有一个更简单的方法!进入 security.txt这是一个RFC草案,目的是使安全策略的发现方法标准化。

定义一个security.txt ,很容易。在你的域名根部创建一个小的.well-known/security.txt 文件,包含你的安全团队的联系信息。在securitytxt.org上甚至有一个表格,可以在几秒钟内为你生成一个!

例如,Okta的https://www.okta.com/.well-known/security.txt是。

Contact: mailto:security@okta.com (1)
Expires: 2023-01-01T05:00:00.000Z (2)

# Optional Fields
Preferred-Languages: en (3)
Policy: https://www.okta.com/vulnerability-reporting-policy/ (4)
Hiring: https://www.okta.com/company/careers/ (5)
1如何联系安全团队。
2一个认为这个数据过时的日期。
3安全团队喜欢的语言列表。
4链接到有更多细节的报告政策页面。
5甚至链接回相关的招聘信息。

security.txt 的内容,是对联系对象和去哪里寻找更多信息的快速总结,并不能替代现有的安全政策页面。尽管如此,它仍然可以包含额外的信息,如公司的PGP密钥、确认书和规范的URL信息。

如果你熟悉OpenID Connect,上述URL的.well-known 部分可能对你来说很熟悉。"众所周知的URI "由RFC-8615定义,有一个官方的IANA注册表,包含各种条目,从Tor Relay信息到物联网协议,应有尽有。所有这些单独的 "知名 "端点的目标是使人们能够轻松发现关于特定服务的元数据。

奖励:更新你的错误跟踪模板

如果我们作为开发者有阅读文档的习惯,RTFM就不会成为一件事,或者我们只是很忙。

一般来说,你的用户正在努力完成一些事情,他们认为阅读手册是浪费时间,或者至少是分散注意力,使他们无法完成任务。

- Joel Spolsky
joelonsoftware.com

如果你的项目使用公共错误跟踪器(如GitHub Issues),那么关于处理安全问题的信息需要对报告者显而易见。一种方法是定义一个 SECURITY.md文件并创建ISSUE_TEMPLATE.md ;这样一来,当报告人提交问题时,他首先看到的就是这个文件。例如,Spring安全问题模板的开头是。

<!--
For Security Vulnerabilities, please use https://pivotal.io/security#reporting
-->
这一点的巧妙之处在于HTML注释;只有报告人在打开一个问题时看到注释。当Markdown被渲染时,它不会被显示出来!

了解更多关于应用程序安全的信息

大多数人都不知道漏洞需要特别的处理;在典型的大学计算机科学课程或编码训练营中并没有教授。关于如何报告安全问题的信息需要是显而易见和容易发现的。

如果你想了解更多关于应用程序安全的信息,请查看这些优秀的帖子。

如果你有问题,请在下面留下评论。如果你喜欢这篇文章,请在Twitter上关注@oktadev在LinkedIn上关注我们,或者订阅我们的YouTube频道