什么是 Bug?参与漏洞赏金计划的理由

2024-01-27分类:区块链技术 阅读(


Knight Capital Group于2023年8月1日开始运营,拥有1400多名员工,拥有17.3%的纽约证券交易所和16.9%的纳斯达克股票市场。在Knight Capital担任经纪人为那些渴望加入美国股票交易行业的人提供了绝佳机会。

今天出现了意料之外的困境。在纽约证券交易所开市时,上午9:00,第一位散户投资者开始交易。仅仅45分钟内,Knight Capital的软件就执行了超过400万次交易,导致4.6亿美元的损失,将公司推向破产的边缘。

最近的灾难事件似乎是由于与计算机代码有关的一系列不利事件触发的。此前,开发团队推出了对实时服务器的升级,它看似无害,但却隐藏了一个危险的漏洞。

昆虫的影响可能会从简单的烦人到极其有害。例如,JavaScript社区已经认识到语言中对浮点数的复杂处理是一种优势。

有时,软件问题可能具有广泛的影响,就像Log4j事件一样,它在数周内扰乱了计算机领域,影响了全球无数人。

最广泛使用的基于Java的日志记录工具之一——Log4j,最近被发现存在安全漏洞。如果被利用,这个漏洞将允许黑客在目标系统上远程执行代码,从而使他们能够获取机密数据或植入恶意软件。

问题有多严重?考虑到像苹果、亚马逊和Twitter这样的大公司都在使用Log4j,因此可以理解为什么仅在美国,阿卡迈技术公司每小时就登记了超过1000万次利用这个漏洞的尝试。

什么是 Bug?

计算机代码中导致不正确、意外或非预期结果的错误称为 bug。虽然编码不足可能会导致 bug 的出现,但并不总是这样。

遗憾的是,价值1.25亿美元的NASA气候轨道飞行器在火星上被摧毁。软件程序已确定推进器应该施加的力量量(以英镑为单位),但另一个数据读取器将其解释为公制单位。从这件事情中可以得出哪些教训呢?

每个代码段在个别检查时都运行正常。这些计算由科罗拉多洛克希德·马丁宇航工程师执行,但由于疏忽而错过了转换为公制单位。尽管如此,NASA对其计算采用了牛顿每平方米的惯用单位。

Knight Capital的发生是一个典型的例子,他们系统中未删除的过时代码导致了灾难的发生。当升级时加入了一个指标时,该软件错误地认为它在测试环境中,于是执行了大量的交易。

在对该事件进行调查后,发现Knight Capital没有正式的代码审查流程或质量保证团队监督其运营。这表明没有人负责检测缺陷。因此,没有足够的安全保障措施。

尽管质量保证(QA)、DevOps工程、软件测试和代码审查团队都是必不可少的资源,但仅靠它们无法完全避免缺陷的引入。在某些情况下,解决问题的唯一方法就是在生产环境中及时发现并进行修复。

外部视角

由于软件开发过程限制,例如满足消费者需求、遵守期限、与其他程序员协调和适应意外修改,问题很容易被忽视。

常常使用的“事后诸葛亮”这个词汇,对已经编写的代码进行评估比在压力下进行评估要简单得多。 每个程序员都曾反思过以前的编码决策,并希望他们处理得不同,但当没有时间限制时,在事后进行评估是很简单的。

另一方面,我们的客户在一个完全不同的环境中使用我们的产品。他们可以在自己喜欢的平台上无限制地访问它。考虑到这些情况,应该预料到消费者可能会遇到问题。

错误可能会造成各种问题,让用户感到好奇或恼火。但是,它们能否为开发人员、公众和我们自己带来好处?

漏洞赏金计划简介

大量的公司、网站和软件开发人员都提供“漏洞赏金计划”,向报告任何漏洞、特别是那些可能被利用于安全目的的漏洞的用户提供货币或公众激励。

Twitter和谷歌是科技行业最大的两个名字之一,它们都属于雇用Bug赏金计划的实体。美国政府以及其他许多国家都会补偿那些负责任地披露官方网站上存在的任何安全漏洞的个人。

一些网站创建了社区来编写有关漏洞赏金计划的信息,这得到了积极的回应。理解这一点非常重要。

很明显,软件开发可以从大量个人的集体智慧中获得极大的利益。尽管开发人员只能进行一定数量的测试,但与更广泛的社区合作,使用户和开发人员能够合作,识别并解决任何错误或安全漏洞。

通过为发现安全漏洞提供激励措施,我们可以与熟练的专业人士合作,提高我们产品的可靠性和安全性。这是一种开放源代码的策略,旨在进一步加强我们软件的安全性。

漏洞赏金计划已被证明对于新手程序员非常有益,它们可以通过编程项目展示他们的技能和对软件开发实践和安全协议的理解。

对于企业来说,创建漏洞赏金计划是一项简单的事情。许多网站都提供这些计划,所需的只是促进自己的计划,并建立一个与业务规模成比例的奖励。

总之,漏洞赏金计划不应被视为优质保障或其他安全实践如DevSecOps的替代品,而应视为一种补充方法。实现最高质量对于实现软件的全部潜力至关重要。

Tags: