信息安全综合设计

上传人:无*** 文档编号:125855287 上传时间:2022-07-27 格式:DOC 页数:50 大小:1.07MB
收藏 版权申诉 举报 下载
信息安全综合设计_第1页
第1页 / 共50页
信息安全综合设计_第2页
第2页 / 共50页
信息安全综合设计_第3页
第3页 / 共50页
资源描述:

《信息安全综合设计》由会员分享,可在线阅读,更多相关《信息安全综合设计(50页珍藏版)》请在装配图网上搜索。

1、 目 录摘要3第一章作品概述51.1背景分析51.2课题研究意义61.2.1安卓市场歹意软件现状61.2.2安卓歹意软件检测评估的必要性71.3 有关工作81.3.1安卓歹意软件检测的现状81.3.1.1 主流检测方案81.3.1.2 有关安全公司检测状况91.3.2安卓歹意软件评估有关内容101.3.2.1 签名机制101.3.2.2 应用程序权限控制机制111.4 特色描述111.5 应用前景分析11第二章作品设计与实现122.1 系统方案122.1.1 方案一122.1.2 方案二122.1.3 方案三132.2 实现原理132.2.1检测原理132.2.1.1基于特性代码的检测132.

2、2.1.2基于权限记录分析的检测132.2.2 Android系统原理142.2.2.1 Android系统构造142.2.2.2 APK文献及其构造162.2.2.3 Android病毒原理172.2.2.4 机器学习、SVM简介和libsvm的使用182.3 软件流程272.3.1 方案一流程272.3.2 方案二流程282.4.3 方案三流程292.4 功能312.5 指标31第三章作品测试与分析323.1 测试环境搭建323.1.1 Windows 8.1323.1.2 Python3.4.3323.1.3 Java SE 8u45323.1.4 Matlab a323.2 测试目的3

3、23.3 测试方案333.3.1系统方案一测试333.3.1.1测试方案1333.3.1.1测试方案2333.3.2 系统方案二测试333.3.2.1测试方案3333.3.2.1 测试方案4333.3.3系统方案三测试333.3.3.1 测试方案5333.3.4 实用性测试343.3.4.1 测试方案6343.4 测试过程及数据343.4.1测试方案1343.4.2测试方案2353.4.3测试方案3363.4.4测试方案4373.4.5测试方案5383.4.6测试方案6393.5 成果分析393.5.1测试方案1393.5.2测试方案2393.5.3测试方案3393.5.4测试方案4393.5

4、.5测试方案5403.5.6测试方案640第四章创新性阐明414.1对Apk权限特性采用加权解决414.2对Apk权限特性进行基于记录的拓展414.3轻量而加强的机器学习方案41第五章总结42摘要Android移动开发平台是Google与30多家全球移动通讯领域内的领军公司联合开发。Android是为移动终端打造的涉及操作系统、中间件、开发组件及应用软件的真正开源平台并于发布了第一款智能手机。如今移动平台逐渐成为人们上网的重要方式,并且基于Android平台的应用越来越普及, Android在人们平常生活中扮演着越来越重要的角色,导致其逐渐成为大量歹意袭击者的首选目的之一。Android应用软

5、件智能终端受到袭击重要因素是顾客从Android第三方市场下载的软件可以不经检测就放到Android软件市场供顾客下载,其代码中存在的安全漏洞是受到袭击的本源。安全漏洞可以使袭击者以非法手段获取顾客重要信息及系统的控制权,并且Android智能终端存储着顾客大量隐私信息,一旦这些信息泄露或破坏,对顾客导致的损失难以想象。随着手机歹意软件愈演愈烈的增长之势,越来越多的手机歹意软件以获取顾客的钱财为目的,其使用的手段也日趋复杂。因此,对Android平台上歹意软件的检测评估迫在眉睫。本作品重要针对Android平台下的歹意软件,对未知软件(即APK文献)进行分析、检测与评估,大体判断出该软件与否为

6、未知软件。例如,对某一软件,我们会对这个APK包里面的权限、签名等信息进行提取,再进行判断。本作品的重要特性如下:(1)与顾客的交互能力强,以便操作。顾客选择了需要检测的安卓软件之后,系统会自动调用我们预设的有关的模型对软件进行解决分析,最后给出一种参照的成果;(2)符合时代需求。现如今智能手机应用广泛,Android系统更是顾客群体庞大,对歹意软件的可靠检测迫在眉睫;(3)预测成果可靠性强。该作品采用了多种因素作为评估检测的评估原则,涉及签名、使用权限、特性码等,相对于某些单一的原则来说,综合性更强,从而可信度更高;(4)实用性强。该作品的应用场景广泛,可以说是智能手机顾客的平常所需。目前,

7、安卓手机上歹意软件引起的安全事件层出不穷,如监控手机的语音通话,并将这些信息发送到指定主机,尚有某些一键root软件实则会更改系统权限盗取信息等。本作品与顾客的交互能力很强,预测成果可靠,且顾客群体众多,可以应用到诸多的领域,在软件应用市场、一般手机顾客群体和手机软件开发测试人员群体中均有较大的应用时间。作品概述 1.1背景分析安卓应用软件随着移动互联网技术日新月异地高速发展,智能终端的的功能迅速增多使之逐渐取代老式桌面成为下一代的计算平台。Android作为最受欢迎的智能终端系统,已经从最初的智能手机领域进入教育、医疗、军事、汽车、家居等重要行业。由于Android容许顾客自行安装多种丰富的

8、应用程序,涉及学习、办公、移动支付、手机购物、以及生活中的多种软件,使得Android的功能在不断的升级和扩大。此外Android智能终端顾客可以通过移动通讯网络随时随处进行网上办公,收发邮件,浏览网页,网上信息注册,网上购物及网上银行转账等,Android终端进行着多种信息的构建。同步存储着SMS、联系人等重要信息,Android智能终端成为顾客大量隐私办公等信息存储的设备。在安卓软件中,歹意代码数量呈指数增长,并且浮现了多种对抗分析、检测、查杀的技术;应用软件和数字内容的版权不断遭到侵害,软件破解、软件篡改、广告库修改和植入、歹意代码植入、应用内付费破解等普遍存在;应用软件自身的安全漏洞频

9、繁出目前国内外互联网公司的产品中,数据泄露和账户被盗等潜在风险让人担忧;官方系统、第三方定制系统和预装软件的漏洞不断被发现,对系统安全与稳定产生极大的威胁;Android应用软件移动支付从概念逐渐转为实践,而对通信技术的袭击、对算法和合同的袭击时常发生;移动设备正融入办公环境,但移动平台的袭击与APT袭击结合的趋势日益明显。更糟的是,随着地下产业链的不断成熟和扩大,以及袭击技术的不断发展和改善,这些威胁和有关袭击只会来势更凶。安卓平台上歹意App泛滥已经不是什么大新闻,但有关安卓歹意App究竟泛滥到何种限度,恐怕诸多人还没有一种清晰的概念。目前,出名安全厂商赛门铁克刊登了一份报告,称安卓App

10、中有17%是歹意App每不到6个安卓App中就存在一种歹意软件,安卓歹意App的泛滥限度可见一斑。 国内安全公司的数据也显示:流氓推广、歹意扣费、窃取顾客数据等歹意软件增长迅速,危害日益严重。在黑色产业链中,骇客通过技术手段将非法SP提供的扣费号段植入到应用中,实现歹意吸费。手机骇客的袭击目的正在瞄准顾客的手机支付与消费行为。为了更好地防备歹意软件和骇客带来的威胁,最佳的措施是理解她们的袭击措施和工具,建立技术壁垒。Android应用软件依托Google媒体资源和强大开发,成为最流行的智能终端平台,也是各智能终端厂商追逐对象,在带给顾客丰富多彩的顾客体验外,随之而来的安全问题给社会稳定、国家安

11、全、顾客隐私带来巨大的挑战,移动应用软件安全目前是一种重要的研究课题,安全漏洞挖掘是减少网络袭击以及保障顾客系统及隐私安全的有效的的途径保证软件免受袭击的重要途径,解决Android软件歹意软件泛滥是此后安全信息领域重要的研究方向。1.2课题研究意义 1.2.1安卓市场歹意软件现状Android移动开发平台是Google与30多家全球移动通讯领域内的领军公司联合开发。Android是为移动终端打造的涉及操作系统、中间件、开发组件及应用软件的真正开源平台并于发布了第一款智能手机。Android应用软件具有丰富的硬件选择并且完全挣脱了运营商和开发商的限制。由于其开源性和与应用的完美结合,吸引了大量

12、开发商和应用开发者转向Android。Android强大的功能和丰富的应用以及优良的性能使其发展迅猛,短短几年,Android已经成为全球第一大智能手机操作系统。如今移动平台逐渐成为人们上网的重要方式,并且基于Android平台的应用越来越普及, Android在人们平常生活中扮演着越来越重要的角色,导致其逐渐成为大量歹意袭击者的首选目的之一。国外顾客一般是从google应用商店下载应用,由于google自身安全检测机制的保障,其安全性不太也许浮现大的问题。但是,中国顾客也许无法直接访问google应用商店,大都是通过国内第三方Android市场下载应用,而google无法控制第三方的应用商店

13、。因此,国内的Android应用安全问题更加突出,安全威胁更高。然而,虽然在安卓官方商店Google Play,也有大量假冒App被发现,Play商店排名前50的免费App,大部分在Play商店中有相应的假冒产品存在。在今年年初,俄罗斯杀毒公司Dr. Web发布了有关手持设备歹意软件的回忆报告。就信息安全事件来讲,在多种状况频出又丰富多彩。新型安卓歹意应用程序不断涌现。具体来讲,银行木马无数的修改版本袭击了许多位于不同国家的设备且它的数量仍在不断增长。此外,互联网安全技术全球领导厂商赛门铁克在最新发布的互联网安全威胁报告中发出警告,所有Android应用中,有17%(约100万个)事实上是歹意

14、软件伪装的。而在报告中,这种内含病毒的应用约为70万个。三分之一Android应用被赛门铁克称为“灰色软件”(Greyware或Grayware),这些移动软件重要是运用大量广告“轰炸”你。赛门铁克还发现首款移动加密讹诈歹意软件,这种软件可加密你的数据,以其为“人质”向你讹诈赎金。1.2.2安卓歹意软件检测评估的必要性Android应用软件智能终端受到袭击重要因素是顾客从Android第三方市场下载的软件可以不经检测就放到Android软件市场供顾客下载,其代码中存在的安全漏洞是受到袭击的本源。安全漏洞可以使袭击者以非法手段获取顾客重要信息及系统的控制权,并且Android智能终端存储着顾客大

