向内存安全语言迁移的五大挑战

这篇具有很好参考价值的文章主要介绍了向内存安全语言迁移的五大挑战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

近日,白宫国家网络主任办公室(ONCD)在题为《回归基础构件:通往安全软件之路》的报告中呼吁开发者放弃C、C++语言,转而使用“内存安全的编程语言”,例如Rust语言。

传统编程语言C/C++虽然强大,但一直饱受内存安全漏洞的困扰。这些漏洞不仅复杂难懂,而且极易造成系统崩溃等严重后果。为了解决这一难题,近年来内存安全语言逐渐兴起,并有望成为未来编程语言的主流。

近日,helpnetsecurity采访了开源安全基金会(OpenSSF)的总经理Omkhar Arasaratnam,探讨了业界转向内存安全语言的挑战与策略,内容整理如下:

内存安全语言的优势

内存安全漏洞已经存在了半个多世纪。它本质上是将程序员从繁琐的内存管理工作中解脱出来。C/C++要求程序员手动分配和释放内存,这不仅复杂易错,还需要时刻追踪内存的使用情况,以免出现内存泄露等问题。而Java、Rust、Python和JavaScript等现代语言则通过自动内存管理的方式,让程序员将精力集中在核心逻辑的编写上,避免陷入低级内存管理的泥潭。

在操作系统内核、系统编程等高危场景下,内存安全语言的优势尤为突出。操作系统内核拥有整个系统的最高权限,任何内存安全漏洞都可能导致系统崩溃甚至信息泄露。

尽管熟练的程序员可以使用C/C++等非内存安全语言避免内存漏洞,但现实情况并不乐观。微软曾经统计过自家产品的漏洞,其中70%都与内存安全问题相关。谷歌针对安卓系统进行的类似研究也得到了相似的结论:90%的安卓系统漏洞都与内存安全有关。

Go、Python、Rust和Java等语言都是优秀的内存安全语言范例。其中,Rust有望成为Linux内核的第二个官方支持语言。这将允许开发者用完全内存安全的语言重写Linux内核的部分关键代码。

迁移的五大挑战

向内存安全语言迁移并非易事,开发者和企业需要面对五大挑战:

  • 开发者培训和认证滞后:现有开发人员需要学习新语言,或者招聘熟悉内存安全语言的人才。同时,调试和构建系统也需要进行相应调整以支持新语言,相关的培训和认证服务相对滞后。

  • 硬件支持有限:C/C++等老牌语言可在几乎所有平台上运行,而Rust等新兴语言的硬件支持则相对有限。

  • 监管要求:一些安全关键型系统有着严格的技术和安全需求,在新语言缺乏相关认证的情况下,可能无法轻易迁移。

  • 潜在Bug:将老代码移植到新语言可能会引入新的Bug。即使是经验丰富的程序员,也可能因为重写过程中的细微差别导致程序运行结果与预期不符,从而产生线上故障。

  • 部署阻力:关键基础设施系统内存安全代码的重新部署面临挑战

迁移策略:安全优先

用Rust重写所有现有代码显然并不现实。OpenSSF建议开发者在开启新项目时优先考虑使用内存安全语言,同时将Rust应用于关键代码路径,例如身份验证、授权、加密以及处理网络或用户输入的部分。

虽然内存安全语言并非灵丹妙药,但却是提升代码安全性的重要一步。通过使用内存安全语言,程序员可以将更多精力放在核心逻辑的开发上,避免在低级内存管理上浪费时间和精力。

对于难以迁移的遗留代码,OpenSSF提供了《C/C++加固指南》,帮助开发者在不大幅改动既有代码库的情况下提升安全性。

需要注意的是,关键基础设施的工业控制系统通常难以通过企业网络进行更新,因此重新部署安全代码可能比重写本身更加耗时。

OpenSSF鼓励社区在开始新项目时考虑使用Rust进行编写,并根据安全优先级将Rust用于关键代码路径(经常被滥用或攻击的部分,或者“皇冠上的宝石”的关键区域),例如从身份验证、授权、加密以及从网络或用户获取输入内容的代码。

内存安全语言的未来

在某些关键领域,虽然新兴语言的安全性优势非常诱人,但贸然迁移反而会带来风险。预计内存安全语言并不会在所有行业成为标准,一些对稳定性要求极高的领域出于谨慎考虑,可能会推迟采用内存安全语言。

不过,从长远来看,使用内存安全语言来开发新项目具有普遍意义。例如,Alpha-Omega公司资助了用Rust开发的Rustls项目,旨在实现更安全的TLS和QUIC协议。通过使用内存安全语言,业界可以避免类似于OpenSSL Heartbleed漏洞那样的安全事件。

教育和认证是关键

教育和培训是网络安全最强大的基础防线之一。如今许多小学已经开始将Python作为编程语言入门课程。OpenSSF希望未来能够尽早将Rust等其他内存安全语言引入基础教育。

