最近这几天关于通过手机监听用户敏感信息,通过NLP处理传到云端做大数据分析的事儿吵的沸沸扬扬的。搞技术的人忙着撕逼能不能监听、搞PR的人忙着各种自证、媒体记者忙着找专家追热、互联网网民对于隐私,除了慌张显然也干不了什么。
我们不一样,本着较真且不作恶的态度,我们的安卓小伙子写了一个不痛不痒的demo。
观看视频前我想做如下重要声明:
本视频仅用于技术研究的测试用途,不会考虑使用在其它路径,恶意有心人不要打扰,别来试探我们的底线;
本视频所演示内容,是基于安卓环境下的测试演示,与安卓系统有关,但与手机品牌无关;
本视频所演示内容,只是强调从技术角度是可以实现后台监听,然后再用于大数据分析的,但并不是说某些厂商干了这些事;
技术能不能实现是一回事儿,别人做没做是另外一件事儿,有心人不要恶意混搅。
视频观看地址:weixin.qq.com
视频看完了,笔者对其中可能引起的争议做了一个简单解答。
由于时间关系,我只做了后台无感知监听,语音转文字传到服务器,做了一些基础的nlp处理,懂技术的人都了解,无感知拿数据是最麻烦的环节,而后面基于nlp分词,提取特征关键词,再做大数据推荐,其实就没啥难度了,都是时间问题。
对于是否偷听这个事情我不评价,这个需要相关部门做取证,做技术分析才能得出结论。录制视频的目的是想回应某些自称目前的技术无法实现用户手机锁屏情况下,进行监听、上传、分析、大数据营销这样的能力的观点。
不好意思,我觉得这个观点不服。
网络尖刀人工智能实验室不是研发出身,我们是安全出身,所以一定是按照黑客的习惯,用恶意软件、恶意木马的思路来实现这个需求,如视频所示,我们只在用户界面获取了一个麦克风录音权限,所以说在安卓上的门槛并不是很高,这个思路就是典型的。
如果是我来写代码,我会把需要触发的词做个库留在App上,用户讲话内容触发特定的词,则开始唤醒这个应用开始监听及分析,这样就可以降低能耗到无感知。
首先大部分用户都是按home键去返回菜单和切换App,进程一直都是挂在后台进程上的,这样不是杀掉进程,即便是你把我的App退了,那我在给你们说一个组合攻击的方法。
用户在手机后台关掉了A应用,但B应用仍在后台运行,A应用注册了一个服务对外暴露出去,B应用根据它的服务名仍然可以把A唤醒,这样就不怕服务因人工杀掉(编注:从手机后台彻底关闭)导致无法监听了。
另外,很多手机厂商会对一些大型互联网厂商提供白名单,白名单厂商的app不需要授权,就可以获取一定的权限,这个是杀不掉的。
某些研发同学提出这个质疑的时候,我表示是懵逼的,哥们代码可能写的不行啊,首先我希望你明白一个这样的思路,监听的本质并不一定非得去对某业务进行持续占有和使用,监听的本质是窃取啊。
当用户打电话的时候,本质上虽然在使用麦克风,我再调取一个麦克风就会有可能被占用,但是电话录音是如何做的呢?
copy流啊,我只是在copy你麦克风的流,这样就可以监听了啊,录音功能的App使用麦克风不允许占用,要打断前一个音频,本意是担心串流,所以写代码的时候判断有没有人占用,如果有,就提示另外一个要断开,但不代表这样就没办法实现了。
安卓门槛很低,但是iOS确实还是要有技术水平的,避免有些人以此作恶,我不讲那么细致,我只提一个思路,做一些特殊的处理想办法沙箱逃逸,开发两个App植入在目标手机里,用A去调用B的录音权限,然后在后台监听,这样B就可以欺骗系统,实际是在前台监听,所以就没有显示被“录音”。
至于怎么欺骗过审核?苹果对此有无白名单?我不知道,我不说,我不会,我只是个单纯的技术研究爱好者,全团队都是。
某些人说iOS下,你后台怎么运行?避免有人可疑作恶,我只能说多去想一下组合拳思路,至于iOS的不死进程,可以查看一下“keepAliveTimeout handler”的相关内容。
相比安卓,iOS无感知门槛真的很高,这个我认可的,但是不是不知道,要看你付出的成本到底是怎样的。
hey Siri是苹果自己的底层应用,写在系统里的,给足了权限,但是iOS系统上面的应用,需要使用权限的时候,苹果控制的还是很严格的。
再次强调,技术的本身从来没有问题,有问题的是人和社会,希望大家抱着学习的态度去研究技术,而不是将技术用于恶意的用途,那些别有用心没有道德底线的人,迟早付出代价的。
(作者:网络尖刀团队创始人曲子龙;文章来源:网络尖刀 雷锋网宅客频道)