15、量隐私信息,一旦这些信息泄露或破坏,对顾客导致的损失难以想象。随着手机歹意软件愈演愈烈的增长之势,越来越多的手机歹意软件以获取顾客的钱财为目的,其使用的手段也日趋复杂。为了实现钓鱼袭击、窃取银行卡信息和银行账户钱财,手机歹意软件变种数量增长了近20倍。在众多手机歹意软件类型之中,银行木马对顾客导致的危害最为巨大。在检测到的银行木马中,某些银行木马甚至可以直接从银行账号实行钱财窃取。这种歹意软件已经从以往直接扣除受害者手机账户话费的老套骗术中得到“升级”。因此,其所导致的潜在损失也在明显增长。而网络罪犯似乎也认准了这种获利手段。相较之猛增的“量”变,更让人感到忧心的是,手机歹意程序同步也浮现了“

16、质”的奔腾。网络罪犯开始越来越多地使用代码混淆技术,即故意制造复杂的代码,这为歹意软件的分析工作增长了很大的难度。歹意软件使用的代码混淆越复杂,反病毒解决方案检测和清除其所耗费的时间也越长,从而让网络罪犯有时间窃取到更多的钱财。网络罪犯会使用安卓漏洞增强歹意程序的权限,大幅增长歹意程序的功能,并且使清除歹意程序变得更为困难。1.3 有关工作1.3.1安卓歹意软件检测的现状1.3.1.1 主流检测方案目前主流歹意软件检测方案重要涉及, 以特性代码(signature-based)为基准的检测方案和以行为(behavior-based)为基准的检测方案。 以特性代码(signature-based

17、)为基准的检测方案在不同的文献中的定义不同,特性方案分为字节码特性(byte-code signature)还是行为特性(behavioral signature), 但本质上都是通过度析待检测文献与否涉及已知歹意软件的特性代码( 一般是从一段病毒代码中提取的代码和字符常量)来判断其与否具有歹意行为。而基于行为的检测方案则依托监视程序的行为(如, 修改内存控制块和总量、 盗用截流系统中断、病毒程序与宿主程序切换、 对可执行文献做写入操作、搜索 API 函数地址) 来作为判断的基准,由此判断文献与否是歹意文献。(1)以特性码为基准的歹意软件检测方案本论文中以特性代码为基准的检测(signatur

18、e-based) 采用基于字节码特性的检测(byte-code-based)方案。并对其定义如下:从歹意软件的歹意代码中提取出持续不含空格的字符串作为该歹意软件的特性, 保存在病毒库中, 并依托由此构建的病毒库来检测歹意软件。因此,病毒库须频繁升级以应对病毒的反检测和新变种。同步,基于特性代码的检测方案具有滞后性,无法辨认未知的歹意软件。(2)以行为为基准的歹意软件检测方案以行为(behavior-based)为基准的检测措施又可以实现方式分为白名单模型和黑名单模型,黑名单模型对歹意行为进行建模,但和基于特性代码的检测(signature-based)同样,无法检测未知歹意程序。基于白名单的的

19、模型和黑名单模型相反,重要对合法行为进行建模,可以有效的检测未知歹意软件,但在实际应用中,由于合法行为占据了较大比例,要对其进行充足的抽象具有极大的挑战,从而引起误报。1.3.1.2 有关安全公司检测状况(1)所选用的安全软件供应商产品包名版本AVG小红伞com.antivirus3.1Symantec诺顿手机安全软件com.symantec.mobilesecurity3.3.0.892Lookout手机保护com.lookout8.7.1-EDC6DFSESETESET移动安全com.eset.ems1.1.995.1221Dr.Web大蜘蛛反病毒软件com.drweb7.00.3Kasp

20、ersky卡巴斯基手机安全软件com.kms9.36.28Trend micro移动安全个人版。com.trendmicro.tmmspersonal2.6.2ESTSoftALYac Androidcom.estsoft.alyac1.3.5.2ZonerZoner安全防护com.zoner.Android.antivirus1.7.2WebrootWebroot 安全和防病毒com.webroot.security3.1.0.4547(2)歹意软件采用技术代码技术P改装一分解及组装RP包重命名EE加密本地运用或有效载荷RI重命名标记符RF重命名文献ED编码字符串和数组数据CR代码重排序CI

21、间接调用JN插入垃圾代码AVGSymantecLookoutESETDr. WebKasperskyTrend MESTSoftZonerWebrootP一XRPXXXEEXXRIXXXEDXCRXCIXJNXRI + EEXXXXXEE + EDXXXEE + RFXXXEE + CIXXXRP + RI + EE + ED + RF + CIXXXXXXXXXX(3)部分检测成果注:上表中的“”表达未检测出1.3.2安卓歹意软件评估有关内容1.3.2.1 签名机制与其她某些智能手机平台同样, Android 也设计了自己的签名机制。但是和其她平台又有所不同的是, Android 应用程序签

22、名标明了 APK 的发布者,同步可以对程序的完整性和可靠性作为保证。只要黑客试图对 APK 的内部进行了变动, 就必须对 APK 文献进行重新签名。而签名信息,除非原作者的私钥泄露, 被黑客获取, 一般状况下不也许和原签名信息一致。同步, 签名机制在 Android 应用程序更新时也能起到保护作用。如果顾客在更新应用程序时,两者的签名信息不一致, 系统将会严禁本次更新。如果一种应用程序需要使用System权限,应用程序的签名更需要和Framework的签名保持一致。由此可见,在Android 的应用程序和应用程序框架层中,签名机制起到了十分重要作用,进一步保护了系统的安全。签名机制重要是在 A

