1、从App到小程序,有一些漏洞会一直存在吧? 小程序改变了业务前端实现的形式,但是基本的业务没有变化。所以对于小程序服务商而言,有两方面风险依然存在: Web接口的漏洞。例如xss、csrf、各类越权等等。这类是服务构架本身的漏洞。 业务功能的逻辑漏洞。例如:订单额任意修改,验证码回传、找回密码设计缺陷等等。这些也是后端服务本身的漏洞。 2、小程序堵上了哪些漏洞的可能? 传统的App客户端,由于代码比较复杂,体系比较大,经常存在很多漏洞。现在,由微信提供接口,服务商只需要调用微信的接口就可以实现服务功能。这使得以前针对App客户端的攻击行为失去了对象。 小程序跑在微信中,以前人们关心App客户端手否存在漏洞,现在人们需要关心微信是否安全了。
【小程序和微信的关系,类似于App和系统的关系】 举个例子。 App客户端会直接调用系统服务,所以漏洞很多跟系统版本相关,比如Android的webview漏洞,uxss漏洞等。 以Android为例,微信自己使用的是修改了Chrome内核的X5内核,修复了webview远程代码执行漏洞,所以即使在低版本的Android系统上也不用考虑这个漏洞的影响。 3、那么对于腾讯自己的X5内核,如果爆出了新的漏洞,是否会影响小程序呢?没错。理论上说,小程序的漏洞应该会受微信客户端本身的影响,比如出现了一个x5内核新的uxss漏洞,有可能就能造成这些应用的敏感信息泄露。 4、是否可以完整科普一下微信小程序的安全结构呢?微信小程序是一种插件。 插件框架的基本特点是:基础程序(微信)提供服务给插件(小程序)。 在Android上,小程序使用X5内核接口; 而在iOS上,小程序使用的是JS Core接口。 接下来我们以iOS为例进行解释。 微信是通过将一些服务(比如:绘图等)通过JS接口暴露给小程序。 我理解的安全模型是:小程序环境--->微信环境--->系统环境。
【小程序安全模型:小程序环境--->微信环境--->系统环境】 5、那么,对于微信小程序来说,存在哪些安全风险呢? 由于微信主程序会通过JS接口向小程序暴露规定的服务。如果小程序可以获取到规定服务外的信息(比如:用户的钱余额等)即是信息泄露。 总之,可以将微信理解成浏览器,将小程序理解成网页。如果执行小程序可以在微信中执行任意代码,就是传统意义上的远程代码执行。 例如: 1)攻击微信。理论上来说,如果可以突破小程序的执行环境(JS),在微信主程序中获得代码执行,就成功制造了代码执行的漏洞,如:执行一个小程序,就可以往任意群中发红包。
【通过拿到微信主程序代码权限而攻击红包功能】 2)实现小程序之间的跨站攻击。可能还存在一些其他类型的漏洞,实现跨站攻击。例如从一个小程序访问了其他小程序的数据。
【通过拿到微信主程序代码权限而攻击红包功能】 2)实现小程序之间的跨站攻击。可能还存在一些其他类型的漏洞,实现跨站攻击。例如从一个小程序访问了其他小程序的数据。
【脑洞:通过小程序,一步步占领系统控制权】 6、以上的这些攻击方法,出现的可能性有多大呢?以上所说的攻击可能需要极强的攻击能力。但是真实的场景下,可能很多攻击都来自脚本小子。攻击效果不一定会到如上所说的那么严重,估计大多数也就是获取一些信息。 7、预计微信会做哪些措施来对抗可能存在的威胁呢?所有微信小程序一定会接受微信的审核。理论上恶意小程序是不会被上架的。 当然,苹果也不会允许恶意程序上架,但是还有有人成功把Pangu 9.3的越狱程序成功上传到AppStore,虽然很快就下架了。这里的问题是,微信可能无法自动检测出某些恶意程序,或者审核人员的专业背景可能没有那么强。 基本的攻击路径是:攻击了小程序后,然后通过小程序实现方面的漏洞进而攻击微信。所以按道理,微信应该为小程序创建一个沙盒环境,不知道微信是否这样做。 8、所以,我们需要担心黑客通过微信小程序盗走我的红包吗?目前看来,没这个必要。 根据以往的经验,腾讯在自身产品的安全性上,会投入巨大的精力。而对于皇冠级产品微信,相信腾讯更是不敢有丝毫疏漏。就在小程序退出的当天,TSRC(腾讯安全应急响应中心)也发布了英雄帖《微信小程序如约而至,安全需要你的守护》,宣布即日起到2017年1月20日,“重金”收集有关微信小程序的漏洞和威胁情报。
|