首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 恶意软件 / 基于内核LKM的Android平台恶意软件自动化检测方法与系统

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

阅读:150发布:2020-05-11

专利汇可以提供基于内核LKM的Android平台恶意软件自动化检测方法与系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 内核 LKM的Android平台恶意 软件 自动化检测方法与系统,该方法包括以下步骤:步骤1)安装运行待检测软件,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;步骤2)在操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;步骤3)将生成的监控消息从内核空间发送到外部自动化模 块 。本发明方法能克服动态分析不能对包含第三方本地库的应用进行监控的 缺陷 ,有效提高了 恶意软件 检测的 覆盖 范围,提高了动态分析结果的准确性。,下面是基于内核LKM的Android平台恶意软件自动化检测方法与系统专利的具体信息内容。

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格式的消息格式,便于外部自动化触发模块进行解析。
4.一种基于内核LKM的Android平台恶意软件自动化检测系统,其特征在于,包括:
用户点击操作模拟模块,用于自动化安装、运行待检测软件后,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;
内核监控模块,用于在模拟用户点击操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;
具体步骤为:
步骤1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;
步骤2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;
步骤3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中。
步骤4)保存步骤1)至3)生成的监控消息;
外部自动化触发模块,用于将生成的监控消息从内核空间发送到外部自动化模块。
5.根据权利要求4所述的基于内核LKM的Android平台恶意软件自动化检测系统,其特征在于,所述用户点击操作模拟模块中,解析被测程序的界面的控件信息包括以下步骤:
1)获取被测程序的AndroidManifest.xml配置文件;
2)使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;
3)编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;
4)MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;
5)对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击。
6.根据权利要求4所述的基于内核LKM的Android平台恶意软件自动化检测系统,其特征在于,所述外部自动化触发模块中,将生成的监控消息从内核空间发送到外部自动化模块的具体步骤为:
1)创建的套接字sock变量,sock是socket在内核中的表示;
2)实现消息接收函数与消息发送函数;
3)定义JSON格式的消息格式,便于外部自动化模块进行解析。

说明书全文

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

技术领域

[0001] 本发明涉及软件测试技术,尤其涉及一种基于内核LKM的Android平台恶意软件自动化检测方法与系统。

背景技术

[0002] 随着智能手机也拥有了独立的操作系统,手机的功能得到了极大的丰富。智能手机允许用户自己下载第三方厂商上传的各类软件,大量的第三方软件可以满足用户除通信外的大部分需求。而在繁多的移动终端操作系统中,基于Linux内核的Android操作系统发展最为迅速。
[0003] 由于Android系统选择开源,这在很大程度上方便了恶意软件对Android用户的恶意攻击。目前主要的Android软件行为分析技术分为静态分析技术和动态分析技术两大类。静态分析技术的检测效果极大的依赖于特征库的选取总结,且对于权限过度和恶意软件无法有效区分。动态分析技术能有效避免静态分析技术遇到的问题,但现有的动态分析工具,如TaintDroid、Droidbox,都只能对使用Android框架层API的应用进行行为分析,当应用调用的是本地库中的API时,TaintDroid和Droidbox就无能为了。

发明内容

[0004] 本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于内核LKM的Android平台恶意软件自动化检测方法与系统。
[0005] 本发明解决其技术问题所采用的技术方案是:一种基于内核LKM的Android平台恶意软件自动化检测方法,包括以下步骤:
[0006] 步骤1)安装运行待检测软件,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;
[0007] 步骤2)在操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;
[0008] 具体步骤为:
[0009] 步骤2.1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;
[0010] 短信发送和电话拨打都是通过调用write系统调用来进行的,对这两个行为的监控只需劫持write系统调用函数,然后分析传入的参数就可截获短信和电话拨打行为;
[0011] 在内核对系统调用进行劫持,才能监控框架和本地库的系统调用;
[0012] 步骤2.2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;
[0013] 在netfilter框架的NF_INET_LOCAL_OUT上注册hook函数来对网络数据包进行检查,从而对网络行为进行监控;
[0014] 步骤2.3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中;
[0015] 通过Python调用subprocess模中的Popen函数创建一个子进程并使用adb工具执行logcat命令获得标记为AppanalyLog的沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中;
[0016] 步骤2.4)保存步骤2.1)至2.3)生成的监控消息;
[0017] 步骤3)将生成的监控消息从内核空间发送到外部自动化模块。
[0018] 按上述方案,所述步骤1)中解析被测程序的界面的控件信息包括以下步骤:
[0019] 1.1)获取被测程序的AndroidManifest.xml配置文件;
[0020] 1.2)使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;
[0021] 1.3)根据apk文件的真实路径编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;
[0022] 安装过程如下:安装过程主要用到的两个关键API,waitForConnection()和installPackage(),waitForConnection()主要负责与沙箱进行连接,installPackage()主要负责将被测程序在沙箱中完成安装,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;
[0023] 1.4)MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;
[0024] 1.5)对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击。
[0025] 按上述方案,所述步骤3)中将生成的监控消息从内核空间发送到外部自动化模块的具体步骤为:
[0026] 3.1)创建的套接字sock变量,sock是socket在内核中的表示;
[0027] 3.2)实现消息接收函数与消息发送函数;
[0028] 3.3)定义JSON格式的消息格式,便于外部自动化触发模块进行解析。
[0029] 一种基于内核LKM的Android平台恶意软件自动化检测系统,包括:
[0030] 用户点击操作模拟模块,用于自动化安装、运行待检测软件后,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;
[0031] 解析被测程序的界面的控件信息包括以下步骤:
[0032] 1)获取被测程序的AndroidManifest.xml配置文件;
[0033] 2)使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;
[0034] 3)根据apk文件的真实路径编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;
[0035] 4)MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;
[0036] 5)对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击。
[0037] 内核监控模块,用于在模拟用户点击操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;
[0038] 具体步骤为:
[0039] 步骤1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;
[0040] 步骤2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;
[0041] 步骤3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中。
[0042] 步骤4)保存步骤1)至3)生成的监控消息;
[0043] 外部自动化触发模块,用于将生成的监控消息从内核空间发送到外部自动化模块;
[0044] 将生成的监控消息从内核空间发送到外部自动化模块的具体步骤为:
[0045] 1)创建的套接字sock变量,sock是socket在内核中的表示;
[0046] 2)实现消息接收函数与消息发送函数;
[0047] 3)定义JSON格式的消息格式,便于外部自动化触发模块进行解析。
[0048] 本发明产生的有益效果是:
[0049] 本发明通过动态分析的方法来进行恶意软件的检测,可以更全面的检测Android应用;并根据被测软件在内核中是否调用敏感行为的API来判断Android应用是否具有敏感行为;
[0050] 本发明能克服动态分析不能对包含第三方本地库的应用进行监控的缺陷,有效提高了恶意软件检测的覆盖范围,提高了动态分析结果的准确性。附图说明
[0051] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0052] 图1是本发明实施例的结构示意图;
[0053] 图2是本发明方法的内核监控模块的流程图
[0054] 图3是本发明方法的外部自动化模块的解析过程流程图。

