用于确定应用程序在运行时的安全性的方法及其装置制造方法及图纸

技术编号:21630680 阅读:21 留言:0更新日期:2019-07-17 11:38
本发明专利技术涉及计算机技术,具体涉及用于确定应用程序在运行时的安全性的方法、实现该方法的装置和计算机可读存储介质。按照本发明专利技术一个方面的用于确定应用程序在运行时的安全性的方法包含下列步骤:A)获取操作系统的Task任务栈列表;B)基于所述应用程序在所述Task任务栈列表中的存在状态确定是否执行安全性检测,其中,所述存在状态包括与所述应用程序相关联的任务栈名的存在性或数量;以及C)基于预设的检测算法确定所述应用程序的安全性来执行安全性检测任务。

A method and device for determining the security of an application at runtime

【技术实现步骤摘要】
用于确定应用程序在运行时的安全性的方法及其装置
本专利技术涉及计算机技术,具体涉及用于确定应用程序在运行时的安全性的方法、实现该方法的装置和计算机可读存储介质。
技术介绍
随着智能操作系统的发展,以安卓为代表的智能操作系统因为界面功能丰富、应用开发便捷等原因而在智能设备中广泛使用。由于安卓系统属于通用操作系统,且版本更新频繁,不可避免地存在大量安全漏洞。目前操作系统的防御方案主要针对Activity攻击,其主要通过对安卓生命周期函数的调用进行监控以及软件黑白名单的方式来实现。然而该防御方案无法应对目前出现的一种新的可对安卓应用进行攻击的方式,即任务劫持和任务隐藏,其攻击效果与Activity劫持相似,均可对安卓应用进行钓鱼或勒索攻击等。由于目前尚未被人熟知,因此还未引起应用厂商的重视。然而,该攻击可以造成比Activity劫持更加严重的后果,其可能导致目标应用在恶意软件运行周期内永远无法被启动。同时,经过测试发现,该类攻击方式可以在安卓几乎所有版本以及多个机型上重复出现。因此有必要找到一种能够防御任务攻击的防御机制,能够及时发现任务劫持及其隐藏攻击并且对当前环境的安全性进行检测预警。公开于本专利技术背景部分的信息仅仅旨在增加对本专利技术的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
技术实现思路
本专利技术的一个方面是提供一种用于确定应用程序在运行时的安全性的方法。按照本专利技术的一个方面的一种用于确定应用程序在运行时的安全性的方法,其中,客户端执行下列步骤:A)获取操作系统的Task任务栈列表;B)基于所述应用程序在所述Task任务栈列表中的存在状态确定是否执行安全性检测,其中,所述存在状态包括与所述应用程序相关联的任务栈名的存在性或数量;以及C)基于预设的检测算法确定所述应用程序的安全性来执行安全性检测。可选地,在上述方法中,当在步骤B)中检测到一个或多个名为所述目标应用包名的任务栈名时执行安全性检测。可选地,在上述方法中,当在步骤B)中检测到一个名为所述目标应用包名的任务栈名时,所述安全性检测包括以下步骤:将所述任务栈名与其栈内包含的Activity包名进行比对;以及对与所述任务栈名不一致的异常Activity包名进行提取以进行黑白名单匹配。可选地,其中,所述黑白名单匹配进一步包括:如果白名单中存在所述异常Activity包名信息,则表示当前系统环境安全;如果黑名单中存在所述异常Activity包名信息或者黑白名单中均不存在所述异常Activity包名信息,则表示当前系统环境不安全,存在任务劫持风险。可选地,在上述方法中,当在步骤B)中检测到多个名为所述目标应用包名的任务栈名时,所述安全性检测包括以下步骤:获取所述多个任务栈名所属的ID并比对当前是否存在同名任务却不同ID的情况;以及将所述栈名与其栈内包含的Activity包名进行匹配。可选地,在上述方法中,进一步包括:如果所述不同的ID对应于相同栈名,则推送弹框警示用户当前应用程序存在恶意任务隐藏的风险。可选地,在上述方法中,进一步包括:如果所述栈名与其栈内包含的Activity包名匹配,则表示所述任务栈对应的应用程序为正常应用程序;如果所述栈名与其栈内包含的Activity包名不匹配,则表示所述任务栈对应的应用程序存在任务隐藏攻击的风险。可选地,在上述方法中,针进一步包括以下步骤:D)当基于预设的检测算法确定所述应用程序不安全时,推送弹框警示用户并推送恶意应用程序的相关信息。可选地,在上述方法中,所述操作系统是安卓操作系统,其中,所述客户端配置为开机自启动Service组件以执行所述安全性检测。本专利技术另一方面的目的是提供一种用于确定应用程序在运行时的安全性的方法。按照本专利技术的另一方面的一种用于确定应用程序在运行时的安全性的方法,其中,服务器执行下列步骤:A)从客户端接收操作系统的Task任务栈列表;B)基于所述应用程序在所述Task任务栈列表中的存在状态确定是否执行安全性检测,其中,所述存在状态包括与所述应用程序相关联的任务栈名的存在性或数量;C)通过基于预设的检测算法确定所述应用程序的安全性来执行安全性检测。可选地,在上述方法中,当在步骤B)中检测到一个或多个名为所述目标应用包名的任务栈名时执行安全性检测。可选地,在上述方法中,当在步骤B)中检测到一个名为所述目标应用包名的任务栈名时,所述安全性检测包括以下步骤:将所述任务栈名与其栈内包含的Activity包名进行比对;以及对与所述任务栈名不一致的异常Activity包名进行提取以进行黑白名单匹配。可选地,其中,所述黑白名单匹配进一步包括:如果白名单中存在所述异常Activity包名信息,则表示当前系统环境安全;如果黑名单中存在所述异常Activity包名信息或者黑白名单中均不存在所述异常Activity包名信息,则表示当前系统环境不安全,存在任务劫持风险。可选地,在上述方法中,当在步骤B)中检测到多个名为所述目标应用包名的任务栈名时,所述安全性检测包括以下步骤:获取所述多个任务栈名所属的ID并比对当前是否存在同名任务却不同ID的情况;以及将所述栈名与其栈内包含的Activity包名进行匹配。可选地,在上述方法中,进一步包括:如果所述不同的ID对应于相同栈名,则推送弹框警示用户当前应用程序存在恶意隐藏的风险。可选地,在上述方法中,进一步包括:如果所述栈名与其栈内包含的Activity包名匹配,则表示所述任务栈对应的应用程序为正常应用程序;如果所述栈名与其栈内包含的Activity包名不匹配,则表示所述任务栈对应的应用程序存在任务隐藏攻击的风险。可选地,在上述方法中,针进一步包括以下步骤:D)当基于预设的检测算法确定所述应用程序不安全时,推送弹框警示用户并推送恶意应用程序的相关信息。本专利技术又一方面的目的是提供一种计算机可读存储介质。按照本专利技术又一方面的计算机可读存储介质,其上存储计算机程序,该计算机程序被处理器执行时实现上述的用于确定应用程序在运行时的安全性的方法。本专利技术还有一方面的目的是提供一种用于确定应用程序在运行时的安全性的装置。按照本专利技术还有一方面的用于确定应用程序在运行时的安全性的装置,其包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现上述用于确定应用程序在运行时的安全性的方法。根据本专利技术的用于确定应用程序在运行时的安全性的方法,其能够实现在客户端或远程服务器端,以基于Service后台栈名匹配的方法针对安卓系统应用程序中新出现的任务劫持和任务隐藏的攻击方式进行防御,目标应用程序在无法启动的情况下,依然可以对当前环境的安全性进行检测预警。此外,无需再安装额外的应用程序,因此也不会对其他应用程序造成影响,基于对自身应用程序的检测预警而最大程度地保障了用户体验与安全性的平衡。多种其它特征和优点将从如下详细描述和附图中显而易见。附图说明本专利技术的上述和/或其它方面和优点将通过以下结合附图的各个方面的描述变得更加清晰和更容易理解,附图中相同或相似的单元采用相同的标号表示。附图包括:图1示出了按照本专利技术一实施例的操作系统安全防御方法的流程图。图2示出了按照本专利技术一实施例的任务劫持效果的示意图本文档来自技高网...

