今天早晨,微信小程序正式刷爆了朋友圈。作为中国吃瓜群众的老朋友,雷锋网宅客频道本着看热闹不怕事大的原则,决定探寻一个重要的问题:
黑客有没有可能通过微信小程序的漏洞,偷偷地用你的微信给他发一个大红包?
![](http://img.ithome.com/newsuploadfiles/2017/1/20170109141211_1913.jpg)
为了搞清这个问题,雷锋网宅客频道咨询了几位黑客大牛,整理回答如下:
1、从App到小程序,有一些漏洞会一直存在吧?小程序改变了业务前端实现的形式,但是基本的业务没有变化。所以对于小程序服务商而言,有两方面风险依然存在:
Web接口的漏洞。例如xss、csrf、各类越权等等。这类是服务构架本身的漏洞。
业务功能的逻辑漏洞。例如:订单额任意修改,验证码回传、找回密码设计缺陷等等。这些也是后端服务本身的漏洞。
2、小程序堵上了哪些漏洞的可能?传统的App客户端,由于代码比较复杂,体系比较大,经常存在很多漏洞。现在,由微信提供接口,服务商只需要调用微信的接口就可以实现服务功能。这使得以前针对App客户端的攻击行为失去了对象。
小程序跑在微信中,以前人们关心App客户端手否存在漏洞,现在人们需要关心微信是否安全了。
![](http://img.ithome.com/newsuploadfiles/2017/1/20170109141212_3827.jpg)
【小程序和微信的关系,类似于App和系统的关系】
举个例子。
App客户端会直接调用系统服务,所以漏洞很多跟系统版本相关,比如Android的webview漏洞,uxss漏洞等。
以Android为例,微信自己使用的是修改了Chrome内核的X5内核,修复了webview远程代码执行漏洞,所以即使在低版本的Android系统上也不用考虑这个漏洞的影响。
3、那么对于腾讯自己的X5内核,如果爆出了新的漏洞,是否会影响小程序呢?没错。理论上说,小程序的漏洞应该会受微信客户端本身的影响,比如出现了一个x5内核新的uxss漏洞,有可能就能造成这些应用的敏感信息泄露。
4、是否可以完整科普一下微信小程序的安全结构呢?微信小程序是一种插件。
插件框架的基本特点是:基础程序(微信)提供服务给插件(小程序)。
在Android上,小程序使用X5内核接口;
而在iOS上,小程序使用的是JS Core接口。
接下来我们以iOS为例进行解释。
微信是通过将一些服务(比如:绘图等)通过JS接口暴露给小程序。
我理解的安全模型是:小程序环境--->微信环境--->系统环境。
![](http://img.ithome.com/newsuploadfiles/2017/1/20170109141212_6212.jpg)
【小程序安全模型:小程序环境--->微信环境--->系统环境】
5、那么,对于微信小程序来说,存在哪些安全风险呢?由于微信主程序会通过JS接口向小程序暴露规定的服务。如果小程序可以获取到规定服务外的信息(比如:用户的钱余额等)即是信息泄露。
总之,可以将微信理解成浏览器,将小程序理解成网页。如果执行小程序可以在微信中执行任意代码,就是传统意义上的远程代码执行。
例如:
1)攻击微信。理论上来说,如果可以突破小程序的执行环境(JS),在微信主程序中获得代码执行,就成功制造了代码执行的漏洞,如:执行一个小程序,就可以往任意群中发红包。
![](http://img.ithome.com/newsuploadfiles/2017/1/20170109141213_6840.jpg)
【通过拿到微信主程序代码权限而攻击红包功能】
2)实现小程序之间的跨站攻击。可能还存在一些其他类型的漏洞,实现跨站攻击。例如从一个小程序访问了其他小程序的数据。
![](http://img.ithome.com/newsuploadfiles/2017/1/20170109141214_7469.jpg)
【小程序之间的“跨站攻击”】
当然iOS与Android实现可能还会有区别,攻击面可能也有差别。
3)攻击操作系统。由于安全环境框架:小程序环境--->微信环境--->系统环境。所以理论上存在着这种可能:
结合系统漏洞,也许可以用一个恶意的小程序就实现了越狱,不需要用户装一个应用。(当然,用小程序越狱,可能很少人会这样做。)
![](http://img.ithome.com/newsuploadfiles/2017/1/20170109141214_2326.jpg)
【脑洞:通过小程序,一步步占领系统控制权】
6、以上的这些攻击方法,出现的可能性有多大呢?以上所说的攻击可能需要极强的攻击能力。但是真实的场景下,可能很多攻击都来自脚本小子。攻击效果不一定会到如上所说的那么严重,估计大多数也就是获取一些信息。
7、预计微信会做哪些措施来对抗可能存在的威胁呢?所有微信小程序一定会接受微信的审核。理论上恶意小程序是不会被上架的。
当然,苹果也不会允许恶意程序上架,但是还有有人成功把Pangu 9.3的越狱程序成功上传到AppStore,虽然很快就下架了。这里的问题是,微信可能无法自动检测出某些恶意程序,或者审核人员的专业背景可能没有那么强。
基本的攻击路径是:攻击了小程序后,然后通过小程序实现方面的漏洞进而攻击微信。所以按道理,微信应该为小程序创建一个沙盒环境,不知道微信是否这样做。
8、所以,我们需要担心黑客通过微信小程序盗走我的红包吗?目前看来,没这个必要。
根据以往的经验,腾讯在自身产品的安全性上,会投入巨大的精力。而对于皇冠级产品微信,相信腾讯更是不敢有丝毫疏漏。就在小程序退出的当天,TSRC(腾讯安全应急响应中心)也发布了英雄帖《微信小程序如约而至,安全需要你的守护》,宣布即日起到2017年1月20日,“重金”收集有关微信小程序的漏洞和威胁情报。
![](http://img.ithome.com/newsuploadfiles/2017/1/20170109141215_2955.jpg)
【来自TSRC的“英雄帖”】
雷锋网宅客频道联系了TSRC的掌门人Flyh4t,他表示暂时还没有更多的消息可以透露。
随着小程序的普及应用,你可以脑补安全研究员和黑产们围绕着小程序展开了新一波的赛跑。如果小程序果真存在致命漏洞的话,也希望安全研究员能够领先黑产发现它们。