23、ndroid 安装或更新应用程序时生效, 是一种检测 APK 包完整性和发布机构唯一性的机制。 它基于每个 APK 包中签名文献具有的唯一性,使得单纯的对 APK 文献解压后替代文献的篡改行为无法奏效,因此一定限度上实现对保护了系统的安全。1.3.2.2 应用程序权限控制机制权限控制机制是Android 系统在应用程序框架层最核心的机制。它用于限制应用程序的访问系统的API 和资源。应用程序必须在权限以内运营,而不能访问权限外的任何资源。Android的Package Manager在程序安装时经顾客批准给应用程序安装包赋予权限,而在执行时由应用程序框架层验证权限,如果应用程序未经申请使用了受

24、限的资源,应用程序会自动关闭。 Android 定义了上百种系统权限,所波及的功能涉及:拍照,访问网络,地理位置定位等。这些权限可以被分为一般级、危险级、签名级和系统级。1.4 特色描述本作品着眼于安卓歹意软件的检测。对软件的检测,它不局限于单一原则,而是综合评估与计算。此外,本作品运用机器学习和权限加权,大大提高了检测成果的精确度。同步运用svm工具,根据机器学习来构造检测系统。1.5 应用前景分析目前,安卓手机上歹意软件引起的安全事件层出不穷,如监控手机的语音通话,并将这些信息发送到指定主机,尚有某些一键root软件实则会更改系统权限盗取信息等。本作品应用市场有:(1)软件应用市场:可以通

25、过本产品对于市场上要上架的软件进行检测,作为审核上架的一道工序,以便更好地为顾客提供一种下载安全好用的软件的地方。同步在顾客下载的时候,也可以根据本作品的检测成果向顾客提供某些建议。(2)一般安卓手机顾客:对于不可信来源下载来的APK运用本软件进行检测,参照一下与否可以放心使用该软件。(3)软件测试及开发人员:运用本作品对于自身的开发测试工作进行参照。作品设计与实现 2.1 系统方案在本系统中,对于Android歹意软件检测与评估的方案并不是一蹴而就的。为此,我们一开始采用了较为直观简洁的检测方案,随后不断尝试对方案进行改善、丰富、提效。在系统设计的过程中,变化方案的方向不一定是对的的,因此,

26、在制定不同方案的同步,将不同阶段的方案随时进行效果对比,分析不同方案的优劣,以寻找出一种或者几种相对最优的方案。下面简介了本系统设计中Android歹意软件检测与评估的不同方案。2.1.1 方案一对软件的Android所有95个不同权限的使用状况进行机器学习分析,得到基于大量权限特性的Model进行预测。使用Google提供的apktool对Android软件权限进行提取,分析Manifest.xml中的所有权限信息(“users-permissions”),对大量样本的所有权限使用状况进行机器学习运算,运用libsvm工具箱得出预测model,进而用model对Android软件与否为歹意软

27、件进行检测。2.1.2 方案二在Android所有95个不同权限中进行基于安全有关性的筛选与加权,试图提高SVM model的精确率。由于apktool的反编译过程较慢,方案二采用了更为高效的AXMLPrinter作为XML分析手段。为了进一步提高系统的分析效率,并不将所有的Android权限标签作为SVM测试集的特性项,而是从中选择了一部分,并且根据人为判断的重要性予以一定的权值。而为了提高预测精确率,加入了特性码检测过程,该过程可以以很高的精确率辨认出歹意软件。方案二实现的过程中,我们不断对Android权限的筛选和加权状况进行优化和修改,直到使Model的精确率达到难以继续提高的数值。2

28、.1.3 方案三结合方案一和方案二。在对权限进行筛选、加权的同步,仍然对所有权限进行分类记录、分级记录的操作,记录出各类、各级权限的个数,并且根据设定的阈值将逻辑判断成果作为测试集特性的一部分。方案二采用更少的特性和具有高精确性的特性码检测,而方案一的大量特性则为SVM提供了更大的样本空间。方案三在执行类似方案二的过程同步,对95个权限标签进行记录上的分类和分级。其中对权限的分类基于权限的不同功能,而权限的分级则是根据影响手机系统安全、顾客利益的威胁大小进行。对于不同级别、组别的软件,将根据其特性设定合适的权限个数阈值,判断此项与否超过阈值的逻辑成果作为特性附加到测试集的特性中。2.2 实现原

29、理2.2.1检测原理本系统对Android歹意软件的检测重要分为基于特性代码的检测和基于权限记录分析的检测。2.2.1.1基于特性代码的检测特性代码检测是一种使用特性库的检测措施,本系统中的特性代码检测定义如下:从歹意软件张提取出若干段具有唯一性、固定性的字节码(如,一段特殊代码或字符串作为该歹意软件的特性,由上述措施构建特性库,通过对未知与否歹意的软件进行字节码的特性库匹配,检测其与否为歹意软件。基于特性代码的检测方案是现代病毒检测的核心技术之一。但其存在如下缺陷:1)具有滞后性,无法辨认未知的歹意软件2)字节码特性容易通过加密和混淆的方式被变化,导致特性库需要频繁更新。由于基于特性代码检测

30、的上述特性,本系统辅以基于权限记录分析的检测方案。2.2.1.2基于权限记录分析的检测权限控制机制是Android 系统在应用程序框架层最核心的机制。它用于限制应用程序的访问系统的API 和资源。应用程序必须在权限以内运营,而不能访问权限外的任何资源。Android的Package Manager在程序安装时经顾客批准给应用程序安装包赋予权限,而在执行时由应用程序框架层验证权限,如果应用程序未经申请使用了受限的资源,应用程序会自动关闭。 Android 定义了上百种系统权限,所波及的功能涉及:拍照,访问网络,地理位置定位等。这些权限可以被分为一般级、危险级、签名级和系统级。由与Android软

31、件所申请的权限与其软件的功能有着极大的有关性,使得对权限进行分析判断Android软件与否歹意软件成为也许。而Android软件数以百万、千万级的庞大数量,则为使用机器学习算法对进行权限分析、建立模型提供了有利的条件。通过对权限特性的量化,即可以使用SVM(支持向量机)分类器对大量的Android歹意软件、非歹意软件的样本的权限信息进行记录和建模,生成一种用于预测Android软件与否为歹意软件的Model。2.2.2 Android系统原理2.2.2.1 Android系统构造Android系统架构为四层构造,从上层到下层分别是应用程序层、应用程序框架层、系统运营库层以及Linux内核层。下

32、图为Android系统架构图:(1)应用程序层Android平台不仅仅是操作系统,也涉及了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是用Java语言编写的,并且这些应用程序都是可以被开发人员开发的其她应用程序所替代,这点不同于其她手机操作系统固化在系统内部的系统软件,更加灵活和个性化。(2)应用程序框架层该层是Android应用开发的基本,开发人员大部分状况是在和她打交道。应用程序框架层涉及活动管理器、窗口管理器、内容提供者、视图系统、包管理器、 电话管理器、资源管理器、位置管理器、告知管理器和XMPP服务十个部分。在Android

33、平台上,开发人员可以完全访问核心应用程序所使用的API框 架。并且,任何一种应用程序都可以发布自身的功能模块,而其她应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,顾客就可以以便地替代平台本 身的多种应用程序组件。(3)系统库和Android运营库系统库涉及九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。 Android运营库涉及核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又涉及了Android的核心库,例如 Android.os、A、Android.media

34、等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机重要是完毕对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。(4)Linux内核Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络合同栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。2.2.2.2 APK文献及其构造apk文献,即Android application package文献。每个要安装到OPhone平台的应用都要被

35、编译打包为一种单独的文献,后缀名为.apk,其中涉及了应用的二进制代码、资源、配备文献等。apk文献实际是一种zip压缩包,可以通过解压缩工具解开。如下是我们用zip解开helloworld.apk文献后看到的内容。可以看到其构造跟新建立的工程构造有些类似。(1)AndroidManifest.xmlAndroidManifest.xml是Android应用程序中最重要的文献之一。它是Android程序的全局配备文献,是每个Android程序中必须的文献。它位于我们开发的应用程序的根目录下,描述了package中的全局数据,涉及package中暴露的组件(activities, service

36、s, 等等),以及她们各自的实现类,多种能被解决的数据和启动位置等重要信息。 因此,该文献提供了Android系统所需要的有关该应用程序的必要信息,即在该应用程序的任何代码运营之前系统所必须拥有的信息。在本系统中,重要通过对AndroidManifest.xml文献的信息提取和分析实现了歹意软件的检测。(2)META-INFMETA-INF目录下寄存的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一种api包时,会对所有要打包的文献做一种校验计算,并把计算成果放在META-INF目录下。而在安装apk包时,应用管理器会按照同样的算法对包里的文献做校验,如果校验成果与

37、META-INF下的内容不一致,系统就不会安装这个apk。这就保证了apk包里的文献不能被随意替代。例如拿到一种apk 包后,如果想要替代里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替代再重新打包,基本是不也许的。如此一来就给病毒感染和歹意修改增长了难度,有助于保护系统的安全。(3)res目录寄存的大部分是某些图片资源和界面的布局文献。drawable和drawable-*目录寄存的是多种不同辨别率的图片资源。layout、menu、xml目录寄存的是软件界面的布局文献,涉及菜单、窗口、主界面和设立界面等。(4)classes.dexclasses.dex是java源码编译后生成

38、的java字节码文献。但由于Android使用的dalvik虚拟机与原则的java虚拟机是不兼容的,dex文献与class文献相比,不管是文献构造还是opcode都不同样。目前常用的java反编译工具都不能解决dex文献。(5)resources.arsc二进制格式的文献,aapt对资源进行编译时,会为每一种资源分派唯一的id值,程序在执行时会根据这些id值读取特定的资源,而resouces.arsc文献正式涉及了所有的id值的数据集合。在该文献中,如果某个id相应的是string,那么该文献会直接涉及该值,如果id相应的资源是某个layout或者drawable资源,那么该文献会存入相应资源

39、的途径。2.2.2.3 Android病毒原理Android平台的歹意软件重要由如下几种袭击方式:(1)歹意扣费:此类病毒在顾客不知情的状况下,向SP订购付费业务,扣除顾客的话费,(2)窃取隐私:此类歹意软件重要是窃听顾客通话,窃取顾客位置信息、通讯录等资料,并在后台上传到服务器,从中获取有利信息或者转卖出去,进而获利、)(3)消耗资费:此类病毒重要在后台自动联网,不断下载广告主推广的应用或其她歹意软件,从而获取非法利益,这样直接导致顾客的网络流量和设备电量消耗过大。通过度析病毒源代码,可以发现病毒重要是运用短信、电话、网络等功能加上某些其她的辅助功能达到非法目的。1)盗发短信在后台偷偷向SP

