【发明授权】动态更新机制判定方法及应用全生命周期行为监控方法_武汉安天信息技术有限责任公司_201711007283.2 

申请/专利权人:武汉安天信息技术有限责任公司

申请日:2017-10-25

发明/设计人:马志远;刘龙飞;潘宣辰

公开(公告)日:2020-11-24

代理机构:湖北武汉永嘉专利代理有限公司

公开(公告)号:CN109711149B

代理人:王丹

主分类号:G06F21/51(20130101)

地址:430000 湖北省武汉市东湖高新技术开发区关山大道光谷软件园F4栋12楼(海康威视大楼)

分类号:G06F21/51(20130101);G06F21/56(20130101)

优先权:

专利状态码:有效-授权

法律状态:2020.11.24#授权;2019.05.28#实质审查的生效;2019.05.03#公开

摘要:本发明提供一种动态更新机制判定方法,在云端对应用进行行为分析;通过静态检测和或动态检测,来判断应用是否存在网络连接;当应用存在网络连接时,则进行热更新判断和本地代码加载判断;热更新判断用于通过静态检测和或动态检测,来识别应用是否存在动态更新模块;本地代码加载判断用于识别应用是否存在本地加载模块且无本地代码库;若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。本发明通过对网络连接和热更新判断,来对应用的动态更新进行识别,并及时发现应用是否更新了不良模块,同时应用行为分析和检测在云端进行,占用系统资源少,不影响操作系统与应用程序运行的速度。

主权项:1.一种动态更新机制判定方法,其特征在于:在云端对应用进行行为分析;网络连接判断,用于通过静态检测和或动态检测,来判断应用是否存在网络连接;当应用存在网络连接时,则进行热更新判断和本地代码加载判断;其中,热更新判断用于通过静态检测和或动态检测,来识别应用是否存在动态更新模块;本地代码加载判断用于识别应用是否存在本地加载模块且无本地代码库;若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。

全文数据:动态更新机制判定方法及应用全生命周期行为监控方法技术领域本发明属于终端设备安全技术领域,具体涉及一种动态更新机制判定方法及应用全生命周期行为监控方法。背景技术移动终端是指可以在移动中使用的计算机设备,包括手机、平板电脑、Pos机甚至包括车载电脑等。随着移动终端的普及,各种应用程序的应用也得到广泛使用。在移动应用给用户的生活、工作带来便利的同时,也带来了安全隐患,有的是直接在应用植入恶意或不良程序通过技术手段绕过检测,有的应用是在安装时应用不携带任何不良模块,用户安装后再加载出来,使得用户的利益受到损害;且随着各类应用雨后春笋般上线,用户选择安全、良好体验应用的成本也越来越高。发明内容本发明要解决的技术问题是:提供一种动态更新机制判定方法及应用全生命周期行为监控方法,能够对应用的动态更新进行识别,并及时发现应用是否更新了不良模块,同时不影响操作系统与应用程序运行的速度。本发明为解决上述技术问题所采取的技术方案为:一种动态更新机制判定方法,其特征在于:在云端对应用进行行为分析;网络连接判断,用于通过静态检测和或动态检测,来判断应用是否存在网络连接;当应用存在网络连接时,则进行热更新判断和本地代码加载判断;其中,热更新判断用于通过静态检测和或动态检测,来识别应用是否存在动态更新模块;本地代码加载判断用于识别应用是否存在本地加载模块且无本地代码库;若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。按上述判定方法,所述的网络连接判断具体为:解析应用的AndroidManifest.xml文件,看是否配置了:,配置了则表示该应用有网络连接,没有配置则表示该应用不存在网络连接。按上述判定方法,所述的热更新判断具体为:预设有对热更新框架提取规则形成的特征库;通过解析应用的文件,将解析的应用的特征与特征库中的特征匹配,当解析的所有特征中有至少一项与特征库中的规则匹配,则判断该应用存在热更新模块。按上述判定方法,所述的本地代码加载判断具体为:解析应用代码看其中是否引用了类加载器Classloader的方法或System类的“loadLibrary”方法,且load的文件不在本地,若符合上述条件则表示该应用有本地加载模块且无本地代码库。一种动态更新机制判定系统,其特征在于:该系统设置在云端,用于对应用进行行为分析,包括:网络连接判断模块,用于通过静态检测和或动态检测,来判断应用是否存在网络连接;热更新判断模块,用于当应用存在网络连接时,通过静态检测和或动态检测,来识别应用是否存在动态更新模块;本地代码加载判断模块,用于当应用存在网络连接时,识别应用是否存在本地加载模块且无本地代码库;动态更新机制判定模块,用于根据热更新判断模块和本地代码加载判断模块的结果,若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。按上述系统,所述的网络连接判断模块具体用于解析应用的AndroidManifest.xml文件,看是否配置了,配置了则表示该应用有网络连接,没有配置则表示该应用不存在网络连接。按上述系统,所述的热更新判断模块具体用于预设有对热更新框架提取规则形成的特征库;通过解析应用的文件,将解析的应用的特征与特征库中的特征匹配,当解析的所有特征中有至少一项与特征库中的规则匹配,则判断该应用存在热更新模块。按上述系统,所述的本地代码加载判断模块具体用于解析应用代码看其中是否引用了类加载器Classloader的方法或System类的“loadLibrary”方法,且load的文件不在本地,若符合上述条件则表示该应用有本地加载模块且无本地代码库。一种应用全生命周期行为监控方法,其特征在于:它包括以下步骤:确定监控对象:利用所述的动态更新机制判定方法,在云端得到存在动态更新机制的应用,作为监控对象;对象监控:在终端,通过设置hook点对监控对象进行网络链接数据和代码模块下载的监控,获取应用下载的热更新的文件,并上传至云端;热更新分析:在云端,对应用下载的热更新的文件进行分析,判断是否存在对用户造成损失的行为,将判断结果返回给终端。按上述监控方法,所述的对象监控具体为:在DexPathList的makeDexElememts添加hook点收集信息,检测在应用的data目录或者sdcard目录是否有新增的path,如果有则其是热更新得到的dex文件;在System.load中添加hook点收集加载的so文件路径,对比so文件的时间戳与apk文件的安装时间,如果相差时间较远,则其是热更新得到的so文件。按上述监控方法,所述的热更新分析具体为:云端调用外部扫描模块对终端应用热更新的文件进行不安全或不良行为扫描,扫描完成后将结果返回给终端。按上述监控方法,本方法还包括以下步骤:告警:在终端,将对用户造成损失的行为进行展示,同时展示存在的风险。本发明的有益效果为:通过对网络连接和热更新判断,来对应用的动态更新进行识别,并及时发现应用是否更新了不良模块,同时应用行为分析和检测在云端进行,占用系统资源少,不影响操作系统与应用程序运行的速度。附图说明图1为本发明一实施例的监控方法流程图。图2为本发明一实施例的判定方法流程图。具体实施方式下面结合具体实例和附图对本发明做进一步说明。本发明提供一种动态更新机制判定方法,如图2所示,在云端对应用进行行为分析。网络连接判断,用于通过静态检测和或动态检测,来判断应用是否存在网络连接。网络连接判断具体为:解析应用的AndroidManifest.xml文件,看是否配置了:,配置了则表示该应用有网络连接,没有配置则表示该应用不存在网络连接。当应用存在网络连接时,则进行热更新判断和本地代码加载判断;其中,热更新判断用于通过静态检测和或动态检测,来识别应用是否存在动态更新模块;本地代码加载判断用于识别应用是否存在本地加载模块且无本地代码库。热更新判断具体为:预设有对热更新框架提取规则形成的特征库;通过解析应用的文件,将解析的应用的特征与特征库中的特征匹配,当解析的所有特征中有至少一项与特征库中的规则匹配,则判断该应用存在热更新模块。如应用了阿里云的热更新框架,其AndroidManifest文件中的meta-data数据有配置相关信息:判断应用是否应用了阿里云的热更新框架就通过解析AndroidManifest文件中的meta-data数据,看是否与上述特征匹配,若有该项配置,则表示应用存在热更新,无则看应用其它特征与特征库其它规则是否匹配。当解析的所有特征有一项与特征库规则匹配时,表示应用存在热更新,都不匹配时表示应用不存在热更新模块。分析完成后记录结果。其它的,例如淘宝的热更新框架是提取应用dex文件中的API,看是否有com.alipay.euler.andfix.AndFix;Amigo的热更新框架是提取dex文件中的API,看是否存在Amigo.workLatercontext,patchApkFile,callback,等等。本地代码加载判断具体为:有的应用是自己写的更新框架,判断方法是解析应用代码看其中是否引用了类加载器Classloader的方法或System类的“loadLibrary”方法,且load的文件不在本地,若符合上述条件则表示该应用有本地加载模块且无本地代码库。若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。一种动态更新机制判定系统,该系统设置在云端,用于对应用进行行为分析,包括:网络连接判断模块,用于通过静态检测和或动态检测,来判断应用是否存在网络连接。网络连接判断模块具体用于解析应用的AndroidManifest.xml文件,看是否配置了,配置了则表示该应用有网络连接,没有配置则表示该应用不存在网络连接。热更新判断模块,用于当应用存在网络连接时,通过静态检测和或动态检测,来识别应用是否存在动态更新模块。热更新判断模块具体用于预设有对热更新框架提取规则形成的特征库;通过解析应用中AndroidManifest文件中的meta-data数据,与特征库中的特征匹配,若有匹配项则表示该应用存在热更新,若无匹配项,则将所述应用的其它特征与特征库的其它规则进行匹配,当解析的所有特征中有至少一项与特征库中的规则匹配,则判断该应用存在热更新模块。本地代码加载判断模块,用于当应用存在网络连接时,识别应用是否存在本地加载模块且无本地代码库。本地代码加载判断模块具体用于解析应用代码看其中是否引用了类加载器Classloader的方法或System类的“loadLibrary”方法,且load的文件不在本地,若符合上述条件则表示该应用有本地加载模块且无本地代码库。动态更新机制判定模块,用于根据热更新判断模块和本地代码加载判断模块的结果,若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。一种应用全生命周期行为监控方法,如图1所示,它包括以下步骤:S01、确定监控对象:利用上述动态更新机制判定方法,在云端得到存在动态更新机制的应用,作为监控对象。S02、对象监控:在终端,通过设置hook点对监控对象进行网络链接数据和代码模块下载的监控,获取应用下载的热更新的文件,并上传至云端。以监控腾讯tinker架构为例,可动态捕获应用热更新的dex或so文件。对象监控具体为:在DexPathList的makeDexElememts添加hook点收集信息,检测在应用的data目录或者sdcard目录是否有新增的path,如果有则其是热更新得到的dex文件;在System.load中添加hook点收集加载的so文件路径,对比so文件的时间戳与apk文件的安装时间,如果相差时间较远,则其是热更新得到的so文件。S03、热更新分析:在云端,对应用下载的热更新的文件进行分析,判断是否存在对用户造成损失的行为,将判断结果返回给终端。热更新分析具体为:云端调用外部扫描模块对终端应用热更新的文件进行不安全或不良行为扫描,扫描完成后将结果返回给终端。本方法还包括以下步骤:S04、告警:在终端,将对用户造成损失的行为进行展示,同时展示存在的风险。可以用弹框的方式进行展示,对用户造成损失的行为为不安全行为或不良行为。本发明的核心在于:若应用存在网络连接且应用了热更新框架或含有本地加载且无本地代码库则可基本判定应用存在动态更新。其中判断应用是否应用了热更新框架和本地加载且无本地代码库的方法,包括静态和动态两种检测方式,如静态可通过解析应用特征看是否与特征库规则匹配或解析代码看是否存在类加载方法load了外部的可执行文件。捕获热更新的dex文件或so文件的方法,且不仅限于针对不同的热更新框架在对应的关键点设置hock收集信息,捕获热更新的文件。调用外部扫描模块检出存在不安全或不良行为的代码模块。本发明可以第一时间将含有动态更新机制的应用新加载的恶意或不良代码模块检出并提示给用户,提示给用户;同时,应用行为分析和检测在云端进行,占用系统资源少,不影响操作系统与应用程序运行的速度。上述说明示出并描述了本发明的若干实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

权利要求:1.一种动态更新机制判定方法,其特征在于:在云端对应用进行行为分析;网络连接判断,用于通过静态检测和或动态检测,来判断应用是否存在网络连接;当应用存在网络连接时,则进行热更新判断和本地代码加载判断;其中,热更新判断用于通过静态检测和或动态检测,来识别应用是否存在动态更新模块;本地代码加载判断用于识别应用是否存在本地加载模块且无本地代码库;若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。2.根据权利要求1所述的动态更新机制判定方法,其特征在于:所述的网络连接判断具体为:解析应用的AndroidManifest.xml文件,看是否配置了:,配置了则表示该应用有网络连接,没有配置则表示该应用不存在网络连接。3.根据权利要求1所述的动态更新机制判定方法,其特征在于:所述的热更新判断具体为:预设有对热更新框架提取规则形成的特征库;通过解析应用的文件,将解析的应用的特征与特征库中的特征匹配,当解析的所有特征中有至少一项与特征库中的规则匹配,则判断该应用存在热更新模块。4.根据权利要求1所述的动态更新机制判定方法,其特征在于:所述的本地代码加载判断具体为:解析应用代码看其中是否引用了类加载器Classloader的方法或System类的“loadLibrary”方法,且load的文件不在本地,若符合上述条件则表示该应用有本地加载模块且无本地代码库。5.一种动态更新机制判定系统,其特征在于:该系统设置在云端,用于对应用进行行为分析,包括:网络连接判断模块,用于通过静态检测和或动态检测,来判断应用是否存在网络连接;热更新判断模块,用于当应用存在网络连接时,通过静态检测和或动态检测,来识别应用是否存在动态更新模块;本地代码加载判断模块,用于当应用存在网络连接时,识别应用是否存在本地加载模块且无本地代码库;动态更新机制判定模块,用于根据热更新判断模块和本地代码加载判断模块的结果,若应用存在动态更新模块,或者存在本地加载模块且无本地代码库,则判定所述的应用存在动态更新机制。6.根据权利要求5所述的动态更新机制判定系统,其特征在于:所述的网络连接判断模块具体用于解析应用的AndroidManifest.xml文件,看是否配置了:,配置了则表示该应用有网络连接,没有配置则表示该应用不存在网络连接。7.根据权利要求5所述的动态更新机制判定系统,其特征在于:所述的热更新判断模块具体用于预设有对热更新框架提取规则形成的特征库;通过解析应用的文件,将解析的应用的特征与特征库中的特征匹配,当解析的所有特征中有至少一项与特征库中的规则匹配,则判断该应用存在热更新模块。8.根据权利要求5所述的动态更新机制判定系统,其特征在于:所述的本地代码加载判断模块具体用于解析应用代码看其中是否引用了类加载器Classloader的方法或System类的“loadLibrary”方法,且load的文件不在本地,若符合上述条件则表示该应用有本地加载模块且无本地代码库。9.一种应用全生命周期行为监控方法,其特征在于:它包括以下步骤:确定监控对象:利用权利要求1至4中任意一项所述的动态更新机制判定方法,在云端得到存在动态更新机制的应用,作为监控对象;对象监控:在终端,通过设置hook点对监控对象进行网络链接数据和代码模块下载的监控,获取应用下载的热更新的文件,并上传至云端;热更新分析:在云端,对应用下载的热更新的文件进行分析,判断是否存在对用户造成损失的行为,将判断结果返回给终端。10.根据权利要求9所述的应用全生命周期行为监控方法,其特征在于:所述的对象监控具体为:在DexPathList的makeDexElememts添加hook点收集信息,检测在应用的data目录或者sdcard目录是否有新增的path,如果有则其是热更新得到的dex文件;在System.load中添加hook点收集加载的so文件路径,对比so文件的时间戳与apk文件的安装时间,如果相差时间较远,则其是热更新得到的so文件。11.根据权利要求9所述的应用全生命周期行为监控方法,其特征在于:所述的热更新分析具体为:云端调用外部扫描模块对终端应用热更新的文件进行不安全或不良行为扫描,扫描完成后将结果返回给终端。12.根据权利要求9所述的应用全生命周期行为监控方法,其特征在于:本方法还包括以下步骤:告警:在终端,将对用户造成损失的行为进行展示,同时展示存在的风险。

百度查询: 武汉安天信息技术有限责任公司 动态更新机制判定方法及应用全生命周期行为监控方法