安卓系统漏洞形势分析
本章基于“360透视镜”应用用户主动上传的80万份漏洞检测报告,检测内容包括近两年(最新漏洞检测更新至2017年12月)Android与Chrome安全公告中检出率最高的64个漏洞,涵盖了Android系统的各个层面,且都与具体设备的硬件无关。我们统计并研究了样本中的漏洞测试结果数据,并对安全状况予以客观具体的量化,希望引起用户和厂商对于手机系统漏洞的关注与重视,为Android智能手机用户的安全保驾护航,并希望以此来推进国内Android智能手机生态环境的安全、健康发展。
手机系统安全性综述
系统漏洞的危险等级
此次报告评测的64个系统漏洞,按照Google官方对系统漏洞的危险评级标准,按照危险等级递减的排序规则,共分为严重、高危、中危三个级别。即“严重”级别的漏洞对系统的安全性影响最大,其次为“高危”级别漏洞,然后为“中危”级别漏洞,低危漏洞未入选。
在这64个漏洞中,按照其危险等级分类,有严重级别漏洞11个,高危级别漏洞36个,中危级别漏洞17个。其中高危以上漏洞对用户影响较大,在此次安全评测中对此类漏洞的选取比例达73.4%。
此次系统安全分析结果显示: 87.5%的Android设备受到中危级别漏洞的危害,93.9%的Android设备存在高危漏洞,88.1%的Android设备受到严重级别的漏洞影响。
系统漏洞的危害方式
此次报告评测的64个系统漏洞,参照Google官方对系统漏洞的技术类型分类标准并加以适当合并,按照各漏洞的明显特征分类,共分为远程攻击、权限提升、信息泄漏三个类别。远程攻击漏洞是指攻击者可以通过网络连接远程对用户的系统进行攻击的漏洞,权限提升是指攻击者可以将自身所拥有的权限得以提升的漏洞,信息泄漏则为可以获得系统或用户敏感信息的漏洞。
在这64个漏洞中,按照其危害方式分类,有远程攻击漏洞30个,权限提升漏洞24个,信息泄漏漏洞10个。
此次系统安全分析结果显示:92.3%的设备存在远程攻击漏洞,91.5%的设备存在权限提升漏洞,85.6%的设备存在信息泄露漏洞。与往期相比,虽然检测漏洞数又有所增加,但影响设备比例有所降低,主要原因为部分设备的厂商大幅度更新手机的安全性,将设备的补丁等级保持与谷歌同步,修复了所有漏洞。
为了观察不同类别的漏洞中哪些影响的设备比例最多,我们分别对三种类别的漏洞进行统计排序,挑选出了各类别中影响设备比例占比前三名的漏洞,其中影响最广泛信息泄露漏洞仍然为CVE-2016-1677,72.5%的设备都存在这个漏洞,环比上升1.8%;权限提升漏洞中,CVE-2017-0666依然影响最广,77.7%的设备均受影响,影响比例下降5.2%;远程攻击漏洞中,CVE-2015-7555影响设备依然最多,影响77.7%的设备,下降10.5%。而第三季度中我们关注的CVE-2016-3861在本季度中影响设备比例已经退出Top3,取代它的位置是漏洞CVE-2015-6764,影响63.0%的设备。
第二季度中Android 新修复并公开的CVE-2015-7555漏洞在本季度中影响设备数量依然十分庞大,同比仅降低了10.5%,并且预计在未来一段时间仍会如此。CVE-2017-13156即是12月披露的“Janus”漏洞,影响59.7%的设备。
远程攻击漏洞,是危险等级高、被利用风险最大的漏洞,也是我们最关注的漏洞,为此我们统计了每期报告中远程攻击漏洞排名Top3的趋势变化,结果如下图所示。
远程攻击漏洞整体呈下降趋势,但是受漏洞影响的设备依旧保持在较高比例,4成以上的用户手机仍然处于被远程攻击的风险之中,安全形势并不乐观。
系统浏览器内核的安全性
系统浏览器内核是用户每日使用手机时接触最多的系统组件,不仅仅是指用户浏览网页的独立浏览器,实际上,许多安卓应用开发者考虑到开发速度、保障不同设备之间的统一性等因素,会使用系统提供的浏览器内核组件。因而用户在每日的手机使用中,大多会直接或间接地调用系统浏览器内核。
在此次评测中,系统浏览器内核是指Android系统的Webview组件的核心,在Android 4.4之前,Android系统的Webview是基于Webkit的,在Android 4.4及以后的系统中,Webview的核心被换成了Chromium(Chrome的开源版本,可近似理解为Chrome)。
在统计的样本中,Webkit内核版本由于其版本较为一致,故在示意图中仅占一块,其余为Chrome内核的不同版本。本季度Webkit所占比重几乎为0%,较上季度降低9%。截止至本季度,当前Google发布的Android平台Chrome稳定版的内核的最新版本为Chrome 60,而在此次检测中有1%的用户将自己手机中的浏览器内核升级至最新。而从图中可以看出,Chrome内核版本大于等于55的设备占24%。对比上一季度的数据,版本大于50的设备比例有所增长,从18%增至27%。在此次检测中,并且最新版本60在国内用户之中占比1%,同比上季度增长0.91%,说明国内厂商有更新浏览器内核的举措。总的来说,浏览器内核整体版本有所跟新推进,国内安卓生态圈中对浏览器内核的更新进度相对有所增强,但仍存在严重的更新滞后问题,第二节远程攻击漏洞中跻身Top3的CVE-2015-6764,即是浏览器内核漏洞,足以说明这一点。
为了研究不同浏览器内核版本的安全性,我们统计了不同版本的浏览器内核的平均漏洞个数。下图显示了不同Webview版本平均漏洞数量,其中内核版本在Chrome 46以下的版本中漏洞数量明显高于Chrome 47以上版本,Chrome 55以上版本漏洞数量相对最少。从图中可以看出较新版本浏览器内核漏洞数量相对较少,其中Chrome 57版本及以上的设备平均漏洞检出情况则为0。以上数据充分说明保持最新版本的浏览器内核可以十分有效增强手机浏览器内核的安全性。
浏览器内核漏洞多数可通过远程方式利用,因而对于用户的手机安全危害较大。安卓系统浏览器内核漏洞的分布情况如下图所示。其中87.4%的设备存在至少一个浏览器内核漏洞,18.2%的设备同时存在4个浏览器内核漏洞,为漏洞数量最多的设备。有12.6%的设备不受这些漏洞影响。较上一季度,浏览器安全情况有所上升,但上升比例不大。整体来看浏览器安全状态有所缓解,浏览器内核版本的更新所带来的效果十分显著,但老旧设备的升级情况无明显好转,用户依然暴露在浏览器漏洞的威胁之中。
系统漏洞的数量分布
为了研究用户手机中漏洞数量的分布规律和对用户手机中的安全等级做一个直观的评分,我们统计了所有样本中手机存在漏洞个数的比例分布,结果如下图所示。
在此次测试中,我们检测了64个已知漏洞,有93.94%的设备存在至少一个安全漏洞,漏洞最多的设备同时包含有49个安全漏洞。这一数据较上一季度95.58%的比例降低幅度不大,其他漏洞个数的比例情况与上一季度相比整体有所降低,但依然保持较高的比例。
为了研究近两年用户手机中漏洞数量的变化,同时反映用户手机安全性的变化情况,我们总结了2016年到2017年的漏洞数量比例分布及趋势,结果如下图所示。
可以发现,手机存在漏洞的比例,整体呈下降的趋势。2017年第一季度,10个及以上漏洞的比例下降幅度增加,跟该季度较高比例的系统更新有直接关系,第五章第二节也会有相应的数据反映这一现象。2017年第一到第二季度漏洞比例有所上升,与这期间新增漏洞检测样本数量有关,这也说明一旦加大检测力度,用户手机整体的安全形势将会表现的更加严峻。
如果手机厂商积极做好手机系统的安全补丁更新工作,现行手机系统的安全情况就会有明显的提升。虽然国内厂商在不断地对安卓设备进行安全更新,但是安全漏洞也在层出不穷,存在漏洞的设备比重仍然居高不下。
手机系统版本安全性
由于Android系统在升级时不可直接跨版本升级而厂商往往又不愿意为旧机型耗费人力物力适配新系统,因而在一定程度上导致了Android系统版本的碎片化。
为了研究不同版本的安卓系统的安全性,我们统计了样本手机所使用的安卓版本分布,并进一步对这些不同的版本的漏洞数量进行了统计分析。
采用Android系统版本的分布情况如下图所示,在此次样本中,Android系统占比最高的3个版本分别为Android 6.0、Android 5.1和Android 4.4,比例分别达到38%、 28%和22%,而高版本中Android 7.0和7.1版本所占比例分别为3%和4%, Android 8.0及以上接近为0。
与上一季度相同,Android 6.0依旧成为最流行的系统版本,与历史进程和我们的预期均相符。Android 5.1 和Android 4.4所占比例继续降低,但低于6.0版本的设备依然占据了约60%的比例。Android 7.0和7.1的比例有小幅度上升,这不光意味着版本号上的更新,更意味着更多的用户能够享受到新版Android 系统所带来的一系列安全更新,其中包括引入的隐私敏感权限动态管理功能,而这在一定程度上极大的增强了用户手机隐私的安全性。目前最新的系统为Android 8.0,其中引入了一项叫做Project Treble的功能,在未来可以缓解安卓系统更新滞后的问题,我们也希望看到这一功能得以最大化发挥作用。但由于新系统、新设备无法第一时间大范围更新,故短时间内,安卓系统的碎片化和老旧设备的比例依然会保持较高比例,安全状况依然形势严峻。
通过对每个Android版本平均漏洞数量进行统计,得到如下图所示结果。从图中可看出Android 5.1及其以下版本平均漏洞数量较多,且整体较上一季度的平均漏洞数保持增加趋势,这很大程度上是由于部分老旧设备无法获得更新而我们检测的漏洞又在持续增加,因此造成了这种现象;而Android 6.0以上系统则更为安全,平均漏洞数量急剧降低。其中比较新的Android 7.0和7.1的系统中,平均漏洞数较上一季度有所降低,这主要是由于新版本的系统中安全补丁推送已经较为普及,厂商对于新版本系统的推送积极度有所上升。
从图中可以看出,安卓系统版本与漏洞数量并不是简单的线性关系。Android 5.0以下版本漏洞数量随版本升高而递增,并不是说明Android版本越高越不安全,而是因为此次检测主要关注的是最近两年的漏洞,而Android 4.4发布距今已经过去了3年的时间,因而相对版本越老的Android系统因为不支持较新的功能而可能不存在相应的漏洞。Android 5.0以上版本,随着系统版本升高,漏洞数量急剧减少。
环比上季度的数据,除7.0和7.1外,其余版本系统的平均漏洞数均有所增加,这是由于本季度又新修复和公开了一些漏洞,而这些漏洞中有些漏洞影响范围十分广泛。
实际上系统的安全性受到厂商重视度、系统功能的多少与变动,甚至服役时间、普及程度、恶意攻击者的攻击价值等等因素的共同影响,但修补了历史已知漏洞的最新系统往往会相对安全些。
手机系统安全性地域分布
下图为各省份平均每台手机漏洞数量,数值越大,说明该地域安卓手机的安全性相对越低、越不安全;数字越小,则代表该地域安卓手机的安全性越高。手机安全性最低的前三名为青海、宁夏、甘肃,平均每台手机拥有漏洞数分别为22.8、22.6、22.1个。而安全性最高的前三名为上海、广东、天津,平均每台手机拥有漏洞数18.7、19.4、19.6。大致上,经济越发达的地区,用户所使用的手机的平均漏洞数量越少,手机安全性相对越高。
用热力图表示如下图所示,可以更好的看出平均漏洞数的地域分布特征。颜色越红的地区,手机的安全性越低,颜色越浅的地区,手机安全性越高。
手机系统安全性与用户性别差异
由于性别上天生的性格、喜好等的差异,不同性别的用户在选择手机时可能会有不同的侧重点,比如女性用户可能在外观、轻薄、颜色等方面着重考虑,而男性可能更侧重性能、屏幕尺寸等因素。一部手机在其服役周期内也可能会因时间的推移而被不同的使用者所使用,而厂商在手机的升级维护中,不同手机又会有不同的策略。
为了探究手机系统的安全性与用户性别之间有无联系,我们调研了1000位用户的性别信息,统计了不同性别用户与其手机的安全性之间可能的关系。
从上图中,我们可以清晰的看出:男性使用系统版本大于或等于5.1的手机的比例远低于女性用户,包括各版本的比例中,男性用户使用的比例也明显低于女性用户;而男性用户中使用系统版本低于5.1的比例要远高于女性用户所占的比例,包括各版本的比例中,男性用户使用的比例也明显高于女性用户。即女性用户中,使用新版本手机的比例明显高于男性,这一结论在上述数据中,以6.0为界限统计的宏观角度和以不同安卓小版本单独统计的微观角度都成立。
在不同性别的用户手机的所存在的漏洞情况如上图所示。我们可以看到女性手机的平均系统版本数值约为22.2 (数值为系统API版本,为Google官方为便于安卓版本的计数而提供的一个版本的数字代号,其中 5.0为21,5.1为22),即平均使用的版本号接近Android 5.1,而男性使用的平均版本号为21.7,平均使用的Android版本号也接近5.1。
对比上季度的统计数据,男性和女性的平均系统版本均有所提升,其中女性平均版本号提升了0.4,男性则为0.7。
在此次统计中,我们发现,女性手机平均版本比男性要高,且均大于等于5.1,而平均漏洞数女性手机所存在的漏洞数量也是低于男性。这与上面我们分析的漏洞数量与系统新旧不是简单的线性关系有关,并且和我们上述对于不同版本的安卓系统的漏洞数中的高于5.1版本的系统的平均漏洞个数开始递减的结论保持一致。
漏洞修复情况
用户主动升级意愿
对于每一款安卓手机,其手机中运行的系统大多由手机厂商在其维护周期内提供。由于手机服役周期超出厂商维护周期,往往导致手机系统无法与最新的安卓版本保持一致。加之不同厂商对不同手机的支持维护程度不尽相同,在某些机型中,有些用户即使有意愿将系统保持与谷歌最新版本一致,但由于厂商对此机型无支持、推送计划,导致用户最多只能保持到厂商最新版本。
从数据中可以看出,约有46.0%的用户能够保持手机系统中安全补丁等级的版本与厂商所能提供的最新版本保持一致。整体上,可以明显发现近一半的用户还是会保持手机系统的更新。但是仍有14.6%的用户的系统版本滞后厂商最新版本一个月及以上,大约9.0%的用户手机版本滞后4-6个月,约17.9%的用户手机版本滞后半年以上,有12.4%的用户手机版本滞后官方最新版本达一年以上,而这些用户将比保持系统更新的用户更多地暴露在更多的漏洞与更大的攻击风险之下。对比上季度的数据,各分布所占比例略有变化,但保持更新部分仍然保持在46%左右,本季度滞后半年以上的比例有小幅度上升。
我们统计了近两年来用户与手机厂商保持更新的比例变化情况,如下图所示。
整体来说,近半用户还是会愿意保持系统更新至最新版本,但是保持更新的比例并没有呈现上升趋势,而且更新比例仍然偏低,一半以上的用户手机处于高风险状态。
漏洞修复综合分析
下图给出了用户手机系统与安卓官方系统、手机厂商系统的更新情况对比。
可以看到,近一半的手机用户能够保持手机系统与厂商最新系统的同步更新,且6成以上的用户能够在厂商推出更新版本后三个月内更新自己的手机;但能够享受与安卓官方最新系统保持同步更新服务的用户则仅为5%,滞后时间小于3个月的用户也只有近20%,较上季度比例均有所下降。
综合对比用户手机系统的更新状态、安卓官方的更新状态和手机厂商的更新状态,我们发现:与安卓官方最新更新情况相比,用户的手机系统平均滞后了约11.1个月,但与手机厂商已经提供该机型的最新版本相比,则平均只滞后了4.1个月,由此可见,用户手机因未能及时更新而存在安全漏洞的重要原因之一,就是手机厂商普遍未能实现其定制开发的安卓系统与安卓官方同步更新,而且延时较大。
典型手机系统高危漏洞实例
经过上述对 Android 系统漏洞的研究,我们可以看出仍然存在大量未升级至新版本系统和未打补丁的设备正在被使用,这些与安全更新脱节的现象直接导致用户手机暴露于各种漏洞的威胁之下,可造成用户的隐私、财产安全。
下面我们以近期著名的“Janus”漏洞作为案例,分析漏洞对Android用户的实际威胁:
漏洞简介
Android 12月安全公告中披露了一个名为“Janus”的漏洞(编号:CVE-2017-13156),攻击者可以利用该漏洞绕过Android系统的signature scheme V1签名机制,直接对App进行篡改。由于签名和验证机制是Android系统整体安全机制建立的最基础部分,利用该漏洞可以绕过整个Android系统的安全机制。基于signature scheme V1签名机制的App在Android 5.1到8.0系统均受“Janus”漏洞影响。
漏洞危害
如果攻击者将植入恶意代码的伪造App投放到Android应用市场,就可替代原有的App,从而提供下载、更新,造成的可能后果如下:
1. 用户隐私泄露,如通信、社交类APP的聊天记录、图片、通信录等。
2. 用户财产损失,如窃取金融类App的支付密码、钱包密码、token等; 监听、拦截用户的输入,使用欺诈手段,诱骗用户进行输入密码、转账行为。
3. 利用该漏洞可以更新Android的系统APP,从而获得更高的系统权限,达到更高级的攻击效果,如远程控制手机等。
漏洞影响
根据以上数据显示,受此漏洞影响的设备比例为59.7%,表明有近6成的用户手机仍然存在被此漏洞攻击的风险。
安卓手机APP威胁形势分析
本章基于360显危镜平台(http://appscan.360.cn/)2017年12月 对1.8万款市场上主流移动应用进行安全扫描检测后进行数据分析所得。本次检测的样本,我们主要根据应用的下载情况来选取,力求将影响用户最多的应用威胁情况进行全面了解,客观体现限制。下图为选取的应用类型分布。
本次检测的工具360显危镜为信息安全部移动安全组开发的Android应用漏洞扫描平台,集成在产品软件生命周期的安全服务,针对应用汇编代码的静态安全扫描及动态分析的方式进行漏洞检测,使得漏洞检测更加精准,目前涵盖了所有导出组件和几十种常见类型的安全风险的检测,嵌入于产品上线前的安全审核流程,进行自动化漏洞扫描,帮助APP应用快速定位漏洞细节,对产品提供安全风险评估和修复建议,实现APP应用的安全管理。
2017安卓主流应用威胁概况
安卓应用威胁风险整体情况
2017年12月通过360显危镜检查的约1.8万款安卓主流APP应用中,发现了99.5%的安卓应用存在威胁风险,平均每个应用威胁风险数量为38.6个。可见安卓市场上的APP存在严重的安全隐患。
动态注册广播威胁风险是检测到的第一威胁风险,占比24.6%,其次是隐式意图调用风险,占比15.5%,unzip解压缩风险是第三大风险,占比8.3%,未使用编译器堆栈保护技术风险占比6.8%,动态链接库中包含执行命令函数风险占比5.5%。此五大威胁风险占整体的60%以上。还有20余个风险林林总总的存在。
由于安卓市场的高度开发性,也造成了威胁普遍存在,且多样化。
具有威胁风险的安卓应用类型情况
从具有威胁风险的APP类型来看,新闻资讯类应用全部都有威胁风险,其次是游戏娱乐类(99.9%)、购物优惠类(99.8%)、影音图像类(99.8%)和健康医疗类(99.7%)。金融理财类应用是威胁风险最少的,为98.6%。
从平均风险数量来看,优惠购物类风险数量最高,高达每个应用70个,其次是新闻资讯类(56.3个)、旅行出行类(44.6个)、通讯社交类(43.5个)和影音图像类(43.3个)。最少威胁数量的是金融理财类(24.1个)。
2017安卓应用第三方SDK威胁概况
移动端应用的开发涉及到许多第三方SDK,而第三方SDK的安全性很难保证。移动端应用的开发为节约成本、快速成型,一般都会使用多种第三方的SDK,包括支付、统计、广告、社交、推送、地图类的第三方SDK。而第三方的SDK开发侧重于功能性的完善,在安全性方面的投入较少,导致了2017年来由第三方SDK引起的安全事件频发。
近两年已被爆出有安全漏洞的第三方SDK主要有FFmpeg、SQLite、pdfium、个信sdk、chrome内核等,且由于其被广泛使用到大量的APP中,造成漏洞的影响范围非常大。
FFmpeg威胁分析
FFmpeg的是一款全球领先的多媒体框架,支持解码、编码、转码、复用、解复用、流媒体、过滤器和播放几乎任何格式的多媒体文件。
2017年6月,neex向Hackerone平台提交了俄罗斯最大社交网站VK.com的ffmpeg的远程任意文件读取漏洞。该漏洞利用了FFmpeg可以处理HLS播放列表的特性,而播放列表(Playlist)中可以引用外部文件。通过在播放列表中添加本地任意文件的引用,并将该文件上传到视频网站,可以触发本地文件读取从来获得服务器文件内容。同时,该漏洞亦可触发SSRF漏洞,造成非常大的危害。
此外,360GearTeam发现的编号CVE-2016-6671漏洞,FFmpeg在对SWF文件解码时,在计算解码后数据大小时可导致写入数据超过申请内存空间的大小,从而造成缓冲区溢出。编号CVE-2016-10190漏洞中发现FFmpeg在处理chunk数据时由于有符号整数到无符号整数类型转换引起的堆缓冲区溢出。
当然,FFmpeg被爆出的漏洞不止上述几种。下图所示为FFmpeg官方的修复记录,从中可以看到每一版本均修复了大量的已分配CVE编号的漏洞,新版本同样会有许多未发掘出的漏洞等待修复。
在360显危镜后台根据该第三方库的特征规则搜索查询,在库中40万多个APP中,有约6万多个APP使用了FFmpeg的第三方开源库的代码,如下图所示约占15%。主流的一些视频应用几乎都采用了该开源库用于对多媒体文件的处理。从图中可以看出,该第三方库的使用范围是非常大的,一旦被爆安全漏洞,影响范围将是无法估量的。
SQLite威胁分析
SQLite是遵守ACID的关系数据库管理系统,实现了大多数SQL标准。它使用动态的、弱类型的SQL语法,包含在一个相对小的C库中。作为一款嵌入式数据库,它因占用的资源非常低,数据处理速度快等优点被Andriod、iOS、WebKit等流行软件采用。
2017年Black大会上来自长亭科技的议题介绍了基于Memory Corruption的SQLite漏洞。基于该漏洞,可以攻击常见的使用了SQLite的浏览器,包括Safari、Chrome、Opera等。同时,由于大部分应用本地数据库的存储几乎都采用了SQLite实现,这些应用同样受到该漏洞的影响。基于该漏洞可以造成大范围的用户信息泄露,包括用户在浏览器中填写的用户名、密码、身份证、银行卡等敏感信息。另外,基于该漏洞可以实现远程代码执行,从而控制用户终端设备,危害是非常大的。
此外,SQLite也有许多影响严重的漏洞常常被爆出。SQLite从3.3.6提供了支持扩展的能力,通过sqlite_load_extension API(或者load_extension SQL语句)开发者可以在不改动SQLite源码的情况下,通过加载动态库来扩展SQLite的能力。然而该功能被黑客利用,通过SQL注入漏洞加载预制的符合SQLite扩展规范的动态库,从而实现了远程代码执行,危害非常严重。
当然,SQLite的漏洞并不仅限于这几个。随着版本更新,在功能升级的过程中,每一版本均会被爆出大量的不同级别的漏洞。每一版本均会在上一版本基础上修改一些bug和漏洞,并可能会添加新的功能。由于精力有限,无法保证对每一行代码都经过安全审核,新发布的版本中很可能存在未被发现的漏洞。在现有技术体系下,产品漏洞挖掘的过程将会是长期存在的状况。
在Android应用中,只要有本地存储数据的需求,一般均会采用SQLite数据库存储。因此,一旦SQLite被爆安全漏洞,将影响数以万计的Android应用。同时,在某一Android设备中,一般都会预装许多应用或日常使用中安装了许多需要的应用,而这些应用中总会有一款应用使用了SQLite数据库。因此,SQLite的安全漏洞几乎总会影响的该设备。
Chromium威胁分析
Chromium是一个由Google主导开发的网页浏览器,以BSD许可证等多重自由版权发行并开放源代码。Chromium是Google的Chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览器。
目前,有许多浏览器是基于Chromium开发的,且提供了Windows、macOS和Android版本的浏览器。国内的主流浏览器均采用了Chromium内核,包括360浏览器、猎豹浏览器、遨游浏览器等。由于终端用户对浏览器均会有硬性需求,PC和移动设备中均会安装各种各样的浏览器,总有一款是基于Chrome内核的。
虽然Chrome是Google开发和维护的,但是也被爆出许多漏洞,影响了基于相当内核版本的其他浏览器。微软于2017年10月18日公布了一款藏匿于Google Chrome的浏览器安全漏洞,编号为CVE-2017-5121。该问题是由V8 JavaScript引擎引起的,通过引起应用崩溃导致攻击者可以在内存地址中放置任意的数据。通过精心构造的攻击,该漏洞可以达到远程代码执行(RCE),影响几乎所有基于Chrome内核的浏览器。Google已于今年9月份中旬在Chrome 61版本修复了相关漏洞。
每年Chrome浏览器都会被爆出许多安全漏洞。影响几乎所有Chrome内核的浏览器。此外,由于漏洞报给Google修复,其他基于Chrome内核的浏览器修复该漏洞需要较长的周期,漏洞的危害还是存在的。同时,其他厂商的浏览器很难跟上Chrome内核的更新速度,以至于很多浏览器还是很久之前的旧版本内核,导致该版本还受以往历史漏洞的影响。
Android系统安全趋势
Android是一种基于Linux的自由及开放源代码的操作系统,由Google公司和开放手机联盟领导及开发,主要设计用于触控荧幕移动设备如智能手机和平板电脑。目前,Android系统已经成为现今最流行的智能设备操作系统。
Android系统中,也使用了大量的第三方SDK组件用于其系统底层的基础服务功能,例如蓝牙协议栈实现、HTTPS协议实现、音视频编解码等。然而,Google使用的这些第三方组件也时常会被爆出有高危漏洞,且鉴于Android系统的广泛流行性,影响也是巨大的。下图所示内容为统计的2017年1月份至11月份Android系统中修复的第三方组件中的漏洞数量情况。从图中可以看出,第三方组件的安全性严重威胁到了Android系统的安全性。
下图所示为2017年1月份至11月份每月Android系统修复的第三方组件漏洞数量,平均每月约有80个漏洞影响Android系统的安全性。
在软件开发过程中,大量复用第三方SDK加速产品成型成为普遍现状,而第三方SDK的安全漏洞也将影响这些产品。如FFmpeg、SQLite、Chromium、PDFium等开源库,均在安全漏洞的挖掘上投入了非常多的精力,尚且会被爆出许多高危漏洞影响巨大。也有许多优秀的开源产品,重点将精力投入到功能的开发与完善上,而未经过任何的安全审核。这些开源产品中,代码中很难避免地留有大量的安全漏洞,一旦被恶意攻击者利用将对用户造成巨大损失。
目前,国内存在许多提供给第三方用于快速接入的SDK库,然而其安全现状却令人堪忧。绝大部分第三方SDK均缺乏安全审核环节,造成代码中总是有较多的安全漏洞,影响接入该SDK的应用的安全性。对于缺乏安全审核能力的厂商,我们推荐使用360显危镜对Android应用进行线上漏洞扫描,扫描结果报告中将列出风险点供厂商评估修复。
恶意程序
恶意程序新增量与感染量
2017年全年,360互联网安全中心累计截获Android平台新增恶意程序样本757.3万个,平均每天新增2.1万。全年相比2016年(1403.3万)下降46.0%,从2015年来看,新增恶意程序呈现总体下降趋势,且今年下降幅度较大,显示了移动恶意程序总体进入平稳高发期。
下图是2017年各月Android平台新增恶意程序样本量的分布图。由图可见,新增恶意程序整体呈现上半年高、下半年低的态势,即1-5月新增恶意程序量整体呈现曲线上升,在5月达到最高峰。下半年除8月为78.0万个新增样本外,其余月份均较低。
2017全年,从手机用户感染恶意程序情况看,360互联网安全中心累计监测到Android用户感染恶意程序2.14亿,相比2016年2.53亿人次下降15.4%,平均每天恶意程序感染量约为58.5万人次。
从近六年的移动恶意程序感染人次看,经过2012-2015年的高速增长期,2016年和2017年呈现下降趋势,说明手机恶意程序进入平稳期。
下图是2017年Android平台新增恶意程序感染量的按季度对比情况,每季度的新增恶意样本均在下降。
全年来看,2017年四个季度的感染量呈现下降趋势。其中二季度最高约为5934.8万人次,四季度的感染量则最少,仅为4493.7万人次。
恶意程序危害分析
根据中国反网络病毒联盟的分类标准,360互联网安全中心在2017全年监测的Android平台恶意程序的分类统计如下图。从图中可见,2017年Android平台新增恶意程序主要是资费消耗,占比高达80.2%;相比2016年增加了6个百分点。
资费消耗类型的恶意样本占比已达到3/4,说明移动端恶意程序依然是以推销广告、消耗流量等手段,增加手机用户的流量资费等谋取不法商家的经济利益。当前主流运营商的资费模式重心已经转向流量,而不再单纯倚重语音通话。资费消耗类恶意程序对用户资费造成的影响还是比较明显。
手机木马感染量年度TOP10
下表给出了2017年全年感染量最高的十大恶意程序名称及类型、感染量。关于下面表格中每个恶意程序对应危害的详细描述, 从全年来看,十大恶意程序如下表所示:
2017年全国感染用户最多的恶意软件TOP10
2017年全国感染用户最多的恶意软件TOP10 |
||
名称 |
类型 |
感染量(单位:万) |
手机清理 |
资费消耗 |
137.0 |
AppSetting |
资费消耗 |
80.7 |
com.hs.daming |
资费消耗 |
76.6 |
精彩大片 |
其他 |
58.4 |
系统管家 |
其他 |
55.6 |
Coolpush |
其他 |
50.8 |
AndriodUpdate |
资费消耗 |
48.0 |
com.t.sh |
其他 |
41.2 |
搜索 |
其他 |
39.8 |
Alarmclock |
其他 |
36.0 |
表2 2017年全年手机感染量TOP10的恶意应用
恶意程序感染量地域分布
2017年,从地域分布来看,感染手机恶意程序最多的地区为广东省,感染数量占全国感染数量的10.4%;其次为河南(6.8%)、山东(6.5%)、河北(5.9%)和浙江(5.9%)。
下图给出了2017年Android平台恶意程序感染量最多的十大城市。毫无疑问,北京用户感染Android平台恶意程序最多,占全国城市的4.9%;其次是广州(2.1%)、重庆(1.8%)、成都(1.7%)和东莞(1.5%)、石家庄(1.5%)。
Android平台挖矿木马
挖矿(Mining),是获取比特币等电子加密货币的勘探方式的昵称。由于其工作原理与开采矿物十分相似,因而得名。
手机挖矿木马就是在用户不知情的情况下利用其手机的计算能力来为攻击者获取电子加密货币的应用程序。
手机挖矿木马历史演变
挖矿木马最早是2013年在PC平台上被发现,而首个手机挖矿木马CoinKrypt[2]最早被国外安全厂商在2014年3月曝光。手机挖矿木马经过一阵沉寂后,随着电子加密货币价格的一路走高,恶意软件作者又重新将目标转向了挖矿。手机挖矿木马的攻击事件也重回视野,且势必是未来恶意软件的趋势之一。
2014年03月Android.Coinkrypt,Android平台上首个挖矿木马。
2014年04月Android. BadLepricon[3],在Google Play上发现手机挖矿木马。
2014年05月Android. Widdit[4],首个使用Android挖矿SDK的挖矿木马。
2017年10月Android.JsMiner[5],首个加载JavaScript的挖矿木马。
2017年10月Android.CpuMiner[6],首个使用cpuminer库的挖矿木马。
2017年12月Android.PickBitPocket[7],伪装成比特币钱包的欺诈程序。
2017年12月Android.Loapi[8],拥有复杂模块化架构的挖矿木马。
2018年1月Android.Hackword[9],首个使用Coinhive安卓SDK挖矿的木马。
规模和影响
从2013年开始至2018年1月,360烽火实验室共捕获Android平台挖矿木马1200余个,其中仅2018年1月Android平台挖矿木马接近400个,占全部Android平台挖矿类木马近三分之一。
2014年Android挖矿木马经过短暂的爆发后,于2015,2016年逐渐归于平静。主要原因是受到当时移动平台技术等限制,以及电子货币价格影响,木马作者的投入和产出比不高。但随着2017年年底电子货币价格的一路高涨,挖矿技术的成熟,再次得到木马作者的目标,手机挖矿木马在也呈爆发式增长。
Android平台挖矿木马伪装成各类应用软件,统计发现其中工具类(20%)、下载器类(17%)、壁纸类(14%)是最常伪装的应用类型。
从样本来源来看,除了被曝光的在Google play中发现的十多个挖矿木马外,我们在第三方下载站点捕获了300多个挖矿木马,根据其网页上的标识,估算出这个网站上的APP总下载次数高达260万余次。
从网站来看,据Adguard数据显示, 2017年近1个月内在Alexa排行前十万的网站上,约有220多个网站在用户打开主页时无告知的利用用户计算机进行挖矿,影响人数多达5亿。
目标币种
挖矿木马在币种选择上是随着币种的挖掘难度和币种相对价格等因素而变化。目前在Android平台发现的挖矿木马选择的币种主要有比特币(BitCoin)、莱特币(Litecoin)、狗币(Dogecoin)、卡斯币(Casinocoin) 以及门罗币(Monero)这五种。
挖矿方式及收益分配
挖矿方式有单独挖矿和矿池挖矿两种。下面以比特币为例来说明两种挖矿方式的区别。
独立挖矿
独立挖矿是指使用自己计算机当前拥有的计算能力去参与比特币的挖掘,获取到的新区块的收益全归个人所有。
独立挖矿流程
比特币平均每十分钟产生一个区块,而参与比特币挖掘的用户数量非常庞大,独立挖矿可能一整年也无法抢到一个区块。且手机的计算能力相比于其他挖矿设备更是有限,当前Android平台还未发现使用独立挖矿手段来获取电子货币的挖矿木马。
矿池挖矿
矿工是参与比特币勘探竞争的网络成员的昵称。而矿池是一个通过特定算法而设计的服务器,所有连接到矿池服务器的用户,会组队进行挖矿。
个人设备的性能虽然渺小,但是成千上万的人进行组队挖矿,总体性能就会变得十分强大,在这种情况,挖矿的成功率会大大提升,一旦矿池中的队伍成功制造了一个区块,那么所有队伍中的人会根据每个人贡献的计算能力进行分红。矿池的开发者一般会对每个用户收取一定手续费,但由于这种方法让大家更稳定得获得比特币,大部分矿工都会选择矿池挖矿,而不是单独挖矿。
矿池挖矿流程
矿池挖矿也分为一般矿池挖矿和前端矿池挖矿。
1)一般矿池挖矿:
一般矿池挖矿直接利用CPU或GPU本身的高速浮点计算能力进行挖矿工作。由使用C语言或者其他语言构造的挖矿程序进行CPU或GPU计算得到算力价值。矿池根据产生的算力价值进行分红,并收取10%以下的矿池手续费。
2)前端矿池挖矿:
前端挖矿利用asm.js或webAssembly前端解析器中介在浏览器端被动使用用户的CPU完成挖矿或者利用Html5新规范WebGL利用浏览器完成GPU挖矿操作。由浏览者产生的CPU或GPU计算得到算力价值。前端矿池(如Coinhive[11])会收取30%的矿池手续费。
由于使用方便,跨平台且隐藏性较好等特点,前端矿池挖矿逐渐得到挖矿木马作者的青睐。
挖矿技术原理
在Android平台上,攻击者为追求稳定的收益,挖矿方式通常都选择使用矿池来进行挖矿。攻击者通过挖矿木马远程控制用户手机,在用户不知情的情况下,使手机持续在后台挖掘电子货币来为其牟利。