40、发送订购付费业务短信,这是病毒最常用的手段,病毒获得发送短信的权限后,运用SmsManageY类,在顾客不懂得的状况下,向SP发送订购付费业务短信:SmsManager.getDefault()sendTextMessage (tel,null,message,null, null);其中tel为短信发送地址,message为短信订购内容、一般在向SP发送订购业务后,SP会答复一种确认短信给顾客,让顾客再次确认与否订购该业务。这时,病毒屏蔽SF发来的确认短信,不让顾客看到,再次偷偷发送确认短信给SP,然后删除有关短信。这样,就成功订购了业务,扣除了顾客的话费,而这一过程,顾客毫不知情。病毒屏蔽

41、短信是运用了Android的四大组件之一BroadcastReceiver, Android收到短信时,会发出一种有序广播,病毒获得接受短信的权限后,声明一种BroadcastReceiveY并把优先级设的很高,病毒优先收到SP发来的短信后,判断与否是特定SP的号码,如果是,一方面终结广播的传播,其她程序就不会收到短信了。然后再次偷偷向SP发送确认短信,最后删除SP发来的消息和发件箱中偷偷发出的短信。2)盗打电话对于Android手机,通过拨打电话扣费的病毒较少,由于拨号无法做到像偷发短信同样那么好的隐蔽性,但是近来也浮现了某些病毒,入侵顾客的手机后,自动拨打指定的号码,这种号码一般会收取很高

42、的SP费用。病毒获得拨打电话的权限后,只需要调用一次Intent,即可实现拨打指定电话的功能。3)网络传播病毒一般从两个方面运用网络:第一,在后台联网,上传顾客的隐私信息;第二,在后台下载其她应用程序或者病毒程序。这两者都将消耗顾客大量的网络流量,同步也消耗了诸多电量。无论是上传还是下载,都是使用HTTP,借助于JAVA的输入输出流实现上传代码类似于: UploadFile(File file,String up_url); 其中file是上传的文献,up_url是上传服务器地址、 下载代码类似于: DownFile ( String url,String path,int thread_ n

43、um);其中,url为所下载文献的源地址,path是文献下载后的保存途径,thread num是下载的线程数。2.2.2.4 机器学习、SVM简介和libsvm的使用 基于数据的机器学习是现代智能技术中的重要方面,研究从观测数据(样本)出发寻找规律,运用这些规律对将来数据或无法观测的数据进行预测。机器学习措施有诸多,例如决策树、神经网络、隐马尔可夫模型(HMM)、支持向量机等,既有机器学习措施共同的重要理论基本之一是记录学。在老式记录学的理论上发展出来的支持向量机(SVM)理论体现出其独特的性能。本节涉及机器学习、支持向量机(SVM)和libsvm的使用。(1) 机器学习1)机器学习模型与定义

44、机器学习35的目的是根据给定的训练样本求得系统输入、输出之间的关系的,使系统可以对其她行为作出最也许对的的预测。其基本模型如图3-10所示。图 3-10 机器学习模型图其中系统是我们所要进行研究的对象,学习机是我们所要得到的模型。系统在一定的输入x下可以得到一定的输出y值,而学习机输出的为y。假设输出y与输入x之间存在一定的未知联系,机器学习的问题就是根据若干个独立同分布的训练样本(x1,y1), (x2,y2), (xn,yn)(假设样本个数为n)在一组函数中,选择一种最优的函数对x,y之间的关系进行评估,而就是一种学习机。若给定的输入x与定量的参数时,其输出值y=是相等的,则称此学习机是拟

45、定性的学习机,若对相似的x与,输出值y=有浮现不相等的状况,则称此学习机是不拟定性的。2)损失函数对于一种学习机,可以定义一种损失函数,用来表达预测函数对y进行预测时导致的损失。对于模式辨认、回归模型和概率密度估计问题这三个机器学习的基本问题,有着不同形式的损失函数。下面作简朴的简介。模式辨认问题模式辨认,简朴来说,即是对数据进行模式分类的过程,通过训练学习机“学习”知识,然后看待预测数据进行预测类别。其输出值y是类别号,一种号码相应唯一一种类别。在两元分类的状况下,y值可以定义为y=0,1,是二值函数。一般定义模式辨认问题的损失函数为: (3-33)回归问题回归问题中的输出值y是个持续变量,

46、其损失函数一般采用最小平方的误差,即定义为: (3-34)概率密度估计问题在概率密度估计问题中,学习的目击是根据训练样本拟定输入值x的概率密度。假设其密度函数为,则损失函数一般定义为: (3-35)3)经验风险最小化在机器学习中,对以一种既定的学习机,其损失函数可以定义一种盼望,成为盼望风险,定义如下: (3-36)而经验误差是指训练样本的平均误差,这是每个系统均有的误差,我们只有最大也许的去缩减误差,而不能完全的避免之,经验误差定义为: (3-37)在实际问题中,我们总是想让盼望风险最优,其愈小,则成果愈好。但在应用中,是无法通过直接计算来得到。因此,机器学习措施中一般采用经验风险最小化的原

