12Reads资讯
企业管理第一媒体

训练AI成为安卓安全守护神?没错,谷歌就是这么做的

训练AI成为安卓安全守护神?没错,谷歌就是这么做的

Adrian Ludwig —— 安卓安全总监

“如果有10亿台设备,无论你把安全做到多好,其中一些肯定会有漏洞,一些则已被攻破。”Ludwig说,“想控制住这种情况,你需要数据,还需要对数据进行分析。”Ludwig曾在美国国家安全局供职8年,在入职谷歌之前还在安全咨询公司@stake工作过更长时间。

深层本能

持有这种想法的人不止Ludwig一个。百度,“中国的谷歌”,采用深度神经网络来识别恶意软件。Deep Instinct和Cylance这样的安全初创公司也这么做。正如神经网络能识别照片的特定特征,认出恶意软件应用,或者能使你的手机暴露给恶意黑客的操作系统缺陷代码,也是可以的。

不过,这场革命还没走到那一步。谷歌的工作尚处于早期阶段。“这不是一次科学实验,是真实的。但它不是主流解决方案。”Ludwig说道。目前,谷歌尚未收集到足以训练其神经网络的问题量。“大多数App都安全而精良。只是有一些坏分子。”Ludwig的同事Rich Cannings说,“真的很难找到有问题的部分。”讽刺的是,要想真正拥抱机器学习,谷歌需要更多的安卓问题来反馈给神经网络,或者说,更好的神经网络。

这并不是说安卓安全记录就毫无瑕疵。Joshua Drake,刚刚发现安卓系统重大字符串漏洞的安全机构Zimperium的一名研究员,他说:“1年前,我真的觉得安卓根本没在安全上下功夫。”机器学习也不是万灵丹。它帮不了谷歌在所有安卓手机制造商之间分发安全补丁。但它能帮助识别安全漏洞——如果当前技术被完善了的话。

左:安卓安全团队软件工程师Nick Kralevich;右:SafetyNet Tech领袖Rich Cannings

门口的保镖

Sebastian Porst负责谷歌安卓系统恶意或缺陷应用识别团队。他想把自己从繁重的工作中摘出来,让机器来干那些琐碎的活儿。“这就是终极目标。”他说。

在谷歌,这种想法一点都不奇怪。事实上,驱动谷歌运行的真是这种哲学。“我们最终将得到这么一个团队——团队成员会很快厌烦于手工处理任务,习得编写软件来取代之前手工工作的必备技能。”负责监管谷歌大量在线服务运维的Ben Treynor Sloss说道。

在安卓安全团队内部,该项工作还没推进到那种程度,但Porst和他的团队已经建立起一套自动化系统,至少在这条路上迈进了一些。这套系统被称为“保镖(Bouncer)”,分析上传到谷歌Play Store的每一个App,寻找恶意软件或问题代码,然后运行这些App以便分析其行为。“保镖”系统还关联上了谷歌的网页爬虫,也就是为其搜索引擎建立互联网索引的工具,这样就能自动扫描上传到任意网站的安卓App了。“我们扫描每一个能找到的来源上的App。”Porst说。如果某个未知App被上传到了一定数量的安卓手机上,该系统会捕获到它,分析其代码和行为。

Sebastian Porst,安卓反恶意软件团队经理

在过去,“保镖”根据一套预定义的规则运行。但现在,为磨砺该系统,谷歌把目光投向了机器学习。在扫描所有这些App的过程中,该系统收集到了关于每个App的大量数据。这些数据被Porst成为“信号”——定义该App的特征和行为。如今,该团队正将这些信号反馈给神经网络,让系统可以学习那些特征组合指示了恶意软件。“我们可以利用机器学习来分辨出到底哪些信号真正与潜在有害行为相关联,而哪些又是完全无害的。”Porst说。

