聚焦源代码安全,网罗国内外最新资讯!

编译:奇安信代码卫士团队

上周,谷歌工程师表示,Chrome 代码库中70%的严重漏洞与内存管理和安全有关。

在这70%的漏洞中,一半是释放后使用漏洞,因对内存指针(地址)的管理不正确造成,使攻击者能够攻击 Chrome 的内部组件。这是谷歌工程师分析 Chrome 自2015年稳定版起修复的912个安全漏洞分析得出的结果,这些漏洞的评级为“高危”或“严重”。

而在2019年2月,微软在一次安全会议上分享了类似数据,并表示,在过去12年中,大约70%的微软产品更新解决的是内存安全漏洞问题。

无穷尽的内存管理问题

谷歌和微软处理的本质上是一类问题,即“不安全的”编程语言 C和 C++ 中的问题。

这两种语言都是几十年前创建的老旧编程工具,当时安全利用和网络攻击尚未构成威胁模型,且很多早期软件开发人员并未考虑到这个问题。结果,C和 C++ 使得编程人员能够完全控制管理应用的内存指针(地址),在犯下基本的内存管理错误时不会受到限制或得到警告信息。

这些早期编程错误导致应用程序中引入内存管理漏洞,包括释放后使用、缓冲区溢出、竞争条件、双重释放、通配符指针等等。这些内存管理漏洞是攻击者试图查找并利用的最爱,因为他们能借此获得在设备内存中植入代码的能力并由受害者应用程序(浏览器、服务器、操作系统等)执行。

MITRE 公司在年初发布一份榜单,缓冲区溢出漏洞高居榜首,其它两个内存管理问题(界外读取排名第五,释放后使用排名第七)也位列前十。

近年来软件工程不断发展,开发人员从根本上排除多数安全缺陷的能力以及部署安全防护措施的能力有所增强。

但,在内存管理漏洞方面却是个例外。

谷歌将着手处理

谷歌表示,自2019年3月起,在130个Chrome 漏洞中,其中125个“严重”等级的漏洞和内存损坏问题相关,这表明,虽然在修复其它漏洞类型方面取得进展,但内存管理仍然是个问题。

内存管理漏洞的问题如此巨大,谷歌 Chrome 工程师现在不得不遵守“The Rule of 2”规则。按照规则,工程师编写好 Chrome 新功能后,代码不得违反两个以上的如下条件:

  • 代码处理不可信输入。

  • 代码未在沙箱环境下运行。

  • 代码用不安全的编程语言(C/C++)编写而成。

虽然软件公司之前都试图修复 C和 C++ 的的内存管理问题,但 Mozilla 是其中最为成功的,该公司通过赞助、推广和在火狐浏览器中大力使用 Rust 编程语言而取得突破。

如今,Rust 被视作最安全的编程语言,是 C和C++ 语言的理想替代者,这都要归功于 Mozilla 早期付出的努力。但 Mozilla 并非唯一一家获得突破的公司。微软也在积极探索 C和 C++ 的替代品。从早期的 Checked C 项目开始,微软现在正在试验 Rust 语言,而且也在构建自己的类似 Rust 的“安全”编程语言(Project Verona 秘密项目的一部分)。上周,微软在 Build 虚拟大会上表示,这两个项目都获得成功,未来将致力于采用安全编程语言。

上周,谷歌也宣布推出类似规划。谷歌表示也计划研究“解决Chrome 中的内存不安全问题”。Chrome 是当前最流行的网络浏览器,70%的互联网用户都在使用它。

Chrome 沙箱已达峰值

直到今天,谷歌工程师一直不遗余力地支持在 Chrome 中实现沙箱方法。他们将数十个进程隔离到自己的沙箱中并于近期推出 Site Isolation 功能,将每个站点的资源也融合到自己的沙箱进程中。

然而,谷歌工程师表示,考虑到性能问题,沙箱 Chrome 组件的方法已达到最大收益,因此公司必须探索新方法。谷歌表示未来计划为Chrome 代码库开发定制化 C++ 库,从而更好地防范内存相关问题。

谷歌也在探索 MiraclePtr 项目,旨在“将可利用的释放后使用问题转变为非安全性崩溃问题,具有可接受的性能、内存、二进制大小和最小稳定性影响。”

最后但也同样重要的一点是,谷歌表示计划探索适时使用“安全的”编程语言,比如 Rust、Swift、JavaScript、Kotlin 或 Java。

推荐阅读

Linux systemd 被曝多个内存损坏漏洞,尚无补丁

【缺陷周话】第 31 期:错误的内存释放方法

刚刚修复的Windows 0day和Chrome 0day 已被组合用于 WizardOpium 攻击(详解)

原文链接

https://www.zdnet.com/article/chrome-70-of-all-security-bugs-are-memory-safety-issues/

题图:Pixabay License

本文由奇安信代码卫士编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 www.codesafe.cn”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 点个 “在看” ,加油鸭~

