CN111382424A - 一种基于受控环境的移动应用敏感行为检测方法和系统 - Google Patents
一种基于受控环境的移动应用敏感行为检测方法和系统 Download PDFInfo
- Publication number
- CN111382424A CN111382424A CN201811608756.9A CN201811608756A CN111382424A CN 111382424 A CN111382424 A CN 111382424A CN 201811608756 A CN201811608756 A CN 201811608756A CN 111382424 A CN111382424 A CN 111382424A
- Authority
- CN
- China
- Prior art keywords
- mobile application
- behavior
- module
- application
- triggering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims description 17
- 230000006399 behavior Effects 0.000 claims abstract description 133
- 238000000034 method Methods 0.000 claims abstract description 56
- 230000008569 process Effects 0.000 claims abstract description 24
- 238000013515 script Methods 0.000 claims description 30
- 238000012544 monitoring process Methods 0.000 claims description 28
- 230000000694 effects Effects 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 6
- 238000013461 design Methods 0.000 abstract description 4
- 239000010410 layer Substances 0.000 description 32
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 7
- 230000006872 improvement Effects 0.000 description 7
- 239000000243 solution Substances 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004573 interface analysis Methods 0.000 description 3
- 241000282693 Cercopithecidae Species 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000011230 binding agent Substances 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
本发明提供了一种基于受控环境的移动应用敏感行为检测方法和系统,包括:遍历需要进行测试的移动应用的控件,通过程序脚本触发移动应用的行为;基于预先定制的受控环境,对移动应用的敏感行为进行捕获。该方法和系统实现了自动化的移动应用行为触发,整个过程无须人工干预;基于定制的受控环境,在内核层和框架层对移动应用敏感行为进行全面捕获。还对捕获的日志信息进行收集和处理,统一格式设计,包括内核系统调用、框架层应用程序编程接口API以及壳shell命令,为高效提取移动应用行为特征提供数据支撑,便于下一步进行恶意软件定性判别。
Description
技术领域
本发明属于移动应用安全技术领域,具体涉及一种基于受控环境的移动应用敏感行为检测方法和系统。
背景技术
当前Android系统的安全问题与日俱增,其中各种恶意应用泛滥、恶意行为难以及时发现成为其中一个主要问题,所以移动应用的敏感行为检测成为了主要的研究方向。移动应用市场带有恶意代码的移动应用种类繁多,单单依靠Android本身自带的安全机制或一些事后防护手段是远远不够的,需要在移动应用的运行过程中,能够动态的拦截和获取移动应用的行为或者移动终端的实时状态,并将拦截到的信息进行进一步分析以达到检测恶意软件的目的。
移动应用敏感行为检测的研究可分为两个方向:基于程序插桩的移动应用敏感行为检测和基于受控环境的移动应用敏感行为检测。基于程序插桩的移动应用敏感行为检测方法通过直接或间接修改应用程序源码或反编译源码的方式对应用进行插桩,从而达到监控应用行为的目的,这种方式对行为分析环境没有很高的要求,但需要对单个应用进行特定化插桩,且无法保证应用升级后的持续化动态监控。基于受控环境的移动应用敏感行为检测方法通过修改Android系统源码、定制受控环境,提供移动应用敏感行为检测的分析环境,避免了对多个应用进行一对一的修改,适用于兼容该环境的应用。
现有基于受控环境的移动应用敏感行为检测方法还存在几点不足:(1)缺乏在受控环境下自动化的行为触发技术,目前移动应用的行为触发还需要人工干预,触发效率和深度需要提升;(2)移动应用敏感行为捕获不够全面,大部分行为检测只能够捕获对系统底层的一些应用程序接口调用,对系统框架层的一些操作失去效用;(3)对捕获的日志信息格式没有统一规定,不能高效提取行为特征,为进一步对恶意软件进行定性判别提供数据支撑。
发明内容
为克服上述现有技术的不足,本发明提出一种基于受控环境的移动应用敏感行为检测方法和系统。该方法和系统通过控件遍历的行为触发方式,能够自动化地实现全面深度触发移动应用行为,采用对Framework层和Kernel层共同Hook的方式修改Android内核及定制受控环境进行移动应用敏感行为的捕获,摆脱了对特定应用的修改,适用于兼容该环境的应用,并对捕获到的敏感行为日志格式进行统一规定,为移动应用进一步的安全评估提供数据支撑。
实现上述目的所采用的解决方案为:
一种基于受控环境的移动应用敏感行为检测方法,其改进之处在于,包括:
遍历需要进行测试的移动应用的控件,通过程序脚本触发所述移动应用的行为;
基于预先定制的受控环境,对所述移动应用的敏感行为进行捕获。
本发明提供的第一优选技术方案,其改进之处在于,所述遍历需要进行测试的移动应用的控件,通过程序脚本触发所述移动应用的行为,包括:
获取所述移动应用的界面信息,所述界面信息包括界面中的控件和控件的坐标;
基于所述控件、所述控件的坐标以及设定的触发操作,生成触发所述控件的程序脚本;
调用所述程序脚本,对所述移动应用的行为进行触发;
所述触发操作包括:安装、启动、触摸和卸载所述移动应用。
本发明提供的第二优选技术方案,其改进之处在于,所述获取所述移动应用的界面信息,包括:
与所述移动应用所在的设备终端进行套接字通信,获取所述移动应用界面的窗口列表和各窗口界面布局控件元素信息;
根据所述控件元素信息,获得各控件及控件的坐标。
本发明提供的第三优选技术方案,其改进之处在于,所述遍历需要进行测试的移动应用的控件之前,还包括对移动应用进行预处理,包括:
当所述移动应用所在设备的连接状态正常时,获得所述移动应用启动页面的包和活动,并将所述移动应用推入所述设备的终端文件夹。
本发明提供的第四优选技术方案,其改进之处在于,所述受控环境的定制,包括:
在内核层面,通过注入监测代码对zygote进程进行挂钩,监测所述移动应用的敏感系统调用行为并进行记录;
在框架层面,通过注入监测代码对系统特有模块的应用程序编程接口进行挂钩,监测所述移动应用调用所述特有模块的应用程序编程接口的行为并记录;
其中,所述特有模块包括蓝牙模块、WiFi模块和GPS模块。
本发明提供的第五优选技术方案,其改进之处在于,所述对所述移动应用的敏感行为进行捕获之后,还包括:
按照预设的格式,记录敏感行为的信息;
将所述信息以设定的格式存储为日志信息;
所述信息包括:内核层面调用的库函数名称及参数、框架层面调用的应用程序编程接口名称及所属的类,以及壳命令。
一种基于受控环境的移动应用敏感行为检测系统,其改进之处在于,包括:应用触发模块和行为捕获模块;
所述应用触发模块,用于遍历需要进行测试的移动应用的控件,通过程序脚本触发所述移动应用的行为;
所述行为捕获模块,用于基于预先定制的受控环境,对所述移动应用的敏感行为进行捕获。
本发明提供的第六优选技术方案,其改进之处在于,所述应用触发模块包括:信息获取单元、脚本生成单元和行为触发单元;
所述信息获取单元,用于获取所述移动应用的界面信息,所述界面信息包括界面中的控件和控件的坐标;
所述脚本生成单元,用于基于所述控件、所述控件的坐标以及设定的触发操作,生成触发所述控件的程序脚本;
所述行为触发单元,用于调用所述程序脚本,对所述移动应用的行为进行触发;
所述触发操作包括:安装、启动、触摸和卸载所述移动应用。
本发明提供的第七优选技术方案,其改进之处在于,还包括预处理模块;
所述预处理模块,用于当所述移动应用所在设备的连接状态正常时,获得所述移动应用启动页面的包和活动,并将所述移动应用推入所述设备的终端文件夹。
本发明提供的第八优选技术方案,其改进之处在于,还包括用于定制受控环境的受控环境定制模块,所述受控环境定制单元包括内核定制单元和框架定制单元;
所述内核定制单元,用于在内核层面,通过注入监测代码对zygote进程进行挂钩,监测所述移动应用的敏感系统调用行为并进行记录;
所述框架定制单元,用于在框架层面,通过注入监测代码对系统特有模块的应用程序编程接口进行挂钩,监测所述移动应用调用所述特有模块的应用程序编程接口的行为并记录;
其中,所述特有模块包括蓝牙模块、WiFi模块和GPS模块。
本发明提供的第九优选技术方案,其改进之处在于,还包括记录模块;
所述记录模块,用于按照预设的格式,记录敏感行为的信息,将所述信息以设定的格式存储为日志信息;
所述信息包括:内核层面调用的库函数名称及参数、框架层面调用的应用程序编程接口名称及所属的类,以及壳命令。
与最接近的现有技术相比,本发明具有的有益效果如下:
(1)本发明通过遍历需要进行测试的移动应用的控件,通过程序脚本触发移动应用的行为,基于预先定制的受控环境,对移动应用的敏感行为进行捕获,实现了自动化的移动应用行为触发,整个过程无须人工干预。
(2)基于定制的受控环境,在内核层和框架层对移动应用敏感行为进行全面捕获。
(3)本发明对捕获的日志信息进行收集和处理,统一格式设计,包括内核系统调用、框架层应用程序编程接口API以及壳shell命令,为高效提取移动应用行为特征提供数据支撑,便于下一步进行恶意软件定性判别。
附图说明
图1为本发明提供的一种基于受控环境的移动应用敏感行为检测方法流程示意图;
图2为本发明提供的一种基于受控环境的移动应用敏感行为检测方法功能框架示意图;
图3为本发明提供的移动应用行为自动化触发框架图示意图;
图4为本发明实施例中涉及的移动应用界面层次结构示意图;
图5为本发明提供的框架层和内核层共同Hook定制受控环境示意图;
图6为本发明提供的内核层Hook框架示意图;
图7为本发明提供的框架层Hook框架示意图;
图8为本发明提供的一种基于受控环境的移动应用敏感行为检测系统基本结构示意图;
图9为本发明提供的一种基于受控环境的移动应用敏感行为检测系统基本详细示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
实施例1:
本发明提供的一种移动应用敏感行为检测方法流程示意图如图1所示,包括:
步骤1:遍历需要进行测试的移动应用的控件,通过程序脚本触发移动应用的行为;
步骤2:基于预先定制的受控环境,对移动应用的敏感行为进行捕获。
具体的,本发明提供的一种移动应用敏感行为检测方法功能框架示意图如图2所示,包括:
步骤101:自动化触发移动应用行为;
本发明采用基于MonkeyRunner机制进行自动化的深度高效触发移动应用行为,在具体行为触发过程中采用控件遍历的方式解析移动应用的各个界面,自动解析定位控件XY坐标值,生成Python脚本来发送触摸、点击等事件流,从而全面自动化地触发移动应用行为,整个测试过程无须人工干预,自动化程度较高。行为触发的整体框架如图3所示,其分为四个部分:预处理、界面解析、脚本生成和运行触发。其中预处理、界面节点解析和脚本生成服务于运行测试部分,运行触发为核心模块,负责整个行为触发流程。步骤101包括:
步骤101-1:预处理,包括:判断移动应用所在设备的连接状态,解析移动应用的配置文件,获得启动页面的包Package和活动Activity,将移动应用推送进入终端文件夹;
在步骤101-1中,预处理阶段用于获取设备连接状态和提取应用程序的包名和MainActivity类。工具首先会通过Android调试桥(AndroidDebugBridge,ADB)获取设备的状态、序列号、端口等信息,以确保测试正常进行。若设备连接正常,工具将解析apk应用程序的全局配置文件AndroidMainfest.xml文件,该文件描述了apk应用程序中的全局数据,包括Package、Activity、Service等。应用程序包中的AndroidMainfest.xml文件是经过编译的,工具首先需要将文件反编译成可读的文本文件,AndroidMainfest.xml文件包含多个Activity,每个Activity对应于应用的每个界面,其中在intent-filter中支持MAIN操作和LAUNCHER种类的Activity为启动应用程序的MainActivity,获得程序的MainActivity后,工具将利用adb push命令将应用程序的apk包上传至手机文件夹,用于运行测试模块安装。
步骤101-2:界面解析,包括:与设备进行套接字Socket通信,发送指令获取移动应用界面的窗口列表和界面布局控件元素信息,将界面布局控件元素信息转化成预设的数据结构,得到控件的坐标值;
在步骤101-2中,界面解析阶段用于获取手机终端界面的窗口列表及控件布局元素属性信息。工具首先与Android终端建立基于TCP协议的Socket连接,然后向终端发送“LIST”命令,终端会返回当前运行程序的窗口列表,每个窗口以唯一的Package+Activity字符串标识,通过窗口标识可以判断当前程序是否运行正常。工具向终端发送“DUMP-1”指令,终端会返回当前屏幕窗口的布局控件元素信息。
常见的布局控件元素有按钮Butoon、图像按钮ImageButton、编辑视图EditText和文字视图TextView,控件基本属性有宽度、高度、左上角相对X坐标和左上角相对Y坐标。“DUMP-1”指令返回的是以“DONE”字符串分界线的数据流,每行代表一个控件元素,程序对数据流进行解析后,会构造一个树形布局结构。以常见的“短信发送”程序界面为例,其根节点为手机页面视图,表示屏幕的整个窗口,其子节点表示线性布局,线性布局又有两个子节点框架布局,这两个子节点表示界面分为标题和主体内容两大矩形块,以此类推,直到文字视图、编辑视图和按钮等叶子节点。
界面解析的关键技术是获取叶子节点控件的绝对XY坐标值,以供脚本生成模块生成并执行Python脚本,让程序模拟点击控件,达到自动化测试目的。对于布局结构树,采用树的深度优先遍历算法,获取叶子节点控件的绝对XY坐标值。由于子节点所在的矩形区域嵌套在父节点所在的矩形区域中,而叶子节点的相对坐标基于父节点左上角坐标值,父节点还有它自己的父节点,通过深度遍历迭代算法找到最原始的根节点手机页面视图相对于屏幕的XY坐标值,所有叶子节点控件的XY坐标值便可以得到,核心算法如下:
p=node.parent;
while(p存在)
{
x+=p节点左上角X坐标;
y+=p节点左上角Y坐标;
p=p的父节点;
}
步骤101-3:脚本生成,包括:根据控件的坐标值,生成脚本,包括安装、启动、卸载、触摸和截图脚本;
在步骤101-3中,利用MonkeyRunner的应用程序编程接口API动态生成Python脚本,主要有安装脚本、启动脚本、触摸脚本、截图脚本、卸载脚本,其中触摸脚本是核心,通过接收界面解析模块获取到的控件的绝对XY坐标值,利用touchAPI来生成Python脚本,模拟用户向设备发送按钮点击事件。若“短信发送”程序界面中“发送”按钮的XY坐标值为(200,300),则动态生成的触摸脚本为:
fromcom.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
device=MonkeyRunner.waitForConnection()
device.touch(200,300,DOWN_AND_UP)
步骤101-4:运行触发,包括:调用脚本模拟用户自动安装、启动、测试和卸载移动应用,进行移动应用行为的全面触发。
在步骤101-4中,该步骤是整个移动应用自动化行为触发的关键,负责应用程序的安装、启动、遍历测试和卸载。工具首先调用MonkeyRunner执行安装、启动脚本,启动程序主界面。应用程序安装、启动后,需要依次遍历各层界面,从而才能模拟点击应用程序页面的各个按钮控件。应用程序的各个界面可以组织成如图4所示的树形结构图。
图4中每个节点代表一个界面,系统采用树的先根遍历算法遍历各个界面。应用程序的Activity唯一的标志一个界面,当启动MainActivity后,应用程序进入主界面,标志该界面为根界面,点击根界面的一个控件进入另外一个Activity标志的界面,称为第二层界面,该界面是根界面的子界面。点击第二层界面的控件,进入第三层界面,以此类推。当第二层界面上的控件都遍历测试完毕,返回根界面,再依次遍历测试根界面的其他控件。图4中的各个界面遍历次序为:ABEFCD。工具调用Monkeyrunner执行脚本生成模块生成的触摸脚本,对界面的各个控件发送触摸事件流。对于每一个界面,工具同时调用Monkeyrunner执行截图脚本,对设备当前界面截图并保存图片文件。当界面控件都遍历完毕,行为触发结束,工具执行卸载脚本卸载应用程序。
运行触发的实质在于遍历应用程序的各个界面,让其动态运行,以便触发应用程序运行时潜在的恶意行为,比如后台偷发短信、联网扣费、隐私窃取等行为,从而让其它终端安全监控工具捕获,同时将运行触发过程中各个界面截图保存,供安全人员审核。
步骤102:定制移动应用的受控环境,对移动应用的敏感行为进行捕获;
本发明通过框架Framework层和内核Kernel层共同Hook的思路对移动应用所在操作系统,例如安卓Android原生系统代码进行分析,修改恶意应用行为可能会产生的系统调用,深度定制移动应用的受控环境,标记应用所访问的Kernel系统调用、Framework框架API,使其可以对移动应用的这些敏感行为进行捕获。定制受控环境的整体功能架构如图5所示,包括通过基于共享库注入的Kernel层Hook实现敏感系统调用行为捕获和Framework层Hook实现敏感Android API行为捕获,实现既能够监测到拨打电话、发送短信等调用系统底层API的敏感行为,又能够同时监测到蓝牙模块操作、GPS模块操作等系统框架层的一些敏感API调用。步骤102包括:
步骤102-1:Kernel层Hook:大部分核心功能可以通过Kernel层的Hook进行捕获,例如:安全、内存管理、进程管理、网络堆栈、驱动模型等。在Kernel层面,通过共享库注入,将监测代码注入到Linux Kernel中对zygote进程进行Hook,zygote监测目标进程的行为,zygote对目标进程行为的读取需要用到Android系统进程间通信的Binder机制,当监测到移动应用存在敏感系统调用行为时,这些敏感行为就会被记录下来,然后传递到用户空间,我们就可以从外部读取这些日志,并进一步展开分析。Kernel层Hook框架如图6所示。
在步骤102-1中,Kernel层的Hook是通过共享库注入方式与Hook技术相结合,实现对目标进程行为的改变或拦截,达到行为监控目的。主要是执行一次监控进程,将共享库注入到zygote进程中,由于zygote是所有应用进程的父进程,因此每当一个应用程序被启动,zygote就会调用fork函数生成一个子进程,而共享库也就被注入到了子进程空间中,实现了一次注入监听所有目标进程,而这种跨进程的注入方式需要利用Andriod跨进程的Binder通信机制。
步骤102-2:Framework层Hook:虽然Kernel层的Hook可以捕获移动应用大部分敏感行为,但是由于移动终端本身的一些特性,比如蓝牙模块、WIFI模块、GPS模块等,Linux内核本身并没有涉及到,需要通过Framework层的Hook技术捕捉这些模块的行为并进行分析。Framework层Hook框架如图7所示。通过框架层代码注入,监测涉及移动终端本身特性的模块,当监测到所述移动应用存在调用相关Framework框架API时,形成日志信息记录。
在步骤102-2中,Framework层的Hook主要是对移动终端系统特有的API进行监听,比如蓝牙模块、WIFI模块、GPS模块等,分析Android源码,找到敏感API位置,对相关类进行修改然后重新封装,注入监测代码,实现蓝牙、WIFI、GPS等相关敏感行为的捕获。
步骤103:收集捕获行为日志信息,统一格式设计。
在上述基于受控环境的移动应用行为深度高效触发,每一个移动应用样本会得到捕获行为的日志文件,对生成的日志信息文件进行统一格式设计,为高效提取移动应用行为特征提供数据支撑。具体而言,有三种格式:
103-1:Kernel系统调用:用于记录拦截到的libc库函数及其参数,libc Function表示这个libc库函数的名字,Argument表示这个libc库函数的参数,如表1所示。
表1 Kernel系统调用日志格式
103-2:Framework框架API:用于记录拦截到的Android API,Function表示这个API的名字,而InterfaceToken表示该API所属的类,如表2所示。
表2 Framework框架API日志格式
InterfaceToken | Funciton |
android.net.IConnectivityManager | getActiveNetworkInfo |
103-3:shell命令:用于记录拦截到的shell命令,这种命令行为也属于libc库函数的一种,如表3所示。
表3 shell命令日志格式
Shell Command |
su |
实施例2:
基于同一发明构思,本发明还提供了一种基于受控环境的移动应用敏感行为检测系统,由于这些设备解决技术问题的原理与基于受控环境的移动应用敏感行为检测方法相似,重复之处不再赘述。
该系统基本结构如图8所示,包括:应用触发模块和行为捕获模块;
应用触发模块,用于遍历需要进行测试的移动应用的控件,通过程序脚本触发移动应用的行为;
行为捕获模块,用于基于预先定制的受控环境,对移动应用的敏感行为进行捕获。
该系统具体结构如图9所示。
其中,应用触发模块包括:信息获取单元、脚本生成单元和行为触发单元;
信息获取单元,用于获取移动应用的界面信息,界面信息包括界面中的控件和控件的坐标;
脚本生成单元,用于基于控件、控件的坐标以及设定的触发操作,生成触发控件的程序脚本;
行为触发单元,用于调用程序脚本,对移动应用的行为进行触发;
触发操作包括:安装、启动、触摸和卸载移动应用。
其中,信息获取单元包括:窗口子单元和信息子单元;
窗口子单元,用于与移动应用所在的设备终端进行套接字通信,获取移动应用界面的窗口列表和各窗口界面布局控件元素信息;
信息子单元,用于根据控件元素信息,获得各控件及控件的坐标。
该系统还包括预处理模块;
预处理模块,用于当移动应用所在设备的连接状态正常时,获得移动应用启动页面的包和活动,并将移动应用推入设备的终端文件夹。
该系统还包括用于定制受控环境的受控环境定制模块,受控环境定制单元包括内核定制单元和框架定制单元;
内核定制单元,用于在内核层面,通过注入监测代码对zygote进程进行挂钩,监测移动应用的敏感系统调用行为并进行记录;
框架定制单元,用于在框架层面,通过注入监测代码对系统特有模块的应用程序编程接口进行挂钩,监测移动应用调用特有模块的应用程序编程接口的行为并记录;
其中,特有模块包括蓝牙模块、WiFi模块和GPS模块。
其中,该系统还包括记录模块;
记录模块,用于按照预设的格式,记录敏感行为的信息,将信息以设定的格式存储为日志信息;
信息包括:内核层面调用的库函数名称及参数、框架层面调用的应用程序编程接口名称及所属的类,以及壳shell命令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用于说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。
Claims (11)
1.一种基于受控环境的移动应用敏感行为检测方法,其特征在于,包括:
遍历预设需要进行测试的移动应用的控件,通过程序脚本触发所述移动应用的行为;
基于预先定制的受控环境,对所述移动应用的敏感行为进行捕获。
2.如权利要求1所述的方法,其特征在于,所述遍历需要进行测试的移动应用的控件,通过程序脚本触发所述移动应用的行为,包括:
获取所述移动应用的所有界面信息,所述界面信息包括界面中的控件和控件的坐标;
基于所述控件、所述控件的坐标以及设定的触发操作,生成触发所述控件的程序脚本;
调用所述程序脚本,对所述移动应用的行为进行触发;
所述触发操作包括:安装、启动、触摸和卸载所述移动应用。
3.如权利要求2所述的方法,其特征在于,所述获取所述移动应用的界面信息,包括:
与所述移动应用所在的设备终端进行套接字通信,获取所述移动应用界面的窗口列表和各窗口界面布局控件元素信息;
根据所述控件元素信息,获得各控件及控件的坐标。
4.如权利要求1所述的方法,其特征在于,所述遍历需要进行测试的移动应用的控件之前,还包括对移动应用进行预处理,包括:
当所述移动应用所在设备的连接状态正常时,获得所述移动应用启动页面的包和活动,并将所述移动应用推入所述设备的终端文件夹。
5.如权利要求1所述的方法,其特征在于,所述受控环境的定制,包括:
在内核层面,通过注入监测代码对zygote进程进行挂钩,监测所述移动应用的敏感系统调用行为并进行记录;
在框架层面,通过注入监测代码对系统特有模块的应用程序编程接口进行挂钩,监测所述移动应用调用所述特有模块的应用程序编程接口的行为并记录;
其中,所述特有模块包括蓝牙模块、WiFi模块和GPS模块。
6.如权利要求1所述的方法,其特征在于,所述对所述移动应用的敏感行为进行捕获之后,还包括:
按照预设的格式,记录敏感行为的信息;
将所述信息以设定的格式存储为日志信息;
所述信息包括:内核层面调用的库函数名称及参数、框架层面调用的应用程序编程接口名称及所属的类,以及壳命令。
7.一种基于受控环境的移动应用敏感行为检测系统,其特征在于,包括:应用触发模块和行为捕获模块;
所述应用触发模块,用于遍历需要进行测试的移动应用的控件,通过程序脚本触发所述移动应用的行为;
所述行为捕获模块,用于基于预先定制的受控环境,对所述移动应用的敏感行为进行捕获。
8.如权利要求7所述的系统,其特征在于,所述应用触发模块包括:信息获取单元、脚本生成单元和行为触发单元;
所述信息获取单元,用于获取所述移动应用的界面信息,所述界面信息包括界面中的控件和控件的坐标;
所述脚本生成单元,用于基于所述控件、所述控件的坐标以及设定的触发操作,生成触发所述控件的程序脚本;
所述行为触发单元,用于调用所述程序脚本,对所述移动应用的行为进行触发;
所述触发操作包括:安装、启动、触摸和卸载所述移动应用。
9.如权利要求7所述的系统,其特征在于,还包括预处理模块;
所述预处理模块,用于当所述移动应用所在设备的连接状态正常时,获得所述移动应用启动页面的包和活动,并将所述移动应用推入所述设备的终端文件夹。
10.如权利要求7所述的系统,其特征在于,还包括用于定制受控环境的受控环境定制模块,所述受控环境定制单元包括内核定制单元和框架定制单元;
所述内核定制单元,用于在内核层面,通过注入监测代码对zygote进程进行挂钩,监测所述移动应用的敏感系统调用行为并进行记录;
所述框架定制单元,用于在框架层面,通过注入监测代码对系统特有模块的应用程序编程接口进行挂钩,监测所述移动应用调用所述特有模块的应用程序编程接口的行为并记录;
其中,所述特有模块包括蓝牙模块、WiFi模块和GPS模块。
11.如权利要求7所述的系统,其特征在于,还包括记录模块;
所述记录模块,用于按照预设的格式,记录敏感行为的信息,将所述信息以设定的格式存储为日志信息;
所述信息包括:内核层面调用的库函数名称及参数、框架层面调用的应用程序编程接口名称及所属的类,以及壳命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811608756.9A CN111382424A (zh) | 2018-12-27 | 2018-12-27 | 一种基于受控环境的移动应用敏感行为检测方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811608756.9A CN111382424A (zh) | 2018-12-27 | 2018-12-27 | 一种基于受控环境的移动应用敏感行为检测方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111382424A true CN111382424A (zh) | 2020-07-07 |
Family
ID=71222370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811608756.9A Pending CN111382424A (zh) | 2018-12-27 | 2018-12-27 | 一种基于受控环境的移动应用敏感行为检测方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382424A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131110A (zh) * | 2020-09-21 | 2020-12-25 | 安徽捷兴信源信息技术有限公司 | 一种智能手机系统的多源异构数据探针方法及装置 |
CN113326539A (zh) * | 2021-06-23 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 针对小程序进行隐私数据泄露检测的方法、装置及系统 |
CN113836000A (zh) * | 2021-08-17 | 2021-12-24 | 同盾科技有限公司 | 移动应用程序安全测试的方法、系统、装置和介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186740A (zh) * | 2011-12-27 | 2013-07-03 | 北京大学 | 一种Android恶意软件的自动化检测方法 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
CN103309808A (zh) * | 2013-06-13 | 2013-09-18 | 中国科学院信息工程研究所 | 基于标签的安卓用户隐私泄露黑盒检测方法及系统 |
CN105224456A (zh) * | 2015-09-29 | 2016-01-06 | 北京奇虎科技有限公司 | 一种测试脚本生成方法、装置和系统 |
CN105653946A (zh) * | 2016-03-09 | 2016-06-08 | 哈尔滨工程大学 | 基于组合事件行为触发的Android恶意行为检测系统及其检测方法 |
CN105740144A (zh) * | 2016-01-27 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种Android移动终端的自动化测试方法及系统 |
CN106845234A (zh) * | 2017-01-05 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种基于函数流关键点监控的安卓恶意软件检测方法 |
CN107358103A (zh) * | 2017-07-20 | 2017-11-17 | 国网上海市电力公司 | 基于敏感函数调用插桩的安卓敏感行为监控方法和系统 |
US20180046802A1 (en) * | 2016-08-11 | 2018-02-15 | The Mitre Corporation | System and method for detecting malware in mobile device software applications |
CN108133139A (zh) * | 2017-11-28 | 2018-06-08 | 西安交通大学 | 一种基于多运行环境行为比对的安卓恶意应用检测系统 |
CN108229161A (zh) * | 2016-12-15 | 2018-06-29 | 中国电信股份有限公司 | 应用监控方法、装置和终端 |
-
2018
- 2018-12-27 CN CN201811608756.9A patent/CN111382424A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186740A (zh) * | 2011-12-27 | 2013-07-03 | 北京大学 | 一种Android恶意软件的自动化检测方法 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
CN103309808A (zh) * | 2013-06-13 | 2013-09-18 | 中国科学院信息工程研究所 | 基于标签的安卓用户隐私泄露黑盒检测方法及系统 |
CN105224456A (zh) * | 2015-09-29 | 2016-01-06 | 北京奇虎科技有限公司 | 一种测试脚本生成方法、装置和系统 |
CN105740144A (zh) * | 2016-01-27 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种Android移动终端的自动化测试方法及系统 |
CN105653946A (zh) * | 2016-03-09 | 2016-06-08 | 哈尔滨工程大学 | 基于组合事件行为触发的Android恶意行为检测系统及其检测方法 |
US20180046802A1 (en) * | 2016-08-11 | 2018-02-15 | The Mitre Corporation | System and method for detecting malware in mobile device software applications |
CN108229161A (zh) * | 2016-12-15 | 2018-06-29 | 中国电信股份有限公司 | 应用监控方法、装置和终端 |
CN106845234A (zh) * | 2017-01-05 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种基于函数流关键点监控的安卓恶意软件检测方法 |
CN107358103A (zh) * | 2017-07-20 | 2017-11-17 | 国网上海市电力公司 | 基于敏感函数调用插桩的安卓敏感行为监控方法和系统 |
CN108133139A (zh) * | 2017-11-28 | 2018-06-08 | 西安交通大学 | 一种基于多运行环境行为比对的安卓恶意应用检测系统 |
Non-Patent Citations (6)
Title |
---|
孙润康;彭国军;李晶雯;沈诗琦;: "基于行为的Android恶意软件判定方法及其有效性", 计算机应用, no. 04 * |
张震;曹天杰;: "行为特征值序列匹配检测Android恶意应用", 计算机工程与应用, no. 24 * |
彭国军 等: "面向Android软件动态行为监测的UI自动化触发与测试方法", 保密科学与技术, pages 2 - 3 * |
文伟平;汤炀;谌力;: "一种基于Android内核的APP敏感行为检测方法及实现", 信息网络安全, no. 08 * |
王倩文;沈苏彬;吴振宇;: "基于安卓平台的恶意软件动态监测的研究", 计算机技术与发展, no. 08 * |
陈铁明 等: "基于API调用序列的Android恶意代码检测方法研究", 浙江工业大学学报, vol. 46, no. 2, pages 1 - 2 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131110A (zh) * | 2020-09-21 | 2020-12-25 | 安徽捷兴信源信息技术有限公司 | 一种智能手机系统的多源异构数据探针方法及装置 |
CN113326539A (zh) * | 2021-06-23 | 2021-08-31 | 支付宝(杭州)信息技术有限公司 | 针对小程序进行隐私数据泄露检测的方法、装置及系统 |
CN113326539B (zh) * | 2021-06-23 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 针对小程序进行隐私数据泄露检测的方法、装置及系统 |
CN113836000A (zh) * | 2021-08-17 | 2021-12-24 | 同盾科技有限公司 | 移动应用程序安全测试的方法、系统、装置和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
CN110162977B (zh) | 一种Android车载终端系统漏洞检测系统及方法 | |
CN104598380B (zh) | 一种基于控件的自动化测试方法及系统 | |
US9047413B2 (en) | White-box testing systems and/or methods for use in connection with graphical user interfaces | |
US9720799B1 (en) | Validating applications using object level hierarchy analysis | |
US10678666B1 (en) | Method and system for implementing automated test and retest procedures in a virtual test environment | |
CN109614313A (zh) | 自动化测试方法、装置及计算机可读存储介质 | |
US20130263090A1 (en) | System and method for automated testing | |
CN111382424A (zh) | 一种基于受控环境的移动应用敏感行为检测方法和系统 | |
Marchetto et al. | Reajax: a reverse engineering tool for ajax web applications | |
JP2006018827A (ja) | スマート・ユーザ・インターフェース記録および再生フレームワーク | |
CN109508298B (zh) | 图形化的脚本测试方法及系统 | |
CN106874763B (zh) | 模拟用户行为的安卓软件恶意行为触发系统及方法 | |
CN107480036A (zh) | iOS移动应用的自动测试方法、装置、存储介质及终端 | |
CN114297056A (zh) | 一种自动化测试方法及系统 | |
CN112732587A (zh) | 一种自动化测试日志的获取方法、装置、电子设备及存储介质 | |
CN106529304A (zh) | 一种安卓应用并发漏洞检测系统 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN104572428A (zh) | 基于windows操作系统下的复杂控件测试方法 | |
Ma et al. | An automated testing platform for mobile applications | |
Aho et al. | Dynamic reverse engineering of GUI models for testing | |
Waly et al. | A complete framework for kernel trace analysis | |
Kröll et al. | Aristoteles–dissecting apple’s baseband interface | |
CN110781081A (zh) | 一种移动应用回调强制触发方法、系统及存储介质 | |
CN111459774A (zh) | 一种应用程序的流量的获取方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |