楼主:
freexq (快乐蕃茄)
2024-11-20 19:28:52文章来源:
https://reurl.cc/aZr7ql
美国政府呼吁弃用 C/C++,软件开发界将迎来巨变?
近日,美国网络安全和基础设施安全局 (CISA) 和联邦调查局 (FBI) 再次
发出呼吁,敦促软件开发商放弃使用 C 和 C++ 等“内存不安全”的程式
语言,转而采用更安全的替代方案,以降低国家安全、经济安全和公共健康
的风险。
这一呼吁并非空穴来风。CISA 早在 2024 年初就与五眼联盟的其他成员
(包括 FBI、澳洲网络安全中心和加拿大网络安全中心)联合发表了一份报告,
分析了 172 个关键开源专案。报告指出,超过一半的专案使用了内存不安全
的语言编写程式码,占总程式码量的 55%。
内存安全漏洞:挥之不去的梦魇
CISA 强调,内存安全漏洞占所有安全漏洞的 70%。由于 C 和 C++ 等语言
要求开发人员手动管理内存的使用和分配,任何疏忽都可能导致缓冲区溢位、
释放后使用等严重漏洞,让攻击者有机可乘,控制软件、系统甚至窃取资料。
为了解决这个问题,CISA 建议开发人员改用 Rust、Java、C#、Go、Python
和 Swift 等内存安全的程式语言。这些语言内建了内存保护机制,可以
有效防止常见的内存相关错误,从程式码层面提升安全性。
理想很丰满,现实很骨感
尽管 CISA 的建议立意良善,但要让开发者放弃 C/C++ 并非易事。
首先,将现有的大型程式码库转换为新的程式语言需要耗费大量时间和资源,
而且必须仔细规划才能确保功能不受影响。对于许多企业来说,这无疑是一项
巨大的挑战。
其次,内存安全的语言在效能方面可能不如 C/C++。C/C++ 之所以经久不衰
,正是因为它们能够编写出执行速度最快的程式。在速度和安全之间,许多开发
者和企业仍然会优先考虑速度。
此外,企业还需要额外投资,更换现有的开发工具、除错器和测试框架,
以支援新的程式语言,并将新程式与旧程式码和程式库整合。
CISA 的最后通牒:2026 年前提交迁移路线图
尽管困难重重,CISA 仍然坚持要求企业在 2026 年 1 月 1 日前提交迁移
现有程式码库的路线图,并强调从长远来看,减少漏洞和提高安全性所带来
的收益将超过初始投资。
然而,在追求短期利润最大化的现代商业环境下,企业是否愿意买单,
仍是一个未知数。
Linux 之父 Linus Torvalds 的态度:谨慎支持
就连 Linux 的创造者 Linus Torvalds 也对此持保留态度。虽然他
支持在 Linux 核心程式码中引入 Rust 语言,但也坦言 Rust 和 C
之间的争论已经演变成“宗教战争”,许多经验丰富的 C 语言开发者
抵触学习 Rust。
未来展望:内存安全语言的崛起之路
尽管面临重重阻力,但内存安全语言的发展是大势所趋。随着技术的
进步和安全意识的提高,相信会有越来越多的开发者和企业选择更安全
的程式语言。
然而,这个转变过程注定是漫长而痛苦的。在 2020 年代,C/C++ 仍然
会是软件开发的主力军。或许在 2030 年代,我们才能真正见证内存
安全语言的全面崛起。
楼主:
freexq (快乐蕃茄)
2024-11-20 19:38:00C和C++可以直接管理内存似乎是两面刃,好处是执行速度快坏处是一但出错,会造成内存安全漏洞,被骇客利用在文章最后一段,2020年代C/C++仍然是软件开发主力军2030年代,内存安全语言将会全面崛起这表示再5年,C/C++会被全面取代掉吗?旧的已完成的程式码不要说,开发新程式将不再采用C/C++吗?
作者:
CP64 (( ̄▽ ̄#)﹏﹏)
2024-11-21 03:43:00稍微看了一下CISA发布的东西 它只要求一些元件需要这样做如暴露在网络中的或加密相关的敏感功能的元件*现有的程式中的这些元件需要发布迁移路线图不过照过往换东西的速度我觉得讲到时候全面取代是有点太快我相信不符合以上条件的东西还是会很多是继续用C/C++
楼主:
freexq (快乐蕃茄)
2024-11-21 19:04:00温水煮青蛙,照文章来看美国政府呼吁不要用的根本理由就是 C/C++ 是“内存不安全”的程式语言
作者: bizer (bizer) 2024-11-21 19:21:00
内存不安全我只当你程式有bug,那个程式没bug?
楼主:
freexq (快乐蕃茄)
2024-11-21 19:23:00加上连Linux和Windows的核心都可以用另一个语言Rust来写C/C++传统优势领域不再...慢慢的以后你的老板会要求你用别的程式语言来完成工作你个人或公司在外面接的案子,也会指定你不要用C/C++就如同文章所说的,使用其他的程式语言,达到他们的目的根本上去解决程式容易出错的机制
作者:
wulouise (在线上!=在电脑前)
2024-11-21 21:24:00这篇很久了吧 ....
我以为Linus会顺便troll一下C++ XDD
作者:
kdjf (我抓得到什么呢?)
2024-11-23 09:14:00安全的需求不是在每个领域都那么有价值...
不行吧~python老弟不懂,但好像没有pointer
作者:
jpjpjp (jp)
2023-01-06 12:28:00愈改愈烂。C那么好用也能被硬拗成这样。
作者:
expiate (夜露死苦)
2023-01-13 03:54:00curl不是才放弃rust,这样还有搞头吗?
作者:
if4 (if)
2023-02-06 01:32:00打从一开始学习程式语言,就提到结构性的重要,尤其是C&C++这期间也有提到内存的管理。结构性的好处让程式码可读性高内存的管理让程式码安全性提高,但是以前的做法是让我们在研发程式的时候谨慎小心,别出纰漏。但看了这个新闻之后,才惊觉主管机关要我们换另外一种语言,这个问题从编译器本身做改良不行吗?换另外一种语言就是说把编译器换掉,这其中又有何差别呢?
作者:
nthank (不谢)
2023-02-06 14:10:00我觉得很困难。现实就是最强最资深的这些人都不愿意放弃自己熟悉的语言。
作者: hare1039 (hare1039) 2023-02-14 09:28:00
外行人领导内行哦去除C & C++ 根本不可能
作者:
Lipraxde (Lipraxde)
2023-02-14 16:21:00编译器本身做改良还是受限于程式语言的语法,语法本身存取内存就没保证安全性了,替代方案可以用 lint、valgrind 等工具,但比较像是在打补丁
作者:
if4 (if)
2023-02-14 23:14:00请问 Windows 这系列 OS 是用 C/C++ 写的吗?因为想到以后可能 Windows OS 重写就有很高的不确定性 那DOS?不过安全性高的话 就不用经常安全性更新了 也算好消息 Orz
作者:
wulouise (在线上!=在电脑前)
2023-02-15 19:04:00现实就是重写不合效益,单写mmodule rust效果差很多