当前位置:首页 > 科技  > 软件

C++之父驳斥白宫警告:拜登政府无视了现代C++为安全所做的努力

来源: 责编: 时间:2024-04-02 17:21:59 293观看
导读撰稿丨诺亚出品 | 51CTO技术栈(微信号:blog51cto)此前,白宫曾发布报告,呼吁开发人员放弃C和C++等易受攻击的编程语言,使用内存安全的编程语言。近日,C++之父Bjarne Stroustrup针对这一呼吁给出了回应。“我发现,令人惊讶的是,

撰稿丨诺亚TrB28资讯网——每日最新资讯28at.com

出品 | 51CTO技术栈(微信号:blog51cto)TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

此前,白宫曾发布报告,呼吁开发人员放弃C和C++等易受攻击的编程语言,使用内存安全的编程语言。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

近日,C++之父Bjarne Stroustrup针对这一呼吁给出了回应。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

“我发现,令人惊讶的是,撰写这些政府文件的人似乎对现代C++的优势视而不见,也忽视了其为提供强有力的安全保障所做的努力。另一方面,他们似乎也意识到了编程语言只是工具链的一部分,因此改进工具和开发流程至关重要。”TrB28资讯网——每日最新资讯28at.com

1、由来已久的矛盾:内存安全隐患

TrB28资讯网——每日最新资讯28at.com

今年2月26日,白宫国家网络总监办公室(ONCD)发布了一份报告,敦促开发人员通过使用没有内存安全漏洞的编程语言来降低网络攻击的风险。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

图片图片TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

报告直接将C++和C作为具有内存安全漏洞的两种反面示例。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

“内存安全漏洞是一类影响内存如何以非预期方式访问、写入、分配或释放的漏洞。专家们已经确定了一些编程语言,它们既缺乏与内存安全相关的特性,又在关键系统中高度扩散,例如C和C++”。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

图片图片TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

这份长达19页的报告还指出:“行业分析表明,在某些情况下,尽管有严格的代码审查以及其他预防和检测控制措施,但在内存不安全的语言中,高达70%的安全漏洞都是由于内存安全问题造成的。”TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

如果说C和C++是具有内存安全漏洞的编程语言的“反面案例”,那么Rust则是内存安全的编程语言的典例。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

白宫在一份新闻稿中表示,科技公司“可以通过采用内存安全编程语言来防止整个类别的漏洞进入数字生态系统”。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

所谓“内存安全编程语言”,指的是免受与内存访问相关的软件错误和漏洞的影响,包括缓冲区溢出、越界读取和内存泄漏。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

值得一提的是,美国国家安全局(NSA)在2022年11月的一份网络安全信息表中将C#、Go、Java、Ruby 、Swift以及 Rust视为内存安全的编程语言。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

此外,2023年12月,美国网络安全和基础设施安全局 (CISA)联邦调查局 (FBI) 以及来自澳大利亚、加拿大、新西兰和英国的国际网络安全机构合作,发布了联合指南《内存安全路线图案例》。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

五眼联盟机构提到,尽管投入大量资源减少内存安全漏洞的普遍性,但该类型漏洞仍然存在。不过,使用内存安全编程语言应当能够消除这类安全缺陷并降低其影响,从而使开发人员和客户能够将资源投入到其它领域。TrB28资讯网——每日最新资讯28at.com

二、自1979年开始:C++的努力

TrB28资讯网——每日最新资讯28at.com

关于内存安全漏洞的讨论由来已久,但作为C++的创造者,Stroustrup并不认同诸多政府文件对C++的指责。他强调,安全性提升一直是C++开发工作的目标。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

Stroustrup指出:“从一开始就直至其不断演进的过程中,提高安全性始终是C++的目标。只需将K&R C语言与最早的C++进行比较,再将早期C++与现代C++对比就能看出这一变化。我在CppCon 2023主题演讲中概述了这一演变过程。许多高质量的C++代码都是基于RAII(资源获取即初始化)、容器和资源管理指针等技术编写的,而不是传统的、容易出错的C风格指针用法。”  TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

图源:CppCon 2023主题演讲视频截图图源:CppCon 2023主题演讲视频截图TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

Stroustrup提到了多项旨在提升C++安全性的努力。“关于安全问题有两个相关方面。数十亿行的C++代码中,很少完全遵循现代指南,而且人们对于哪些安全方面重要的认识各不相同。我和C++标准委员会正在设法解决这个问题。”TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

他指出的另外一点在于,“‘Profiles’是一个框架,用于指定一段代码所需的确保内容,并允许实现对其进行验证。委员会网站上有关于此的描述文档——查找WG21的相关资料,未来还将有更多内容发布。然而,我们中的一些人并不满足于等待委员会必然缓慢的进展。”TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

