Android下基于权限的恶意软件检测系统——APK Auditor

APK Auditor:Permission-based Android malware detection system, Digital Investigation(SCI,IF=0.986), 2015年6月 [1]

http://www.sciencedirect.com/science/article/pii/S174228761500002X

1.1. 背景

土耳其Abant Izzet Baysal大学和Gazi大学的研究人员针对现有Android权限管理无法动态调整、用户难以理解权限意义等问题,提出了一种基于权限的Android恶意软件检测方法,并实现了其原型系统APK
Auditor。APK Auditor的服务器端可以对用户设备中的应用和Google Play应用商店中的应用进行权限分析,并基于概率论方法对每个权限的安全性进行打分,通过公式给出应用为恶意应用的可能性分数,并通过Logistic回归方法确定恶意应用分数临界值。

APK Auditor提供了在线测试的网站:其地址为:http://app.ibu.edu.tr:8080/apkinspectoradmin,用户名、密码为“guest/Guest1”。

1.2. 贡献

本文提出了基于权限的恶意软件检测系统APK Auditor,体系结构如图1所示。APK Auditor由三部分组成:1)Android客户端;2)指纹数据库;3)中心服务器。其中中心服务器负责与Android客户端和指纹数据库进行通信,并执行真正的分析流程。Android客户端通过Web浏览器界面与中心服务器通信,可以提交应用或者获取分析结果。

图1  APK Auditor体系结构

中心服务器一方面会将Android客户端提交的应用样本进行分析,另一方面会在午夜时自动从Google应用商店下载100个应用进行分析。因此APK Auditor是一个能够不断自学习的系统。

1.3. 对比

对比本文,其他现有工作1)APK Auditor全部在服务器端完成分析工作,不需要占用手机资源;2)本文方法时间开销小,分析速度快,并且对APK大小不敏感,不会因为APK尺寸而导致分析时间过长。

1.4. 实验

本文的应用样本共有8762个应用,由两部分组成:1)恶意应用采用公开的contagio mobile、Drebin、Android Malware Genome Project恶意应用数据集,共有6909个恶意应用;2)从谷歌应用商店下载的正常应用,共1853个。

在数据集中,APK Auditor采用70%的数据作为训练集,30%的数据作为测试集,实验结果表明,本文方法恶意应用检测的准确率为88.28%,误报率为0.46%。具体数据如表1所示。

表1  APK Auditor方法恶意应用检测结果

1.5. 专家观点

Symantec公司最新互联网安全报告显示,目前Android平台的应用里有17%是恶意软件,包括恶意扣费、隐私获取、诱骗欺诈、恶意传播等类型,给终端用户带来巨大的安全隐患,因此Android恶意应用检测也一直是一个研究热点。本文提出的方法优势在于比较实用,实时性较好,适合业界公司进行实现和部署。手机公司有自己的手机操作系统和应用商店,面对数量庞大的应用开发者,其应用商店的应用审核完全靠人工去识别不现实,需要类似本文的自动化工具的辅助检测。本文成果利用该成果可用于手机应用商店中,以更好地改善手机生态的安全性。

1.6. 参考文献

[1] Talha, Kabakus Abdullah, Dogru IbrahimAlper, and Cetin Aydin. "APK Auditor: Permission-based Android malwaredetection system." Digital Investigation 13 (2015): 1-14.

时间: 2024-08-27 19:47:26

Android下基于权限的恶意软件检测系统——APK Auditor的相关文章

利用基于压缩的图挖掘技术进行基于行为的恶意软件检测技术

利用基于压缩的图挖掘进行基于行为的恶意软件检测技术 摘要——基于行为的检测方法通常用来处理经过了静态混淆的恶意软件的威胁.这种方法通常使用图来代表进程或者系统的行为,通常使用基于频率的挖掘技术,从恶意软件图的数据集中提取特征模式.分子挖掘领域最近的研究表明,基于频率的图挖掘算法通常会寻找高辨识度模式的次最优方法.我们提出了一种恶意软件检测的方法,使用基于量化数据流图的压缩挖掘方法,来获得精确度较高的检测模型.我们在一组大型多样的恶意软件数据集上的实验显示,我们的方法在比基于频率的检测模型高出了6

基于SSM的水质检测系统-java水质检测系统

