美国政府敦促开发者:停止使用 C、C++

“C、C++不安全,新应用开发时就别用了,旧应用应该采取迁移行动”,近日,美国白宫国家网络主任办公室 (ONCD)在一份主题为《回到基础构件:通往安全软件之路》的19页PDF报告中强烈呼吁道。其直言,C和C++ 这几种编程语言既缺乏与内存安全相关的特性,又在关键系统中大量使用,可能会带来极大的安全风险,希望开发者抓紧使用“内存安全编程语言”。 (CISA)等之后,又一政府机构发起呼吁,而且这一次直接与“保护国家安全”挂钩。根据报告指出,该建议是美国总统拜登网络安全战略的一部分,是“确保网络空间基石安全”的举措。标签:#C#编程语言频道:@GodlyNews1投稿:@GodlyNewsBot

相关推荐

封面图片

美国政府呼吁开发者停止使用C / C++

美国政府呼吁开发者停止使用C/C++由于C和C++允许直接操作内存地址,且缺乏边界检查,容易出现内存安全问题。微软和谷歌最近的研究发现,大约70%的安全漏洞是由内存安全问题引起的。白宫国家网络主任办公室(ONCD)在2024年2月26日发布的一份报告中呼吁开发人员通过使用不存在内存安全漏洞的编程语言来降低网络攻击的风险。2022年11月的NSA将C#、Go、Java、Ruby和Swift以及Rust列为其认为内存安全的编程语言。根据的数据,截至2023年,大约22%的软件程序员使用C++,19%使用C。线索:@ZaiHuabot投稿:@TNSubmbot频道:@TestFlightCN

封面图片

美国政府建议使用内存安全编程语言 C/C++都被排除在外

美国政府建议使用内存安全编程语言C/C++都被排除在外为什么大型科技公司都关注Rust呢?因为相对来说,Rust安全性更高,微软认为通过Rust重新编写某些组件有助于提高内存安全性。日前美国政府下属的ONCD办公室发布了一份报告就详细介绍了建议开发者们使用各种内存安全编程语言,尽管ONCD没有明确罗列哪些语言是内存安全编程语言,但强调了C和C++缺乏与内存安全相关的特征,因此实际上就是不建议开发者使用C和C++。需要强调的是,这里只是从内存安全角度出发来建议,并不是评判一种编程语言的好坏,ONCD称如果软件一开始就选择使用内存安全编程语言的话,那么可以提高安全性。报告也没有建议使用哪些内存安全语言来替代C和C++,毕竟只是建议,实际上开发者和企业如何选择编程语言还是开发者们自己的事情,毕竟也要考虑到软件本身。...PC版:https://www.cnbeta.com.tw/articles/soft/1421763.htm手机版:https://m.cnbeta.com.tw/view/1421763.htm

封面图片

NSA建议开发者考虑从C和C++转换为内存安全的编程语言

