AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

微软正在探索使用 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:001988

评论

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

【TiDB 最佳实践系列】HAProxy

TiDB 社区干货传送门

实践案例

TiDB 性能分析工具——PProf

TiDB 社区干货传送门

TiDB 底层架构

TiDB 多Socket 服务器性能扩展问题分析-续

TiDB 社区干货传送门

性能调优 性能测评

TiDB 在金融场景里面那些不得不说的事

TiDB 社区干货传送门

记一场DM同步引发的Auto_Increment主键冲突漫谈

TiDB 社区干货传送门

故障排查/诊断

TiUP升级TiFlash重启失败解决方案

TiDB 社区干货传送门

解决方案之:DM relay 处理单元报错

TiDB 社区干货传送门

记一次使用TiUP半自动升级TiDB集群经验

TiDB 社区干货传送门

版本升级

如何分析和解决 TiDB 4.0 的写热点问题

TiDB 社区干货传送门

TiDB in Action 开源电子书

TiDB 社区干货传送门

TiDB 与 Flink 联合发布实时数仓最佳实践白皮书

TiDB 社区干货传送门

TiDB 在小米的落地及云原生探索

TiDB 社区干货传送门

隐藏esc坑之jbd2进程io占用奇高 系统长期io占用100%

TiDB 社区干货传送门

故障排查/诊断

【优质技术文章推荐】TiDB for PostgreSQL—牛刀小试

TiDB 社区干货传送门

实践案例

TiDB升级、TiFlash测试及对比ClickHouse

TiDB 社区干货传送门

【理财实践】 开科唯识-互联网理财为什么会选TiDB

TiDB 社区干货传送门

速度收藏!TiDB 读、写性能慢问题排查思路汇总

TiDB 社区干货传送门

管理与运维

内容主数据 TiDB 集群写入热点优化实践

TiDB 社区干货传送门

TiDB-4.0.0-rc-性能测试

TiDB 社区干货传送门

体验升级至4.0

TiDB 社区干货传送门

Tiflash 尝鲜小案例

TiDB 社区干货传送门

管理与运维

insert引发的TiDB hang死血案(案情一)

TiDB 社区干货传送门

故障排查/诊断

HTAP 会成为数据库的未来吗?

TiDB 社区干货传送门

一栈式 X 规模化 X 多元化:PingCAP 马晓宇谈 TiDB HTAP 演进之路

TiDB 社区干货传送门

以TiDB热点问题来谈Region的调度流程

TiDB 社区干货传送门

实践案例

TiDB 在茄子科技的应用实践及演进

TiDB 社区干货传送门

实践案例

猜一猜 TiDB 4.0 GA 第一个上线用户花落谁家?有惊喜!

TiDB 社区干货传送门

TiDB v5.1 体验: 我用 TiDB 训练了一个机器学习模型

TiDB 社区干货传送门

TiFlash5.0.1与4.0.10 对比测试

TiDB 社区干货传送门

版本测评

TIDB--不容易发现的 lightning tidb-backend 模式导入优化

TiDB 社区干货传送门

迁移 性能调优 TiDB 底层架构 管理与运维 性能测评

TiDB 升级到5.1.1 的性能表现

TiDB 社区干货传送门

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