【技术保护点】
1.一种用于确定应用程序在运行时的安全性的方法,其特征在于,客户端执行下列步骤:A)获取操作系统的Task任务栈列表;B)基于所述应用程序在所述Task任务栈列表中的存在状态确定是否执行安全性检测,其中,所述存在状态包括与所述应用程序相关联的任务栈名的存在性或数量;以及C)基于预设的检测算法确定所述应用程序的安全性来执行安全性检测。

【技术特征摘要】
1.一种用于确定应用程序在运行时的安全性的方法,其特征在于,客户端执行下列步骤:A)获取操作系统的Task任务栈列表;B)基于所述应用程序在所述Task任务栈列表中的存在状态确定是否执行安全性检测,其中,所述存在状态包括与所述应用程序相关联的任务栈名的存在性或数量;以及C)基于预设的检测算法确定所述应用程序的安全性来执行安全性检测。2.如权利要求1所述的方法,其中,当在步骤B)中检测到一个或多个名为所述目标应用包名的任务栈名时执行安全性检测。3.如权利要求2所述的方法,其中,当在步骤B)中检测到一个名为所述目标应用包名的任务栈名时,所述安全性检测包括以下步骤:将所述任务栈名与其栈内包含的Activity包名进行比对;以及对与所述任务栈名不一致的异常Activity包名进行提取以进行黑白名单匹配。4.如权利要求3所述的方法,其中,所述黑白名单匹配进一步包括:如果白名单中存在所述异常Activity包名信息,则表示当前系统环境安全;如果黑名单中存在所述异常Activity包名信息或者黑白名单中均不存在所述异常Activity包名信息,则表示当前系统环境不安全,存在任务劫持风险。5.如权利要求2所述的方法,其中,当在步骤B)中检测到多个名为所述目标应用包名的任务栈名时,所述安全性检测包括以下步骤:获取所述多个任务栈名所属的ID并比对当前是否存在同名任务却不同ID的情况;以及将所述栈名与其栈内包含的Activity包名进行匹配。6.如权利要求5所述的方法,其中,进一步包括:如果所述不同的ID对应于相同栈名,则推送弹框警示用户当前应用程序存在恶意任务隐藏的风险。7.如权利要求5所述的方法,其中,进一步包括:如果所述栈名与其栈内包含的Activity包名匹配,则表示所述任务栈对应的应用程序为正常应用程序;如果所述栈名与其栈内包含的Activity包名不匹配,则表示所述任务栈对应的应用程序存在任务隐藏攻击的风险。8.如权利要求1所述的方法,其中,进一步包括以下步骤:D)当基于预设的检测算法确定所述应用程序不安全时,推送弹框警示用户并推送恶意应用程序的相关信息。9.如权利要求1至8中任一项所述的方法,所述操作系统是安卓操作系统,其中,所述客户端配置为开机自启动Service组件以执行所述安全性检测。10.一种用于确定应用程序在运行时的安全性的方法,其特征在于,服务器执行下列步骤:A)从客户端接收操作系统的Task任务栈列表;...

【专利技术属性】
技术研发人员:熊璐杨阳陈舟黄自力胡景秀
申请(专利权)人:中国银联股份有限公司
类型:发明
国别省市:上海,31

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

1