此外,Rust基金会也提供了丰富的学习资源,例如备受好评的书籍《Rust编程语言》以及正在开发的培训和认证项目。通过积极的学习和社区协作,内存安全语言有望在未来发挥更大的作用。

声明:本文来自GoUpSec,版权归作者所有。文章来源地址https://www.toymoban.com/news/detail-843963.html

到了这里,关于向内存安全语言迁移的五大挑战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 内存的五大分区

    一个由C/C++编译的程序占用的内存分为以下几个部分:栈区,堆区,全局区(静态区),文字常量区,代码区 在执行一个C/C++ 程序时,此程序拥有唯一的“内存四区”(栈区,堆区,全局区,代码区) 一个可执行程序在存储(没有调入内存时)分为代码区,静态区,文字常量

    2024年02月13日
    浏览(38)
  • 五大内存分区(笔记)

    一个由C/C++编译的程序占用的内存分为以下几个部分 : 堆区、栈区、全局区(静态区)、文字常量区、代码区 五部分。         在执行一个C/C++语言程序时,此程序将拥有 唯一 的“内存四区”——栈区、堆区、全局区、代码区。每个程序都有唯一的四个内存区域。    

    2024年02月15日
    浏览(39)
  • 【论文速读】| 对大语言模型解决攻击性安全挑战的实证评估

    本次分享论文为:An Empirical Evaluation of LLMs for Solving Offensive Security Challenges 原文作者: Minghao Shao, Boyuan Chen, Sofija Jancheska, Brendan Dolan-Gavitt, Siddharth Garg, Ramesh Karri, Muhammad Shafique 作者单位: 纽约大学、纽约大学阿布扎比分校 : 大语言模型,网络安全,攻击性挑战,CTF竞赛

    2024年04月10日
    浏览(76)
  • 【JVM】JVM五大内存区域介绍

    目录  一、程序计数器(线程私有) 二、java虚拟机栈(线程私有) 2.1、虚拟机栈 2.2、栈相关测试 2.2.1、栈溢出 三、本地方法栈(线程私有) 四、java堆(线程共享) 五、方法区(线程共享) 六、实例演示         Java虚拟机在执行Java程序的过程中会把它所管理的内存划

    2024年02月15日
    浏览(43)
  • Windows Server AD域控服务器升级/迁移(AD域控的五大角色转移)

    本文主要介绍在现有域环境下如何进行域控服务器的迁移/升级操作。对于域结构的网络来说,域控制器的重要性不言而喻。如果网络中唯一的域控制器突然崩溃,将是一场灾难。所以如果有条件的话,建议在网络中备有额外域控制器。域控制器可以进行用户认证,登录等工作

    2024年02月09日
    浏览(45)
  • Android 开发的五大开源网站,安卓内存优化面试

    (4) 多快捷键支持 ① 左右翻页 在项目(搜索)列表及详情页左手党可以通过 awsd,右手党可通过上下左右键或者 nl 键翻页,浏览项目从未有过的流畅体验。 ② 快速打标签 项目详情页可通过 t 快速进入新增标签输入框,回车确定标签,Esc 退出编辑。 ③ 快速搜索 项目列表页可通

    2024年04月09日
    浏览(56)
  • 网络安全威胁杂谈

    网络安全发展到现在,安全最大的威胁是什么?答案:漏洞、恶意软件 全球发生的大多数的网络安全事件,基本都是由于漏洞、恶意软件发起攻击的,可以说如果解决这两类问题,基本上可以解决大多数的网络安全问题,然而为啥现在网络安全事件越来越多,问题越来越多,

    2024年02月21日
    浏览(50)
  • 网安学习-Python安全开发

    目录 Python学习的意义 涉及相关技术 案例一:IPWhois系统指纹获取代码段-外网 查询IP whois查询 案例二:CDN子域名端口扫描交互代码段-外网 判断CDN  子域名查询 端口扫描 案例三:Py格式解析环境与可执行程序格式转换-Pyinstaller         此后如竟没有炬火,我便是唯一的光

    2023年04月08日
    浏览(39)
  • 从传统应用程序迁移到云原生:最佳实践和挑战

    作者:禅与计算机程序设计艺术 在现代企业应用架构中,应用程序往往作为整个业务线的支柱之一。许多公司都在追求更高效、更简洁、更可靠的架构,并逐渐将传统应用系统迁移到基于云平台的容器化部署模型。其中一种迁移方式就是使用Cloud Native计算模型(CNCF)。Cloud Na

    2024年02月05日
    浏览(47)
  • 网安必备知识:常见的安全设备

    ​ 网络安全设备是一个有软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网 之间的界面上构造的保护屏障,针对不同的应用场景有不同的作用,常见的安全设备有防火墙,态势感知,IDS,IPS,全流量分析,漏洞扫描,蜜罐 ,安全邮件,EDR等等。 ​ 态势感

    2024年02月13日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包