论文研究-基于应用分类和系统调用的Android恶意程序检测.pdf

所需积分/C币:9 2019-09-08 08:26:39 943KB .PDF
2
收藏 收藏
举报

针对Android平台恶意程序泛滥的问题,提出一种基于应用分类和系统调用的恶意程序检测方法。以Google Play为依据进行应用程序分类,利用运行时产生的系统调用频数计算每个类别的系统调用使用阈值。当应用程序安装运行时,手机端收集应用程序权限信息和产生的系统调用信息发给远程服务器,远程服务器根据权限信息采用序列最小优化算法给应用程序进行分类,分类后利用系统调用频数计算出系统调用使用值,与该类别的阈值进行比较判断是否恶意程序,将分类结果及判定结果反馈给用户,由用户判断是否需要更改分类重新检测。实验结果表明了该方法的可行性和有效性,不仅减少了手机的资源消耗,又能对产生恶意行为的应用程序及时做出反
林擎宇,凌捷:基于应用分类和系统调用的 Android恶意程序检测 2017,53(19)111 应用程序新安装运行时,先向服务器发送该程序的权限1,0)表示该应用程序使用了第三个权限和第四个权限 信息,与训练好的分类模型进行判定所属类別,然后每 本文要统计要权限达136种之多,但是并非所有 隔1分钟向服务器上传系统调用情况数据,通过计算出的应用程序同时使用这136种权限,一般而言,应用程 系统调用使用值与该类別國值比较判断是否恶意程序,序可能只申请其屮的10种到25种。在要统计的权限数 若该程序判定为恶意程序监控结東。10分钟内,若量的相比下,每个应用程序的权限使用情况就相当于 发现恶意行为,判定该程序为良性程序,即监控结束。个稀疏矩阵。John在其论文屮已经证明SMO算法对 整个过程的结果会向用户反馈,若用户发现该应用分类稀疏矩阵有更佳的分类效果。Shen等人通过实验对 结果错误,可以修改分类重新监控 比 Native Bayes、J48SMO、JRip等4种算法对 Android 开始 应用程序权限的分类结果,SMO算法的准确率、查全 率、AUC值明显高于其他三类算法。因此本文采用 应用程序/ SMO算法进行分类。 采集一定数量的教据劁 假设统计的n个训练数据为 发送权限信息给服务器 (A1,S1)(A2 利用SMO算法建立分类模型 利用分类模型进行分类 其中A1(1≤n为上文所定义的应用程序权限使用情 况;S;(1≤i≤n)为该应用程序的分类标签,只允许取1 阿隔一分钟向服务器发述 系统调用信息 和一1两个值,1代表一类,-1代表另外一类。 SMO算法会对这个n个训练数据中的类别两两比 计算出每个类别的系统 计算出系统调用 调用使用阀值 较,依据训练集中应用程序的权限和类别进行学小,从 使用值 而得到判定类别的函数关系式。在 Android手机客户端 是∠是否大于系统词用值 中使用 Pack Manager( Android系统管理应用程序包类) 获取应用程序的权限列表,具体代码如程序2所示。 否 否 程厅2获取权限列表代码 是否大于10分钟 PackageManager pack Manager=this. getPackage Manager 判定为恶意程序 Packagelnfo packInfo-=pack Manager.getPackagelnfo(packa 判定为良性程序 geName, PackageManager GET PERMISSIONS) String permissons [=packInfo requestedPermissions 用户是否修改分A冬/ 当用户安装运行新安装的应用程序时,远程服务器 会收到应用程序的权限使用情况,分析处理后得到的权 限向量依据判定类别的凶数关系式进行计算比较确认 结束 所属的分类 图2检测流程图 33基于系统调用的恶意程序检测 32基于权限的应用分类 Linux2.6内核的系统调用多达290个,根据 Takamasa 在 Google Play中,所有的应用程序分为26个类等人"所提出的理论,能反映出应用程序的行为的系统 别叫,每个类別下收集烂够数量的应用程序并获取相关调用仅仅占其中一小部分,为了尽可能地提高精确度 的权限使用情况。本文用 Python脚本结合AAP对训和减少运算量,本文提取了其中18个系统调用:pen 练集中的应用程序提取 AndroidManifest.xml,再对这 access, recv、 recvmsg、read, write、scnd、 sendmsg, clone 个xml文件进行自动化分析,抓取 Permission权限相关 close、 sendio、 recv from、 execve、 ioctl、brk、sbrk、 chmod、 标签,提取出每个应用程序的权限使用情况。 chown,具体说明见表1。 程序1读取 AndroidManifest. xml代码 如程序3所示,在 Android手机客户端中使用 trace ap= axmlprinter. AXMLPrinter(open( Androidmanifest.xml,工具获取应用程序运行时的系统调用情况 rb). reado) 程序3获取系统调用代码 buff=minidom parse String(ap. get BuffO).toxmIO String command="strace-C-0"+Filel. ocation-"-p"+ PID 假设统计了N个应川程序,这样每个应川程序的 Runtime rt=Runtime. getruntimeo 权限情况可以记录为 rtexec(command) A:(P1,P2,…,P13s) livewallpaper;apk表面h是一款壁纸应用,实际上 其中A(1≤N代表应用程序的名称;P16代表它会主动收集用户的位置信息和设备ME等信息上传 Android系统按字母表顺序排列的136个权限,若该应用到恶意应用发布者。如图3所示,是本文在一分钟内操 程序有使用这个权限记为1,否则记为0。例如(0,0,1,作这款壁纸应用所得到的组系统调用使用情况。 017,53(19) Computer Engineering and Applications计算机工程与应用 表1系统调用列表 在k-1分钟到(1≤k≤10,Z)分钟内对其进行操 系统调用 说明 作一共操作10分钟。如程序4所示,通过公式(3)使用 打开文件 Python脚本计算每个类别的系统调用使用國值: 确定文件的可存取性 ecv 通过 socket接受信息 M(R)=W(S,R rea 读文件 T(R)= M(R/10/N (3) write 写文件 通过 socket发送信息 其中,M(R为应用程序在所属类别中的系统调用使用 endm 同 send 按指定条件创建子进程 值T()为类划的系统调用使用國值。 源 关闭文件情述字 程序4计算系统调用使用阈值代码 发送UDP信息 for minute in range(0, 10) environ 接收UDP信息 for i in range(0, 18) exec\ 运行可执行文件 sum+=systemcall[d] ioctl IO总控制函数 for i in range(0, 1 8) brk 改变数据段空间的分配 weight[i](1- systemcall[]/sum)**2 同brk 改变文件方式 weightsum+=weight[ chown 改变文件的属主或用户组 weights[ minute I =weightsum">0.5 weight+=weightsIminute-++] 2500 最后,每分钟通过公式(2)计算待检测应用稈序所 属类别的系统调用使用值,与所属类别的阈值比较判定, 在10分钟内若出现系统调用仗用值大于或等于阈值的 情况,判定为恶意应用程序,否则判定为良性应用程序 目4实验结果及分析 41应用分类结果及分析 图3 livewallpaper apk系统调用频数情况 本文利用 Python脚本爬虫,从 Google Play依据不 Mu等人指出在Lmux系统中正常运行的进程同类别中的应用数量比例抓取一定数量的应用程序 产生的系统调用频数是稳定的,但当进程产生恶意行为共抓取了2048个应川程序作为训练集。每个类别收集 时其系统调用频数也会随之波动。在一定的时间内,本情况具体见图4 文统计的18种已使用系统调用的频数是稳定的,如果 140 出现恶意行为,会引起未使用系统调用或已使用系统调 120 用频数的改变从而改变每个系统调用频数的频率。相 00 同类别卜的应用程序所实现的功能相近,其使用的系统☆80 调用使用情况也相似。 在应用分类结東后,本文所使用的检测算法描述如下。 首先,计算出应用程序每分钟内产生的每个系统调 用在所属类别中的权值: 0时动动个工公购健交教旅媒软社摄生通体天图小效新医咨娱 W(S,R)=U×(1-FS,R)2 化 与运与与与时 其中,S(1≤i≤18)为表1出现的第个系统调用;R(≤ 身和演 健 本视演 具 j≤26)为 Google Play中按字母顺序排序的第j个类 书 别;U①≤;≤18)为表1出现的第i个系统调川的使川 图4不同类别收集的应用程序数量 情况,若有使用记为1,没使用记为0;F(S,R)为系统 利用 Python脚本对每个应用程序的 Androidmani- 调用在类别中出现的频率;WS,R)为每分钟内产生 fest. xml进行自动化分析提取出权限向量。使川wcka 的系统调用在类别屮的权值。 的SMO分类器采用10折交叉验证(数据集随机分为10 然后,确定每个类别的系统调用使用阈值。对训练等份,其中1份作为验证分类模型,其他9份作为训练集 集中的每个类别抽取N个良性应用程序,让不同用户交义验证10次)的结果如表2所示 林擎宇,凌捷:基于应用分类和系统调用的 Android恶意程序检测 2017,53(19)11 表2不同类别分类结果 Hm等人提出了一种利用系统调用事件模式来 类别准确率FM 分析恶意程序的方法。该方法主要是对系统调用事件 动漫 0.878 0.792 0.892 分为正常程序和恶意程序两组,然后使用 strace具对 动态壁纸0.9170.6620942 应用程序抽取系统调用频数等信息来计算两组的相似 健康与健身0.9230.6860.966 教育 度,通过方程式来判断是否恶意程序。本文使用该方法 0.88 社交 0.902 0.615 对表4的8个应用程序进行相似度计算, NeuronDigital 生活时尚 0.892 ).684 0.908 与 HeartIs为本文收集的两个恶意程序,其两者的正常程 通讯 0.919 0.982 序相似度分别为0.55和0.58,按方程式计算的结果, 新闻杂志0.916 0.8U2 0.975 这两个程序会被判定为良性程序。从表4中结果还可 音乐与音频0867 0.636 0.938 以看出,本文提出的基于应用分类和系统调用恶意程序 娱乐 914 0.705 0.973 检测方法结果无误,相比Ham的方法,该判定恶意程序 F-Measure(称Fe)与AC( K Area Under the的方法准确率更高。 ROC Curve)是衡量分类器的评价标准。从应用分类4.3应用分类结果对检测效果的影响 的结果可以看出,准确率、F- Measure、AUC都较高,说 应用程序类别的判定正确与否是影响检测结果的 明该分类器的整体性能相对较好。 关键。按照( google Play的分类, ivewallpaper的分类结 42恶意程序检测结果及分析 果是动态壁纸,该类别系统调用使用阈值是3.641,若把 本文从 Google play中的每个类别分别取20个应 livewallpaper判定为新闻杂志类,该类别系统调用使用 川程序,依次将每个应川程序安装在 Android41(AP1阙值是3967, livewallpaper计算的系统调用使用值是 Level16)真机中,让不同的用户在10分钟内对应用程3725,这样 livewallpaper.会被判定为良性程序从而造成 序内的每个功能进行操作。采用Pyon脚本对收集的误判。因此,应用分类的精确度和用户对分类结果的更 系统调用数据分析处理后,利用公式(3)计算出每个类正是准确判定应用程序是否恶意的重要依据。 别的系统调用使用阈值,计算结果见表3。 表3不同类别系统调用使用阈值 5结论 类别 类别系统调用使用阈值 本文提出了一种基于应用分类和系统调用的 动漫 3.384 Android平台恶意程序检测方法,由 Android手机客户端 动态壁纸 3.641 健康与健身 3.732 对应用程序进行收集权限和系统调用使用情况数据发 教育 3.268 送给服务器,远程服务器利用权限信息对应用程序进行 社交 3.392 分类,在分类结束后利用系统调用频数检测是否恶意程 生活时尚 3.302 序。通过对比的实验结果表明,本方法能够更有效地检 通讯 4.538 测出 Android平台上的恶意程序 新闻杂志 3.967 音乐与音频 4.0)36 娱乐 3.125 参考文献 本文从 Virus Share提取了20个恶意样本,同时1 []卿斯汉, Android安全研究进展叮J软件学报,2016,27(1): 45-71 Google Play提取10个良性样本,分别安装在 Android(2]ApD, Spreilzenbarth M, Hubner M,etal. DREBIN: 41(^ PI Level 16)真机中,利用 Python脚本分析处理 Elective and explainable delection of Android Malware 利用公式(2)计算出不同用户操作10分钟内每分钟产 in your pocket[C]pRoceedings of Network and Distrib 生的系统调用使用值检测结果见表4 uted System Security Symposium( NDSS), 2014: 1-2 表4应用程序檢测结果 [3] Zhang Yuan, Yang Min, Xu Bingquan, et al. Vetting unde 应用程是否恶应用程序类别系统调系统调用检测 sirable behaviors in Android Apps with permission use 序名称意程序所属分类用使用國值使用值结果 analysis[C]/Proceedings of the 20th ACM Conference livcwallpaper是动态壁纸3.641 3.725恶意 on Computer and Communications Security, Nov 2013 是 教育 3.268 3.528恶意 2013:611-622 l euronDigital是生活时尚3023382恶意4] Schmidt a d,ByeR, Schmidt h g, et al. Static analysis HeartIs 是 社交 3.392 3.402恶意 of executables for collaborative malware detection on GANMA 是 动漫 3.384 3.612恶意 Android[C]Processings of the 2009 IEEE International PlanK id 否新闻杂志3.967 783良性 Conference on Communications. Piscataway IEEE Press TalkIe 社交 3.392 3.182良性 2009:631-635 VIEwer 合 动漫 3.384 良性 下转163页)

...展开详情
试读 5P 论文研究-基于应用分类和系统调用的Android恶意程序检测.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
weixin_38744435 你的留言是对我莫大的支持
2019-09-08
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 至尊王者

    成功上传501个资源即可获取
关注 私信 TA的资源
上传资源赚积分or赚钱
    最新推荐
    论文研究-基于应用分类和系统调用的Android恶意程序检测.pdf 9积分/C币 立即下载
    1/5
    论文研究-基于应用分类和系统调用的Android恶意程序检测.pdf第1页

    试读结束, 可继续读1页

    9积分/C币 立即下载 >