360移动互联网恶意软件分析平台
- 格式:doc
- 大小:482.00 KB
- 文档页数:8
Android的盛开加速了移动互联网的应用普及,在用户连接与使用互联网更加容易的同时,安全问题也日益突出。
在截止2013年第三季度,安全管家云开放平台截获手机病毒1289.7万次,季度新增病毒样本186160个,环比增长15%(来源:艾瑞《安全管家2013年Q3移动安全行业数据报告》)。
正如移动端的成长加速了互联网的发展步伐一般,移动互联网时代的安全问题也已迫在眉睫。
提及移动安全,如果只是停留在诸如360手机卫士和安全管家之类的移动安全App的视角,可能不会让我们了解更加宽泛的移动安全生态,在此不妨从手机安全危害 “源头-传播-终端”的视角探下载,通过数据线和存储卡等传输),第二种是应用商店与下载站,第三种是手机浏览器。
有些恶意软件也会通过短信、二维码的方式骗取用户,但最终还是会落在应用商店和手机浏览器实现传播。
根据安全管家《2012年移动安全白皮书》的数据,通过第三方电子市场(应用商店)传播的恶意软件占比最多,达36%;再看今年第三季度安全管家移动安全报告的数据,2013上半年应用商店和第三方下载市场的传播占比73.8%,ROM刷机内置的传播占比10.2%,短信和论坛占比分别是8.3%和5.1%。
可见,不管是在现在还是短期的未来,应用商店和浏览器的内容分发渠道还会是移动安全的主战场。
如果HT ML5带来了移动时代的的新机遇,随之而来的也包括移动浏览器端面临的更多安全挑战。
在传统的传播方式之外,我们需要考虑的是未来移动用户习惯的养成(聚集用户的地方才有利益和破坏价值),如果建立在社交网站内的应用太“轻”,现在扁平铺在手机桌面的App又太“重”,那么寄生在超级App(如百度、微信等)的插件和轻应用就有成为用户新习惯的可能;而很多超级App又都接近用户手机的Root权限,试想如果现有的应用商店都不能做好恶意软件的分发把关,那么在力图争取更多内容与服务填充的超级App能否保证自身的插件与轻应用的安全就更是富有挑战的问题。
移动互联三大消费陷阱作者:暂无来源:《计算机世界》 2011年第9期移动互联的兴起令人激动。
但同时,披着“移动互联”外衣的陷阱也不断显现。
这一新兴产业背后掩藏的诸多陷阱,值得消费者提防。
今年“3·15”,我们关注移动互联。
本报记者黄智军许磊李响从2010年第四季度起,全球智能手机与平板电脑的总销量已超过台式机和笔记本电脑销量的总和。
在中国,智能手机用户已经超过8000万,平板电脑市场规模超过百万台。
作为移动互联网的主要设备,智能手机和平板电脑的销量增长验证了移动互联网的快速发展。
对手机上网人数超过两亿的中国而言,网络视频、移动聊天、位置服务、手机阅读等应用需求也正在暴涨。
但是,隐藏在这些终端、应用背后的,还有木马、窥私、吸费、假冒伪劣等陷阱。
陷阱一:应用吸费你是否接到过陌生号码短信,手机经常有不明额外费用;你是否发觉已经很长时间没有10086的服务短信;你是否发现一些原来常用的系统服务、比如Nokia PC套件突然不能正常使用了??如果发生了以上情况,我们很抱歉地通知您:手机“中毒”了。
是的,手机也能中毒,尤其在即将到来的智能手机时代,每一部手机都将是一部小型PC。
无论你的手机是诺基亚、摩托罗拉还是iPhone,操作系统是Symbian、Android还是iOS,上面一定装着五花八门、各式各样的应用程序,而这些程序也会像电脑上的程序一样,在后台可能自动运行,最可怕的是被植入“病毒”。
“移动互联网上目前最大的安全威胁是恶意软件,也就是木马。
”在接受《计算机世界》报记者专访时,奇虎360副总裁李涛指出,由于网络条件限制和操作系统的多样性,移动互联网上的恶意软件都还不具备自我复制和自主传播的“病毒”性特点,但整个手机领域的安全形势已经十分严峻了。
有统计显示,目前国内手机的总应用数量超过5万,而360手机安全中心的数据显示,2010年出现的手机木马/恶意软件数量就超过4400款,每1000万用户就有260万人中过招,黑色产业链达到10亿元规模。
移动互联网环境下的网络安全隐患有哪些在当今这个数字化时代,移动互联网已经成为我们生活中不可或缺的一部分。
从日常的社交沟通到工作学习,从购物娱乐到金融交易,几乎无所不包。
然而,随着移动互联网的普及和发展,网络安全隐患也日益凸显,给我们的个人隐私、财产安全甚至国家安全带来了严重的威胁。
首先,恶意软件是移动互联网环境中的一大安全隐患。
这些恶意软件可能以各种形式出现,比如伪装成热门的应用程序、游戏或者看似无害的工具软件。
一旦用户不小心下载并安装了这些恶意软件,它们就可能在后台悄悄运行,窃取用户的个人信息,如通讯录、短信内容、位置信息等。
更严重的是,有些恶意软件还能够远程控制用户的设备,进行非法操作,比如发送诈骗短信、拨打高额付费电话等,给用户带来巨大的经济损失。
其次,网络钓鱼也是常见的网络安全威胁。
不法分子常常通过发送虚假的短信、电子邮件或者在社交媒体上发布诱人的链接,诱骗用户点击。
这些链接往往会引导用户进入一个看似正规的网站,但实际上是伪造的钓鱼网站。
用户在这些网站上输入的账号、密码、银行卡号等敏感信息,都会被不法分子获取。
例如,用户可能会收到一条看似来自银行的短信,提示其账户存在问题需要登录链接进行验证。
如果用户没有警惕性,点击了链接并在钓鱼网站上输入了个人信息,就可能导致银行账户被盗刷。
再者,公共无线网络存在较大的安全风险。
在公共场所,如咖啡馆、机场、火车站等,我们经常会连接免费的公共无线网络。
然而,这些无线网络的安全性往往难以保障。
不法分子可能会利用无线网络的漏洞,对连接该网络的用户进行攻击。
他们可以通过中间人攻击的方式,拦截用户传输的数据,获取用户的隐私信息。
此外,一些恶意的无线网络热点甚至可能直接植入恶意软件到用户的设备中,造成严重的安全问题。
另外,移动设备操作系统的漏洞也是不容忽视的安全隐患。
无论是安卓系统还是苹果的 iOS 系统,都可能存在一些尚未被发现或者尚未修复的漏洞。
黑客可以利用这些漏洞入侵用户的设备,获取控制权。
N0TINFO SECURITY/勿20年第6期技术研究■doi:10.3969/j.issn.1671-1122.2020.06.003基于SM3与多特征值的Android恶意软件检测--------------------------------郑东,赵月----------------------------------(西安邮电大学无线网络安全技术国家工程实验室,西安710121)摘要:通过Android系统提供的MessageDigest工具类使用SM3杂凑算法对APK进行完整性计算,得到其Hash值;将得到的Hash值与服务器中正确的Hash值进行比较,若两个Hash值不一致,说明此APK程序已被篡改,可以卸载。
同时,文章设计了一种权限静态分析和多特征恶意软件检测模型,通过反编译应用程序,得到AndroidManifest.xml和smali文件,获取权限特征和API方法调用特征。
权限静态分析是根据权限比重分数,计算危险权限分数,判断应用程序危险程度。
多特征恶意软件检测使用Jaccard距离计算权限特征相似度和API方法调用特征相似度,识别良性软件和恶意软件。
实验结果显示,该方案SM3完整性计算速度是MD5、SHA-1算法速度的3倍左右,检测模型能有效识别恶意软件,并对恶意软件分类,从而保护用户的隐私资料,防止恶意软件窃取用户隐私。
关键词:Android;SM3;恶意软件;权限检测中图分类号:TP309文献标志码:A文章编号:1671-1122(2020)06-0017-09中文引用格式:郑东,赵月.基于SM3与多特征值的Android恶意软件检测[J],信息网络安全,2020, 20(6):17-25.英文引用格式:ZHENG Dong,ZHAO Yue.Android Malware Detection Based on SM3and Multi-feature[J].Netinfo Security,2020,20(6):17-25.Android Malware Detection Based on SM3and Multi-featureZHENG Dong,ZHAO Yue(Rational Engineering Laboratory f or Wireless Security,Xfan University(rfPosts and Telecommunications,Xi'an710121,China)Abstract:The MessageDigest tool class provided by the Android system uses the SM3hash algorithm to calculate the integrity of the APK,obtains its hash value,comparesthe obtained hash value with the correct hash value in the server.IF two Hash values areinconsistent,,indicating that the APK has been tampered and can be uninstalled.Thepermission static analysis and multi-feature malware detection model are designed.By收稿日期:2019-10-15基金项目:国家自然科学基金[61772418]作者简介:郑东(1964—),男,山西,教授,博士,主要研究方向为密码学、云存储安全;赵月(1994—),女,山东,硕士研究生,主要研究方向为移动设备安全。
- 32 -信 息 技 术1 安全隐患移动通信技术一直在和互联网技术相统一,在将来通信的发展的趋势中,移动互联网将成为潜力巨大的发展趋势之一。
随着无线技术的迅速提升,空间接口带宽也有提升,终端功能的小断也在加强,这奠定了互联网高速发展的根基,同时也打开了新的移动应用的发展目标。
但新技术的发展也会有新的安全隐患的存在。
安全隐患问题如下:即智能终端的安全问题、应用安全的问题、网络安全的问题。
用户对移动业务的体验形式和存储个人的有关资料所用的载体就是移动智能终端,为确保移动业务是安全可靠的,这需和移动网络共同合作,进而确保二者之间的通信路径是安全可靠的,同时用户信息的完整性还要得到保障。
所以,在这个移动互联网的安全系统中,移动智能终端的安全起占有举足轻重的位置。
移动智能终端越来越大众化,在生活中扮演重要的角色;尽管移动终端方便了用户,但安全隐患也越加明显。
2 移动智能终端存在的安全威胁(1)硬件层面。
在层面上的威胁主要体现在以下几方面,比如终端服务器的丢失、器件破损、电磁辐射和芯片安全等等。
终端的丢失或被盗,已经是如今用户最为在意的事,这会对用户信息的安全产生威胁,究其原因是现如今的绝大多数的智能终端没有终端硬件的安全机制,例如数据授权访问、远程保护(删除)、机卡互锁等。
另外,手机窃听器会对用户接收和发送的信息进行拦截,SIM 卡克隆会直接地克隆用户的SIM 卡,进而获得有关的信息,尽管芯片的智能化程度愈加壮大,但也有可能避免不了因恶意程序的入侵而得到用户的资料。
(2)软件层面。
若控制了操作系统,对获取用户的信息简直轻而易举,对智能终端的软件进行控制,严重时在极端的状况下,可使所有网络的智能终端呈现出瘫痪的状态,会对国家的安全产生隐患。
将操作系统看作一类软件,就会有安全漏洞的存在,不管是未知的还是已知的,结果都一样,API 的接口和开发的工具包同样会存在着被乱用的危害。
若攻击者适当地使用安全漏洞等,完全可以对用户进行远程攻击,致使用户的终端功能遭受破坏、得到用户的控制权限等,严重时可使用户的终端构成僵尸网络,进而对互联网的安全产生威胁。
2014年移动互联网入口和移动应用分发行业分析报告2014年6月目录一、移动互联网的入口 (3)1、移动互联网之年:摩根士丹利互联网女王2014年度趋势报告解读 (3)2、中国移动互联网用户目前达到中国互联网用户总数的约80% (4)二、移动应用是移动互联网的载体 (5)1、应用的演化和用户注意力的迁移 (5)(1)桌面互联网时代 (5)(2)移动互联网时代 (6)2、移动应用的分类 (6)3、移动应用的盈利 (7)4、移动互联网入口 (7)5、瑞翼信息抓住流量监控的用户核心需求 (8)6、移动应用分发 (9)(1)独特的国内市场 (9)(2)目前市场份额 (10)(3)大量的应用依赖于应用分发 (11)7、商业模式 (13)三、典型应用分发产品分析 (15)1、360手机助手 (15)2、91助手简介 (16)3、应用宝 (18)一、移动互联网的入口1、移动互联网之年:摩根士丹利互联网女王2014年度趋势报告解读桌面互联网用户已经开始放慢生长,只有不到10%的增长率。
移动互联网领域(智能手机和平板电脑)仍在快速增长,全球52亿移动用户中只有30%拥有智能手机,因此未来仍有增长空间。
移动数据流量仍在加速增长,同比增幅达到81%。
这主要是由于用户对视频服务的需求,移动平台已占视频消费量的22%。
移动端使用率逐渐上升。
没有人质疑移动端用户量跨越式增长,以及对流量和活跃度的贡献。
但是,大家一直在质疑,这么小的屏幕,怎么赚钱,怎么不损害用户体验的前提下做广告。
过去大家质疑Facebook 的估值,以及占领移动端的能力。
今年的数据,2014年一季度Facebook 的平均用户广告收入为7.24美元,同比增长57%,这个增长主要依靠的就是移动端的广告收入。
2、中国移动互联网用户目前达到中国互联网用户总数的约80%相对于其他市场,中国的移动互联网用户已达到“关键的大多数”,因此将主导移动商务的革命。
Android智能手机入侵检测系统设计摘要:随着智能手机变得越来越复杂,功能越来越强大,给用户提供更多方便的同时也给用户带来了很多安全隐患。
本文首先分析了Android智能手机所面临的安全问题,之后提出Android平台手机上的入侵检测系统,能及时有效的检测到入侵攻击,减轻恶意木马对用户造成的危害,大大改善用户体验。
关键词:Android 安全问题入侵检测系统随着3G通信网络的普及,智能手机市场份额大幅提升,其中Android智能手机占市场份额最大,获得52.5%的市场占有率[1]。
由于Android智能手机用户数庞大、开源性强,用户可自行安装软件、游戏等第三方服务商提供的程序,很多病毒攻击者把矛头指向了它,制造了大量Android木马,这严重影响了Android智能手机用户的日常使用。
如何有效的预防智能手机平台上的入侵攻击已经成为亟待解决的问题。
Iker Burguera、Urko Zurutuza等人提出了Behavior-Based Malware Detection System for Android[2],Amir Houmansadr、Saman A.Zonouz 和Robin Berthier提出了一个基于云端服务器的Android智能手机入侵检测及响应系统[3]。
Android智能手机平台的入侵检测系统能及时有效的检测到入侵攻击,为用户提供一个安全的使用环境。
1 Android智能手机存在的安全隐患2011年,Android木马呈现爆发式增长,新增Android木马样本4722个,被感染人数超过498万人次[1]。
虽然Android平台的开源、开放、免费等特性为google带来了大量的市场占有率,但是这也给消费者带来了不少安全隐患,成为新的移动互联网安全检测主战场[1]。
Android智能手机存在如下几点安全问题。
(1)恶意扣费。
据360安全中心调查,78%的Android平台手机木马旨在悄悄吞噬用户的手机话费。
移动互联网APP应用新的技术和工具在移动互联网的发展下不断涌现,给予人们更多的选择机会,从而充分利用互联网。
移动互联网在APP改变下,细分区域如手机安全、地图、浏览器、搜索的争夺日趋激烈,从根本上而言,用户的态度决定着APP 产品是否适应市场,因此提升用户使用体验对厂商来说是最关键的。
本文分析了APP和手机助手等方面。
标签:移动互联网APP 应用消费体验1 概述APP是客户端应用程序,英文简称为Application program,包括智能手机上即移动终端上的第三方应用程序和PC机。
APP在移动互联网的依托下,利用移动终端呈现,并以APP(客户端应用)形式发布产品、活动或服务、品牌信息的营销方式。
由于技术原因及对移动互联网缺乏认识,并非所有人在互联网APP 化越明显的趋势下投入APP营销。
即使APP应用的开发不需要高深的技术,小型企业由于缺少IT部门也很难独立开发自己的APP。
因此企业只有以外包形式让第三方做来开发APP,这样会消耗费用,几千块到数十万不等。
尤其加上APP 的维护、升级和应用推广,费用更多。
此外,对移动互联网缺乏认识。
移动互联网刚起步,因此不能预计以后的发展方向。
仅业内人士对其看好,但难以找到具体某个领域的成功案例,并且企业对移动售后问题,应用推广,支付问题较生疏,不愿意轻易投入,导致市场发展缓慢。
2 手机助手及主要功能android智能手机通过360(91)手机助手来下载,安装及管理手机资源,包括大量的软件、游戏、视频、图片等资源。
360安全检测中心审核认证所有信息资源,保证无毒安全。
此外,网络资源的获取借助360手机助手会更方便、快捷和安全。
通过数据线将手机连接至PC,便可通过360手机助手下载海量应用,电子书、视频、音乐、应用软件一应俱全。
还可通过它进行应用管理、任务管理和联系人的备份和恢复、图片视频音乐等导入导出。
360(91)手机助手在Windows系统的电脑上使用,360(91)手机助手只支持安装Android操作系统的智能手机(android 1.6及以上版本均可支持),Iphone2.0及以上版本亦可支持。
奇虎360公司SWOT分析优势:1.品牌知名度高:奇虎360是中国互联网安全领域的领导者,拥有高度的品牌知名度。
其产品和服务广泛受到用户信赖,获得了很高的用户满意度和口碑。
2.多样化的产品和服务组合:奇虎360公司拥有多个产品和服务,包括安全软件、浏览器、引擎、手机安全等。
这种多样化的产品组合可以满足不同用户的需求,提供综合的解决方案。
3.强大的技术研发能力:奇虎360在互联网和移动互联网安全领域拥有强大的技术研发能力。
公司投入大量资源进行技术创新和研发,不断提升产品的安全性和性能。
4.广泛的合作伙伴网络:奇虎360与多家知名企业和机构建立了合作伙伴关系,包括手机制造商、电信运营商、互联网公司等。
通过与这些合作伙伴合作,奇虎360可以扩大产品的市场覆盖范围,并提供更加综合的解决方案。
劣势:1.品牌形象受损:奇虎360曾经因为广告和推广手段不当而引起争议,对公司的品牌形象造成了一定的负面影响。
一些用户对公司的产品和服务产生了怀疑,对公司的信任度降低。
2.与竞争对手的竞争压力:奇虎360在互联网和移动互联网安全领域竞争激烈,面临来自国内外多家竞争对手的竞争压力。
这些竞争对手拥有先进的技术和强大的资源,可能对公司的市场份额和利润率造成影响。
机会:1.中国互联网用户规模增加:随着中国互联网用户规模的不断增加,互联网和移动互联网安全领域的市场需求也在迅速增长。
奇虎360可以利用这一机会,扩大市场份额和用户群体。
2.移动互联网的发展:随着智能手机和平板电脑的普及,移动互联网的发展迅猛。
手机安全等移动互联网应用的需求也在增长。
奇虎360可以通过提供创新的移动互联网安全产品和服务来满足这一需求。
威胁:1.政策和法规变化:中国互联网行业受到政策和法规的严格限制。
政策和法规的变化可能对奇虎360的商业模式和盈利能力产生负面影响。
2.网络攻击和恶意软件的威胁:随着互联网的普及,网络攻击和恶意软件也在不断增加。
奇虎360作为互联网安全服务提供商,需要及时应对这些威胁,并保护用户的网络安全。
基于textCNN 模型的Android 恶意程序检测①张雄冠, 邵培南(中国电子科技集团公司第三十二研究所, 上海 201808)通讯作者: 张雄冠摘 要: 针对当前Android 恶意程序检测方法对未知应用程序检测能力不足的问题, 提出了一种基于textCNN 神经网络模型的Android 恶意程序检测方法. 该方法使用多种触发机制从不同层面上诱导激发程序潜在的恶意行为; 针对不同层面上的函数调用, 采用特定的hook 技术对程序行为进行采集; 针对采集到的行为日志, 使用fastText 算法来提取词向量; 最后使用textCNN 模型根据行为日志对Android 程序进行检测与识别. 实验结果表明, 该方法对Android 恶意程序检测的平均准确率达到了93.3%, 验证了该方法对Android 恶意程序检测具有较高的有效性与正确性.关键词: Android 系统; 恶意程序检测; 行为触发; hook 技术; fastText 模型; textCNN 模型引用格式: 张雄冠,邵培南.基于textCNN 模型的Android 恶意程序检测.计算机系统应用,2021,30(1):114–121. /1003-3254/7722.htmlAndroid Malware Detection Based on textCNN ModelZHANG Xiong-Guan, SHAO Pei-Nan(The 32nd Research Institute of China Electronics Technology Group Corporation, Shanghai 201808, China)Abstract : Aiming at the problem that the current Android malware detection method has insufficient ability to detect unknown applications, this study proposes an Android malware detection method based on the textCNN neural network model. This method uses a variety of trigger mechanisms to induce the potential malicious behavior of the application from different levels. For function calls at different levels, the specific hook technology is used to collect the application behavior. For the collected behavior logs, the fastText algorithm is used to extract word vectors. Finally, the textCNN model is used to detect and identify Android applications based on behavior logs. Experimental results show that the average accuracy of the method for detecting Android malicious applications reaches 93.3%, which verifies that the method has high effectiveness and correctness for detecting Android malwares.Key words : Android system; malicious program detection; behavior trigger; hook technology; fastText model; textCNN model近10年来, 伴随着互联网技术的迅猛发展, 以及智能移动终端的普及, 传统的计算机软件也开始向基于智能终端的应用市场转移. 根据360互联网安全中心发布的《2019年手机安全状况报告》展示[1], 2019年截获的新增Android 恶意程序样本约为180.9万个,平均每天截获的新增恶意程序样本个数约为0.5万个.观察新增样本的类型, 还是以恶意扣费、资费消耗和隐私窃取这3种类型为主. 由此可见, Android 操作系统的安全形势依然刻不容缓, 为了减少恶意程序对用户造成的损失, Android 恶意程序检测也就成为一个值计算机系统应用 ISSN 1003-3254, CODEN CSAOBNE-mail: Computer Systems & Applications,2021,30(1):114−121 [doi: 10.15888/ki.csa.007722] ©中国科学院软件研究所版权所有.Tel: +86-10-62661041① 收稿时间: 2020-05-19; 修改时间: 2020-06-16; 采用时间: 2020-06-19; csa 在线出版时间: 2020-12-31114得深入研究的课题.目前, Android恶意程序检测技术主要分成两种:基于签名的检测技术[2]和基于行为的检测技术. 基于签名的检测技术实际上利用了模式匹配的思想, 使用这种方法进行检测需要对比已知的恶意代码签名库,因此这种方法无法识别未知的恶意程序. 而基于行为的检测技术因为不需要依赖签名的特性逐渐成为目前研究与应用的主流方法之一. 基于行为的检测技术又可依据是否需要实际运行目标程序进一步分为静态行为分析方法和动态行为分析方法.静态行为分析法是目前应用相对广泛的恶意代码检测方法. 其优势在于可以直接利用反编译技术提取代码本身的特征, 不必在指定检测环境下运行代码, 从而能够在应用安装前完成分析. 文献[3]就提出了一种组合静态行为分析方法, 该方法使用API调用、API 时间序列及API使用频率作为3种静态特征, 再结合C4.5、DNN、LSTM三种模型进行训练, 最后采用投票法确定测试样本的结果. 尽管应用广泛, 但静态行为分析法还是具有一定的局限性. 随着互联网安全技术的提高, 越来越多的Android应用为了抵抗未知的反编译分析而采用了代码保护技术. 与此同时, 恶意程序也在不断地进化, 比如采用代码混淆技术来隐藏和加密自身的恶意代码. 面对这样的情况, 使用静态行为分析技术的检测效率也是越来越低.动态行为分析法则是要求在沙箱或隔离环境中安装并运行程序, 这样做的目的是尽可能监控程序执行过程中所产生的行为, 并判断是否存在恶意行为. 这种方法不需要反编译目标程序, 且不受代码混淆技术的影响, 因此具有较高的检测效率. 目前, 动态行为分析法从原理上可以分为以下两类.第1类是基于污点跟踪技术[4]的分析方法, 这类方法首先标记程序对资源数据的访问范围, 然后依据程序对被标记的污点数据的使用情况来判断该程序的行为是否具有合法性. 采用污点跟踪技术的检测方法可以有效地识别出恶意程序所产生的隐私泄露、数据篡改甚至漏洞利用等问题. 文献[5]介绍了一个基于污点追踪技术的恶意软件数据流分析模型TaintART, 该模型采用多级污点分析技术把污点标签存储在寄存器中, 从而减少污染标签的存储量, 可以改善传统污点分析效率较低的问题. 尽管基于污点跟踪技术的检测方法能够更细粒度地分析恶意程序的行为属性, 但是这种分析通常只能在Android虚拟机层进行, 因而无法检测恶意程序在其他层(例如Native层)存在的恶意行为.第2类则是基于系统函数调用情况的分析方法,这类方法主要是通过检测程序对系统函数的调用行为来判断程序是否具有恶意性. 恶意程序往往需要利用系统提供的函数接口来实现其恶意行为, 因此这类方法可以通过分析程序的系统函数调用情况来识别恶意程序. 文献[6]就介绍了一种监控目标软件对Android Native层系统函数和框架层API的调用情况的方法,然后通过分析函数的调用序列及调用函数所传递的参数来检测恶意软件.随着机器学习技术的日渐成熟, 将机器学习算法应用到Android恶意代码检测中也逐渐成为了研究的主流趋势. 文献[7]就提出了一种基于机器学习的动态监测框架用来监控软件行为, 并通过实验分别对SVM、k近邻等多种机器学习算法进行了评价. 文献[8]的研究则是采用随机输入和人工交互输入来提取Android 系统调用, 并使用两种特征选择方法来共同构建特征矩阵, 最后使用RandomForest、RotationForest及AdaBoost三种机器学习模型分别进行实验. 尽管目前机器学习在Android恶意代码检测的应用中取得了较好的效果, 但是其面对新增的、变种的恶意软件的检测能力依然有待提高. 同时基于传统机器学习的方法往往需要手动工程来判断一个文件的行为是否具有恶意, 但手动工程一般不仅时间消耗较长, 而且需要人为确定特征、参数、变量等.针对静态行为分析方法与基于污点跟踪技术的分析方法在Android代码行为特征提取上的不足, 以及传统机器学习方法在恶意程序检测中存在的问题, 本文提出了一种在动态行为分析的基础上利用textCNN 神经网络模型的Android恶意程序检测方法. 本方法的主要思路是首先采用多种触发机制相结合的行为诱导方法来触发Android程序潜在的恶意行为; 接着通过hook技术挂钩关键函数接口, 进而对程序的各种行为数据进行采集并构建行为日志; 然后基于行为日志提取行为特征数据作为模型输入; 最后使用textCNN 神经网络对行为数据集进行训练、参数优化得到最终的分类模型, 并通过实验与传统机器学习方法SVM、RandomForest以及传统循环神经网络进行比较, 证明了本方法具有较好的检测效果.2021 年 第 30 卷 第 1 期计算机系统应用1151 动态行为采集方法任何Android程序所产生的行为实际上都具有特定的行为模式, 即这些行为可以分解为由原子行为组成的时间序列. 而这些原子行为往往需要调用系统提供的函数接口来实现, 因此可以采用基于系统函数调用的动态行为分析方法从程序对Android框架层API 和Native层函数的调用情况中提取行为特征, 再通过对比恶意程序的行为来判断程序的合法性. 基于这个原理, 本文提出了一种以监测系统函数调用为基础的动态行为采集方法, 该方法主要包含两个模块: 行为触发模块和行为采集模块. 行为触发模块的作用是采用多种触发机制尽可能多地触发程序的行为, 使得采集模块可以尽可能全面地采集到软件的所有行为数据.行为采集模块的作用是通过hook技术来监控并记录程序对Android系统函数的调用情况以形成行为日志.1.1 行为触发模块已知动态行为检测方法是在沙箱或隔离环境中运行程序, 其中第一个关键的步骤就是要能够触发程序的行为. 倘若无法触发恶意程序的全部行为, 则后续的行为采集模块很可能就无法提取到有效的恶意行为数据, 继而一定会影响检测模型最后的检测效率. 因此,为了提高程序行为触发的覆盖率, 首先需要明确的是被触发的行为所发生在Android系统中的层面, 主要包含以下3类: (1) 系统层面, 当系统层面的事件(例如开机、连接网络等)执行后会立即触发恶意程序的恶意行为, 比如当系统接入互联网后, 恶意程序会开始传输系统中隐私数据. (2) Service层面, 许多恶意程序会将其恶意行为隐藏在后台服务中, 这样就可以在用户未知的情况下执行操作. (3) UI及Activity层面, 当用户对恶意程序的UI进行操作时, 往往就会触发恶意的Activity活动. 针对不同系统层面的行为需要采取不同的触发机制, 具体的流程与框架如图1所示.本模块通过使用Android模拟器模拟各种系统事件发生的方式来触发程序系统层面的恶意行为. 已知在Android系统中, 软件若要监听系统事件就必须在Manifest文件中注册广播组件. 因此本模块通过解析目标程序的Manifest文件来获取已注册的广播组件信息,然后利用ADB调试桥与telnet远程控制命令在模拟器中模拟广播组件相对应的各种事件, 从而触发程序系统层面相对应的行为.图1 行为触发模块框架流程图针对程序在Service层面的恶意行为, 本模块采用启动所有Service事务的方式来触发潜在该层面的恶意行为. 因为任何应用想要在Android系统中使用Service事务就必须在Manifest的文件中注册Service 组件, 所以本模块通过解析目标程序的Manifest文件来获取已注册的Service组件, 然后利用ADB工具启动这些Service事务, 进而触发执行在这些Service中的恶意行为.针对UI及Activity层面的恶意行为, 本模块所采用的方法相对复杂一些. 首先, 通过静态分析目标程序来获取软件中Activity之间的跳转路径信息; 接着, 针对每一个Activity, 在启动之后利用UI获取部件提取当前Activity的UI层次信息; 然后, 本模块会利用系统自动化测试工具MonkeyRunner[9]针对这些UI信息来模拟各种UI事件触发程序的行为; 当遍历完当前Activity的所有UI元素后, 即可按照Activity的跳转路径信息继续下一个Activity的遍历.1.2 行为采集模块考虑到目前Android平台的应用软件都会使用混淆、加壳技术来保护自身的程序代码, 因此本模块采用了一种基于动态分析的多层次的行为数据提取方法以应对该问题. 本模块所采用的方法主要以Android逆向技术和Android安全框架为理论基础, 分别对Android 的应用框架层和Native层的程序行为进行采集.针对Android应用框架层的行为数据, 本模块主要通过Android注入技术以及Java hook技术进行采集的. 已知Android系统一般采用虚拟机对应用层的软件程序进行隔离和管理, 其中4.4版本之前采用的是Dalvik虚拟机, 而4.4版本之后采用的是Android Runtime. 在Dalvik虚拟机进行Hook的原理是: 首先计算机系统应用2021 年 第 30 卷 第 1 期116将虚拟机里面的Java方法的Method标识字段改为nativeMethod; 接着自己编写一个Native方法, 在这个Native方法中, 再自定义一个Java方法, 并在这个方法里调用了原方法; 然后在调用前后分别通过注入技术插入钩子, 从而可以记录原方法的调用情况了; 最后把原Java方法的nativeFunc字段指向这个Native方法.当原方法被调用时, 首先会调用到自定义的Native方法, 在调用过程中, 原函数的调用数据就被采集. 对于Android Runtime进行hook的原理实际上是类似的, 已知Java层的每一个方法在Android Runtime实现中都对应一个ArtMethod结构体, 只要把原方法的结构体内容通过注入方式替换为新的结构体内容, 当然原方法被调用的时候, 真正执行的就是注入的新方法的指令. 为了兼容不同版本的Android虚拟机, 本模块采用了同时支持Dalvik虚拟机和ART虚拟机的Xposed[10]框架对Android应用框架层API进行hook工作.对于Android Native层的行为数据, 本模块则采用基于Inline hook[11]的动态注入技术进行采集. 对比基于全局偏移表的hook方法, Inline hook的优势在于不会受到表的限制, 能够修改重写内存中任意一处的指令, 从而实现对系统函数的挂钩. Inline Hook的实现原理是首先获得被hook系统函数的入口地址, 然后在入口地址处插入强制跳转指令, 使进程跳转到特定函数中, 在该函数中执行监听并记录程序的行为数据, 从而就实现了对Android底层接口函数调用情况的监测.当目标程序的一系列操作行为被成功触发之后,各种操作行为必然依靠应用框架层或系统Native层的函数接口来实现, 此时行为采集模块就可以利用上述方法对函数接口的调用情况进行监测与记录, 根据记录结果即可生成程序的行为日志. 本实验所生成的行为日志的条目及相关含义如表1所示.表1 目标程序行为日志条目说明条目名称说明Method Category被调用函数所属的类型Method Name被调用函数的名称及所属包的包名Arguments调用函数是传递的参数2 基于textCNN的检测框架卷积神经网络CNN曾被广泛应用于计算机视觉领域, 随着深度学习研究的不断深入, 不少学者也开始使用CNN模型来处理自然语言处理问题. textCNN[12]即是由Yoon Kim提出的一种用于处理文本分类问题的卷积神经网络模型. textCNN的主要思想是使用多个通道以及多个不同大小的卷积核, 并通过一维卷积的方式提取词向量矩阵的特征, 然后使用最大池化层从特征矩阵选出每个通道中的最大值, 与其他通道的最大值进行拼接, 组合成最终的特征向量, 最后通过全连接层计算分类的概率. 经过动态行为触发模块和采集模块后, 程序的行为数据实际上转换为了文本数据,因此可以采用textCNN模型来进行处理.2.1 嵌入层预处理文本数据对于文本类数据, 首先需要将自然语言数值化, 以方便后续处理. 对于动态行为日志文本, 其中每一行的函数调用记录代表一个动态行为, 本文将每一行视为一个行为词汇, 然后分别对每个词汇构建相应的词向量. 将文本中的词汇表征成词向量最简单的方式就是采用one-hot编码方法, 但是这种方法也存在比较明显的缺点, 比如生成的向量长度过大以及无法准确表达词汇之间的相似关系. 而textCNN模型提供一个隐藏的嵌入层, 可以将one-hot向量投影到低维空间里, 在指定维度中编码语义特征. 本文在嵌入层采用的向量表示方法为fastText[13]. fastText实际上是Word2Vec 中跳字模型[14]的一种改进, 使用子词嵌入的方法将构词信息引入到了模型中.z y在fastText中, 往往使用子词集合来表示中心词,假设一个中心词w, 将其长度在一定范围内的子词及特殊子词的并集记为G w. 已知fastText中词典由所有词的子词集合的并集构成, 假设w的子词y在词典中的向量表示为, 则中心词的向量v w就表示成:对比跳字模型, fastText训练的词向量可以更加准确地描述动态行为词汇之间相关性. 当在检测过程中即便遇到词典中未曾出现的行为词汇, fastText模型也可以从与其结构类似的其他词汇中获得对该词汇更好的向量表示.2.2 使用textCNN对数据进行分类textCNN模型的核心结构是卷积神经网络, 其基本结构包括输入层、卷积层、池化层、全连接层和输出层. 卷积神经网络用于行为分类的模型结构图[15]如图2所示.2021 年 第 30 卷 第 1 期计算机系统应用117图2 textCNN行为分类模型图从图2中可以看到, 在textCNN模型的卷积层, 卷积核的宽度与词向量的维度是一致的, 表明模型在提取特征的时候, 将行为词汇作为日志文本的最小粒度.在Android动态行为日志中, 往往恶意行为是由多个连续的动态行为词汇组成, 因此可以通过设置卷积核的高度来提取日志中相邻行为词汇的关联性, 不仅考虑了动态行为文本中的词义而且兼顾了词序以及上下文. 图2中卷积核的高度分别设置为2、3、4, 对应提取文本中的2-gram、3-gram、4-gram特征. 对比传统机器学习中的n-gram模型, 使用卷积核的优势在于, 只考虑连续词汇的组成, 不会使训练集词表爆炸式增长.在卷积层中模型使用了不同大小的卷积核, 卷积得到的feature maps会具有不同的向量维度. 因此在池化层中, 可以使用1-max-pooling方法通过提取每个feature map中的最大值来表征该特征向量. 池化层的主要作用是下采样, 通过不断降低数据维度来减少网络中的参数和计算次数. 最后模型将每个特征向量经过1-max-pooling池化得到的值拼接起来, 即为池化层最终的输出向量.textCNN模型最后一层为全连接层, 池化层的输出结果在进入全连接层之前, 需要进行Dropout操作来避免过拟合. 全连接层设置可以参照传统卷积神经网络, 第1层采用ReLU作为激活函数, 第2层则使用Softmax分类函数来进行分类.3 实验分析3.1 实验环境与数据本文的实验环境与相关配置如表2所示.表2 实验环境与配置实验环境相关配置移动端操作系统Android 6.0APK分析框架MobSF v3.0.0Android Hook框架Xposed v90-beta3PC端操作系统Window 10编程语言Python 3.6深度学习框架PyTorch 1.4.0本文实验所需的Android恶意软件样本均来自于VirusShare网站[16], 其中样本的数量为1500个. 同时,实验所需的1000个正常样本均下载于Android官方应用市场Google Play. 对于1500个恶意样本和1000个正常样本, 分别使用其中的70%作为本文模型的训练样本, 剩下的30%作为测试样本.计算机系统应用2021 年 第 30 卷 第 1 期118对于每一个样本, 经过动态行为采集框架处理后会得到一个行为日志. 原始的行为日志是json 数据格式, 为了便于后面textCNN 模型的处理, 实验需要通过Python 爬取日志中关键信息, 将其转换为txt 文档表示. 文档中的每一行即为一个行为API, 每一行分为3个部分, 由空格分隔, 每个部分的说明如表1所示.3.2 实验评价指标为了充分评估模型的性能, 本文在验证模型训练结果的时候采用了k 折交叉验证技术. 在本实验中,k 的取值设定为10, 即将训练集划分为10个规模相等且无交集的子集, 在每次训练过程中依次选择1个子集作为测试集, 剩余9个子集作为训练集, 最终以10次计算结果的平均值作为模型评价指标的最终结果.P Precision P Recall 本实验使用3个通用的评价指标即准确率、召回率以及F 1值来对实验结果进评价. 本实验采用的样本分类混淆矩阵如表3所示.表3 样本分类结果混淆矩阵真实类别预测类别正常样本恶意样本正常样本TP FN 恶意样本FPTN表3中, TP 表示实际为正常样本, 被预测为正常样本的样本数目; FP 表示实际为恶意样本, 被预测为正常样本的样本数目; FN 表示实际为正常样本, 被预测为恶意样本的样本数目; TN 表示实际为恶意样本,被预测为恶意样本的数目. 实验评价指标的计算公式如下所示:3.3 实验参数设置由于实验结果在很大程度上会受到实验参数的影响, 因此在实验中将会对模型的参数进行设置. 首先实验将行为日志转换后的文本最大长度设置为400, 超过长度的部分将直接进行截断操作. 本实验使用fastText 模型训练词向量时所设置的参数值如表4所示.表4 fastText 模型训练参数设置参数名参数值word_ngrams 2Window 上下文窗口5最小字符长度2最大字符长度5迭代周期5000在textCNN 模型的训练过程中, 本实验将卷积核的高度固定设置为3、4、5. 对于其他参数, 分别设置了几组对照实验, 其中卷积核数量分别对比了64、128、256三组值, Dropout 参数分别对比了0.3、0.4、0.5三组值, 激活函数对比了ReLU 和tanh 两种函数.通过对比上述几组参数值对实验结果的影响, 最终确定模型的参数如表5所示.表5 textCNN 模型训练参数设置参数名参数值卷积核高度3, 4, 5卷积核数量128Dropout 0.5激活函数ReLU Pooling1-max-pooling迭代周期20003.4 实验结果与分析为了验证本文提出的对于Android 应用程序的动态行为采集框架的有效性, 本文设置了3组对照实验,分别采用不同的方法来提取Android 软件的行为特征.第1组采用传统的静态行为分析法来提取程序的静态行为文本数据, 实验中具体参考文献[3]提出的方法;第2组采用基于污点跟踪技术的分析方法来提取程序的行为文本数据, 实验中具体参考文献[5]中方法; 第3组就采用本文的基于系统函数调用的动态行为采集方法来提取实验数据. 3组实验均使用相同的Android 样本数据集, 然后将3组实验得到的3组文本数据集都经过fastText 模型预处理以及textCNN 模型进行训练, 最后相同模型在不同数据集上的实验结果如表6所示.表6 不同数据集实验结果对比数据集P PrecisionP RecallF 1第1组0.77320.76930.7713第2组0.87560.88610.8810第3组0.92640.93420.9305从表6中数据可以看出, 本文提出的动态行为采集框架可以更有效的提取出Android 程序中行为特征.2021 年 第 30 卷 第 1 期计算机系统应用119第一组数据集的检测准确率相对较低, 原因在于现在的Android应用程序都添加了代码混淆和代码保护壳等对抗反编译的措施, 对比而言本文方法几乎没有受到这些措施的影响. 第2组与第3组实验结果的对比证实了基于污点跟踪技术分析方法存在的局限性, 即无法检测恶意程序在Android Native层的恶意行为.为了对比textCNN模型与传统机器学习模型及传统深度学习模型在Android恶意程序上的检测能力,本文设置了4组对照实验, 将textCNN模型与SVM模型、RandomForest模型以及循环神经网络LSTM模型进行了对比. SVM与RandomForest均是机器学习中比较成熟的分类模型, LSTM也是一种可以高效处理文本问题的神经网络模型. 对于SVM、RandomForest 和LSTM模型中使用的词向量, 本实验均采用传统Word2Vec模型预处理行为数据集来得到. 不同模型在相同测试集上的实验结果对比如表7所示.表7 不同模型实验结果对比模型P Precision P Recall F1SVM0.87130.88630.8789 RandomForest0.90470.89070.8977 LSTM0.92680.92120.9240textCNN0.93860.94110.9397从表7中可以看出, 对比SVM与RandomForest 这两种机器学习模型, textCNN模型的准确率、召回率和F1值分别高出了6.73%、5.48%、6.08%和3.39%、5.04%、4.2%, 同时LSTM模型的实验结果较两种机器学习模型而言也有明显的提升. 这说明采用神经网络模型较传统机器学习方法而言确实可以提高Android 恶意程序的检测准确率. 对比textCNN与LSTM, 可以看到在相同测试集上textCNN模型的检测准确率还是有所提升的, 虽然这种提升是有限的, 但是应该考虑到textCNN具有模型复杂度更小且训练速度更快的先天优势. 图3展示的是4种模型在相同数据集上损失函数值随迭代次数变化而变化的情况. 从图中可以看出, textCNN模型的损失值相对于其他3种模型不仅下降速度较快, 而且最终收敛到一个更低的稳定值.综合两部分的实验结果可以表明本文提出的基于textCNN模型的利用动态行为分析方法的Android恶意程序检测模型是切实可行的方案, 能够有效提升Android恶意程序检测的准确性和有效性.200600400100080014001200180020001600LSTMRandomForestSVMtextCNN迭代次数图3 不同模型损失值变化图4 结论与展望本文提出了基于textCNN模型的Android恶意程序检测方法. 该方法实现了包含多种触发机制的行为触发系统, 有效提高了程序动态行为的检测覆盖率; 通过hook技术动态采集程序系统函数接口和应用层API的调用情况来生成动态行为日志; 通过fastText算法对行为日志进行词嵌入处理, 将文本数据转换为词向量数据; 使用textCNN模型对程序的行为数据进行检测与分类. 在实验环节, 本文使用1500个恶意样本和1000个正常样本, 分别对动态行为采集模块和基于textCNN的检测模块设置了对照实验, 实验结果证实了本文提出的这两个模块是切实可行的且能够有效提高Android恶意软件检测的准确性.在下一步工作中, 针对动态行为采集模块, 将研究更加智能的动态行为触发机制, 以提高行为检测的覆盖率; 针对动态行为检测与分类模块, 将继续研究分类模型的优化问题, 并尝试将捕捉行为词汇前后依赖关系的机制以及注意力机制引入到模型中, 使模型能够更高效地检测Android程序是否存在恶意性.参考文献360互联网安全中心. 2019年手机安全状况报告. 2020.1–9.1吴震雄. Android恶意软件静态检测方案研究[硕士学位论文]. 南京: 南京邮电大学, 2015.2Ma Z, Ge HR, Liu Y, et al. A combination method for Android malware detection based on control flow graphs and machine learning algorithms. IEEE Access, 2019, 7: 21235–21245. [doi: 10.1109/ACCESS.2019.2896003]3Enck W, Gilbert P, Han S, et al. TaintDroid: An information-flow tracking system for realtime privacy monitoring on smartphones. ACM Transactions on Computer Systems, 4计算机系统应用2021 年 第 30 卷 第 1 期120。
龙源期刊网 http://www.qikan.com.cn 360移动互联网恶意软件分析平台 作者:卞松山 路轶 石晓虹 来源:《信息安全与技术》2013年第12期
【 摘 要 】 移动互联网恶意软件的爆发式增长,迫切需要安全厂商实现移动互联网恶恶意软件样本的自动化分析。本文阐述了奇虎360在手机恶意软件样本自动化分析检测领域的技术实践和主要关键技术。
【 关键词 】 移动互联网;恶意软件;样本自动化分析 1 引言 我国移动互联网正处在快速发展的历史机遇中,手机应用软件(APP)层出不穷、繁荣发展。但由于安卓系统的开源和开放性,手机木马、手机病毒等各类恶意APP也开始出现并迅速增粘,安卓平台的安全形势越来越不容乐观。
根据360安全中心发布的《2012年中国手机安全状况报告》显示,2012年360互联网安全中心新增手机恶意软件样本174977款,同比2011年增长1907%,感染人次71664334人次,同比2011年增长160%;其中,Android平台以新增样本123681款,占全部新增样本数量的71%,感染量达51746864人次,占恶意软件感染总次数的78%,成为手机恶意软件的主要感染平台。2012年12月,其更以单月新增30809款达到历史新高。
恶意软件导致的移动终端个人信息泄露问题日益严峻,相关负面报道的不断出现,例如2011年12月,一款名为CarrierIQ(简称CIQ)的内核级间谍软件被曝光,该软件会暗中收集用户隐私信息,甚至每按下一次键盘都会被秘密地记录在案,并将手机内容上传至网络,让手机用户对隐私泄露产生恐慌。
随着个人信息泄露问题日益严峻,智能手机终端个人信息保护日益受到人们关注,迫切需求制定移动互联网软件安全标准,研发移动互联网智能手机恶意软件监测、分析和查杀的相关技术和产品,保护用户个人信息安全,为用户提供安全可控的移动互联网安全产品和服务。
2 手机恶意软件自动分析检测技术发展 对手机恶意软件的样本进行分析和鉴定,需要有一套自动化的分析和检测系统。目前,对手机恶意软件样本的自动化分析技术主要包括两类。
(1)静态扫描技术:包括两种,一种是传统的特征码扫描匹配技术,另一种是基于数据挖掘的样本识别与分析技术,例如项目承担单位实现了基于机器学习的样本人工智能分析技龙源期刊网 http://www.qikan.com.cn 术,亦即:在建立大量已知黑白样本的训练集基础之上,采用人工智能机器学习算法,对程序文件的静态、行为等特征进行抽取,建立一定的机器学习模型,经过对新样本的不断训练,训练模型将在检出率和误报率之间达到一个较好的平衡,从而实现对未知恶意软件的智能启发式识别能力。
(2)动态行为分析技术:即在一个特定的模拟环境中,监控应用软件的行为,建立恶意软件行为的动态模型,形成一系列恶意软件行为的规则库,通过实时监控识别未知的可疑恶意软件。
3 360移动互联网恶意软件检测分析平台 3.1 系统总体架构 360移动互联网恶意软件自动化分析系统的总体设计方案如图1所示。 3.1.1终端恶意软件查杀 恶意软件查杀的技术路线主要从客户端和云端实现恶意软件的监控与防御——在手机客户端实现主动防御功能,在云端实现联网云查杀的接口服务。其中,主动防御是对系统事件进行实时监控,即当发现手机客户端有异常行为,如未经用户同意即发送付费短信,或者私自联网时,可以在第一时间进行拦截,并且明确提示用户(由用户决定是否继续此行为以及对该软件的后续处理)。
对于普通用户来说,由于软件信息不够透明,用户可能仍无法定性软件是否真的为恶意,因此仅有主动防御对于根除恶意软件是不够的。采用云安全系统设计,用户可以通过与服务器的交互进行“云查杀”——由手机客户端提取该软件的特征码信息,上传至服务端进行即时校验,然后返回该软件的具体信息向用户展现,帮助用户做出准确判断。
3.1.2服务器端手机恶意软件样本自动化分析检测 通过对手机应用软件的使用特点及其面临的安全风险进行分析,选取和使用相应的自动化分析技术和软件权限检测技术。从安装与卸载、程序访问权限、数据安全性、通讯安全性以及人机接口安全性等方面的技术对手机应用软件的安全性进行检测,防止非授权访问、异常执行等。
主要包括三部分技术实现:静态的智能终端恶意代码识别技术;智能终端恶意代码样本收集和特征提取技术;基于动态分析的权限识别技术的实现。
3.2 云端手机恶意软件自动化分析检测技术 龙源期刊网 http://www.qikan.com.cn 360在云端实现软件安全性分析与权限检测的技术实现方法如图2所示。 (1) 静态的智能终端恶意代码识别技术 恶意代码的识别技术主要分为两类:基于静态特征的恶意代码识别技术、基于动态分析的恶意代码识别技术,本工具研究中将采取静态分析和动态分析结合的技术路线。
基于静态特征的恶意代码识别技术基于样本分析软件的生产者、软件唯一ID、签名证书信息、版本、安装包文件特征(每个文件大小、数量、时间)、可执行文件特征、权限等静态特征信息,对可疑程序进行分析和特征匹配,从而判断是否为恶意代码。
通过反编译软件包的源代码并对源代码进行扫描,找出具有恶意代码特征的片段,并对其进行分析。关键分析涉及吸费行为、个人隐私、联网行为等可能出现安全问题的行为,如图3所示。
(2) 基于动态行为监控分析的识别技术 主要有两种方法。一种是建立系统底层检测模块,使其能够检测、拦截、记录恶意使用某些敏感权限的行为。另一种方法是使用钩子技术(Hook)来检测对敏感权限相关API的调用行为。
建立系统底层模块是指对现有的系统源代码进行改造,加入安全检测模块。检测工具可以对软件运行过程中的发送扣费信息、非法链接、非法内容、盗取用户隐私数据的行为进行检测、记录和处理。其流程如图4所示。
使用Hook技术对调用系统敏感API的行为进行检测。应用程序请求系统服务时,首先调用智能终端上的系统函数库,然后由系统函数库对智能终端设备内核API进行系统调用。在进行用户级调用和系统调用时设置监听拦截器,对应用程序调用信息进行监听、收集,将这些信息传递给检测引擎,检测引擎提取软件行为库中的软件行为模型与监听拦截的系统调用信息进行比对,将比对信息传递给分析引擎,分析引擎对这些信息进行分析,得出软件的行为特征。其流程如图5所示。
4 基于海量用户群体智慧的恶意行为分析 手机恶意软件的自动化检测技术仍处于其发展初期阶段。由于手机应用的特点,应用的部分敏感行为需要结合用户实际操作场景才能做出准确判断,这给完全自动化的检测带来的障碍。
我们正在尝试在360手机卫士软件中引入用户举报反馈机制,由海量用户对特定应用软件进行涉及用户隐私信息的敏感操作进行判定,并将判定结果及上下文信息回传至云端,在云端龙源期刊网 http://www.qikan.com.cn 形成海量用户对应用软件行为的判定数据,并进一步通过数据挖掘的方法,实现对软件恶意行为的分析。其基本原理如图6所示。
360手机终端主动防御模块,对用户每款软件的行为判决,回传到云端。云端有了亿万用户对各款软件的投票之后,能够根据真实用户对软件行为的评判,利用群体智慧,完成软件的恶意行为分析。
基于大数据的云计算,包括三个核心模块。 1)MapReduce计算框架。云端可以灵活地选取不同时间窗内的用户评判,利用分布式计算,快速得出结果,并做交叉验证。
2)智能用户分类算法。采用聚类/分类算法,根据用户的安装软件情况,以及对软件行为的判决,将用户划分为若干类,得到分类用户的特征。在时间轴内迭代计算,不断调优用户的特征参数。
3)采用多种维度的计算方法,如二分法、参与度/覆盖度排名、90%置信区间等算法,结合用户特征参数,综合计算软件的恶意行为的可信度。
5 结束语 随着移动互联网恶意软件的爆发式增长,恶意软件自动化分析技术的需求日益强烈。在传统的PC互联网安全领域的静态分析和基于行为监控的动态分析方法,依然适用于手机恶意软件的自动化分析。与此同时,针对手机应用的特性,对于软件恶意行为的判定依赖于用户操作场景,给自动化分析带来障碍。
在此方面,奇虎360公司开始尝试依据海量终端用户对特定敏感行为的举报,通过数据挖掘的方法提升样本自动化分析的能力。
基金项目: 本文研究工作得到“新一代宽带无线移动通信网”国家科技重大专项课题《移动应用软件的认证管理软件开发》(2012ZX03002029)支持。
作者简介: 卞松山(1981-),男,毕业于北京工业大学,获得通信工程专业学士学位,现任北京奇虎科技有限公司核心安全团队技术经理,主要从事手机应用软件的安全分析检测的产品技术研发工作。 龙源期刊网 http://www.qikan.com.cn 路轶(1979-),男,毕业于华南理工大学,获得计算机应用专业硕士学位,现任北京奇虎科技有限公司核心安全团队技术总监,主要从事网络安全、机器学习、云计算等领域的产品技术研发工作。
石晓虹(1970-),男,毕业于西安交通大学,获得计算机系统结构专业工学博士学位,现任北京奇虎科技有限公司副总裁,主要从事网络安全、云计算等领域的技术和产品研究,是国家发改委、工信部等多个项目的负责人。