CN109992489A - 一种用于监控用户设备中应用的执行行为的方法与设备 - Google Patents
一种用于监控用户设备中应用的执行行为的方法与设备 Download PDFInfo
- Publication number
- CN109992489A CN109992489A CN201910188309.0A CN201910188309A CN109992489A CN 109992489 A CN109992489 A CN 109992489A CN 201910188309 A CN201910188309 A CN 201910188309A CN 109992489 A CN109992489 A CN 109992489A
- Authority
- CN
- China
- Prior art keywords
- log
- interface
- sensitive interface
- code
- process performing
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请的目的是提供一种监控用户设备中应用的执行行为的方法与设备。用户设备在执行被第一应用调用的原生代码层中第一敏感接口时,通过执行所述日志输出接口将第一敏感接口的执行行为日志传输至所述日志驱动模块,通过日志驱动模块调用第一写日志函数将执行行为日志写入虚拟文件系统,为后续从虚拟文件系统中输出用户设备中的应用的行为做铺垫,本申请通过在内核代码层执行日志驱动模块,顺利地将为原生代码层提供输出执行行为日志的接口,为后续查看用户设备中的应用的动态行为提供了基础,保护了用户的用户设备隐私,提升用户体验。
Description
本申请要求CN201811638446.1(一种用于监控用户设备中应用的执行行为的方法与设备)的优先权。
技术领域
本申请涉及通信领域,尤其涉及一种用于监控用户设备中应用的执行行为的技术。
背景技术
随着智能手机的普及,基于人们的需求,各种安装在手机上的APP应用被大量开发,对于手机用户,尤其是Android手机用户来说,对于APP拥有哪些权限可能并不了解,在我们不知道的时候这些APP就可能在录音甚至摄像。在我们安装APP的时候,通常手机会提醒我们授予应用权限,常见的就是储存权限,调用摄像头麦克风,获取手机识别码等等。但是手机中应用权限远不止这些,手机上的这些权限品类繁多,一些手机APP就会在我们忽略的时候获取一些出格的权限,泄露使用者的隐私,对使用者的信息安全造成很大的影响。
发明内容
本申请的一个目的是提供一种用于监控用户设备中应用的执行行为的方法与设备。
根据本申请的一个方面,提供了一种用于监控用户设备中应用的执行行为的方法,所述用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,所述方法包括:
根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
根据本申请的一个方面,提供了一种用于监控用户设备中应用的执行行为的方法,所述用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,该方法包括:
根据所述用户设备中第二应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;
通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
根据本申请的一个方面,提供了一种用于监控用户设备中应用的执行行为的用户设备,所述用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,所述设备包括:
一一模块,用于根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
一二模块,用于通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
一三模块,用于通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
根据本申请的一个方面,提供了一种用于监控用户设备中应用的执行行为的用户设备,所述用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,该设备包括:
二一模块,用于根据所述用户设备中第二应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;
二二模块,用于通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
根据本发明的一个方面,提供了一种用于监控用户设备中应用的执行行为的用户设备,其中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:
根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
根据本发明的一个方面,提供了一种用于监控用户设备中应用的执行行为的用户设备,其中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行:
根据所述用户设备中第二应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;
通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
根据本发明的一个方面,提供了存储指令的计算机可读介质,所述指令在被执行时使得系统进行:
根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
根据本发明的一个方面,提供了存储指令的计算机可读介质,所述指令在被执行时使得系统进行:
根据所述用户设备中第二应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;
通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
与现有技术相比,本申请中用户设备通过在原生代码层执行第一敏感接口后,将第一敏感接口的执行行为日志传输至所述日志驱动模块,通过日志驱动模块调用第一写日志函数将执行行为日志写入虚拟文件系统,为后续从虚拟文件系统中输出用户设备中的应用的行为做铺垫,本申请通过在内核代码层执行日志驱动模块,顺利地将为原生代码层提供输出执行行为日志的接口,为后续查看用户设备中的应用的动态行为提供了基础,保护了用户的用户设备隐私,提升用户体验。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的系统图;
图2示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的方法流程图;
图3示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的方法流程图;
图4示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的设备的结构框图;
图5示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的设备的结构框图;
图6示出根据本申请一个实施例的一种计算装置的结构框图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
图1示出本申请一个实施例的典型场景,其中,用户设备的操作系统包括内核层、原生代码层和虚拟机层,安装于该用户设备的各应用利用操作系统中相关层提供的接口实现其自身功能,例如应用1调用该虚拟机层所提供的接口实现其自身功能,应用2分别调用该虚拟机层、原生代码层所提供的接口实现其自身功能,应用3调用该原生代码层所提供的接口实现其自身功能。当该用户设备中应用调用该操作系统中摄像头、麦克风、动态加载等敏感接口时,该操作系统通过在其相关层中预先插入的监控代码,记录该敏感接口被调用的日志信息,例如调用该敏感接口的进程名或应用名、调用时间、调用栈等,从而在无需修改原应用的情况下,全面监控该用户设备上的各应用调用敏感接口的行为,有效保护用户的个人隐私。
在此,所述敏感接口可以包括通常涉及用户个人隐私的接口,例如手机中的麦克风接口、摄像头接口、录音接口、获取读取接口等;也可以包括系统管理者根据自身设备使用场景的需求定制哪些接口为敏感接口,然后自动在这些接口中插入相应的代码,从而实现对调用定制敏感接口的行为的监控。
为简明起见,本申请将以安卓系统为例阐述各实施例,本领域技术应能理解其中各实施例同样可适用于用户设备的其他操作系统。
图2示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的方法,该用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,该方法包括步骤S101、S102及S103。
在步骤S101中,该用户设备根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
在步骤S102中,该用户设备通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
在步骤S103中,该用户设备通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
例如,假设用户设备中的第一应用请求调用原生代码层的第一敏感接口,例如摄像头接口;在步骤S101中,用户设备接收到该第一应用对该(等)第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块。
在一些实施例中,所述第一敏感接口中的、调用该日志输出接口的代码为所述第一敏感接口中的新增代码。例如,通过在该(等)第一敏感接口中预先植入调用该日志输出接口的代码,从而使得该(等)第一敏感接口被调用执行时,该日志输出接口也将被调用执行,从而将该(等)第一敏感接口被调用的日志信息输出到期望文件,以实现对该第一应用的执行行为有效监控。
例如,用户设备包括但不限于手机、平板电脑、笔记本电脑等以Android(安卓)为操作系统的计算设备;第一应用包括安装于用户设备上,并基于特定的任务被开发后运行于用户设备的操作系统(例如,安卓操作系统)上的各类应用软件;所述原生代码层包括基于用户设备本地操作系统(例如,Android、IOS和Windows Phone)并可以使用原生程序进行编程操作的代码层面;所述内核代码层包括操作系统最基本的部分,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件平台层面。例如,所述第一敏感接口包括但不限于loadDex(动态加载)、Camera(摄像头)等可以在原生代码层被监控的接口;所述调用日志输出接口的代码包括调用安卓系统的原生代码层的现有接口代码_android_log_print();所述执行行为日志包括用户设备中的第一应用在第一敏感接口中调用一个或者多个第一敏感接口的一个或者多个行为记录;日志标签用于标记执行行为日志;所述日志驱动模块包括Logger(日志)驱动,其中,Logger驱动可以应用于日志系统初始化情景、日志读取情景和日志写入情景。例如,用户设备中的第一应用在原生代码层向第一敏感接口发送调用请求,其中,所述调用请求包括对日志输出接口的调用请求,用户设备中的第一应用向原生代码层的第一敏感接口中调用现有调用日志输出接口代码_android_log_print(),其中,该现有调用日志输出接口为所述用户设备中的第一应用在第一敏感接口中调用一个或者多个第一敏感接口的一个或者多个行为记录设置预定的日志标签,随后现有调用日志输出接口将被设置预定的日志标签的执行行为日志传输至日志驱动模块中。
在此,该日志输出接口可以是操作系统中现有的接口,例如,安卓系统中的_android_log_print日志输出接口,或者是新编写的可实现相同或相似功能的接口;该日志驱动模块可以是操作系统中现有的模块,例如,安卓系统中的Logger日志驱动,或者是新编写的可实现相同或相似功能的驱动。
由于被调用的第一敏感接口中包含有调用所述日志输出接口的代码,因此在该第一敏感接口被执行的过程中,该日志输出接口也将被调用执行。在步骤S102中,用户设备通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块。例如,假设该日志输出接口为安卓系统的原生代码层的现有接口_android_log_print,该调用日志输出接口为所述用户设备中的第一应用在第一敏感接口中调用一个或者多个第一敏感接口的一个或者多个行为记录设置预定的日志标签,随后该调用日志输出接口将执行行为日志传输至日志驱动模块中,其中,该执行行为日志中被设置预定的日志标签。
在此,该日志标签可用于将监控日志与区分操作系统中其他日志相区分;该日志标签可以是在预先设定的,也可以是部分或全部实时生成的。例如,当该日志输出接口被调用执行时,为关于该(等)第一敏感接口被调用的日志信息添加预先设定的日志标签,例如“NativeLog”;或者,实时生成该日志标签“xxxxxx”或“NativeLog-xxxxxx”,并为关于该(等)第一敏感接口被调用的日志信息添加该日志标签,其中,“xxxxxx”可以是实时生成的流水号信息或随机数信息,“NativeLog”是预先设定的。
在步骤S103中,用户设备通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
在此,该第一写日志函数可以是操作系统中对虚拟文件系统执行写操作的现有函数,或者是新编写的可实现相同或相似功能的函数。
在一些实施例中,所述日志驱动模块中的、该第一写日志函数的代码或调用该第一写日志函数的代码为该日子驱动模块中的新增代码。例如,通过在该日志驱动模块中预先植入调用该第一写日志函数的代码,从而使得该日志驱动模块被调用执行时,该第一写日志函数也将被调用执行,从而将该日志驱动模块所提取的、第一敏感接口的执行行为日志输出到虚拟文件系统,以实现对该第一应用的执行行为有效监控。
在一些实施例中,该第一写日志函数的代码或调用该第一写日志函数的代码被预先植入所述内核代码层中至少一个文件操作函数,例如内核代码层中的open(打开文件)、read(读文件)、write(写文件)等文件操作函数,从而可记录该(等)文件操作函数被调用执行的日志,例如调用该文件操作函数的进程名或应用名、调用时间、调用栈等信息。
例如,第一写日志函数为新编写的write_log()函数,所述虚拟文件系统(VFS,virtual File System)为采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统;所述日志驱动模块包括Logger驱动。例如,用户设备通过修改日志驱动模块为原生代码层的执行行为日志提供输出至内核代码层的接口。用户设备的内核代码层接收原生代码层输出的一个或者多个执行行为日志,基于所述一个或者多个执行行为日志中的日志标签,从中过滤获取包含该日志输出接口所设置的日志标签的第一敏感接口的执行行为日志,随后,用户设备通过日志驱动模块调用第一写日志函数将第一敏感接口的执行行为日志输入到虚拟文件系统中,或者,用户设备通过日志驱动模块将第一敏感接口的执行行为日志输入到虚拟文件系统中,其中,日志驱动模块中包含第一写日志函数。在这种情况下,用户设备中的第一应用在第一敏感接口中的行为会被传输虚拟文件系统中,方便后续对执行行为日志进行实时监控,对第一应用在用户设备中的恶意行为进行高效监督,对防止第一应用违规获取用户设备中的权限起到了极大的预防作用,保护了用户的隐私。
例如,用户持有用户设备,用户设备中安装有第一应用W,该用户设备的操作系统的内核代码层中添加有第一写日志函数write_log(),其作用为向操作系统的虚拟文件系统VFS(Virtual File System)写入日志数据,该内核代码层中的日志驱动模块包含有调用该write_log()的代码,该操作系统的原生代码层中的敏感接口中添加有调用日志输出接口_android_log_print()的代码,该日志输出接口用于为调用其的敏感接口的调用日志信息设置日志标签,并将该日志标签输出至内核代码层的日志驱动模块。当第一应用W向原生代码层发起对Camera敏感接口的调用请求,该Camera敏感接口被执行,由于该Camera敏感接口中包含有调用_android_log_print()的代码,因此,该_android_log_print()被调用执行;该_android_log_print()被调用执行过程中,为调用该Camera敏感接口的执行行为日志添加日志标签,并添加标签后的所述执行行为日志传输至内核代码层的日志驱动模块;该日志驱动模块根据该_android_log_print()所使用的日志标签,从操作系统所接收的日志过滤出该Camera敏感接口的执行行为日志,并调用第一写日志函数write_log()将该Camera敏感接口的执行行为日志写入到虚拟文件系统中。
在一些实施例中,所述方法还包括步骤S104(未示出)和S105(未示出)。其中,在步骤S104中,该用户设备根据所述第一应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含有调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;在步骤S105中,该用户设备通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
例如,假设用户设备中的第一应用请求调用虚拟机层的第二敏感接口,例如录音接口;在步骤S104中,该用户设备根据所述第一应用对该第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含有调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作。
由于被调用的第二敏感接口中包含有调用所述第二写日志接口的代码,因此在该第二敏感接口被执行的过程中,该第二写日志接口也将被调用执行。在步骤S105中,用户设备通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。例如,该第二写日志接口在第一次被调用时将启动一个线程来维护一个队列,后续该第二写日志接口每次被调用时,将在该队列中添加一个新任务日志,该线程通过调用操作系统的自带接口将这些任务日志写入到虚拟文件系统。
在一些实施例中,所述第二敏感接口中的、调用该第二写日志接口的代码为所述第二敏感接口中的新增代码;该第二写日志接口可以是操作系统中现有的接口,或者是新编写的可实现相同或相似功能的接口。
在一些实施例中,所述第一敏感接口与所述第二敏感接口对应于同一敏感接口。例如,所述第一应用在原生代码层所调用的敏感接口和在虚拟机层所调用的敏感接口对应于同一敏感接口,例如,所述第一敏感接口与所述第二敏感接口分别为同一敏感接口在原生代码层和虚拟机层的部分功能实现。
在一些实施例中,该方法还包括步骤S106(未示出):在步骤S106中,该用户设备根据所述第一敏感接口的执行行为日志与所述第二敏感接口的执行行为日志生成所述第一应用关于所述同一敏感接口的执行行为记录。例如,该用户设备根据第一敏感接口与第二敏感接口的映射关系,将该第一应用分别对第一敏感接口和第二敏感接口的执行行为日志按调用时间顺序合并,从而得到该第一应用关于该同一接口的执行行为记录。
图3示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的方法,该用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,该方法包括步骤S201及S202。具体地,在步骤S201中,用户设备根据所述用户设备中第二应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;在步骤S202中,用户设备通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
本领域技术人员应能理解,步骤S201、S202分别与前述实施例中步骤S104、S105相同或基本相同,故在此通过引用的方式包含于此,不再赘述。
在一些实施例中,所述方法还包括步骤S203(未示出)、S204(未示出)及S205(未示出)。具体地:
在步骤S203中,该用户设备根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
在步骤S204中,该用户设备通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
在步骤S205中,该用户设备通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述目标日志活动写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
本领域技术人员应能理解,步骤S203、S204、S205分别与前述实施例中步骤S101、S102、S103相同或基本相同,故在此通过引用的方式包含于此,不再赘述。
在一些实施例中,该方案可分别监控不同应用,例如在步骤S201及S202中监控第二应用,在步骤S203、S204及S205中监控第一应用,其中该第一应用与该第二应用为不同应用,从而实现多应用的并行监控。相比之下,现有技术主要通过在被监控应用的关联进程中动态地插入代码来监控该应用,而且仅能监控该一项应用;如欲监控其他应用,则还需对其他应用的关联进程进行动态插入代码。
图4示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的设备的结构框图,该用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,该设备包括一一模块101、一二模块102及一三模块103。
该一一模块101根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
该一二模块102通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
该一三模块103通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
例如,假设用户设备中的第一应用请求调用原生代码层的第一敏感接口,例如摄像头接口;该一一模块101接收到该第一应用对该(等)第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块。
在一些实施例中,所述第一敏感接口中的、调用该日志输出接口的代码为所述第一敏感接口中的新增代码。例如,通过在该(等)第一敏感接口中预先植入调用该日志输出接口的代码,从而使得该(等)第一敏感接口被调用执行时,该日志输出接口也将被调用执行,从而将该(等)第一敏感接口被调用的日志信息输出到期望文件,以实现对该第一应用的执行行为有效监控。
例如,用户设备包括但不限于手机、平板电脑、笔记本电脑等以Android(安卓)为操作系统的计算设备;第一应用包括安装于用户设备上,并基于特定的任务被开发后运行于用户设备的操作系统(例如,安卓操作系统)上的各类应用软件;所述原生代码层包括基于用户设备本地操作系统(例如,Android、IOS和Windows Phone)并可以使用原生程序进行编程操作的代码层面;所述内核代码层包括操作系统最基本的部分,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件平台层面。例如,所述第一敏感接口包括但不限于loadDex(动态加载)、Camera(摄像头)等可以在原生代码层被监控的接口;所述调用日志输出接口的代码包括调用安卓系统的原生代码层的现有接口代码_android_log_print();所述执行行为日志包括用户设备中的第一应用在第一敏感接口中调用一个或者多个第一敏感接口的一个或者多个行为记录;日志标签用于标记执行行为日志;所述日志驱动模块包括Logger(日志)驱动,其中,Logger驱动可以应用于日志系统初始化情景、日志读取情景和日志写入情景。例如,用户设备中的第一应用在原生代码层向第一敏感接口发送调用请求,其中,所述调用请求包括对日志输出接口的调用请求,用户设备中的第一应用向原生代码层的第一敏感接口中调用现有调用日志输出接口代码_android_log_print(),其中,该现有调用日志输出接口为所述用户设备中的第一应用在第一敏感接口中调用一个或者多个第一敏感接口的一个或者多个行为记录设置预定的日志标签,随后现有调用日志输出接口将被设置预定的日志标签的执行行为日志传输至日志驱动模块中。
在此,该日志输出接口可以是操作系统中现有的接口,例如,安卓系统中的_android_log_print日志输出接口,或者是新编写的可实现相同或相似功能的接口;该日志驱动模块可以是操作系统中现有的模块,例如,安卓系统中的Logger日志驱动,或者是新编写的可实现相同或相似功能的驱动。
由于被调用的第一敏感接口中包含有调用所述日志输出接口的代码,因此在该第一敏感接口被执行的过程中,该日志输出接口也将被调用执行。该一二模块102通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块。例如,假设该日志输出接口为安卓系统的原生代码层的现有接口_android_log_print,该调用日志输出接口为所述用户设备中的第一应用在第一敏感接口中调用一个或者多个第一敏感接口的一个或者多个行为记录设置预定的日志标签,随后该调用日志输出接口将执行行为日志传输至日志驱动模块中,其中,该执行行为日志中被设置预定的日志标签。
在此,该日志标签可用于将监控日志与区分操作系统中其他日志相区分;该日志标签可以是在预先设定的,也可以是部分或全部实时生成的。例如,当该日志输出接口被调用执行时,为关于该(等)第一敏感接口被调用的日志信息添加预先设定的日志标签,例如“NativeLog”;或者,实时生成该日志标签“xxxxxx”或“NativeLog-xxxxxx”,并为关于该(等)第一敏感接口被调用的日志信息添加该日志标签,其中,“xxxxxx”可以是实时生成的流水号信息或随机数信息,“NativeLog”是预先设定的。
该一三模块103通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
在此,该第一写日志函数可以是操作系统中对虚拟文件系统执行写操作的现有函数,或者是新编写的可实现相同或相似功能的函数。
在一些实施例中,所述日志驱动模块中的、该第一写日志函数的代码或调用该第一写日志函数的代码为该日子驱动模块中的新增代码。例如,通过在该日志驱动模块中预先植入调用该第一写日志函数的代码,从而使得该日志驱动模块被调用执行时,该第一写日志函数也将被调用执行,从而将该日志驱动模块所提取的、第一敏感接口的执行行为日志输出到虚拟文件系统,以实现对该第一应用的执行行为有效监控。
在一些实施例中,该第一写日志函数的代码或调用该第一写日志函数的代码被预先植入所述内核代码层中至少一个文件操作函数,例如内核代码层中的open(打开文件)、read(读文件)、write(写文件)等文件操作函数,从而可记录该(等)文件操作函数被调用执行的日志,例如调用该文件操作函数的进程名或应用名、调用时间、调用栈等信息。
例如,第一写日志函数为新编写的write_log()函数,所述虚拟文件系统(VFS,virtual File System)为采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统;所述日志驱动模块包括Logger驱动。例如,用户设备通过修改日志驱动模块为原生代码层的执行行为日志提供输出至内核代码层的接口。用户设备的内核代码层接收原生代码层输出的一个或者多个执行行为日志,基于所述一个或者多个执行行为日志中的日志标签,从中过滤获取包含该日志输出接口所设置的日志标签的第一敏感接口的执行行为日志,随后,用户设备通过日志驱动模块调用第一写日志函数将第一敏感接口的执行行为日志输入到虚拟文件系统中,或者,用户设备通过日志驱动模块将第一敏感接口的执行行为日志输入到虚拟文件系统中,其中,日志驱动模块中包含第一写日志函数。在这种情况下,用户设备中的第一应用在第一敏感接口中的行为会被传输虚拟文件系统中,方便后续对执行行为日志进行实时监控,对第一应用在用户设备中的恶意行为进行高效监督,对防止第一应用违规获取用户设备中的权限起到了极大的预防作用,保护了用户的隐私。
例如,用户持有用户设备,用户设备中安装有第一应用W,该用户设备的操作系统的内核代码层中添加有第一写日志函数write_log(),其作用为向操作系统的虚拟文件系统VFS(Virtual File System)写入日志数据,该内核代码层中的日志驱动模块包含有调用该write_log()的代码,该操作系统的原生代码层中的敏感接口中添加有调用日志输出接口_android_log_print()的代码,该日志输出接口用于为调用其的敏感接口的调用日志信息设置日志标签,并将该日志标签输出至内核代码层的日志驱动模块。当第一应用W向原生代码层发起对Camera敏感接口的调用请求,该Camera敏感接口被执行,由于该Camera敏感接口中包含有调用_android_log_print()的代码,因此,该_android_log_print()被调用执行;该_android_log_print()被调用执行过程中,为调用该Camera敏感接口的执行行为日志添加日志标签,并添加标签后的所述执行行为日志传输至内核代码层的日志驱动模块;该日志驱动模块根据该_android_log_print()所使用的日志标签,从操作系统所接收的日志过滤出该Camera敏感接口的执行行为日志,并调用第一写日志函数write_log()将该Camera敏感接口的执行行为日志写入到虚拟文件系统中。
在一些实施例中,所述设备还包括一四模块104(未示出)和一五模块105(未示出)。其中,该一四模块104根据所述第一应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含有调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;该一五模块105通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
例如,假设用户设备中的第一应用请求调用虚拟机层的第二敏感接口,例如录音接口;该一四模块104根据所述第一应用对该第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含有调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作。
由于被调用的第二敏感接口中包含有调用所述第二写日志接口的代码,因此在该第二敏感接口被执行的过程中,该第二写日志接口也将被调用执行。该一五模块105通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。例如,该第二写日志接口在第一次被调用时将启动一个线程来维护一个队列,后续该第二写日志接口每次被调用时,将在该队列中添加一个新任务日志,该线程通过调用操作系统的自带接口将这些任务日志写入到虚拟文件系统。
在一些实施例中,所述第二敏感接口中的、调用该第二写日志接口的代码为所述第二敏感接口中的新增代码;该第二写日志接口可以是操作系统中现有的接口,或者是新编写的可实现相同或相似功能的接口。
在一些实施例中,所述第一敏感接口与所述第二敏感接口对应于同一敏感接口。例如,所述第一应用在原生代码层所调用的敏感接口和在虚拟机层所调用的敏感接口对应于同一敏感接口,例如,所述第一敏感接口与所述第二敏感接口分别为同一敏感接口在原生代码层和虚拟机层的部分功能实现。
在一些实施例中,该设备还包括一六模块106(未示出):该一六模块106根据所述第一敏感接口的执行行为日志与所述第二敏感接口的执行行为日志生成所述第一应用关于所述同一敏感接口的执行行为记录。例如,该用户设备根据第一敏感接口与第二敏感接口的映射关系,将该第一应用分别对第一敏感接口和第二敏感接口的执行行为日志按调用时间顺序合并,从而得到该第一应用关于该同一接口的执行行为记录。
图5示出根据本申请一个实施例的一种用于监控用户设备中应用的执行行为的设备的结构框图,该用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,该设备包括二一模块201及二二模块202。具体地,该二一模块201根据所述用户设备中第二应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;该二二模块202通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
本领域技术人员应能理解,二一模块201、二二模块202分别与前述实施例中一四模块104、一五模块105相同或基本相同,故在此通过引用的方式包含于此,不再赘述。
在一些实施例中,所述设备还包括二三模块203(未示出)、二四模块204(未示出)及二五模块205(未示出)。具体地:
该二三模块203根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
该二四模块204通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
该二五模块205通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述目标日志活动写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
本领域技术人员应能理解,二三模块203、二四模块204、二五模块205分别与前述实施例中一一模块101、一二模块102、一三模块103相同或基本相同,故在此通过引用的方式包含于此,不再赘述。
在一些实施例中,该方案可分别监控不同应用,例如在二一模块201及二二模块202中监控第二应用,在二三模块203、二四模块204及二五模块205中监控第一应用,其中该第一应用与该第二应用为不同应用,从而实现多应用的并行监控。相比之下,现有技术主要通过在被监控应用的关联进程中动态地插入代码来监控该应用,而且仅能监控该一项应用;如欲监控其他应用,则还需对其他应用的关联进程进行动态插入代码。
图6示出了可被用于实施本申请中所述的各个实施例的示例性系统;
如图6所示在一些实施例中,系统300能够作为各所述实施例中的任意一个设备。在一些实施例中,系统300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器305)。
对于一个实施例,系统控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与系统控制模块310通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块310可包括存储器控制器模块330,以向系统存储器315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
系统存储器315可被用于例如为系统300加载和存储数据和/或指令。对于一个实施例,系统存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备320可包括在物理上作为系统300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
(一个或多个)通信接口325可为系统300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器(例如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、持有计算设备、平板电脑、上网本等)。在各个实施例中,系统300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (12)
1.一种用于监控用户设备中应用的执行行为的方法,所述用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,所述方法包括:
根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含有调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述第一敏感接口的执行行为日志写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
2.根据权利要求1所述的方法,其中,所述方法还包括:
根据所述第一应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含有调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;
通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
3.根据权利要求2所述的方法,其中,所述第二写日志接口为所述虚拟机层中的新增代码。
4.根据权利要求2所述的方法,其中,所述第一敏感接口与所述第二敏感接口对应于同一敏感接口。
5.根据权利要求4所述的方法,其中,所述方法还包括:
根据所述第一敏感接口的执行行为日志与所述第二敏感接口的执行行为日志生成所述第一应用关于所述同一敏感接口的执行行为记录。
6.根据权利要求1所述的方法,其中,所述调用日志输出接口的代码为所述第一敏感接口中的新增代码。
7.根据权利要求1所述的方法,其中,所述第一写日志函数为所述内核代码层中的新增代码。
8.根据权利要求7所述的方法,其中,所述内核代码层中至少一个文件操作函数包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
9.一种用于监控用户设备中应用的执行行为的方法,所述用户设备的操作系统包括内核代码层、原生代码层和虚拟机层,其中,该方法包括:
根据所述用户设备中第二应用对所述虚拟机层的第二敏感接口的调用请求,执行所述第二敏感接口,其中,所述第二敏感接口中包含调用第二写日志接口的代码,所述第二写日志接口通过调用所述操作系统的自带接口对所述虚拟文件系统执行写操作;
通过执行所述第二写日志接口,将所述第二敏感接口的执行行为日志写入所述虚拟文件系统。
10.根据权利要求9所述的方法,其中,所述方法还包括:
根据所述用户设备中第一应用对所述原生代码层的第一敏感接口的调用请求,执行所述第一敏感接口,其中,所述第一敏感接口中包含调用日志输出接口的代码,所述日志输出接口用于为所述第一敏感接口的执行行为日志设置日志标签,并调用所述内核代码层的日志驱动模块;
通过执行所述日志输出接口,为所述第一敏感接口的执行行为日志添加所述日志标签,并将添加标签后的所述第一敏感接口的执行行为日志传输至所述日志驱动模块;
通过执行所述日志驱动模块,根据所述日志标签从所述内核代码层所接收到的日志中提取所述第一敏感接口的执行行为日志,并通过调用第一写日志函数将所述目标日志活动写入所述内核代码层的虚拟文件系统,其中,所述日志驱动模块中包含有所述第一写日志函数的代码或调用所述第一写日志函数的代码。
11.一种用于监控用户设备中应用的执行行为的设备,其特征在于,所述设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至10中任一项所述的方法。
12.一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如权利要求1至10中任一项所述方法的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018116384461 | 2018-12-29 | ||
CN201811638446 | 2018-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992489A true CN109992489A (zh) | 2019-07-09 |
CN109992489B CN109992489B (zh) | 2023-05-09 |
Family
ID=67130582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910188309.0A Active CN109992489B (zh) | 2018-12-29 | 2019-03-13 | 一种用于监控用户设备中应用的执行行为的方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992489B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430177A (zh) * | 2019-07-26 | 2019-11-08 | 北京智游网安科技有限公司 | 一种app网络行为的监控方法、智能终端及存储介质 |
CN111782474A (zh) * | 2020-06-30 | 2020-10-16 | 广东小天才科技有限公司 | 日志处理方法、装置、电子设备和介质 |
CN115033910A (zh) * | 2021-11-12 | 2022-09-09 | 荣耀终端有限公司 | 一种访问记录展示方法及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070240215A1 (en) * | 2006-03-28 | 2007-10-11 | Blue Coat Systems, Inc. | Method and system for tracking access to application data and preventing data exploitation by malicious programs |
JP2007334536A (ja) * | 2006-06-14 | 2007-12-27 | Securebrain Corp | マルウェアの挙動解析システム |
CN101320350A (zh) * | 2008-07-17 | 2008-12-10 | 金蝶软件(中国)有限公司 | 一种性能监控方法及装置 |
CN102521114A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 一种虚拟化环境下的文件系统日志存储系统 |
CN102819715A (zh) * | 2012-08-15 | 2012-12-12 | 腾讯科技(深圳)有限公司 | Api监控方法和装置 |
CN103186740A (zh) * | 2011-12-27 | 2013-07-03 | 北京大学 | 一种Android恶意软件的自动化检测方法 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
CN105260293A (zh) * | 2015-11-06 | 2016-01-20 | Tcl集团股份有限公司 | 日志信息的输出方法、装置及终端设备 |
CN106897609A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种对动态加载的应用程序进行监控的方法及装置 |
CN108734007A (zh) * | 2017-04-13 | 2018-11-02 | 中国移动通信集团上海有限公司 | 一种监控应用程序的处理方法及装置 |
-
2019
- 2019-03-13 CN CN201910188309.0A patent/CN109992489B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070240215A1 (en) * | 2006-03-28 | 2007-10-11 | Blue Coat Systems, Inc. | Method and system for tracking access to application data and preventing data exploitation by malicious programs |
JP2007334536A (ja) * | 2006-06-14 | 2007-12-27 | Securebrain Corp | マルウェアの挙動解析システム |
CN101320350A (zh) * | 2008-07-17 | 2008-12-10 | 金蝶软件(中国)有限公司 | 一种性能监控方法及装置 |
CN102521114A (zh) * | 2011-11-30 | 2012-06-27 | 华中科技大学 | 一种虚拟化环境下的文件系统日志存储系统 |
CN103186740A (zh) * | 2011-12-27 | 2013-07-03 | 北京大学 | 一种Android恶意软件的自动化检测方法 |
CN102819715A (zh) * | 2012-08-15 | 2012-12-12 | 腾讯科技(深圳)有限公司 | Api监控方法和装置 |
CN103198255A (zh) * | 2013-04-03 | 2013-07-10 | 武汉大学 | 一种Android软件敏感行为监控与拦截方法及系统 |
CN105260293A (zh) * | 2015-11-06 | 2016-01-20 | Tcl集团股份有限公司 | 日志信息的输出方法、装置及终端设备 |
CN106897609A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种对动态加载的应用程序进行监控的方法及装置 |
CN108734007A (zh) * | 2017-04-13 | 2018-11-02 | 中国移动通信集团上海有限公司 | 一种监控应用程序的处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
SPREITZENBARTH M: "Mobile-Sandbox:combining static and dynamic analysis with machine-learning techniques", 《INTERNATIONAL JOURNAL OF INFORMATION SECURITY》 * |
严勇: "基于动态监控的Android恶意软件检测方法", 《信息安全与通信保密》 * |
朱旭超等: "基于smali注入的敏感API拦截方法研究", 《计算机与数字工程》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430177A (zh) * | 2019-07-26 | 2019-11-08 | 北京智游网安科技有限公司 | 一种app网络行为的监控方法、智能终端及存储介质 |
CN111782474A (zh) * | 2020-06-30 | 2020-10-16 | 广东小天才科技有限公司 | 日志处理方法、装置、电子设备和介质 |
CN115033910A (zh) * | 2021-11-12 | 2022-09-09 | 荣耀终端有限公司 | 一种访问记录展示方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109992489B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9246948B2 (en) | Systems and methods for providing targeted data loss prevention on unmanaged computing devices | |
CN104484599B (zh) | 一种基于应用程序的行为处理方法和装置 | |
US8429745B1 (en) | Systems and methods for data loss prevention on mobile computing systems | |
CN105190525B (zh) | 管理在节电模式中对混合式驱动器的访问 | |
CN109992489A (zh) | 一种用于监控用户设备中应用的执行行为的方法与设备 | |
US9509697B1 (en) | Systems and methods for authorizing attempts to access shared libraries | |
CN104361294B (zh) | 一种文档保护方法、设备以及系统 | |
CN108694238A (zh) | 基于区块链的业务数据处理方法、装置及存储介质 | |
JP2005235019A5 (zh) | ||
CN104298472A (zh) | 一种分层实现计算虚拟化的方法与设备 | |
CN104025046B (zh) | 与利用调回的isa桥接关联的方法、装置和计算设备 | |
CN106886434A (zh) | 一种分布式应用安装方法与装置 | |
CN109460439A (zh) | 一种数据处理方法、装置、介质和电子设备 | |
CN109190401A (zh) | 一种Qemu虚拟可信根的数据存储方法、装置及相关组件 | |
CN106686104A (zh) | 用于目标服务器运维的方法与设备 | |
CN105556534B (zh) | 用于在发生拒绝时建议响应指南的电子设备和方法 | |
CN107329806A (zh) | 一种开发环境构建方法及装置 | |
TW201514727A (zh) | 檔處理系統及方法 | |
US20220198058A1 (en) | Identifying and preventing access to aggregate pii from anonymized data | |
WO2009018366A1 (en) | Method and apparatus for lifecycle integrity verification of virtual machines | |
CN106326782A (zh) | 一种信息处理方法及电子设备 | |
Thanasegaran et al. | Comparative Study on Cloud Computing Implementation and Security Challenges | |
CN111400137B (zh) | 监测事件的存储方法、装置、移动终端和存储介质 | |
CN103870748B (zh) | 虚拟机的安全处理方法及装置 | |
US9754086B1 (en) | Systems and methods for customizing privacy control systems |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |