谷歌的Android 11安全(BYOD相关)和隐私增强功能是主要卖点,但谷歌明白,要从根本上扭转Android生态上游和开发周期必须是安全的“左侧”下猛药。
最近,谷歌Android新的安全策略引起了网络安全和移动互联网行业的广泛关注。谷歌鼓励开发人员使用内存安全编程语言,如Java、Kotlin和Rust,并宣称C和C 的安全性有待提高。
影响Android严重的操作系统和高风险漏洞
头号威胁:内存安全
根据谷歌最新公布的安卓安全报告统计(上图),Android在操作系统的严重和高风险安全漏洞中,59%是内存问题,如内存损坏和溢出。到目前为止,内存安全是最重要的Android安全问题(59%)Google2019年安全工程师修复漏洞的21%。
不仅仅是Android系统,内存安全通常Java、Windows 10和Chrome主要平台的头号安全漏洞类别。谷歌工程师去年表示,Chrome70%的安全漏洞是内存安全问题。此前,微软工程师透露,70%的产品修复错误是内存安全问题,即允许访问超出操作系统分配的内存和地址的软件漏洞。
谷歌认为,使用更安全的开发语言是保护Android避免使用恶意软件和漏洞的根本措施。“C和C 不能像Java、Kotlin和Rust这种语言提供内存安全。Android安全报告中的大多数安全漏洞都是内存安全问题(上图),因此谷歌采用了两种安全策略:改进C/C 还鼓励使用内存安全语言。”Google在Android在安全和隐私小组的博客中指出。
亚马逊出于同样的安全原因,(AWS)和Microsoft也在促进采用Rust。Mozilla创建了Rust用于Firefox的Gecko处理和发动机C 内存相关安全问题。Rust的1.0该版于2015年推出,但采用率仍较低。Microsoft希望用于系统编程而不是应用程序开发。AWS使用Rust构建了基于Linux容器操作系统Bottlerocket。
数据驱动的安全强化
谷歌指出,由于Android生态系统的多样化、安全策略和方法以及缓解措施“数据驱动”。
这种基于数据的方法产生了可衡量的实际结果。据统计,去年Google绝大多数的修复Android漏洞来自媒体、蓝牙和NFC组件。媒体库也是Google在2015年披露的Android远程利用高危漏洞Stagefright所影响的关键组件。
如今,谷歌正在加强Android媒体服务器框架的努力得到了回报,2020年没有收到Android远程利用媒体框架的漏洞报告。
谷歌除了迁移到内存安全语言移到内存安全语言之外Android还包括:
- 沙箱
- 分解高权限大型组件(如媒体库)
- 提高C/C 的安全性
- 缓解漏洞
- 随机布局地址空间(ASLR)
- 控制流完整性(CFI)
- Stack Canaries
- 内存标记
谷歌指出,LLVM控制流的完整性(CFI)已于2018年在Android Pie媒体框架、蓝牙和NFC中启用。
谷歌和微软都试图C和C 提供更安全的系统编程功能。微软通过Windows安全功能Control Flow Guard改进了CFI。去年,微软在Clang和LLVM C 编译器和Rust中启用了CFG支持。
谷歌还需要权衡每次缓解的性能成本,并部署和支持缓解所需的工作量,而不会对设备稳定性或用户体验产生负面影响。缓解措施/组件的系统成本可能会缩短电池寿命,降低设备的响应速度,从而对用户体验产生负面影响。Android手机等入门级设备尤其如此,但入门级设备也应从安全加固中受益。
最后,谷歌指出,除了安全利益和性能成本(如短期部署和长期支持成本)外,还有更多的因素需要考虑,如部署的稳定性和长期支持。
参考资料:https://security.googleblog.com/2021/01/data-driven-security-hardening-in.html
【本文是51CTO专栏作者“安全牛”请通过安全牛(微信微信官方账号)转载原创文章id:gooann-sectv)获取授权】
戳这里,看作者更好的文章