70% 的Chrome漏洞是内存安全问题,谷歌和开发人员约法三章相关推荐

  1. 谷歌帮助开发人员面向教育应用

    谷歌已经在其Play商店中启动了一个特殊部门,在这里,教育人士可以找到适用于教育的很不错的app. 商店的新Google Play for Education部门在11月13日被公布于Google P ...

  2. 为什么谷歌的开发人员认为敏捷开发是无稽之谈?

    本文是 Quora 上的一篇回答,作者是一名前谷歌工程总监,他认为敏捷宣言从较高层次而言,与谷歌工程师对软件开发的看法是很接近的.但如果落实到细节,比如敏捷宣言背后的某些原则,其所代表的主张短迭代和低 ...

  3. C++ 复杂、内存漏洞,2019 年的软件开发并不安全!

    在这篇文章中,本文作者会分享自己过去一年中对软件设计和开发现状的一些观察,并试图在 2019 年为自己找到一个有意义的努力方向. 作者 | Chris 译者 | 安翔 责编 | 屠敏 出品 | CSD ...

  4. 英特尔芯片漏洞危机:波及谷歌微软 影响你的电脑和手机 | 热点

    ▼ 点击上方蓝字关注网易智能   聚焦AI,读懂下一个大时代! [网易智能讯 1月4消息]日前,据外媒报道,英特尔芯片存在严重的安全漏洞,而修正这一缺陷的补丁软件会影响到芯片性能,消息传出后,英特尔股 ...

  5. 从0到70%:Chrome上位揭秘!

    最近的数据显示,Chrome在2020年4月的市场份额达到了70%左右,把微软的Edge和Firefox远远甩在身后,毫无疑问,Chrome赢得了第二次游览器之战,成为新一代王者. Chrome的第一 ...

  6. chrome 占用大量内存直到网页崩溃_Chrome吃内存太夸张!几招解决Chrome占内存硬伤...

    我们知道Chrome是非常出色的浏览器,无论从性能还是功能的角度来看,都是如此.但是Chrome在内存占用方面的表现,就很令人头疼了!常常听到有朋友抱怨,想要上网找找素材,不一会儿发现Chrome已经 ...

  7. 从 0 到 70%:Chrome 上位揭秘!

    作者 | 码农翻身刘欣 来源 | 码农翻身(ID:coderising) 最近的数据显示,Chrome在2020年4月的市场份额达到了70%左右,把微软的Edge和Firefox远远甩在身后,毫无疑问 ...

  8. 思科决定将不修复路由器中的这70多个漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周,思科表示不计划修复影响其中一些小企业路由器的70多个漏洞. 虽然思科 Small Business RV110W.RV130.R ...

  9. 前端页面紫红色_谷歌正在开发一种神秘的新型移动操作系统,称为紫红色

    前端页面紫红色 Google seems to be building a replacement for Android called Fuchsia. Yesterday, they reveal ...

最新文章

  1. 2015年百度二面试题
  2. 深度学习总结:Tensorboard可视化里面的events, graph, histogram
  3. 三个数差的平方公式推导过程_勾股数公式的简单推导
  4. Atmel跑Linux的arm芯片,Linux已被移植到Atmel的ATmega微控制器
  5. SpringBoot项目的 log4j漏洞解决—JeecgBoot
  6. $.getJSON() 未能执行回调函数的缘由
  7. [故事]Making machines with brains
  8. 滴滴android面试算法,滴滴打车面试经验
  9. 一个简单LEGv8处理器的Verilog实现【三】【工具使用和编程规范】
  10. [渝粤教育] 西安交通大学 土力学 参考 资料
  11. sql 2008 R2 备份和还原
  12. 关于python的英文参考文献_参考文献英文版
  13. 赵小楼《天道》《遥远的救世主》深度解析(38)丁元英的“自嘲”和作者豆豆的深意
  14. run.gps+trainer+uv+for+android,在Android 2.1(三星spica i5700)蓝牙问题,配对工程,但连接不工作...
  15. 数显之家快讯:【SHIO世硕心语】父亲的格局,母亲的情绪,是一个家最好的风水
  16. 提高 Python 代码的可读性,你需要知道这10个技巧
  17. 简历制作 | 保研 | 考研复试
  18. 怎么用黑白打印机打印清晰可读的PPT文档
  19. qq邮箱服务器发信怎么配置,WordPress网站实现使用QQ邮箱作为SMTP发信服务器配置教程...
  20. CSS的世界(十四)

热门文章

  1. 毕业七年 摸爬滚打的心得体会
  2. 解析Node.js通过axios实现网络请求
  3. python之七行代码制作GIF动画
  4. 对于技术焦虑的一点想法
  5. JavaScript概述2
  6. Java版 数字金额大写转换
  7. Intent常用使用汇总
  8. Node.js 开发模式(设计模式)
  9. 基于mini2440的两种触屏中断程序(T35)
  10. 内容页超连接关键词的完美实现