
AWS(Amazon Web Services)与Rust基金会周三(11/20)共同发动一项新竞赛,期望号召社群的力量来验证Rust标準函式库的安全性。
Rust为一通用程序语言,强调效能、类型安全与并行性,它强制执行记忆体安全,并被广泛应用在嵌入式作业系统、网路服务及区块链专案上,多次在Stack Overflow的开发者调查中获选为「最爱程序语言」。
儘管Rust语言以安全性着称,但开发者可透过unsafe宣告来绕过安全机制,以执行作业系统等级的功能调用或记忆体操作等低阶或高效能任务,同时在官方文件中提醒开发者要小心使用unsafe。
AWS表示,由core、alloc与std等套件组成的Rust标準函式库,替开发者提供了许多常用的功能,这些功能在外部看起来是安全的,但它们在内部可能使用了unsafe区块来实现一些低阶的高效能操作或硬件互动,而且并未经过真正的安全验证。
因此,AWS与Rust基金会共同推出一系列的挑战赛,专注于验证记忆体安全,以及Rust标準函式库中未定义行为的子集,参与者可以透过指定合约、验证函式库元件,或是开发新的验证工具来作出贡献,而且每一项成功的挑战都可获得奖励。此一活动的最终目标,是要让验证成为Rust语言持续整合过程中不可或缺的一部分。
目前Rust标準函式库总计包含约3.5万个函式,当中有7,500个为标记为unsafe的不安全函式,另有3,000个为封装unsafe操作的安全抽象函式。
过去3年来,Rust标準函式库报告了57个健全性问题,以及20个CVE漏洞编号,其中有28%的健全性问题是在今年被发现的,意谓着标準函式库的变化愈来愈快,健全性问题也随之增加,而且基于Rust的产品或服务中,有超过9成都仰赖其标準函式库,显现其重要性。