白宫敦促开发者弃用C和C++,转而使用“内存安全”的编程语言。

news2024/11/20 20:20:16

美国白宫国家网络总监办公室(ONCD)在一份新报告中呼吁开发者停止使用C或C++等编程语言,转而使用“内存安全编程语言”,这是美国总统拜登网络安全战略的一部分,旨在保护网络空间的基础构建块。内存安全是指防止因内存访问问题导致的漏洞和缺陷,例如缓冲区溢出和悬挂指针。像Java这样具有运行时错误检测检查的语言被视为内存安全语言,而C和C++则允许任意的指针算术和直接内存地址访问,缺乏边界检查。

报告显示,微软安全工程师在2019年指出,约70%的安全漏洞是由内存安全问题引起的,谷歌在2020年针对Chromium浏览器中发现的bug也有相同的统计数据。

报告并未明确推荐替代C和C++的具体编程语言,只是强调应该选择并使用内存安全的编程语言,这是美国网络安全和基础设施安全局(CISA)开源软件安全路线图推荐的一种安全设计方式。这份19页的报告旨在确保网络安全责任不再仅仅由个人和小型企业承担,而应由大型组织、科技公司乃至政府共同承担责任。

报告详细说明了被认为是“不安全”的编程语言,即C和C++。虽然没有具体指定替代语言,但报告指出存在许多可替代且应该被使用的内存安全编程语言。ONCD建议公司和工程师采用最佳软件开发实践,并采用内存安全硬件,以此减少恶意攻击者攻击的途径。

2022年11月,美国国家安全局(NSA)发布了一份网络安全信息表,列出了其认为的内存安全编程语言,包括Rust、Go、C#、Java、Swift、JavaScript和Ruby等。根据TIOBE指数(反映编程语言流行度的指标),在NSA推荐的选项中,C#位于第五位,Java位于第四位,JavaScript位于第六位,Go位于第八位。相比之下,Swift位于第十六位,Rust位于第十八位,Ruby勉强排在第二十位。

报告还呼吁改进软件安全的衡量标准,认为更好的度量标准可以帮助技术提供商提前规划、预见并减轻潜在的安全隐患。报告引用阿波罗13号任务作为实例,强调内存安全代码的重要性,以免未来出现类似问题影响航天任务的成功实施。

2023年3月,美国总统拜登签署了一项网络安全行政命令,启动了一系列流程以保障软件和硬件的安全,并在科技行业中建立合作关系。随着我们的世界越来越依赖数字化,对更高质量编码的需求变得愈发重要。报告特别提到了2021年12月的Log4j漏洞事件,当时一个名为Log4Shell的零日漏洞被用来攻击开源Java日志库Log4j。这份报告正是美国政府采取的一系列行动中的最新举措,凸显了提升代码安全性和采用内存安全编程语言的紧迫性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1478243.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6.WEB渗透测试-前置基础知识-AI应用

内容参考于: 易锦网校会员专享课 上一个内容:5.WEB渗透测试-前置基础知识-常用的dos命令-CSDN博客 1.AI在生活中扮演的角色越来越重要,AI现在可以用来帮我们办许多事情 目前比较好用的AI模型例如Chatgpt,Claude,必应…

推荐一款ssh工具 xshell替代品 electerm

下载地址 electerm: https://electerm.github.io/electerm/ windows版本 产品优势 复制粘贴,可以直接使用ctrlc/v 非常的方便 而且不想xshell 需要账号登陆,有更新弹窗,自身集成了sftp 界面设计更新,比MobaXterm的…

TCP的三次握手和四次挥手 | 查看网络状态