具体实施方式

[0055] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0056] 如图1所示,一种基于内核LKM的Android平台恶意软件自动化检测方法,包括以下步骤:具体流程为:
[0057] 步骤1,自动化安装、运行软件,模拟用户的点击操作。
[0058] 步骤1.1,解压缩应用程序,获取AndroidManifest.xml配置文件;
[0059] 步骤1.2,使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;
[0060] 步骤1.3,根据apk文件的真实路径编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;
[0061] 步骤1.4,MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;
[0062] 步骤1.5,对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击;
[0063] 步骤2,在内核中对Android软件目标敏感行为的API调用进行监控。
[0064] 步骤2.1,通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;
[0065] 步骤2.2,使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;
[0066] 步骤2.3,使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中。
[0067] 步骤3,将生成的监控消息从内核空间发送到外部自动化模块。
[0068] 步骤3.1创建的套接字sock变量,sock是socket在内核中的表示;
[0069] 步骤3.2实现消息接收函数与消息发送函数;
[0070] 步骤3.3定义JSON格式的消息格式,便于外部自动化模块进行解析。
[0071] 外部自动化模块安装模拟运行被测程序,内核监控模块监控敏感行为,并将监控消息发送给外部自动化模块,由外部自动化模块生成解析文件,获得对恶意程序的检测结果。
[0072] 本发明通过动态分析的方法来进行恶意软件的检测,可以更全面的检测Android应用;并根据被测软件在内核中是否调用敏感行为的API来判断Android应用是否具有敏感行为;使用自动化工具调用脚本文件,模拟人工对批量Android应用进行自动化检测。本发明能克服动态分析不能对包含第三方本地库的应用进行监控的缺陷,有效提高了恶意软件检测的覆盖范围,提高了动态分析结果的准确性。
[0073] 根据上述方法,我们还提供一种基于内核LKM的Android平台恶意软件自动化检测系统,包括:
[0074] 用户点击操作模拟模块,用于自动化安装、运行待检测软件后,解析被测程序的界面的控件信息,并根据控件信息模拟用户的点击操作;
[0075] 解析被测程序的界面的控件信息包括以下步骤:
[0076] 1)获取被测程序的AndroidManifest.xml配置文件;
[0077] 2)使用apktool工具反编译配置文件,解析AndroidManifest.xml文件得到被测程序的包名和启动界面的MainActivity;
[0078] 3)根据apk文件的真实路径编写MonkeyRunner脚本,然后调用MonkeyRunner命令执行该脚本将应用安装到沙箱中;
[0079] 4)MonkeyRunner通过监听模拟器的相应端口与之进行连接,并将连接对象在devive进行保存中,调用devive中的startActivity()方法即可运行被测程序的主界面;
[0080] 5)对当前界面的控件信息进行解析,然后根据得到的控件坐标对界面中所有控件进行遍历点击。
[0081] 内核监控模块,用于在模拟用户点击操作过程中,在内核中对Android软件目标敏感行为的API调用进行监控;
[0082] 具体步骤为:
[0083] 步骤1)通过调用劫持技术监控短信发送、电话拨打两种行为的内核系统调用;
[0084] 步骤2)使用netfilter框架对通过TCP协议使用80或8080端口进行发送的网络行为进行监控;
[0085] 步骤3)使用adb工具执行logcat命令获得沙箱系统日志,然后将获得的日志存入当前工作目录的log.txt文件中。
[0086] 步骤4)保存步骤1)至3)生成的监控消息;
[0087] 外部自动化触发模块,用于将生成的监控消息从内核空间发送到外部自动化程序;
[0088] 将生成的监控消息从内核空间发送到外部自动化模块的具体步骤为:
[0089] 1)创建的套接字sock变量,sock是socket在内核中的表示;
[0090] 2)实现消息接收函数与消息发送函数;
[0091] 3)定义JSON格式的消息格式,便于外部自动化程序模块进行解析。
[0092] 外部自动化程序模块根据监控消息,生成解析文件,获得对恶意程序的检测结果。
[0093] 应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