一种侵入检测方法、装置、终端设备及介质

文档序号:1673128 发布日期:2019-12-31 浏览:31次 >En<

阅读说明:本技术 一种侵入检测方法、装置、终端设备及介质 (Intrusion detection method, device, terminal equipment and medium ) 是由 不公告发明人 于 2019-06-27 设计创作,主要内容包括:本公开公开了一种侵入检测方法、装置、终端设备及介质。该方法包括检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;根据比较结果,确定所述应用程序是否被侵入。实现了应用程序是否被侵入的检测,提升了应用程序的安全性。(The disclosure discloses an intrusion detection method, an intrusion detection device, a terminal device and a medium. The method comprises the steps of obtaining an operation dynamic library set of an application program corresponding to an application program starting instruction after detecting the application program starting instruction, wherein the operation dynamic library set comprises at least one operation dynamic library name, and the operation dynamic library name is the name of a dynamic library under a preset path when the application program is started; comparing the running dynamic library set with an original dynamic library set, wherein the original dynamic library set comprises at least one original dynamic library name, and the original dynamic library name is stored in the application program in advance; and determining whether the application program is invaded according to the comparison result. Whether the application program is invaded or not is detected, and the safety of the application program is improved.)

一种侵入检测方法、装置、终端设备及介质

技术领域

本公开实施例涉及计算机技术领域,尤其涉及一种侵入检测方法、装置、终端设备及介质。

背景技术

随着科技的发展,终端设备得到了广泛的使用,终端设备的操作系统包括封闭式操作系统和开放式操作系统。封闭式操作系统包括iOS系统。封闭式操作系统由于其封闭性及签名机制,使得封闭式操作系统中的应用程序被侵入的风险极低。

然而目前攻击者可以通过向操作系统中的应用程序注入动态库,以获取应用程序的私密数据,进而篡改应用程序数据,导致应用程序不再安全。其中,动态库注入是一种编程机制,通过将一段代码注入到想要侵入的应用程序中去执行,实现一定的功能,完成对应用程序的攻击。故如何对应用程序进行侵入检测,以提升应用程序的安全性是当前亟待解决的技术问题。

发明内容

本公开提供一种侵入检测方法、装置、终端设备及介质,提升了应用程序安全性。

第一方面,本公开实施例提供了一种侵入检测方法,包括:

检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;

比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;

根据比较结果,确定所述应用程序是否被侵入。

第二方面,本公开实施例还提供了一种侵入检测装置,包括:

获取模块,用于检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;

比较模块,用于比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;

确定模块,用于根据比较结果,确定所述应用程序是否被侵入。

第三方面,本公开实施例还提供了一种终端设备,包括:

一个或多个处理装置;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如本公开实施例提供的任一所述的侵入检测方法。

第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现如本公开实施例提供的任一所述的侵入检测方法。

本公开提供了一种侵入检测方法、装置、终端设备及介质,利用该方法检测到应用程序启动指令后,获取应用程序启动指令所对应应用程序的运行动态库集合;然后比较运行动态库集合和原始动态库集合,根据比较结果确定应用程序是否被侵入。即比较应用程序启动时获取的运行动态库集合和预先存储在应用程序中的原始动态库集合,实现了应用程序是否被侵入的检测,提升了应用程序的安全性。

附图说明

结合附图并参考以下

具体实施方式

,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。

图1为本公开实施例一提供的一种侵入检测方法的流程示意图;

图2为本公开实施例二提供的一种侵入检测方法的流程示意图;

图3为本公开实施例三提供的一种侵入检测装置的结构示意图;

图4是本公开实施例四中的终端设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

实施例一

图1为本公开实施例一提供的一种侵入检测方法的流程示意图,该方法可适用于对应用程序进行侵入检测的情况。具体的,该方法可适用于对应用程序是否存在动态库注入形式的侵入进行检测的情况。该方法可以由侵入检测装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上。

如图1所示,本公开实施例一提供的一种侵入检测方法,包括如下步骤:

S110、检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称。

应用程序启动指令可以理解为触发应用程序启动的指令。应用程序启动指令的触发方式不作限定,如可以为在应用程序关闭状态下,用户点击应用程序图标生成。本实施例在检测到应用程序启动指令后,对应用程序进行侵入检测,以便及时检测到应用程序的安全风险。运行动态库集合可以理解为应用程序启动时预设路径下数据的集合。

检测到应用程序启动指令后,本步骤可以确定该应用程序启动指令对应的应用程序。应用程序启动指令可以与应用程序存在一一对应关系。本步骤在进行侵入检测时,可以获取应用程序的运行动态库集合,该运行动态库集合中包括至少一个运行动态库名称,此处不限定运行动态库集合中所包括的其余内容。可选的,运行动态库集合中可以仅包括至少一个运行动态库名称。

运行动态库名称可以理解为应用程序启动时预设路径下动态库的名称。运行动态库集合所包括运行动态库名称的个数,根据应用程序启动时预设路径下动态库的名称的个数确定,如运行动态库集合所包括运行动态库名称的个数等于应用程序启动时预设路径下动态库的名称的个数。即本步骤在应用程序启动时,将预设路径下动态库的名称的集合作为运行动态库集合。

此处不对预设路径进行限定,不同的操作系统预设路径可以不同,如iOS操作系统中预设路径可以为应用程序的安装路径。如果本实施例应用至iOS操作系统,则本步骤在检测到应用程序启动指令后,从应用程序启动指令对应应用程序的安装路径下,获取全部动态库名称,得到运行动态库集合。具体的,本步骤可以通过Mack-O库获取运行动态库集合。其中Mack-O库是苹果系统提供的动态链接器Dyld相关的库。

S120、比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中。

原始动态库集合可以理解为预先存储在应用程序中的动态库集合。该原始动态库集合用于表示应用程序处于安全状态时所包括动态库名称。

可选的,所述原始动态库集合在所述应用程序开发阶段确定。所述原始动态库集合在应用程序开发阶段通过调试的方式确定。确定原始动态库集合时,可以统计应用程序包目录路径A.app/Frameworks下所有动态库名称为集合B。其中A是应用名,集合B是应用程序本身动态库名称组成的列表,即原始动态库集合。

原始动态库名称可以在应用程序开发时,预先存储在应用程序中。如在应用程序发版前,由开发人员或通过自动化手段统计应用程序所包括的原始动态库名称,得到原始动态库集合。自动化手段可以为遍历应用程序的指定路径,统计指定路径下所有动态库名称,得到原始动态库集合。不同的操作系统可以对应有不同的指定路径。原始动态库集合所包括原始动态库名称的个数可以与应用程序发版前指定路径下所包括动态库名称个数相同。

获取运行动态库集合后,本步骤可以比较运行动态库集合和原始动态库集合。具体的,运行动态库集合与原始动态库集合的比较手段可以基于各集合中所包括的数据确定,此处不作限定。当运行动态库集合中仅包括至少一个运行动态库名称,原始动态库集合仅包括至少一个原始动态库名称时,本步骤可以通过将运行动态库集合所包括的所有运行动态库名称和原始动态库集合所包括的所有原始动态库名称进行比较,确定原始动态库集合是否存在预设操作。预设操作包括以下至少一个:动态库名称的增加、删除和修改。

S130、根据比较结果,确定所述应用程序是否被侵入。

如果比较运行动态库集合和原始动态库集合后,确定应用程序出现预设操作,则可以认为应用程序被侵入。如当运行动态库集合中包括原始动态库集合中不包括的新增动态库名称,则可以认为该应用程序被侵入。如,可以认为应用程序被攻击者注入了动态库。

本公开实施例一提供的一种侵入检测方法,利用上述方法,能够检测到应用程序启动指令后,获取应用程序启动指令所对应应用程序的运行动态库集合;然后比较运行动态库集合和原始动态库集合,根据比较结果确定应用程序是否被侵入。即比较应用程序启动时获取的运行动态库集合和预先存储在应用程序中的原始动态库集合,实现了应用程序是否被侵入的检测,提升了应用程序的安全性。

进一步地,本公开的侵入检测方法,还包括:

如果所述应用程序被侵入,则向服务器上报侵入信息,所述侵入信息包括所述应用程序的标识信息。

如果应用程序被侵入,则客户端可以向服务器上报侵入事件,以通知服务器该应用程序的状态。具体的,客户端向服务器上报侵入信息。侵入信息可以理解为通知服务器应用程序被侵入的信息。侵入信息可以包括应用程序的标识信息,以使服务器确定被侵入的应用程序。标识信息可以唯一标识应用程序。

进一步地,本公开的侵入检测方法,还包括:

在所述应用程序被侵入时,执行以下至少一个操作:

显示提示信息,所述提示信息用于通知用户所述应用程序被侵入、强制所述用户退出所述应用程序和响应服务器的禁止指令,其中所述禁止指令用于禁止所述用户登录所述应用程序和/或禁止所述用户访问所述应用程序的数据。

在应用程序被侵入后,客户端可以采取如下措施阻止应用程序被侵入:显示提示信息、强制用户退出应用程序和响应服务器的禁止指令。

具体的,应用程序被侵入后,可以显示提示信息通知用户该应用程序被侵入,提示信息所包括的具体内容不作限定,只要能够通知用户即可;还可以强制用户退出应用程序,强制用户退出应用程序的具体手段不作限定,本领域技术人员可以根据实际情况确定,如可以直接结束应用程序的进程,以使用户退出应用程序;还可以接收并响应服务器下发的禁止指令,客户端响应服务器下发的禁止指令后,可以禁止用户登录应用程序和/或禁止用户访问应用程序数据。禁止的手段不作限定,如可以对相应进程的运行状态进行控制实现,即关闭相应进程,实现禁止用户登录应用程序和/或禁止用户访问应用程序的数据。

实施例二

图2为本公开实施例二提供的一种侵入检测方法的流程示意图,本实施例二在实施例一的基础上进行优化。在本实施例中,将比较所述运行动态库集合和原始动态库集合,进一步具体化为:遍历所述运行动态库集合所包括的运行动态库名称和所述原始动态库集合所包括的原始动态库名称,确定所述运行动态库集合中是否存在新增动态库名称,所述新增动态库名称不包含在所述原始动态库集合中。

进一步地,本实施例还将根据比较结果,确定所述应用程序是否被侵入,具体化为:如果所述运行动态库集合中存在新增动态库名称,则确定所述应用程序被侵入。

在上述优化的基础上,该方法还优化包括:如果所述应用程序被侵入,则关闭所述新增动态库名称对应的进程。本实施例尚未详尽的内容请参考实施例一。

如图2所示,本公开实施例二提供的一种侵入检测方法,包括如下步骤:

S210、检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合。

所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称。

S220、遍历所述运行动态库集合所包括的运行动态库名称和所述原始动态库集合所包括的原始动态库名称,确定所述运行动态库集合中是否存在新增动态库名称。

在比较运行动态库集合和原始动态库集合时,可以判断运行动态库集合中是否包括原始动态库集合不包括的新增动态库名称。所述新增动态库名称不包含在所述原始动态库集合中。

具体的,本步骤可以遍历运行动态库集合所包括的全部运行动态库名称,针对每一运行动态库名称,确定在原始动态库集合中是否存在与该运行动态库名称相同的原始动态库名称。如果在原始动态库集合中不存在与该运行动态库名称相同的原始动态库名称,则该运行动态库名称为新增动态库名称。

在比较运行动态库集合和原始动态库集合时,可以在检测到新增动态库名称后就停止继续比较,即确定应用程序被侵入;也可以检测出运行动态库集合所包括的全部新增动态库名称,以基于检测出的各新增动态库名称确定防止应用程序被侵入的手段。如关闭应用程序中全部新增动态库名称对应的进程,以防止攻击者对应用程序的侵入。

S230、判断运行动态库集合中是否存在新增动态库名称,若是,则执行S240;若否,则执行S250。

如果运行动态库集合中存在新增动态库名称,则可以认为应用程序中出现了多余的动态库,可以执行S240;如果运行动态库集合中不存在新增动态库名称,则可以认为应用程序中当前没有多余的动态库,可以执行S250。