该系统真的有用,但只在一定程度上有用。目前,Porst说,“安全专家还不能被机器学习算法替代。”事实上,机器学习只是该团队扫描途径中的一个部分,如果该系统将某个App标记为有问题的,人类工程师通常还要再复核一遍。问题在于数据太少了。Porst说,这项技术对Play Store之外的大量App更有效——主要原因在于,上传到Play Store的软件就没几个有害的。现今这形势,恶意分子都知道不要轻易尝试了。

但这也不是说机器学习就对Porst和团队没有提升。Eli David,安全初创公司Deep Instinct首席技术官,声称他的公司通过跨平台分析数据(不止安卓,而是所有平台),建立起了非常有效的模型。“你的视野,必须很大。”他说。

真正的集群模糊

Jon Larimer在发现了安卓系统的一个漏洞后在谷歌找到了职位。他发现的是图形设备驱动缺陷,也就是在安卓手机上渲染图形图像的代码中的漏洞。他编写的漏洞利用代码可以通过物联网获取到手机的完全控制权。当他把该利用代码展示给Ludwig及谷歌安全团队,Ludwig说:“不管怎么说,你总得站到人前。”

现在,Larimer和他的团队正在打造一个能自己发现此类漏洞的系统。

Jon Larimer,高级安全工程师

像Nick Kralevich这样的安卓安全工程师,编写用于清除系统内可利用漏洞的代码。但漏洞依然不断出现。因此,利用最初由负责谷歌Chrome浏览器安全的团队打造的技术,Larimer和其他人正在创建一个模糊测试处理系统,可以通过往里面灌入所有种类的随机输入来查找软件漏洞。模糊测试很常见,但这个名为“集群模糊(Clusterfuzz)”的系统,可以同时模糊处理几十台安卓手机。

某些情况下,它会测试这些手机的虚拟化身,能在任一时刻跨上千台服务器测试1500台。实体设备当然也能测试,因为该硬件能真正改变手机的行为。在谷歌总部43栋里,你会发现大量陈列架,上面摆满了接入到这个系统的手机。“我们团队没有多少人。”他说,“但我们拥有的优势是规模,我们可以使用成千上万个CPU。”

目前,谷歌将机器学习应用在了发现更多漏洞上。Larimer及其团队在开发能识别每个Clusterfuzz遇到的文件结构的神经网络。只要系统知晓了文件结构,就能更彻底地测试文件,不再是仅仅向文件投放随机输入,而是使用符合文件特定结构的输入来测试。Larimer解释道,在学习识别文件运行上,神经网络可以帮助模糊器触碰尽可能多的代码。就像Porst在机器学习方面的工作,该项目也处于早期阶段,但很有前景。“我们最终能够达到100%覆盖的地步。”Larimer说,“这就是未来。”

Adrian Ludwig和Jon Larimer

寻找中间地带

撇开其他不谈,所有这些工作都显示出,安卓安全正在改变。除了机器学习,谷歌还铺开了一个大型漏洞奖励项目,由前微软人Scott Roberts领导,且Ludwig在解释他的团队如何处理安全上投入了更大的努力。像Joshua Drake这样的外部研究人员,惯于质疑谷歌在安卓早期对安全的态度。但即使是Drake也会告诉你,他看到了改变的迹象,尤其是在去年夏天他披露了Stagefright漏洞之后。“变化非常之大。”Drake说,“他们已经意识到自己需要做更多。”

谷歌不认同苹果模式。但Ludwig和他的安卓团队清楚,更老的方法同样未必有用。他们相信,理想的方法存在于二者之间。其他研究人员也同意这个观点。“两种生态系统都各有优缺点。”Drake说,“这个问题没那么简单。”如果情况就是如此,机器学习在手机安全的未来中能切实起到关键作用——只要他们能真的用起来。(翻译:nana,编辑:picar)

文章来源:创业邦
喜欢 (0)
分享到:

评论 抢沙发

登录后发表你的伟大言论!

立即登录