基于Rust开发新的安全编程语言是什么样的

发布时间:2021-10-14 16:00:26 作者:柒染
来源:亿速云 阅读:118

这篇文章给大家介绍基于Rust开发新的安全编程语言是什么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

  为提高Windows10的安全性,微软研究人员MatthewParkinson在本周的一次演讲中披露:微软正基于Rust开发新的安全编程语言。这个项目,被微软称为“Verona"。

  Verona项目主要目的是通过使用Rust开发Windows底层组件,从而让Windows10变得更安全。

  据微软透露,它们通过集成Rust和C/C++来移除Windows中不安全的代码,这种尝试达到了目标。

内存安全问题

  众所周知,在每个月的第二个礼拜,微软都会发布修复Windows漏洞的安全补丁。而微软最近透露,近年来发现的大部分bug都与内存安全有关,所以它们想看看是否可以使用Rust来解决这些问题。

  在编程语言中,“内存安全”是指保护内存空间不受恶意程序利用。微软的Verona项目旨在防止这类攻击发生。

  虽然Verona项目最初可能只是一种尝试,但微软已经取得很大的进展。

  MatthewParkinson是微软主攻托管编程语言内存管理的研究员。在最近的一次演讲中,他分享了微软在解决内存问题方面做了哪些工作。

  本次演讲中,Parkinson提到了IE和Edge的MemGC(MemoryGarbageCollector,内存垃圾回收器)。

  MemGC(MemoryGarbageCollector):内存垃圾收集器,是Edge的内存管理机制,由IE11的MemoryProtector改进而来,首次在EdgeHTML和MSHTML中使用。Edge使用MemGC来管理DOM和DOM支持的对象,其采用标记清除(Mark-Sweep)算法对垃圾进行回收,能够阻止部分UAF漏洞。

  MemGC解决了与标准浏览器DOM相关的漏洞,给谷歌Zero项目的黑客们留下了深刻的印象。

  Parkinson说:“我们为DOM开发了一个垃圾回收器。在IE中,内存的‘释放后使用’(use-after-free)是人们利用DOM引擎内存管理机制的常见方式。然后,微软开发了MemGC,作为DOM的守护垃圾回收器。它几乎专治这种类型的漏洞,基本上把这类攻击杜绝掉了。”

而微软要解决的另一类bug与未初始化的内存有关。

  Parkinson深入探讨了一个可能会引起消费者共鸣的问题:“如何才能打造出在未来最安全的产品?我们仍然要处理遗留问题,不能把现有的东西全部都扔掉,但可以在一个更安全的系统中重建一些东西。”

  Parkinson说微软正在使用Rust重写一些组件,他的演讲主要集中在语言的设计和隔离能力上。

  “如果我们想要隔离能力,把遗留代码隔离起来,不让攻击者的攻击代码冒头,那么应该怎样设计这门语言?”

Verona项目

  于是,Verona项目诞生。微软宣称这门语言面向的是“安全的基础设施编程”,Verona项目很“快”会开源。

  据悉,这个项目得到了C#项目经理MadsTorgensen和微软剑桥研究院工程师JulianaFranco的支持。

  微软面临的挑战是要覆盖“应用程序图谱”,从用于桌面应用程序的C#,到用于Exchange、ASP.NET、Azure和设备驱动程序的C和C#,再到深度的Windows组件,如内存管理、启动加载器和Windows内核硬件抽象层(HAL)。

  Parkinson说:“要做好内存管理很难。如果存在任意的并发冲突,要保证临时内存安全就非常困难”。

  “Rust的所有者模型基于单个对象,而Verona基于一组对象。在C++里,程序员获取指针,指针是基于对象的,并且基本上是一个对象一个指针。但我认为的数据和语法不应该是这样的,我所认为的数据结构应该是对象的集合,集合有它自己的生命周期”。

关于基于Rust开发新的安全编程语言是什么样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. 如何学习一门新的编程语言
  2. python是用什么编程语言开发的

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rust

上一篇:linux中shell script是什么

下一篇:shell如何实现字符串操作

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》