2 月 29 日消息,美国政府近日发布了一份网络安全报告,呼吁开发人员停止使用容易出现内存安全漏洞的编程语言,例如 C 和 C++,转而使用内存安全的编程语言进行开发。这份报告由美国网络空间总监办公室 (ONCD) 发布,旨在落实美国总统拜登的网络安全战略,目标是“保护网络空间的基石”。
内存安全指的是程序在访问内存时能够避免出现错误和漏洞,例如缓冲区溢出和悬空指针。Java 由于其 runtime 错误检测功能,被认为是一种内存安全的语言。然而,C 和 C++ 允许直接操作内存地址,并且缺乏边界检查,容易出现内存安全问题。
报告援引微软和谷歌的研究数据,指出超过 70% 的安全漏洞都与内存安全问题有关。报告还引用了美国网络安全和基础设施安全局 (CISA) 的开源软件安全路线图,建议开发人员从一开始就使用内存安全的编程语言,进行“安全设计”式的开发。
这份报告长达 19 页,旨在强调网络安全不仅仅是个人的责任,更是大型组织、科技公司和政府的共同责任。报告没有推荐特定的编程语言替代 C 和 C++,而是强调有多种内存安全的编程语言可供选择。报告还呼吁企业和工程师采用最佳软件开发实践,并使用内存安全的硬件,以减少恶意攻击的可能性。
美国国家安全局 (NSA) 在去年 11 月发布的网络安全信息文件中,列出了他们认为安全的编程语言,其中包括:
Rust
Go
C#
Java
Swift
JavaScript
Ruby
但根据 TIOBE 指数 (衡量编程语言流行程度的指标),C# 位居排行榜第 5 位,Java 第 4 位,JavaScript 第 6 位,Go 第 8 位,Swift 第 16 位,Rust 第 18 位,Ruby 第 20 位。可见,NSA 推荐的语言中只有 4 种属于开发者最常用的语言。
该报告还强调了软件安全评估的重要性,并认为更好地评估标准能够帮助科技公司更好地规划、预测和缓解漏洞风险。报告还以阿波罗 13 号登月任务为例,强调了在太空探索等关键领域使用内存安全代码的重要性。
这份报告是美国政府一系列网络安全举措的一部分。2023 年 3 月,拜登总统签署了网络安全行政命令,旨在加强软件和硬件安全,并与科技行业建立合作关系。随着数字化的不断推进,更安全的编程语言和开发方式变得至关重要,这份报告正是呼吁业界重视这一问题的最新举措。
关键字:C++ 编程
引用地址:
美国政府建议开发者停止使用 C / C++,转用内存安全编程语言
推荐阅读最新更新时间:2024-11-13 08:33
豪威科技推出OV48C 4800万像素图像传感器
豪威科技日前推出OV48C图像传感器,具有4800万像素,1.2微米的大像素尺寸,可为旗舰智能手机相机提供高分辨率和出色的低光性能。 OV48C提供片上双转换增益HDR,可消除运动伪像并产生出色的信噪比。该传感器还提供片上组合的交错式HDR选项,为智能手机设计人员提供了最大的灵活性,可以为给定场景选择最佳的HDR方法。 这款1 / 1.3英寸光学格式传感器基于豪威的PureCel Plus堆叠芯片技术构建,可为旗舰智能手机提供领先的静态图像捕获和视频性能。OV48C还集成了一个片上4单元彩色滤光片阵列和硬件remosaic,可实时提供高质量的48MP Bayer输出或8K视频。在弱光条件下,该传感器可使用近像素合并功能以4倍的灵敏
[传感器]
80C51的复位技术大盘点
标准80C51片内现有的复位逻辑比较简单,只有通过一条复位引脚RST进行外部扩展。技术手册中给出了上电复位(POR,power on reset)和人工复位(MRST,manual reset)电路的接线方法;借助于一只专用外围芯片,如MAX813L或DS1323等,来扩充欠压复位(LVR,low voltage reset)和看门狗复位(WDR,watch dog timer reset)也有文章介绍。 本文将介绍三种非常规扩展复位方式:软件复位(SWR,software reset)、软硬件复位(SHR,software and hardware reset)和非法地址复位(IAR,illegal address
[单片机]
s3c6410外部中断号与引脚问题
在编写Linux驱动程序时。我想用某一个引脚做外部中断。可是在调用 int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct pt_regs *regs ), unsigned long irqflags, const char * devname, void *dev_id); 这个函数的时候遇到了一个问题,irq是个硬件终端号,可是究竟这个引脚相应的终端号是多少呢? 我在网上找资料说的都稀里糊涂的,不是我想要的答案。 于是我便在内核代码里找,以下贴出Linux内核代码的一段archarmmach-s3c6
[单片机]
单片机中LED发光二极管的编程探讨
单片机由于体积小、价格低廉、功能强、可靠性高、面向控制和价格低廉等优点,不仅成为工业测控领域使用的智能化控制工具,而且已渗入到人们工作和生活的各个角落。在工科学校中基本都开设有《单片机原理及应用》这门课,而对所有学习单片机的人来说最入门的就是对发光二级管LED的控制。 1 发光二级管的工作原理 发光二极管Light- Emitting Diode 简称为LED,由镓(Ga)与砷(As)、磷(P)的化合物制成的二极管。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N 区的电子和P区的空穴复合,产生
[电源管理]
自学单片机编程之中断与时钟程序
对于我以前学习过的东西以周记的形式进行总结整理! 不喜勿喷!有好的建议或资料请@我! 在懂了数码管的工作原理和控制原理之后,我们现在可以正式编写时钟程序了,所谓时钟就是几点几分几秒用八位数码管显示出来,只是它会跳动显示的数值随时间变化而变化。一开始我使用的延迟写的时钟,每过1s数码管的秒加一,通过写的程序运算之后分加一,再后时加一。 我现在用的是中断写的时钟,不用延迟 ,将主程序写好后,写出中断程序,等待中断响应,将时钟用到的运算写在中断里,每中断一次,时钟运算一次。 中断概念: 对于单片机来说,中断是指CPU在处理某一事件A,发生了另一事件B,请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应),转去
[单片机]
毫米波雷达:自动驾驶三件套的真“C位”?
假如现在你要乘坐一辆已经没有安全员的 无人驾驶汽车 上路,而且还是高速行驶,请问你最关心什么问题?担心车自己迷路?开的太慢?路上太寂寞? 应该都不是,你最关心的大概就是这辆车是不是安全了。相较于依靠驾驶员视觉来保证行驶安全的传统汽车,自动驾驶汽车就要专门依赖大量的传感器来行使汽车的“视觉”功能,而且越高级别的自动驾驶就会采用更多冗余的传感器系统。 超过人类驾驶员的安全可靠性,才是自动驾驶得以成立的根本前提。 目前,为保证安全性, 自动驾驶传感器系统 主要由摄像头、 激光雷达 、 毫米波雷达 这三件套组成。而这三件套几乎在现有落地的无人驾驶的传感器解决方案都可以找到。 然而在现在还处在辅助驾驶阶段的车辆上,毫米
[汽车电子]
声明转文字: 编写程序将C语言的声明转换为文字描述
一. 程序功能 编写程序将C语言的声明转换为文字描述 比如, 输入char **argv, 会打印输出: argv: pointer to pointer to char 二. 程序源码 //main.c #include stdio.h #include string.h #include ctype.h #define MAXTOKEN 100 enum {NAME, PARENS, BRACKETS}; int dcl(void); int dirdcl(void); int gettoken(void); int tokentype; char token ; char
[单片机]
基于嵌入式PC104工控机和C8051F047单片机实现机器人系统的设计
1.引言 高压输电线及杆塔附件长期暴露在野外,因受到持续的机械张力、电气闪络、材料老化的影响而产生断股、磨损、腐蚀等损伤,如不及时修复更换,原本微小的破损和缺陷就可能扩大,最终导致严重事故。因此,电力公司需要定期对线路设备进行巡检,及时发现早期损伤和缺陷并加以评估,根据评估结果安排必要的维护和修复,从而确保供电的安全可靠性。传统的人工巡检方法不仅工作量大而且条件艰苦,特别是对于山区和大江大河等的输电线路巡检存在很大困难,甚至一些巡检项目靠常规方法都难以完成。因此,采用机器人自动巡线成为保障高压输电线安全运行的一种必要手段。 高压输电线路巡线机器人属于特种机器人的研究范畴,主要完成高压供电线缆的无损探伤、悬垂绝缘子绝缘特性检测、
[单片机]