S240、确定所述应用程序被侵入,执行S260。

如果运行动态库集合中存在新增动态库名称,可以认为应用程序被侵入。应用程序当前存在安全风险,即可以对应用程序进行防侵入处理,即执行S260。

S250、确定所述应用程序未被侵入,结束操作。

如果运行动态库集合中不存在新增动态库名称,则可以认为应用程序未被侵入。本实施例可以继续预设路径下的动态库名称与原始动态库集合比较,确定应用程序是否被侵入;也可以下次启动应用程序时,对应用程序进行侵入检测。

S260、关闭所述新增动态库名称对应的进程。

在运行动态库集合中存在新增动态库名称时,为了防止应用程序被侵入,本步骤可以关闭所述新增动态库名称对应的进程。此处不对新增动态库名称的数量进行限定。如果检测出运行动态库中包括多个新增动态库名称,则关闭所有新增动态库名称对应的进程。

以下对本实施例进行示例性描述:本公开提供的侵入检测方法可以认为是一种基于Mach-O的检测iOS应用是否被Hack(侵入)的方法。具体的,包括以下步骤:1、首先在应用程序的开发终端中统计当前应用包目录路径A.app/Frameworks下所有动态库名称为集合B。其中,A是应用名,集合B是应用本身动态库名称组成的列表。

2、其次通过苹果提供的Mack-O库在应用启动时检测实际应用启动时路径/X/A.app/Frameworks下的所有动态库名称为集合C。

这里Mach-O是苹果系统提供的动态链接器Dyld相关的库,X为应用安装后的路径,集合C为应用运行时包含动态库名称组成的列表。

3、最后检测集合C中是否含有不在集合B中的动态库名称,从而可以判断应用是否被Hack。

如果集合C中包含集合B中不存在的动态库名称,应用被Hack了,否则应用没有被Hack。

此外,在进行侵入检测后,还可以包括基于Mach-O的防iOS应用被Hack的方案,在基于Mach-O确定应用程序被Hack后,上报应用被Hack的侵入信息到服务端,即服务器;服务端处理,可以禁止当前用户登录和访问数据,也可以应用直接强制用户退出登录等。或者,找到被Hack的动态库路径:/X/A.app/Frameworks/XXX.framework/XXX,在应用程序启动后(此时动态库已经加载),主动close关掉已经加载的非当前应用程序的动态库,达到防Hack的目的。

本公开实施例二提供的一种侵入检测方法,具体化了比较运行动态库集合和原始动态库集合的操作和确定是否侵入的操作,还优化包括了应用程序被侵入后的处理操作。利用该方法,能够通过确定运行动态库集合中是否存在新增动态库名称,确定应用程序是否被侵入,并在应用程序被侵入后,关闭新增动态库名称对应的进行,以达到防止应用程序被侵入的效果,提升了应用程序的安全性。

实施例三

图3为本公开实施例三提供的一种侵入检测装置的结构示意图,该装置可适用于对应用程序进行侵入检测的情况。具体的,该装置可适用于对应用程序是否存在动态库注入形式的侵入进行检测的情况。其中该装置可由软件和/或硬件实现,并一般集成在终端设备上。

如图3所示,该装置包括:获取模块31、比较模块32和确定模块33;

其中,获取模块31,用于检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;

比较模块32,用于比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;

确定模块33,用于根据比较结果,确定所述应用程序是否被侵入。

在本实施例中,该装置首先通过获取模块31检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;然后通过比较模块32比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;最后通过确定模块33根据比较结果,确定所述应用程序是否被侵入。

本实施例提供了一种侵入检测装置,能够检测到应用程序启动指令后,获取应用程序启动指令所对应应用程序的运行动态库集合;然后比较运行动态库集合和原始动态库集合,根据比较结果确定应用程序是否被侵入。即比较应用程序启动时获取的运行动态库集合和预先存储在应用程序中的原始动态库集合,实现了应用程序是否被侵入的检测,提升了应用程序的安全性。

进一步地,比较模块32,具体用于:

遍历所述运行动态库集合所包括的运行动态库名称和所述原始动态库集合所包括的原始动态库名称,确定所述运行动态库集合中是否存在新增动态库名称,所述新增动态库名称不包含在所述原始动态库集合中。

进一步地,确定模块33,具体用于:

如果所述运行动态库集合中存在新增动态库名称,则确定所述应用程序被侵入。

进一步地,该装置,还包括:

关闭模块,用于如果所述应用程序被侵入,则关闭所述新增动态库名称对应的进程。

进一步地,所述原始动态库集合在所述应用程序开发阶段确定。

进一步地,该装置,还包括:

上报模块,用于如果所述应用程序被侵入,则向服务器上报侵入信息,所述侵入信息包括所述应用程序的标识信息。

进一步地,该装置,还包括:

侵入处理模块,用于在所述应用程序被侵入时,执行以下至少一个操作:

显示提示信息,所述提示信息用于通知用户所述应用程序被侵入、强制所述用户退出所述应用程序和响应服务器的禁止指令,其中所述禁止指令用于禁止所述用户登录所述应用程序和/或禁止所述用户访问所述应用程序的数据。

上述侵入检测装置可执行本公开任意实施例所提供的侵入检测方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4是本公开实施例四中的终端设备的结构示意图,参考图4,其示出了适于用来实现本公开实施例的终端设备的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的终端设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图4所示,终端设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM403中,还存储有终端设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。

通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许终端设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的终端设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM 402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。

上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端设备执行时,使得该终端设备:检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;

比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;

根据比较结果,确定所述应用程序是否被侵入。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

根据本公开的一个或多个实施例,示例1提供了一种侵入检测方法,包括:

检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;

比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;

根据比较结果,确定所述应用程序是否被侵入。

根据本公开的一个或多个实施例,示例2根据示例1所述的方法,比较所述运行动态库集合和原始动态库集合,包括:

遍历所述运行动态库集合所包括的运行动态库名称和所述原始动态库集合所包括的原始动态库名称,确定所述运行动态库集合中是否存在新增动态库名称,所述新增动态库名称不包含在所述原始动态库集合中。

根据本公开的一个或多个实施例,示例3根据示例2所述的方法,根据比较结果,确定所述应用程序是否被侵入,包括:

如果所述运行动态库集合中存在新增动态库名称,则确定所述应用程序被侵入。

根据本公开的一个或多个实施例,示例4根据示例3所述的方法,还包括:

如果所述应用程序被侵入,则关闭所述新增动态库名称对应的进程。

根据本公开的一个或多个实施例,示例5根据示例1所述的方法,所述原始动态库集合在所述应用程序开发阶段确定。

根据本公开的一个或多个实施例,示例6根据示例1所述的方法,还包括:如果所述应用程序被侵入,则向服务器上报侵入信息,所述侵入信息包括所述应用程序的标识信息。

根据本公开的一个或多个实施例,示例7根据示例1所述的方法,还包括:

在所述应用程序被侵入时,执行以下至少一个操作:

显示提示信息,所述提示信息用于通知用户所述应用程序被侵入、强制所述用户退出所述应用程序和响应服务器的禁止指令,其中所述禁止指令用于禁止所述用户登录所述应用程序和/或禁止所述用户访问所述应用程序的数据。

根据本公开的一个或多个实施例,示例8提供了一种侵入检测装置,包括:

获取模块,用于检测到应用程序启动指令后,获取所述应用程序启动指令所对应应用程序的运行动态库集合,所述运行动态库集合包括至少一个运行动态库名称,所述运行动态库名称为所述应用程序启动时预设路径下动态库的名称;

比较模块,用于比较所述运行动态库集合和原始动态库集合,所述原始动态库集合包括至少一个原始动态库名称,所述原始动态库名称预先存储在所述应用程序中;

确定模块,用于根据比较结果,确定所述应用程序是否被侵入。

根据本公开的一个或多个实施例,示例9提供了一种终端设备,包括:

一个或多个处理装置;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如示例1-7中任一所述的侵入检测方法。

根据本公开的一个或多个实施例,示例10提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现如示例1-7中任一所述的侵入检测方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于RASP的智能合约虚拟机漏洞检测系统及方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类