三次握手和四次挥手是在计算机网络中用于建立和终止TCP连接的协议。这两个过程是TCP协议的重要组成部分,确保数据的可靠传输。 三次握手指的是在客户端和服务器之间建立连接时的步骤。具体流程如下: 客户端向服务器发送一个连接请求报文段(…

0201sherlock(福尔摩斯)-通过名称寻找媒体账号(地址)-github-开源项目学习

文章目录 一 项目简介二 项目安装和演示1 安装2 演示 三 源码分析1 项目结构2 主程序源代码分析 四 添加自定义网址结语 一 项目简介 二 项目安装和演示 1 安装 # clone the repo $ git clone https://github.com/sherlock-project/sherlock.git# change the working direct…

推荐几款优秀免费开源的导航网站

🦩van-nav 项目地址:van-nav项目介绍:一个轻量导航站,汇总你的所有服务。项目亮点:全平台支持,单文件部署,有配套浏览器插件。效果预览 🦩发现导航 项目地址:nav项目…

【开源项目】自动字幕生成和字幕翻译

文章目录 1. 安装ffmpeg2. 克隆项目3. 配置项目运行环境4. 填写配置文件5. 运行项目(仅使用CPU) 项目地址:Github - qinL-cdy/auto_ai_subtitle 项目原理:使用ffmpeg提取视频的音频,使用whisper将音频转写为字幕&#…

消息中间件之RocketMQ源码分析(二十三)

Broker的关机恢复机制 概述 Broker关机恢复是指恢复CommitLog、Consume Queue、Index File等数据文件。Broker关机分为正常调用命令关机和异常被迫进程终止关机两种情况。恢复过程的设计目标是使正常停止的进程实现零数据丢失,异常停止的进程实现最少量的数据丢失…

Python:练习:输出int值a占b的百分之几。例如:输入1和4,输出:25%。

案例: 输出int值a占b的百分之几。例如:输入1和4,输出:25%。 思考: 所有的一步步思考,最后综合起来。 首先,确定 输出,那么就用input,而且是int值,所以肯定…

javaee教程郑阿奇,一线互联网架构师筑基必备技能之Java篇

一、什么情况下会发生栈内存溢出? 1、栈是线程私有的,栈的生命周期和线程一样,每个方法在执行的时候就会创建一个栈帧,它包含局部变量表、操作数栈、动态链接、方法出口等信息,局部变量表又包括基本数据类型和对象的引…

【Kubernetes】安装K3S

目录 前言一、原理单体架构高可用架构 二、初始化1.配置yum源2.关掉防火墙3.关掉selinux4. 修改内核参数5.关掉swap交换分区 三、安装master节点1. 安装container2.启动master服务 四、安装node节点五、卸载六、总结 前言 各位小伙伴们,大家好,小涛又来…

【MATLAB源码-第149期】基于MATLAB的2ASK,2FSK,2PSK,2DPSK等相干解调仿真,输出各节点波形。

操作环境: MATLAB 2022a 1、算法描述 2ASK(二进制幅移键控)、2FSK(二进制频移键控)、2PSK(二进制相移键控)和2DPSK(二进制差分相移键控)是数字调制技术中的基本调制方…

1.2 debug的六种指令的使用,四个通用寄存器

汇编语言 首先进入环境 mount c d:masm //把c挂载在d盘中的masm当中 c: //进入c,进入到编译环境 dir //查看文件,可有可无Debug是DOS、Windows都提供的实模式(8086 方式)程序的调试工具。使用它可以查看CPU各种寄存器中的内容…

同芯.共赢 | 暴雨服务器亮相AMD EPYC合作伙伴峰会

2月29日,AMD EPYC合作伙伴峰会活动在北京成功举行,暴雨作为AMD重要生态合作伙伴应邀参加。作为AMD开年首场活动,此次活动意义非凡,AMD在现场向合作伙伴分享了AMD数据中心全新产品路线、解决方案以及生态建设领域的最新进展。 AMD是…

centos服务配置springboot服务开机启动

在做后端服务运维时,经常遇到服务器重启时,需要移动一堆后端服务。服务器故障自动重启时,通常无人通知。把springboot服务的jar包配置开机启动太有必要了,虽然不是很复杂,这里记录一下太有必要了。 创建jar包启动和停…

linux下gcc编译时默认是32位还是64位,怎么指定为32or64?

本来是想研究一下long的字节大小sizeof(long)&#xff0c;于是写了代码&#xff1a; #include <stdio.h> int main() {long a 10;printf("%d\n", sizeof(a));return 0; } 我当时使用的是win10系统&#xff0c;使用的是vs 2022&#xff0c;然后对以上代码进行…

嵌入式 Linux 下的 LVGL 移植

目录 准备创建工程修改配置修改 lv_drv_conf.h修改 lv_conf.h修改 main.c修改 Makefile 编译运行更多内容 LVGL&#xff08;Light and Versatile Graphics Library&#xff0c;轻量级通用图形库&#xff09;是一个轻量化的、开源的、在嵌入式系统中广泛使用的图形库&#xff0c…

【刷题】 Leetcode 1022.从根到叶的二进制数之和

刷题 1022.从根到叶的二进制数之和题目描述&#xff1a;思路一&#xff08;dfs深搜万能版&#xff09;思路二 &#xff08;栈迭代巧解版&#xff09;总结 Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&#xff…

Qt6.8 GRPC功能使用(2)标准 Qt实现客户端

简介 基于之前的文章所说&#xff0c; Qt6.7之后才开始支持客户端、服务端、及双向流&#xff0c;恰好电脑需要重装&#xff0c;看到Qt6.8版本就直接安装了&#xff0c;内容也是使用Qt6.8的版本进行编译的 客户端实现步骤 1. 安装Qt6.8, 包含GRPC功能模块 Qt 6.8安装目录下包…

浅谈XSS简单漏洞xss-labs-master(初级)

一、环境以及xss漏洞简介 网上很多gethub自己下就行 XSS简介&#xff1a; 当用户访问被XSS注入的网页&#xff0c;XSS代码就会被提取出来。用户浏览器就会解析这段XSS代码&#xff0c;也就是说用户被攻击了。 用户最简单的动作就是使用浏览器上网&#xff0c;并且浏览器中有J…

ai作画在线生成!这8个AI生图工具一定要知道。

过去的2023年被称作AI元年&#xff0c;随之而来的2024&#xff0c;被业内人士称之为AI应用元年&#xff0c;即随着大模型和各类AI应用的涌现速度放缓&#xff0c;人们关注的焦点也从产品层面&#xff08;有哪些好用的AI应用&#xff09;&#xff0c;转移到AI如何更好地赋能实际…