一种检测恶意APK的方法、装置、客户端和服务器制造方法及图纸

技术编号:11306021 阅读:128 留言:0更新日期:2015-04-16 00:56
本发明专利技术公开了一种检测恶意APK的方法、装置、客户端和服务器,该方法包括:静态分析一个APK,按照逻辑功能从所述APK中拆出至少一个功能模块;对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程,如果没有则确定该功能模块存在风险;如果所述APK中有至少一个功能模块被确认为存在风险,则确定该APK为恶意APK。本发明专利技术提供的技术方案基于恶意APK通常在用户不知情的情况下进行操作的规律,通过判断APK的各功能模块是否与用户进行交互,确定该APK的安全级别。提供了一种具有启发式的、直观的检测恶意APK的方法,可以实现对未知APK的检测。

【技术实现步骤摘要】
一种检测恶意APK的方法、装置、客户端和服务器
本专利技术涉及网络安全
,具体涉及一种检测恶意APK的方法、装置、客户端和服务器。
技术介绍
近年来,随着Android系统的发展和Android设备的流行,Android已成为恶意软件开发者最关注的操作系统。恶意软件开发者通过修改流行应用程序的方式,将恶意软件代码嵌入到正常的应用程序中,然后将含有恶意代码的APK通过第三方软件商店或者论坛进行发布。目前,恶意软件主要利用操作系统存在的系统安全漏洞,通过私自注册付费服务,删除提示或确认短信的方式,窃取用户手机话费,窃取用户隐私数据,如短信、电子邮件、通讯录等。严重危害了用户的信息和财产安全。现有技术中,基于特征代码(signature-based)的检测方案是当前恶意APK检测的核心技术之一,该方案是指:从恶意软件中提取出若干段具有唯一性、固定性的字节码,如一段特殊代码或字符串,作为该恶意软件的特征,并依靠由上述方法构建的特征库来对APK进行检测,当APK中的代码与以构建的特征库相匹配,则判断该APK为恶意软件。基于特征代码(signature-based)的检测方案存在以下缺点:1、具有滞后性,无法识别未知的恶意软件;2、字节码特征容易通过加密和混淆的方式被改变,导致特征库需要频繁更新。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种检测恶意APK的方法、装置、客户端和服务器。依据本专利技术的一个方面,提供了一种检测恶意APK的方法,该方法包括:静态分析一个APK,按照逻辑功能从所述APK中拆出至少一个功能模块;对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程,如果没有则确定该功能模块存在风险;如果所述APK中有至少一个功能模块被确认为存在风险,则确定该APK为恶意APK。可选地,该方法进一步包括:对于拆分出的每个功能模块,进一步结合该功能模块实现其功能时的具体操作来确定是否存在风险。可选地,所述对于拆分出的每个功能模块,进一步结合该功能模块实现其功能时的具体操作来确定是否存在风险包括:分解出该功能模块实现其具体功能时所使用和调用的方法;将分解出的各方法通过与预设的规则库进行匹配,判断各方法的权限和行为是否存在风险。可选地,所述静态分析一个APK,按照逻辑功能从所述APK中拆出至少一个功能模块包括:通过反编译所述APK,将其中的所有Activity、Service、BroadcastReceiver和ContentProvider拆分出来,再根据调用逻辑关系划分成至少一个功能模块。可选地,所述对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程包括:判断该功能模块的实现其功能时是否有与Activity组件交互的过程,如果有则有与用户交互的过程,如果没有则没有与用户交互的过程。可选地,所述对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程包括:判断该功能模块中是否包含与用户交互特征库中的特征匹配的内容,如果包含则确定该功能模块在实现其功能时有与用户进行交互的过程。可选地,该方法进一步包括:根据白签名库来辅助确定所述APK是否为恶意APK。可选地,在客户端完成上述流程;或者由客户端将所述APK上传到服务器端,由服务器端完成上述流程。依据本专利技术的另一个方面,提供了一种检测恶意APK的装置,该装置包括:拆分单元,适于静态分析一个APK,按照逻辑功能从所述APK中拆出至少一个功能模块;判定单元,适于对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程,如果没有则确定该功能模块存在风险;如果所述APK中有至少一个功能模块被确认为存在风险,则确定该APK为恶意APK。可选地,所述判定单元,适于对于拆分出的每个功能模块,进一步结合该功能模块实现其功能时的具体操作来确定是否存在风险。可选地,所述判定单元,适于分解出该功能模块实现其具体功能时所使用和调用的方法;将分解出的各方法通过与预设的规则库进行匹配,判断各方法的权限和行为是否存在风险。可选地,所述拆分单元,适于通过反编译所述APK,将其中的所有Activity、Service、BroadcastReceiver和ContentProvider拆分出来,再根据调用逻辑关系划分成至少一个功能模块。可选地,所述判定单元,适于判断该功能模块的实现其功能时是否有与Activity组件交互的过程,如果有则有与用户交互的过程,如果没有则没有与用户交互的过程。可选地,所述判定单元,适于判断该功能模块中是否包含与用户交互特征库中的特征匹配的内容,如果包含则确定该功能模块在实现其功能时有与用户进行交互的过程。可选地,该装置进一步包括:辅助单元,适于根据白签名库来辅助确定所述APK是否为恶意APK。依据本专利技术的又一个方面,提供了一种检测恶意APK的客户端,该客户端包括如上任一项所述的检测恶意APK的装置。依据本专利技术的再一个方面,提供了一种检测恶意APK的服务器,该服务器包括如上任一项所述的检测恶意APK的装置。由上述可知,本专利技术提供的技术方案,基于恶意APK通常在用户不知情的情况下进行操作的规律,通过判断APK的各功能模块是否与用户进行交互,确定该APK的安全级别。一方面,本方案通过静态分析可以将APK中的所有功能模块都拆分出来,避免了因遗漏功能模块而导致的检测失误,提高了检测的准确性;另一方面,本方案提供了一种具有启发式的、直观的检测恶意APK的方法,可以实现对未知APK的检测。本专利技术提供的这种恶意APK检测方法可以防止恶意应用程序偷窥电子设备用户的隐私信息(包括联系人信息、通话记录、短信、彩信、各种账户及密码等)的行为,防止恶意应用程序拨打扣费电话、发送扣费短信、访问耗费网络流量的网站,防止恶意应用程序安装木马和病毒程序,防止恶意应用程序记录用户的GPS或网络定位,拦截恶意应用程序弹出骚扰广告信息等等,可以对于任何恶意应用程序对于服务的调用进行拦截,从而提高了系统的安全性,提高了用户的体验。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种检测恶意APK的方法的流程图;图2示出了根据本专利技术一个实施例的一种检测恶意APK的装置的示意图;图3示出了根据本专利技术另一个实施例的一种检测恶意APK的装置的示意图;图4示出了根据本专利技术一个实施例的一种检测恶意APK的客户端的示意图;图5示出了根据本专利技术一个实施例的一种检测恶意APK的服务器的示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是本文档来自技高网...
一种检测恶意APK的方法、装置、客户端和服务器