Stroustrup表示,“Profiles”是一个能够让我们逐步提升保证的框架,例如相对很快地消除大多数范围错误,并通过局部静态分析和最小运行时检查将保证逐渐引入大型代码库中。我对于C++的长期目标一直是,也仍然是在需要的时候和地方提供类型和资源安全性。当前对于内存安全的大力推动——这是我所追求的保证之一部分——或许会对我的努力有所帮助,这种努力在C++标准委员会中得到了许多人的共鸣。TrB28资讯网——每日最新资讯28at.com

三、所谓“内存安全”的语言,也从来不意味着高枕无忧

TrB28资讯网——每日最新资讯28at.com

Stroustrup也不是第一次为C++辩护。2022年,美国国家安全局在一份公告中,建议组织改用内存安全的语言,而非C++和C。彼时,Stroustrup就曾针对性地进行发声。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

“如果我认为这些'安全'语言中的任何一种在我关心的用途范围内优于C++,我不会认为C/C++的淡出是一件坏事,但事实并非如此。”TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

就像他在CppCon 2023会上提到的,“人们一般提到的安全性只涉及内存安全,但这还远远不够”。在他看来:   TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

第一,“安全不仅仅是类型安全”。而很多人描述的“安全”仅限于内存安全,忽略了一门语言“可能(和将会)被用来违反某种形式的安全和保障的其他十几种方式。”TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

第二,要替换C++同样是一大问题。“假设我们将用大约七种不同的语言来取代 C++,到替换完成时(40 年后),我们可能会有 20 个不一样的语言选项,而且它们必须能够互操作。这会是一大难题。”TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

第三,语言的演化从来都是渐进的。“只在一头构建一个新系统,而不存在任何旧系统问题的想法是一种幻想。”遗憾的是,很多人都沉浸在这种幻想中。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

关于美国国家安全局引用的所谓安全语言,Stroustrup表示,所有语言都容易受到未经静态验证的代码的攻击。此外,每个系统都必须使用硬件,而有效的硬件访问很少是安全的。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

Stroustrup概述了他安全使用C++的策略:TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

  • 静态分析以验证没有执行不安全的代码。
  • 编码规则简化代码,使工业规模的静态分析可行。
  • 库使这种简化的代码相当容易编写,并确保在需要时进行运行时检查。

TrB28资讯网——每日最新资讯28at.com

美国国家安全局承认,即使在“内存安全”语言中,内存管理也不是完全安全的,静态和动态应用程序安全测试(SAST和DAST)等机制可用于提高所谓的非内存安全语言的内存安全性。但NSA表示,SAST和DAST都不能使非内存安全代码完全安全。TrB28资讯网——每日最新资讯28at.com

TrB28资讯网——每日最新资讯28at.com

参考链接:

https://www.infoworld.com/article/3714401/c-plus-plus-creator-rebuts-white-house-warning.htmlTrB28资讯网——每日最新资讯28at.com

https://www.youtube.com/watch?v=I8UvQKvOSSwTrB28资讯网——每日最新资讯28at.com

https://www.infoworld.com/article/3686517/c-plus-plus-creator-bjarne-stroustrup-defends-its-safety.htmlTrB28资讯网——每日最新资讯28at.com

https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical-Report.pdfTrB28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-80869-0.htmlC++之父驳斥白宫警告:拜登政府无视了现代C++为安全所做的努力

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 你最擅长使用哪个异步编程模式?

下一篇: Python Accumulate函数详解:从基础到高级应用

标签:
  • 热门焦点
  • vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • Java NIO内存映射文件:提高文件读写效率的优秀实践!

    Java的NIO库提供了内存映射文件的支持,它可以将文件映射到内存中,从而可以更快地读取和写入文件数据。本文将对Java内存映射文件进行详细的介绍和演示。内存映射文件概述内存
  • 企业采用CRM系统的11个好处

    客户关系管理(CRM)软件可以为企业提供很多的好处,从客户保留到提高生产力。  CRM软件用于企业收集客户互动,以改善客户体验和满意度。  CRM软件市场规模如今超过580
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 三星Galaxy Z Fold5官方渲染图曝光:13.4mm折叠厚度依旧感人

    据官方此前宣布,三星将于7月26日在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
  • DRAM存储器10月价格下跌,NAND闪存本月价格与上月持平

    10月30日,据韩国媒体消息,自今年年初以来一直在上涨的 DRAM 存储器的交易价格仅在本月就下跌了近 10%,此次是全年首次降价,而NAND 闪存本月价格与上月持平。市
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top