进入主要内容

一个 AI 在 Android 应用中找到了 24 个漏洞:该怎么办?


一款人工智能把 Android 应用翻了个底朝天,找出了 24 个漏洞。里面有一款下载量超过一千万次的地图应用,它可能让你手机上的任何其他应用跟踪你的行程。还有维基百科应用,只要一个简单的恶意链接,就可能让你的账号落入别人手里。

讲出这件事的是 GitHub Security Lab,也就是 GitHub 的漏洞猎手团队,GitHub 是那个全世界开发者存放代码的大网站。他们说这件事是在 9 月 28 日。最有意思的还不是这个数字。而是他们把这套方法公开给了所有人。

一部固定在汽车仪表板上的智能手机显示着导航地图;后视镜里,一个小侦探机器人正拿着放大镜观察屏幕

你的 GPS 在给你指路,而另一个人正在做笔记

你的地图应用是怎么泄露你要去哪里的

这个应用叫 OsmAnd。这是一款免费的导航应用,很受徒步者和骑行者欢迎,因为没网络也能用。

要理解这个漏洞,你得先知道地图是怎么显示在手机上的。它不是整张一次性到达的:地图会被切成一块块小方格,也就是“瓦片”,应用会在你移动时一块块地去获取。你开车去那慕尔,应用就请求那慕尔方向道路的方格。很合理。

只不过,OsmAnd 留了一扇没关严的门。这扇门原本是用来导入设置的,按理说只该对应用自己打开。实际上,手机上安装的任何其他应用都能偷偷往里面塞设置,不需要任何特殊权限,也不会让你看到任何东西。比如这一条:“从现在开始,去我的服务器上获取你的瓦片。”

两行示意图。正常情况下:你的手机向官方地图服务器请求地图瓦片。遭到攻击后:一个恶意应用更改设置,你的手机向黑客的服务器请求瓦片,黑客记录每一块被请求的瓦片,并还原你的行程

告诉我你请求了哪些地图碎片,我就能告诉你在哪里

这样一来,就彻底没招了:如果是黑客的服务器把地图碎片交给你,它就知道你请求了哪些碎片,也就知道你在哪里,以及你经过哪些地方。你的行程会自动在它的日志里显现出来。GitHub 说,同一个漏洞还可能泄露你的路线,包括出发点和终点。与此同时,你还在悠哉悠哉地开着车,地图显示得完美无缺。这才是让我背后发凉的地方:什么都看不出来。

维基百科:一个恶意链接,你的账号就落入别人手里

第二个详细例子,是 Android 版维基百科应用。它接受“深层链接”,也就是能直接在应用里打开页面,而不是打开浏览器的链接。问题在于:它没有正确检查目标地址。接连利用两个验证错误后,黑客就能让它加载一个属于自己的页面,拿走那些让你保持登录状态的小文件,也就是“cookies”,并接管你的维基百科账号,以及同一基金会旗下的姊妹网站账号。

好吧,被盗的维基百科账号又不是你的银行账号。但想想那些修改着数百万人阅读的文章的人。一个受人尊敬的贡献者账号落入坏人手里,就等于给虚假信息敞开了一扇门。

人工智能负责找,人类负责筛

现在说说最让我感兴趣的部分,作为一个开发者。研究员 Kevin Stubbings 并没有把一款应用的代码塞进人工智能,然后问它“给我找漏洞”。那样只会得到一堆乱七八糟的东西。他把工作拆成一个个小步骤,就像一张检查清单:先找出所有其他应用可以进入的门,然后针对一份 Android 上已知陷阱的清单,逐个检查每一扇门。GitHub 把这些方法叫作“taskflows”,而且它们都是公开的。

他得出的结论诚实得让人耳目一新。人工智能特别擅长寻找。它不擅长判断严重程度。他说,人工智能经常报告一些漏洞,而这些漏洞成立的前提是出现一种“现实中几乎不可能遇到的情况”。不过,当你让它制作证明确实存在漏洞的东西,也就是那个能触发漏洞的小程序时,几乎“不需要改什么”。

三个步骤的示意图。一:AI仔细检查应用的入口并提出漏洞。二:一名人类专家核查每条线索并判断其严重程度,很多线索被排除。三:确认了24个漏洞并报告给开发者

机器把所有闪闪发光的东西都带回来,专家负责在黄金和啤酒胶囊之间挑拣

这很重要,原因很简单:OsmAnd不是一家跨国公司。这是一个由小团队支持的自由软件项目,就像你在不知情的情况下使用的数千个应用一样。这些团队从来不会花几千欧元做一次安全审计。一套流程在中等规模的项目上运行一两个小时,再加上GitHub的编程助手Copilot订阅,就成了一次任何人都负担得起的审计。我在八月就已经说过了:这些工具正在清理多年来积累的旧代码,这真是个好消息。

反面也很明显,GitHub并不隐瞒这一点:公开的流程同样会帮助那些寻找漏洞并想利用它们的人。双方的竞赛已经开始。还是让好人先用起来吧!

具体来说,在你的手机上

放心吧,就OsmAnd的这个漏洞而言,首先必须有一个恶意应用被安装在你的手机上。没有这个装在你口袋里的帮凶,没人能从世界另一端跟踪你。GitHub没有在那篇文章里给出修复后的版本号,但他们的团队有一条规则,就是在发布任何东西之前先通知开发者,并给他们留出修复的时间。

所以有三个习惯,既适用于这两个应用,也适用于其他所有应用:

  • 在Play Store中启用自动更新。这样修复程序就会在你不必操心的情况下到达你的手机;
  • 从Play Store安装你的应用,不要从论坛上找到的文件或陌生人发来的文件安装;
  • 时不时清理一下。2019年安装后再也没打开过的手电筒,正是那种已经没人再监控它在做什么的应用。

Android手机的三个习惯:一,在Play Store中启用自动更新;二,只从Play Store安装应用;三,删除不再使用的应用

三个动作,五分钟,口袋里就少了一个潜在的帮凶

我得出的结论是,我们已经到了这样一个时刻,一台机器会重新检查那些没人有时间重新检查的免费应用代码。一下子就是二十四个漏洞,出现在我们以为安稳无事的应用里。来,今晚去清理一下你的手机吧:我敢打赌,你会在那里找到一个手电筒!

来源

本文在Claude Code的帮助下完成,由我审阅和修正。

加入对话

您必须拥有一个账户才能评论这篇文章。注册免费,耗时不到一分钟。

  • 每天免费下载的 XMLTV 文件
  • 评论文章并回复其他读者
  • 通过电子邮件获知您关注的新文章

目前没有评论。

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