最安全的编程语言: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

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

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