【技术保护点】
一种检测恶意APK的方法,其中,该方法包括:静态分析一个APK,按照逻辑功能从所述APK中拆出至少一个功能模块;对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程,如果没有则确定该功能模块存在风险;如果所述APK中有至少一个功能模块被确认为存在风险,则确定该APK为恶意APK。

【技术特征摘要】
1.一种检测恶意APK的方法,其中,该方法包括:静态分析一个APK,按照逻辑功能从所述APK中拆出至少一个功能模块;对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程,如果没有则确定该功能模块存在风险;如果所述APK中有至少一个功能模块被确认为存在风险,则确定该APK为恶意APK;其中,所述判断该功能模块在实现其功能时是否有与用户进行交互的过程包括:判断该功能模块中是否包含与用户交互特征库中的特征匹配的内容,如果包含则确定该功能模块在实现其功能时有与用户进行交互的过程;用户交互特征库中的特征包括Android中需要与界面交互的多个类和方法;或者,判断该功能模块在实现其功能时是否有与Activity组件交互的过程,如果有则确定该功能模块在实现其功能时有与用户进行交互的过程。2.如权利要求1所述的方法,其中,该方法进一步包括:对于拆分出的每个功能模块,进一步结合该功能模块实现其功能时的具体操作来确定是否存在风险。3.如权利要求2所述的方法,其中,所述对于拆分出的每个功能模块,进一步结合该功能模块实现其功能时的具体操作来确定是否存在风险包括:分解出该功能模块实现其具体功能时所使用和调用的方法;将分解出的各方法通过与预设的规则库进行匹配,判断各方法的权限和行为是否存在风险。4.如权利要求1所述的方法,其中,所述静态分析一个APK,按照逻辑功能从所述APK中拆出至少一个功能模块包括:通过反编译所述APK,将其中的所有Activity、Service、BroadcastReceiver和ContentProvider拆分出来,再根据调用逻辑关系划分成至少一个功能模块。5.如权利要求1所述的方法,其中,所述对于拆分出的每个功能模块,判断该功能模块在实现其功能时是否有与用户进行交互的过程包括:判断该功能模块的实现其功能时是否有与Activity组件交互的过程,如果有则有与用户交互的过程,如果没有则没有与用户交互的过程。6.如权利要求1所述的方法,其中,该方法进一步包括:根据白签名库来辅助确定所述APK是否为恶意APK。7.如权利要求1-6中任一项所述的方法,其中,在客户端完成上述流程;或者由客户端...

【专利技术属性】
技术研发人员:李伟
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1