最安全的编程语言:Rust

在“安全优先”、“安全左移”、“供应链安全”的大趋势下,Rust作为一种更安全的编程语言越来越流行。

在IT巨头那里,Rust尤其受到重视。例如,微软曾专门委派一名实习生,用Rust重写一个至关重要的网络处理程序,该程序的内存安全漏洞过去让微软安全响应中心(MSRC)头疼不已。

[[389175]]

Rust已经连续五年被开发人员评为“最受喜爱”的编程语言,因为它可以避免某些类型的内存安全错误,能从根本上改善软件漏洞的现状。

让Rust声名远播的优点还包括:提供C和C++的速度和控制能力,同时还提供了其他语言(例如Go和Python)的安全性和安全性保证。MSRC将近70%的漏洞归类为内存安全问题,因此消除此类漏洞至关重要。

MSRC软件工程师Alexander Clarke近日发文表达了对Rust的偏爱,他在博客中指出,尽管用C++编译可能会更容易,但是生成的程序更有可能出现错误和漏洞。

Alexander说:“Rust编译器的错误消息功能特别有用。”“通过错误消息,Rust能确切告诉你代码为什么不正确,并给出解决建议,从而落实了安全编程的概念。”

在Mozilla采用Rust为Firefox浏览器重写代码十多年之后,Rust可能已准备就绪。

虽然当前Rust的采用率仍然很低,根据“StackOverflow 2020开发人员调查”,仅5.1%的开发人员使用Rust语言,但许多大型公司已承诺在特定的开发项目中使用Rust。

从2016年开始,Mozilla基金会就开始在推出使用Firefox浏览器中的Rust语言开发的代码。2019年,微软表示其打算更广泛地采用Rust在Windows中编写系统软件。在2021年2月,Mozilla拆分了该项目,由新的Rust Foundation管理,项目的创始赞助商包括微软、谷歌、亚马逊和华为。

为什么Rust越来越受欢迎?

Rust Foundation的临时执行董事Ashley Williams表示,这不仅与速度和安全性有关,至少对开发人员而言也是如此:“实际上,人们对Rust的赞誉,不仅包括语言和编译器,还包括高人气的开发社区和一流的软件包管理器。”

对于企业而言,是否采用Rust取决于Rust的短板——Rust的缺点是什么?很多开发人员发现Rust的编译器喜欢无缘无故地报警并拒绝工作;某些编码模式会导致缓冲区溢出,释放后使用(use-after-free)漏洞,内存两次释放问题以及引用空指针。

虽然尚存在一些问题,瑕不掩瑜,Rust的安全性的回报足够诱人。以微软为例,Rust可以帮助微软消除大部分CVE漏洞。微软首席云开发倡导者Ryan Levick在一篇博客文章中说,使用编程语言构建核心系统组件可以帮助减少主要的漏洞来源。

他说:“我们相信Rust在编写安全系统软件方面会改变游戏规则。”“Rust提供编写底层系统所需的性能和控制,同时使软件开发人员能够编写健壮、安全的程序。”

当然,我们也需要留神编程语言安全性的过分夸大。

1996年1月,Sun Microsystems(升阳公司)宣布推出Java 1.0,鼓吹可移植代码(例如“一次编写,随处运行”),Sun还吹捧了许多安全属性,例如自动内存管理(即“垃圾回收”)以及类型安全性和防止小程序(Applets)修改系统资源的隔离功能等。

时至今日,根据StackOverflow调查,Java的使用率约为40%,仅次于JavaScript、HTML/CSS、SQL和Python,位居第五。但是,根据《2020年开源安全状况》,在2019年开源组件中发现的6,000多个漏洞中,Java程序占15%,仅次于C(占30%)和PHP(占27%)。

Java的案例表明,效率优先的开发人员通常不会使用安全功能,而是继续开发不安全的代码。

Rust的安全方法比Java更自以为是,很可能无法避免开发人员对安全性的破坏。尽管Rust提供了内存安全性,但它也提供了一种绕过方法——“UNSAFE”关键字。使用关键字是开发人员覆盖编译器并阻止编译器检查代码块的一种方法——因为开发人员拍胸脯担保该代码是安全的。

许多Rust爱好者认为滥用关键字会破坏Rust模型。Williams对此表示理解,她说:“有些人确实会用不安全的方式使用UNSAFE防护块。”“如果将内容放入不安全的块中,编译器将不会对其进行检查,如果这些内容有误,则可能会导致内存错误。”

但是她指出,即使使用了正确的编译器功能,漏洞也很可能会渗透到开发人员的程序中,但是安全研究人员和黑客往往会发现开发人员遗留下来的问题和漏洞。例如:重点关注Rust安全的站点RustSec列出了Rust软件包(或“crates”)和语言中的250多个漏洞。

【本文是IDC.NET专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】

戳这里,看该作者更多好文 

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/142850.html<

(0)
管理的头像管理
上一篇2025-03-09 10:28
下一篇 2025-03-09 10:29

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注