写点什么

微软正在探索使用 Rust 开发安全的软件

  • 2019-12-16
  • 本文字数:1136 字

    阅读完需:约 4 分钟

微软正在探索使用 Rust 开发安全的软件

近来,微软尝试使用 Rust 来提升软件的安全性。在巴塞罗那举行的RustFest大会上,微软工程师 Ryan Levick 和 Sebastian Fernandez 分享了他们在微软使用 Rust 时所面临的挑战。微软的 Rust 之旅包括使用 Rust 重写 Windows 的一个底层组件。


Fernandez 和 Levick 表示,软件行业建立在一个不安全的技术基础之上,涉及巨额成本。保守估计,微软的软件里被爆出的每一个问题平均需要耗费 15 万美元,而受安全漏洞侵害的组织需要付出更高的成本。英国国家医疗保健系统就是这样的一个案例,因为受到赎金攻击,预计损失达到 40 亿美元。


他们说,这些问题大部分与使用 C 语言和 C++有关。


C 语言和 C++非常适合用来开发底层系统,它们只使用非常少的资源。实际上,它们是我们创建的系统的基础,但问题是它们不够安全。在使用它们开发系统时,开发人员并没有考虑到安全问题。


这也解释了为什么微软在尝试使用 Rust,希望能够消除软件 bug,特别是那些会导致安全漏洞的 bug。


我们可以使用 Rust 开发出安全的组件。


两位工程师表示,这个有待验证,但他们希望结果能够如他们所愿。


实现这个目标的一个主要障碍是使用 Rust 从头开始重写所有东西是不可能的。Rust 应该与其他语言共存,虽然这样也不容易。例如,对于 Windows 来说,第一个障碍是 LLVM(Rust 的编译器),它对 Windows 的支持并不好。类似的,Rust 的构建工具 Cargo 无法管理微软的整个构建系统,只能被集成到现有的构建系统中。


这个问题适用于所有的 Rust 工具,以及被封装进 DLL 的共享可执行程序(它们大部分使用 C 语言和 C++开发)和对 COM、WinRT、Win32 的支持。


除此之外,微软以及其他类似的企业还有其他问题需要解决,包括人的因素在内。Rust 的受众通常是那些具有多年 C 语言或 C++经验的开发者,需要说服他们转向 Rust。


之前,当我们向有经验的 C++程序员推荐 Rust 时,他们一般都能够快速上手,因为他们的知识体系里已经有一些形式化的东西,这是好事。但对于那些从其他领域转过来的人来说就有一点困难。不过,虽然学习曲线比较陡峭,但一旦他们上手了,就会变得非常高效。


来自微软 Hyper-V 团队的工程师 Adam Burch 分享了微软使用 Rust 开发项目的经验。他讲述了使用 Rust 重写一个 Windows 底层系统组件的经历,并把 Rust 编译器的安全性保证说成是一股清流:


Rust 编译器提供的内存和数据安全性保证让程序员信心满满,因为通过能够编译的代码都是内存安全的。


与 Fernandez 和 Levick 一样,Burch 也同样认为 C/C++程序员能够快速上手 Rust,他还提供了一些有关 Rust 与 C/C++代码互操作以及如何保持语言安全的建议,包括使用工具生成可表示C语言数据的Rust数据结构,以及与COM API有关的东西。


原文链接


Microsoft Exploring Rust as the Solution for Safe Software


2019-12-16 09:001826

评论

发布
暂无评论
发现更多内容

万物皆可集成系列:低代码通过Web API

葡萄城技术团队

集成 数据录入

新来个技术总监,给团队引入了这款开发神器,同事直呼哇塞

Liam

前后端分离 开发 Postman API 开发效率

报告发布|“双轮驱动”重磅升级,天猫联合瓴羊、罗兰贝格发布《天猫DTC企业经营指南 :以人为本,品牌致胜》

瓴羊企业智能服务

阿里平头哥RISC-V补丁并入安卓系统源代码,RISC-V与安卓融合再提速

Lily

基金营销存量博弈时代,数字内容小程序化助力破局

Speedoooo

小程序 基金 数字内容 小程序容器 买方投顾

分布式事务-什么是分布式事务

zarmnosaj

10月月更

信息安全 Dapr 策略咋控制

CTO技术共享

个人成长 dapr 10月月更

KubeCube 版本转换:K8s 升级再也不用担心影响老版本了

网易数帆

开源 Kubernetes 云原生 KubeCube 企业号十月 PK 榜

HCI 解决方案对比:Harvester 和 OpenStack

Rancher

Kubernetes k8s rancher

技术贴 | 走进 PostgreSQL 行级安全策略

KaiwuDB

时序 #数据库

软件测试 | 测试开发 | 校招面试真题 | 面试官必问面试题之你有什么想问我的?

测吧(北京)科技有限公司

测试

虚拟集群vcluster 多租户实战演练

CTO技术共享

个人成长 集群管理 10月月更

澜舟科技机器翻译新进展:汉语与世界15 种主要语言的翻译超越谷歌

澜舟孟子开源社区

人工智能 机器翻译 nlp 澜舟科技

校招面试真题 | 和面试官聊的很 high,但就是拿不到 offer,怎么办?

测试人

Go语言入门02—运算符

良猿

Go golang 后端 10月月更

没错!在 Excel 中也能对海量数据进行明细钻取啦

Kyligence

数据分析 海量数据

GPU在高性能仿真计算中的应用

Finovy Cloud

高性能 GPU算力

业务系统发布新版本咋流量保障

CTO技术共享

个人成长 灰度发布 10月月更

校招面试真题 | 面试官必问面试题之你有什么想问我的?

霍格沃兹测试开发学社

直击面试!Github爆火2022最新Java面试八股文+简历模板+面试软技能分享

程序员小毕

程序员 程序人生 后端 java面试 简历

探究线程与进程的区别这一问题

C++后台开发

线程 多线程 进程 linux开发 C++开发

提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件

葡萄城技术团队

chrome Excel 插件 扩展

一篇带你了解如何使用纯前端类Excel表格构建现金流量表

葡萄城技术团队

管理 流量

WorkPlus数智化移动平台,打造政企强安全的超级门户

WorkPlus

一站式移动工作平台,让企业实现运营管理全面数字化

WorkPlus

锋云智慧开启“1024猿媛囤书日”活动,千锋原创教材普惠广大技术学习者

千锋IT教育

【原创】k8s 微服务滚动发布(服务持续可用)实践笔记

车江毅

k8s 不停机发布 滚动发布

React + Springboot + Quartz,从0实现Excel报表自动化

葡萄城技术团队

React SpringB

网络安全实战之靶场渗透技术

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

【案例】星环科技×某能源企业:数据中台实践

星环科技

结果公布!1024开发者狂欢季踏浪而来,参与赛道主题征文赢取精美奖品!

InfoQ写作社区官方

OpenHarmony 元宇宙 Web3.0 热门活动 “程”风破浪的开发者

微软正在探索使用 Rust 开发安全的软件_安全_Sergio De Simone_InfoQ精选文章