自2004年以来,Microsoft安全响应中心(MSRC)已对所有报告的Microsoft安全漏洞进行了分类。
这个高百分比是因为Windows和大多数其他Microsoft产品主要是用C和C++编写的。这两种“内存不安全”编程语言允许开发人员精细控制内存地址和执行代码。管理内存执行的代码中的漏洞可能导致一系列内存安全错误,者可以使用这些错误来引入和侵入性后果,例如远程代码执行或提升。因此,探索诸如Rust之类的内存安全语言的使用被提上日程,这可能成为创建更安全的Microsoft应用程序的替代方案。
和前夫同居的日子
Rust最初是Mozilla的一个研究项目,用于重写Firefox浏览器更安全,更快捷。最近,Brave浏览器用Rust版本替换了最初用C++编写的广告拦截组件。2019年StackOverflow开发人员调查显示,Rust已连续四年成为“开发人员最常用的编程语言”。开发人员喜欢它,因为它的语法更简单,并且使用Rust编写的应用程序错误更少,因此开发人员可以专注于扩展他们的应用程序而不是持续。
MSRC的首席安全工程经理Gavin Thomas第三方开发人员也应该关注内存安全语言。他列举了一些原因,例如开发人员花时间和精力学习如何调试C++应用程序中与内存相关的安全漏洞。但这显然不合适。“开发人员的核心工作不是担心安全性,而是做特性工作。与其投资于越来越多的工具、培训和漏洞修复,不如开发一种不能将内存安全问题引入特性工作的语言呢?这将对特性开发人员和安全工程师以及客户都有帮助,”Thomas问道。