当前位置: 首页 > 专利查询>武汉大学专利>正文

基于内核LKM的Android平台恶意软件自动化检测方法与系统技术方案

技术编号:23763972 阅读:22 留言:0更新日期:2020-04-11 18:52
本发明专利技术公开了一种基于内核LKM的Android平台恶意软件自动化检测方法与系统,该方法包括以下步骤:步骤1)安装运行待检测软件,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;步骤2)在操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;步骤3)将生成的监控消息从内核空间发送到外部自动化模块。本发明专利技术方法能克服动态分析不能对包含第三方本地库的应用进行监控的缺陷,有效提高了恶意软件检测的覆盖范围,提高了动态分析结果的准确性。

Automatic detection method and system of malware on Android platform based on kernel LKM

【技术实现步骤摘要】
基于内核LKM的Android平台恶意软件自动化检测方法与系统
本专利技术涉及软件测试技术,尤其涉及一种基于内核LKM的Android平台恶意软件自动化检测方法与系统。
技术介绍
随着智能手机也拥有了独立的操作系统,手机的功能得到了极大的丰富。智能手机允许用户自己下载第三方厂商上传的各类软件,大量的第三方软件可以满足用户除通信外的大部分需求。而在繁多的移动终端操作系统中,基于Linux内核的Android操作系统发展最为迅速。由于Android系统选择开源,这在很大程度上方便了恶意软件对Android用户的恶意攻击。目前主要的Android软件行为分析技术分为静态分析技术和动态分析技术两大类。静态分析技术的检测效果极大的依赖于特征库的选取总结,且对于权限过度和恶意软件无法有效区分。动态分析技术能有效避免静态分析技术遇到的问题,但现有的动态分析工具,如TaintDroid、Droidbox,都只能对使用Android框架层API的应用进行行为分析,当应用调用的是本地库中的API时,TaintDroid和Droidbox就无能为力了。
技术实现思路
本专利技术要解决的技术问题在于针对现有技术中的缺陷,提供一种基于内核LKM的Android平台恶意软件自动化检测方法与系统。本专利技术解决其技术问题所采用的技术方案是:一种基于内核LKM的Android平台恶意软件自动化检测方法,包括以下步骤:步骤1)安装运行待检测软件,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;步骤2)在操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;具体步骤为:步骤2.1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;短信发送和电话拨打都是通过调用write系统调用来进行的,对这两个行为的监控只需劫持write系统调用函数,然后分析传入的参数就可截获短信和电话拨打行为;在内核对系统调用进行劫持,才能监控框架和本地库的系统调用;步骤2.2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;在netfilter框架的NF_INET_LOCAL_OUT上注册hook函数来对网络数据包进行检查,从而对网络行为进行监控;步骤2.3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中;通过Python调用subprocess模块中的Popen函数创建一个子进程并使用adb工具执行logcat命令获得标记为AppanalyLog的沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中;步骤2.4)保存步骤2.1)至2.3)生成的监控消息;步骤3)将生成的监控消息从内核空间发送到外部自动化模块。按上述方案,所述步骤1)中解析被测程序的界面的控件信息包括以下步骤:1.1)获取被测程序的AndroidManifest.xml配置文件;1.2)使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;1.3)根据apk文件的真实路径编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;安装过程如下:安装过程主要用到的两个关键API,waitForConnection()和installPackage(),waitForConnection()主要负责与沙箱进行连接,installPackage()主要负责将被测程序在沙箱中完成安装,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;1.4)MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;1.5)对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击。按上述方案,所述步骤3)中将生成的监控消息从内核空间发送到外部自动化模块的具体步骤为:3.1)创建的套接字sock变量,sock是socket在内核中的表示;3.2)实现消息接收函数与消息发送函数;3.3)定义JSON格式的消息格式,便于外部自动化触发模块进行解析。一种基于内核LKM的Android平台恶意软件自动化检测系统,包括:用户点击操作模拟模块,用于自动化安装、运行待检测软件后,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;解析被测程序的界面的控件信息包括以下步骤:1)获取被测程序的AndroidManifest.xml配置文件;2)使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;3)根据apk文件的真实路径编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;4)MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;5)对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击。内核监控模块,用于在模拟用户点击操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;具体步骤为:步骤1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;步骤2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;步骤3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中。步骤4)保存步骤1)至3)生成的监控消息;外部自动化触发模块,用于将生成的监控消息从内核空间发送到外部自动化模块;将生成的监控消息从内核空间发送到外部自动化模块的具体步骤为:1)创建的套接字sock变量,sock是socket在内核中的表示;2)实现消息接收函数与消息发送函数;3)定义JSON格式的消息格式,便于外部自动化触发模块进行解析。本专利技术产生的有益效果是:本专利技术通过动态分析的方法来进行恶意软件的检测,可以更全面的检测Android应用;并根据被测软件在内核中是否调用敏感行为的API来判断Android应用是否具有敏感行为;本专利技术能克服动态分析不能对包含第三方本地库的应用进行监控的缺陷,有效提高了恶意软件检测的覆盖范围,提高了动态分析结果的准确性。附图说明下面将本文档来自技高网...

【技术保护点】
1.一种基于内核LKM的Android平台恶意软件自动化检测方法,其特征在于,包括以下步骤:/n步骤1)安装运行待检测软件,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;/n步骤2)在操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;/n具体步骤为:/n步骤2.1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;/n步骤2.2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;/n步骤2.3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中;/n步骤2.4)保存步骤2.1)至2.3)生成的监控消息;/n步骤3)将生成的监控消息从内核空间发送到外部自动化模块。/n

【技术特征摘要】
1.一种基于内核LKM的Android平台恶意软件自动化检测方法,其特征在于,包括以下步骤:
步骤1)安装运行待检测软件,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;
步骤2)在操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;
具体步骤为:
步骤2.1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;
步骤2.2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;
步骤2.3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中;
步骤2.4)保存步骤2.1)至2.3)生成的监控消息;
步骤3)将生成的监控消息从内核空间发送到外部自动化模块。


2.根据权利要求1所述的基于内核LKM的Android平台恶意软件自动化检测方法,其特征在于,所述步骤1)中解析被测程序的界面的控件信息包括以下步骤:
1.1)获取被测程序的AndroidManifest.xml配置文件;
1.2)使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;
1.3)根据apk文件的真实路径编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;
1.4)MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;
1.5)对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击。


3.根据权利要求1所述的基于内核LKM的Android平台恶意软件自动化检测方法,其特征在于,所述步骤3)中将生成的监控消息从内核空间发送到外部自动化模块的具体步骤为:
3.1)创建的套接字sock变量,sock是socket在内核中的表示;
3.2)实现消息接收函数与消息发送函数;
3.3)定义JSON格式的消息格式,便于外部自动化触发模块进行解析。

【专利技术属性】
技术研发人员:沈志东崔晓晖韩小范孙慧陈维英黄隆欢付忠旺
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1