所属的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。根据本技术的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。其中,储存器存储有程序代码,程序代码可以被处理器执行,使得处理器执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(ram)和/或高速缓存储存器,还可以进一步包括只读储存器(rom)。储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口进行。并且,电子设备还可以通过网络适配器与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本技术实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本技术实施方式的方法。在本技术的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本技术的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。此外,上述附图仅是根据本技术示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
背景技术:
1、在当前的信息安全领域,恶意程序(如窃密木马等)的威胁不断增加,这些恶意程序通过各种复杂的技术手段实现对目标系统的入侵和破坏,给用户和组织带来了巨大的损失。随着攻击技术的不断发展,恶意代码越来越多地利用系统权限进行非法操作,例如加密文件、窃取敏感数据、创建持久化机制等,以逃避检测并维持自身的持久性。传统的权限管理机制在面对这些动态变化的威胁时,显得力不从心,无法有效阻止恶意程序的行为。
2、而某些非恶意程序可能与某些恶意程序对应的部分行为类似,由此导致现有技术中仅根据行为特征进行的恶意代码判断的误判率较高。可能导致某些非恶意程序被迫中止进程。
技术实现思路
1、有鉴于此,本技术提供一种基于行为动态管理程序权限的方法、装置、介质及设备,至少部分解决现有技术中存在的技术问题,本技术采用的技术方案为:
2、根据本技术的一个方面,提供一种基于行为动态管理程序权限的方法,应用于待检测程序,上述待检测程序具有对应的若干行为,每一行为具有对应的行为编号;上述方法包括:
3、每到达预设的检测时间点,获取待检测程序对应的每一行为的历史执行次数,以及在目标时间窗口内执行的行为对应的行为编号,得到对应的行为特征向量;其中,目标时间窗口的结束时间为当前时间;
4、将上述行为特征向量输入至预设的分类模型,得到上述行为特征向量与每一预设恶意行为类型之间的匹配率;其中,每一预设恶意行为类型具有对应的限制行为列表;
5、若最大的匹配率大于对应的第一匹配率阈值且小于对应的第二匹配率阈值,则根据预设的检测方式确定上述待检测程序是否为非恶意程序;
6、若上述待检测程序不为非恶意程序,则根据最大的匹配率对应的预设恶意行为类型的限制行为列表限制上述待检测程序对应的行为。
7、在本技术的一种示例性实施例中,上述行为特征向量内包括行为次数子特征向量和行为编号子特征向量;上述行为次数子特征向量根据每一行为的历史执行次数得到;上述行为编号子特征向量通过以下步骤得到:
8、获取目标时间窗口内执行的每一行为。
9、将目标时间窗口内执行的每一行为对应的行为编号按照执行时间的先后顺序排列,以得到对应的初始行为列表。
10、若上述目标时间窗口内执行的行为的数量大于上述行为编号子特征向量预设的特征维度数量n,则在上述初始行为列表中从后向前截取n个对应的行为编号,以得到上述行为编号特征子向量;其中,上述行为编号特征子向量内的每一行为编号按照执行时间的先后顺序排列。
11、在本技术的一种示例性实施例中,在将目标时间窗口内执行的每一行为对应的行为编号按照执行时间的先后顺序排列,以得到对应的初始行为列表之后,上述方法还包括:
12、若上述目标时间窗口内执行的行为的数量小于上述行为编号子特征向量预设的特征维度数量n,则在初始行为列表后填充预设剩余维度数量的预设特征值,以得到对应的行为编号子特征向量;其中,预设剩余维度数量为预设的特征维度数量与初始行为列表中包含的行为数量的差。
13、在本技术的一种示例性实施例中,上述预设的检测方式包括:
14、获取上述待检测程序对应的数字签名。
15、若上述数字签名与每一预设的数字签名均不同,则确定上述待检测程序不为非恶意程序。
16、在本技术的一种示例性实施例中,在将上述行为特征向量输入至预设的分类模型,得到上述行为特征向量与每一预设恶意行为类型之间的匹配率之后,上述方法还包括:
17、若最大匹配率大于对应的第二匹配率阈值,则将上述待检测程序确定为恶意程序。
18、在本技术的一种示例性实施例中,上述第一预设匹配率阈值根据如下步骤确定:
19、每到达预设的采集时间点,更新一次待检测程序对应的目标设备的用户类型;其中,每一用户类型具有对应的预设阈值调整系数列表;上述预设阈值调整系数列表内包括每一预设恶意行为类型对应的预设阈值调整系数。
20、根据当前时间对应的用户类型的预设阈值调整系数列表和每一预设恶意行为类型对应的第一初始匹配率阈值,得到每一预设恶意行为类型对应的第一匹配率阈值;预设恶意行为类型的数量为m,i=1,2,…,m;第i个预设恶意行为类型对应的第一匹配率阈值gi符合如下条件:
21、gi=zai×ci
22、其中,zai为当前时间对应的用户类型a对应的第i个预设恶意行为类型的预设阈值调整系数;ci为第i个预设恶意行为类型对应的第一初始匹配率阈值。
23、在本技术的一种示例性实施例中,上述每到达预设的采集时间点,更新一次待检测程序对应的目标设备的用户类型,包括:
24、每到达预设的采集时间点,获取待检测程序对应的目标设备的用户特征信息,以得到对应的用户特征向量;其中,上述用户特征向量包括对应的每一预设程序类型对应的程序总数量以及在目标时间段内每一预设程序类型对应的使用次数;上述目标时间段的开始时间为距离当前时间最近的采集时间点,结束时间为当前采集时间点。
25、获取上述用户特征向量与若干预设的历史用户特征聚类簇中每一历史用户特征聚类簇对应的关键特征向量之间的匹配度;其中,每一历史用户特征聚类簇具有对应的用户类型。
26、将与用户特征向量匹配度最高的关键特征向量对应的用户类型确定为当前采集时间点待检测程序对应的目标设备的用户类型。
27、其中,若干预设的历史用户特征聚类簇中每一历史用户特征聚类簇对应的关键特征向量根据如下步骤确定:
28、采集若干设备在若干历史时间段对应的历史用户特征信息,以得到对应的历史用户特征向量列表。
29、将历史用户特征向量列表进行聚类,得到若干历史用户特征聚类簇。
30、根据每一历史用户特征聚类簇内的所有历史用户特征向量,得到每一历史用户特征聚类簇对应的关键特征向量;其中,关键特征向量中的每一特征值为对应的历史用户特征聚类簇内的所有历史用户特征向量中对应的特征值的平均值。
31、根据本技术的一个方面,提供一种基于行为动态管理程序权限的方法装置,应用于待检测程序,上述待检测程序具有对应的若干行为,每一行为具有对应的行为编号;上述装置包括:
32、获取单元,用于每到达预设的检测时间点,获取待检测程序对应的每一行为的历史执行次数,以及在目标时间窗口内执行的行为对应的行为编号,得到对应的行为特征向量;其中,目标时间窗口的结束时间为当前时间;
33、匹配率确定单元,用于将上述行为特征向量输入至预设的分类模型,得到上述行为特征向量与每一预设恶意行为类型之间的匹配率;其中,每一预设恶意行为类型具有对应的限制行为列表;
34、程序确定单元,用于若最大的匹配率大于对应的第一匹配率阈值且小于对应的第二匹配率阈值,则根据预设的检测方式确定上述待检测程序是否为非恶意程序;
35、行为限制单元,用于若上述待检测程序不为非恶意程序,则根据最大的匹配率对应的预设恶意行为类型的限制行为列表限制上述待检测程序对应的行为。
36、根据本技术的一个方面,提供一种非瞬时性计算机可读存储介质,上述存储介质中存储有至少一条指令或至少一段程序,上述至少一条指令或上述至少一段程序由处理器加载并执行以实现上述的基于行为动态管理程序权限的方法。
37、根据本技术的一个方面,提供一种电子设备,包括处理器和上述的非瞬时性计算机可读存储介质。
38、本技术至少具有以下有益效果:
39、本技术的基于行为动态管理程序权限的方法,应用于待检测程序,上述待检测程序具有对应的若干行为,每一行为具有对应的行为编号;首先每到达预设的检测时间点,获取待检测程序对应的每一行为的历史执行次数,以及在目标时间窗口内执行的行为对应的行为编号,得到对应的行为特征向量。这里,行为特征向量表示待检测程序自安装以来的行为整体执行情况以及最近一段时间内待检测程序的行为具体执行情况;之后根据预设的分类模型,得到待检测程序属于每一预设恶意行为类型的匹配率,这里,匹配率越高,则说明该待检测程序可能为对应的预设恶意行为类型的可能性越大,反之则越小,其中,每一预设恶意行为类型具有对应的限制行为列表,限制行为即为具有危害性的关键行为。之后,若预设恶意行为类型对应的最大匹配率大于对应的第一匹配率阈值且小于对应的第二匹配率阈值,则根据预设的检测方式确定上述待检测程序是否为非恶意程序,这里,设置两个阈值,若大于对应的第一匹配率阈值且小于对应的第二匹配率阈值则说明该待检测程序具有某些可疑行为或当前已经执行的行为组合起来较为可疑,但不足以直接将其确定为恶意程序,此时,根据预设的检测方式确定其是否为非恶意程序,若不能确定为非恶意程序,也不能直接确定其为恶意程序,但为了保护系统安全,根据其对应的限制行为列表限制其对应的行为。本技术首先根据自安装以来的行为整体执行情况以及最近一段时间内待检测程序的行为具体执行情况得到待检测程序初步的恶意类型判断,进而在预设恶意行为类型对应的匹配率大于对应的第一匹配率阈值且小于对应的第二匹配率阈值时,未直接将其判定为恶意程序,避免了某些具有类似行为的非恶意程序被误判为恶意程序,在确定其不为非恶意程序后,根据预设得限制行为列表限制上述待检测程序对应的行为。本技术在对应的匹配度阈值未达到第二匹配度阈值时,通过限制部分关键行为的方式来保护系统以及相关文件、程序等的安全,同时避免具有类似行为的非恶意程序被误判为恶意程序,从而导致中断非恶意程序的工作进程。