47、则来对盼望风险进行估计。即用的成果来估计,即我们只需要通过得到经验风险的最小化来进行使盼望风险最小化。例如,在模式辨认问题中,经验风险就是指训练样本的错误率,在本文的实验中,即指图像预测分类的错误率。前人的研究发现,盼望风险和经验风险并不是严格的相应关系,当经验风险最小时,盼望风险并不一定是最小。其关系如图3-11所示。图 3-11望风险与经验风险关系图因此在实际应用中,寻找一种合适的学习函数对预测成功率是非常重要的,要寻找盼望风险和经验风险的最佳匹配函数。4)函数集的VC维模式辨认措施中VC维的直观定义是:对于一种指标函数集,如果存在n个样本可以被函数集中的函数按所有也许的2h种形式分开,则

48、称函数集可以把n个样本打散;函数集的VC维就是它能打散的最大样本数目h。有界实函数的VC维可以通过用一定的阈值将其转化为批示函数来定义。VC维反映了函数集的学习能力,VC维越大则学习机器越复杂(学习能力越强)。记录学习理论系统地研究了多种类型函数集的经验风险(即训练误差)和实际风险(即盼望风险)之间的关系,即推广性的界。有关两类分类问题有如下结论:对批示函数集中的所有函数,经验风险和实际风险之间至少以概率满足如下关系: (3-38)其中h是函数集的VC维,n是样本数。5)构造风险最小化经验风险最小化原则在样本有限(即h/n较大)时是不合理的,此时一种小的经验风险值并不能保证小的实际风险值。为解

49、决此问题,就需要在保证分类精度(即减小经验风险)的同步,减少学习机器的VC维,从而使得学习机器在整个样本集上的盼望风险得到控制,这就是构造风险最小化(SRM)原则的基本思想。构造风险最小化为我们提供了一种不同于经验风险最小化的更科学的学习机器设计原则,显然,运用构造风险最小化原则的思想,就可以解决神经网络中的过学习问题。构造风险最小化示意图如图3-12所示。图 3-12构造风险最小化示意图实际风险由两部分构成:经验风险,以及置信范畴。可简朴的表达为: (3-39)它表白在有限样本训练下,学习机VC维越高(机器的复杂性越高),则置信范畴越大,导致真实风险与经验风险之间也许的差别越大。这就是为什么

50、浮现过学习现象的因素。(2)支持向量机1)支持向量机的思想支持向量机的理论最初来自于对数据分类问题的解决。对于线性可分数据的二值分类,如果采用多层前向网络来实现,其机理可以简朴描述为:系统随机的产生一种超平面并移动它,直到训练集合中属于不同类别的点正好位于该超平面的不同侧面,就完毕了对网络的设计规定。但是这种机理决定了不能保证最后所获得的分割平面位于两个类别的中心,这对于分类问题的容错性是不利的。保证最后所获得的分割平面位于两个类别的中心对于分类问题的实际应用是很重要的。支持向量机很巧妙地解决了这一问题。该措施的机理可以简朴描述为:寻找一种满足分类规定的最优分类超平面,使得该超平面在保证分类精

51、度的同步,可以使超平面两侧的空白区域最大化;从理论上来说,支持向量机可以实现对线性可分数据的最优分类。为了进一步解决非线性问题,Vapnik等人通过引入核映射措施转化为高维空间的线性可分问题来解决。支持向量机的重要思想概括起来就是两点:a.支持向量机重要针对线性可分的状况进行解决。对于不可分的情形,支持向量机重要使用非线性映射算法,通过将低维空间线性不可分的样本转化为高维特性空间使其线性可分,从而使得高维特性空间采用线性算法对样本的非线性特性进行线性分析成为也许;b.基于构造风险最小化理论之上在特性空间中建构最优分割超平面,使得学习器得到全局最优化,并且在整个样本空间的盼望风险以某个概率满足一

52、定上界。2)支持向量机的分类原理具体简介。a.线性可分支持向量机线性可分重要是指,在二元分类中,存在一种超平面,使得训练样本中的两类不同的输入分别划到该超平面的两侧。我们设训练样本集为S=(,y1), (,y2), (,yn),其中Rn, yi=0,1(或者yi=-1,1),i=1,n。设超平面为。超平面划分二元分类示意图如图3-13所示。图 3-13 超平面划分二元分类示意图从图3-13中我们可以看出划分二元分类的超平面不止一种,有诸多种超平面都可以把样本分开。那么我们应当选择那一种超平面作为应用呢?我们一方面规定超平面集中的一种超平面(即图中的直线)法线方向,如图3-14所示,直线H代表是

53、觉得法向量的超平面,并且H可以对的划分二元分类样本。我们可以把H进行平移,这样我们可以得到若干条直线,例如直线H1、H2,并且这若干条直线也是可以对的划分样本。但是平移是有一定的度的,如果平移到H3的位置,H3不能对的的划分样本。图 3-14最优分类超平面示意图从图3-14中我们可以看出,H直线明显是最优的超平面。这样我们只需规定得法向量的值之后,我们就可以构造出该分类超平面。b.线性不可分支持向量机对于线性不可分的状况,可以把样本X映射到一种高维特性空间H,并在此空间中运用原空间的函数来实现内积运算,这样将非线性问题转换成另一空间的线性问题来获得一种样本的归属。根据泛函的有关理论,只要一种核

54、函数满足Mercer条件,它就相应某一空间中的内积,因此只要在最优分类面上采用合适的内积核函数就可以实现这种线性不可分的分类问题。此时目的函数为: (3-40)其中。其相应的分类超平面函数为: (3-41)目前用到的最多的SVM工具是台湾大学林智仁博士的LibsvmError! Reference source not found.,Libsvm中实现的核函数有:线性核函数、多项式核函数、径向基核函数(RBF核)与Sigmoid核函数。1)多项式核函数 (3-42)2)RBF核函数 (3-43)3)Sigmod函数 (3-44)(3)libsvm工具包1)libsvm工具包的简朴简介Libsv