基于SSM的水质检测系统-java水质检测系统 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释.2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善开发环境:Eclipse ,MYSQL,JDK1.7,Tomcat 7涉及技术点:MVC模式.SpringMvc.Mybatis.Spring.HTML.JavaScript.CSS.JQUERY.DWR.Ajax等系统采用Mybatis框架实现ORM对象关系映射,前台JSP实现,后台springMvc映射,使用Spring框架进行整合

如何在CentOS上配置基于主机的入侵检测系统?

任何系统管理员想要在其生产服务器上最先部署的安全措施之一就是检测文件篡改的机制――不法分子篡改的不仅仅是文件内容,还有文件属性. AIDE(全称“高级入侵检测环境”)是一种基于主机的开源入侵检测系统.AIDE通过检查许多文件属性的不一致性来检查系统二进制文件和基本配 置文件的完整性,这些文件属性包括权限.文件类型.索引节点(inode).链接数量.链接名称.用户.用户组.文件大小.块计数.修改时间.访问时间. 创建时间.访问控制列表(acl).SELinux安全上下文.xattrs以及md5/s

OpenCV——基于颜色的物体检测系统

这次区别于证件照,我试着编写了一下在复杂背景下分离纯色物体的系统,因为只是简单的编程,所以结果有待优化,先分析一下实验环境: 这次的背景杂乱,虽然主体是粉色主导,但是因为光照不统一,色域跨度较大,倒影中也有粉色痕迹,杯壁上有花纹,这种情况下边缘检测误差很大. 为了让计算机更好的识别主体颜色,要先将RGB色域转换为HSV色域,在HSV色域中,红色的H值在(0,3)U(156,180)中.粉色的S值饱和度不高,但是比白色要高很多,区间在(50,150)以内. V代表Value,只有黑色或偏黑的颜色V

Android下基于线程池的网络访问基础框架

引言 现在的Android开发很多都使用Volley.OkHttp.Retrofit等框架,这些框架固然有优秀的地方(以后会写代码学习分享),但是我们今天介绍一种基于Java线程池的网络访问框架. 实现思路及实现 APP界面上面的数据都是通过网络请求获取的,我们能不能将网络请求依次入队,然后配合着Java线程池,让线程依次处理我们的请求,最后返回结果给我们.下面我们先来看一下线程池工具类的实现: 1 public class ThreadPoolUtils { 2 3 private Threa

单片机课程设计——基于51单片机温湿度检测系统的设计与实现

1 #include <reg52.h> 2 #include "1602.h" 3 #include "dht.h" 4 #include "2402.h" 5 6 //定义三个LED灯 7 sbit Led_qushi=P1^6; //去湿灯 8 sbit Led_jiangwen=P1^5; //降温灯 9 sbit Led_shengwen=P1^4; //升温灯 10 sbit Key_TH1 = P3^2; 11 sbit

基于网络(NIDS)的入侵检测系统

入侵(Instruction)是个 广义的概念,不仅包括被发起攻击的人取得超出合法权限的系统的控制权,也包括搜集漏洞信息,造成拒绝访问(Denial of service)等对计算机系统造成危害的行为. 通过被动地监测网络上传输的原始流量,对获取的网络数据进行处理,从中提取有用的信息,再通过与已知攻击特征相匹配或与正常网络行为原型相比较来识别攻击事件.此类检测系统不依赖操作系统作为检测资源,可应用于不同的操作系统平台:配置简单,不需要任何特殊的审计和登录机制:可检测协议攻击.特定环境的攻击等多种

Android中的权限管理(基于uid gid gids setUid)

我们首先来说一下传统的Linux基于uid,gid的权限管理机制: 1.用户的uid gid gids: Ubuntu操作系统当前登陆的用户是jltxgcy,那么该用户的uid为jltxgcy,gid也是jltxgcy,那么gids怎么查看呢? 答案是使用命令:cat /etc/group | grep jltxgcy.如下图: 用户的gids的名字为adm,dialout,cdrom,plugdev,lpadmin,admin,sambashare.此本分请参考linux用户组./etc/gr

Android中的权限管理(基于Permission ProtectionLevel)

1.什么是protectionlevel呢? 我们经常在AndroidManifest中使用权限,如果我们想让应用程序可以发短信,那么应该这样写: <uses-permission android:name="android.permission.SEND_SMS" /> 那么这个权限的定义是在哪里定义的呢?如下: frameworks/base/core/res/AndroidManifest.xml <permission android:name="a