新闻资讯

新闻资讯 媒体报道

「安全呼吁」互联网存在一个巨大的C/C++安全隐患

编辑:011     时间:2021-11-04

该文作者是Mozilla的软件安全工程师Alex,曾经担任过美国数字服务的软件工程师。同时也是Python和Django软件基金会董事会成员。

一个Bug影响iPhone、windows(wanncry)和Linux服务器(heartbleed),看似没什么关联,实际上,这些漏洞的产生,都是同一个原因:内存不安全。而当今互联网上,造成内存不安全的主要语言是C/C++。

缓冲区溢出漏洞、类型混淆、使用释放内存、使用未初始化内存等问题,共同构成了当今互联网基础设施(Windows、Android、iOS、Chrome、Firefox等)中漏洞的温床。作者花费大约一年多时间来跟踪这些项目的安全,发现这些产品中几乎超过一半的漏洞都是内存不安全引起的。更令人不安的是,高危的漏洞(导致远程执行代码的漏洞)几乎总是因为内存不安全。比如被广泛使用的图片处理库ImageMagick和GraphicsMagic,作者就发现了400个内存不安全漏洞。

当然,造成这些主要是因为历史原因。很多重要的互联网安全软件都是老产品。但是作者为了改善这种现状也提出了以下一些建议:

  • 在选择语言的时候,首要标准应该考虑「这种选择将如何影响软件的安全性?」
  • Rust、Swift等现代语言都是内存安全的,可供选择。但是选择Rust的公司比较多,Google、Dropbox、Facebook等都在用Rust。
  • 需要量化内存安全造成的损害程度。可以参考CVE数据库。
  • 需要投入资源研究如何更好地将大型软件项目迁移到内存安全的语言。
  • 将软件工程文化的重心向安全性转移。比如从大学教学、培训机构教学,应该让学生认识到安全的重要性。
  • 内存不安全是目前互联网最大的祸害。还需要投入工程研究,以便作出更好的工具来改善计算机安全性。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