55、m是台湾大学林智仁博士开发的一种简朴易用的SVM软件工具。该工具完全开源,提供了C+、Java、Matlab、Python等语言的函数接口,以供不同的环境下使用。固然,这样也以便了后人根据自己的需求进行改善程序。Libsvm工具包涉及了分类问题、回归问题和分布估计的解决措施,并提供了线性、多项式、RBF和Sigmod四种常用的核函数。在训练时,SVM的参数选择并没有一种较好的模式进行选择,一般是采用实验搜索的措施进行查找最优的参数。在Libsvm中,参数的选择是在训练样本时进行交叉检查时进行查找最优的。2)libsvm的使用该工具包提供了源代码以及在win32平台下的可执行文献,重要涉及一下文

56、献:对数据集进行缩放的svm-scale.exe,对训练样本进行训练的svm-train.exe,以及使用训练得到的模型对测试数据集进行预测的预测程序svm-predict.exe。下面具体简介下该工具包的使用。Libsvm的输入数据集如下所示:label index1:value1 index2:value2 .label index1:value1 index2:value2 .其中,顾名思义,支持向量机的输入格式是采用向量的形式,如上所示,label表达该向量的标签,即分类的类别,用整数表达;index表达向量数据的顺序索引,即向量的维数,范畴从1开始,直至最大维数;value即向量每一

57、维的数值,从样本中提取出的特性值。2)数据集的缩放解决我们使用工具包提供的svm-scale.exe对数据集进行预解决,把向量组中的数值缩放到一定的范畴内,一般是缩放到0,1或者-1,1之间。这一步在训练样本时并不严格规定一定要缩放,但是我们一般都在训练前缩放下,因素具体有二:一是为了加快计算速度,由于在训练中,样本数据集一般很大,并且未经缩放的数据集的差距范畴很大,这将影响训练的解决能力。二是为了提高计算精度,由于我们在接下来运用迅速脚本对训练参数进行选择时,参数会在某一种范畴内进行选择,而此范畴很小,因此我们只有把所有的特性值缩放在一种范畴之内时才可以更好的从该范畴中寻优。3)样本数据集的

58、训练训练使用工具包中提供的svm-train.exe,一般使用通过缩放的样本数据集进行训练。Libsvm工具包中在训练程序中提供了多种核函数以供选择,其中涉及线性核、多项式核、RBF核与Sigmod核四类核函数。可以在使用时通过设立相应的参数来进行调用相应的核函数。在该程序参数中,惩罚系数c和gamma参数比较重要,其默认值分别为1和1/k,在使用时我们一般运用该工具包中附带的easy.py脚本程序调用该训练程序,并通过交叉验证的措施在一定范畴内穷举对上述两个参数进行测试寻优,easy.py脚本的使用措施将在下面进行简介。该程序的其她具体的参数可以查看提示文档。4)对测试数据集进行预测对测试数

59、据集的预测使用工具包中提供的svm-predict.exe程序,通过在预测前看待测试数据集也进行缩放的预解决。值得注意的是,训练样本集和测试数据集的缩放要同步进行,或者使用在对训练样本集scale时运用-s参数得到的range范畴文献作为参数对测试数据集进行scale,以保证一致性,否则预测的效果也许不是较好。顺便提到一点,在默认状况下,预测是不带概率的,要想得到一种样本分类到每一类的概率,那么需要在预测时加上-b参数,并且规定预测的model文献也具有概率的功能,即在训练时也需要使用-b参数使得到的model具有概率的功能。5)快捷脚本的使用Libsvm在提供工具包的同步,也提供了多种简朴的

60、python脚本,以以便我们快捷的使用该工具包,我们只需要对该脚本文献做简朴的配备即可便捷的使用。下面对脚本文献做简朴简介,涉及checkdata.py脚本、grid.py脚本和easy.py脚本。一方面我们需要安装python程序包20和gnuplot绘图软件19,python程序包安装之后,在使用时,由于Libsvm中提供的接口文献svmc.pyd也许是针对特定的python版本进行编译的,那么我们在安装python之后,最佳针对本机再重新编译出该接口文献,否则会导致调用出错,具体的编译措施参见Libsvm程序包中的协助文档,本文不再具体简介。而gnuplot是个绿色软件,放到一种固定途径

61、即可。脚本checkdata.py是用来检查数据集文献的格式与否符合Libsvm的输入格式,用法很简朴,本文也不做具体简介,下面具体简介下grid.py和easy.py脚本。在使用前,我们需要把easy.py和grid.py中的参数途径进行配备,即设定好Libsvm中的各个程序的途径以及gnuplot的途径,然后才干对的使用。在使用时,easy.py把svm的流程都一体化的放在脚本里,运营该脚本时,脚本会依次调用缩放程序、训练程序以及预测程序。在训练时,easy.py调用grid.py来对训练参数c和gamma进行寻优,grid.py封装了寻优的过程,其采用交叉验证(Cross Validation)的措施,对c和gamma在一定范畴内进行穷举寻优。2.3 软件流程2.3.1 方案一流程一方面使用google的APK工具包Apktool,在Java环境下对软件APK进行反编译。反编译结束后将得到软件同名文献夹,在文献夹中找到A

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!