NSA建议开发者考虑从C和C++转换为内存安全的编程语言"NSA建议企业考虑在可能的情况下,从很少或没有提供固有内存保护的编程语言(如C/C++)转向内存安全语言。内存安全语言的一些例子是C#、Go、Java、Ruby和Swift,"NSA说。该机构引用了Google和微软最近的研究,他们在Chrome和Windows中分别有70%的安全问题与内存有关,其中许多是使用C和C++的结果,这两种语言更容易出现基于内存的漏洞。"NSA在"软件内存安全"网络安全信息表中指出:"恶意的网络行为者可以利用这些漏洞进行远程代码执行或其他不利影响,这往往可以损害一个设备,成为大规模网络入侵的第一步。常用的语言,如C和C++,在内存管理方面提供了很大的自由度和灵活性,同时严重依赖程序员对内存引用进行必要的检查。"因此,该机构建议尽可能使用内存安全语言,无论是应用开发还是系统编程。虽然大多数信息安全专家都熟悉关于内存安全语言的辩论,但也许不是所有的开发人员都熟悉。不过,也许他们应该熟悉,因为这是一个几十年前就存在的问题,正如Java创建者JamesGosling最近在讨论如何以及为什么创建Java时指出的。如果有的话,NSA的文件为开发者提供了一个清晰的、通俗的解释,说明了向内存安全语言转变背后的技术原因。在内存安全方面讨论最多的语言可能是Rust,它是作为C和C++的"替代品"的主要候选。Linux内核最近引入了Rust作为C语言的第二种语言,继Android开源项目之后。这些项目不会取代旧的C/C++代码,但对于新的代码会优先考虑Rust。另外,微软Azure首席技术官MarkRussinovich最近呼吁所有开发人员在所有新项目中使用Rust而不是C和C++。"通过利用这些类型的内存问题,恶意行为者--他们不受软件使用的正常预期约束--可能会发现他们可以在程序中输入不寻常的输入,导致内存以意想不到的方式被访问、写入、分配或删除,"NSA解释说。但是--正如专家们在关于Rust和C/C++的辩论中所指出的那样--NSA警告说,仅仅使用一种内存安全语言并不能默认排除将内存错误引入软件。此外,语言通常允许使用不是用内存安全语言编写的库。"即使使用内存安全语言,内存管理也不完全是内存安全的。大多数内存安全语言承认,软件有时需要执行不安全的内存管理功能来完成某些任务。因此,有一些类或函数被认为是非内存安全的,并允许程序员执行可能不安全的内存管理任务,"NSA说。"一些语言要求任何内存不安全的东西都要明确注释为内存不安全,以使程序员和程序的任何审查人员意识到它是不安全的。内存安全语言也可以使用以非内存安全语言编写的库,因此可以包含不安全的内存功能。尽管这些包含内存不安全机制的方式颠覆了固有的内存安全,但它们有助于定位可能存在内存问题的地方,允许对这些代码部分进行额外的审查。"NSA指出,向一些内存安全语言的转化可能要付出性能上的代价,这需要开发人员学习一种新的语言。它还指出,开发人员可以采取一些措施来加固非内存安全语言。例如,Google的Chrome团队正在探索多种方法来加固C++,但这些方法也会带来性能开销。在可预见的未来,C++将继续留在Chrome的代码库中。NSA建议进行静态和动态应用程序安全测试,以发现内存问题。它还建议探索内存加固方法,如控制流保护(CFG),它将对代码的执行位置进行限制。同样,建议使用地址空间布局随机化(ASLR)和数据执行预防(DEP)。...PC版:https://www.cnbeta.com.tw/articles/soft/1332577.htm手机版:https://m.cnbeta.com.tw/view/1332577.htm

封面图片

C++ 核心指南 | C++ Core Guidelines | #C++ #电子书 #指南

C++核心指南#C++#电子书#指南这是一份持续改进的动态文件,可帮你有效地使用现代C++。“现代C++”是指C++11及更新版本。这些指南主要关注相对较高层次的问题,如接口、资源管理、内存管理和并发性。这些规则影响应用架构和库设计。遵循这些规则将导致代码在静态类型安全性上有保障,没有资源泄漏,并且能捕获比现今代码中更多的编程逻辑错误。而且它将运行得很快——你完全有能力做到正确。本书对低层次的问题,如命名约定和缩进风格,不太关心。

封面图片

linux C/C++ —码农有道教程

linuxC/C++—码农有道教程课程介绍《LinuxC/C++一码农有道教程》是一门专为初学者设计的课程,通过系统性地讲解Linux操作系统和C/C++编程语言的基础知识和应用技巧,帮助学员快速掌握开发Linux应用程序的能力。课程包括理论与实践相结合的教学方式,提供大量实例和练习,让学员能够真正掌握Linux环境下c/C++编程的核心概念和技能。学习地址百度:天翼:阿里:夸克:

封面图片

C++ Primer Plus(第6版)中文版 (Stephen Prata)

名称:C++PrimerPlus(第6版)中文版(StephenPrata)描述:C++是在C语言基础上开发的一种集面向对象编程、通用编程和传统的过程化编程于一体的编程语言,是C语言的超集。本书是根据2003年的ISO/ANSIC++标准编写的。通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术。全书分为18章和10个附录,分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元、异常处理技术、string类和标准模板库、输入/输出等内容。本书针对C++初学者,从C语言基础知识开始介绍,然后在此基础上详细阐述C++新增的特性,因此不要求读者有较多C语言方面的背景知识。本书可以作为高等院校C++课程的教材,也可以供初学者自学C++时使用。链接:https://www.aliyundrive.com/s/2yMNjJ2nE9z大小:348.59M标签:#计算机#编程#C#课程#教材来自:雷锋版权:频道:@shareAliyun群组:@aliyundriveShare投稿:@aliyun_share_bot

🔍 发送关键词来寻找群组、频道或视频。

启动SOSO机器人