针对数十年的内存相关漏洞,ONCD发布新报告
内容提要
拜登政府要求科技行业使用能够防止内存错误的编程语言,白宫报告得到科技公司和学术界支持,建议使用Rust、Python和Java等编程语言替代C和C++,白宫呼吁建立精确的软件安全评估指标。
延伸解读
内存漏洞为何成为长期难题
文章指出,自20世纪80年代以来,内存错误一直存在,攻击者利用软件对内存的管理方式入侵系统、破坏数据或运行恶意代码。1988年的莫里斯蠕虫和2023年的BLASTPASS漏洞攻击链都与此相关。这类漏洞之所以难以根除,是因为C和C++等语言缺乏内存安全特性,而它们在关键系统中广泛使用,导致问题持续数十年。
责任转移:从个人到大型科技公司
白宫报告强调,网络安全责任应从个人和小型企业转向大型科技公司,因为这些组织更有能力应对不断变化的网络威胁。报告得到SAP、惠普企业和霍尼韦尔等公司的支持,意味着行业巨头将承担更多责任。政府还希望高管们关注内存安全问题,将其列入董事会议程,而不仅仅是工程师的任务。
迁移到内存安全语言的现实挑战
尽管报告建议用Rust、Python和Java等替代C和C++,但迁移可能需要长达数十年的努力,具体取决于公司规模。拥有大量产品线的大型公司面临繁重的工作量。政府官员承认转变困难,因为过去35年攻击者一直在利用这类错误,但现在技术条件已经具备,转型时机恰当。
政策跟进与行业倡议
该报告是对拜登总统2021年网络安全行政命令和2023年国家网络安全战略的跟进。其他机构也在推动类似举措,如CISA的“安全设计”倡议、商务部关于软件物料清单(SBOM)最低要素的报告,以及NSA和CISA去年12月发布的内存安全编程指南。这些行动共同倡导在产品开发早期考虑安全性。
Q&A
白宫为什么要求科技行业改用内存安全编程语言?
因为自80年代以来,内存错误一直存在,攻击者可以滥用软件对计算机内存的管理方式,入侵系统、破坏数据或运行恶意代码。为了减少网络空间的攻击面,必须大规模消除整个类别的漏洞。
白宫报告建议用哪些编程语言替代C和C++?
报告建议采用Rust、Python和Java等编程语言作为替代,因为C和C++在内存安全性方面缺乏相关特性。
迁移到内存安全代码需要多长时间?
迁移到内存安全代码可能需要长达数十年的努力,具体取决于公司的规模,并且需要所有人的关注和支持。
这份报告得到了哪些支持?
报告得到了包括SAP、惠普企业和霍尼韦尔在内的科技公司和学术界领导者的支持。
网络安全责任应该如何转移?
报告强调网络安全责任应从个人和小型企业转向科技公司这样的大型组织,因为这些大公司更有能力应对不断变化的网络威胁。
科技行业在软件安全性评估方面需要做什么?
报告提到,科技行业应该建议制定更精确的软件安全性评估指标,但这需要在软件工程和网络安全研究领域进行新尝试。