一种攻击防御方法、装置、电子设备及存储介质与流程

文档序号:33001684发布日期:2023-01-18 01:25阅读:26来源:国知局
一种攻击防御方法、装置、电子设备及存储介质与流程

1.本技术涉及数据安全领域,尤其涉及一种攻击防御方法、装置、电子设备及存储介质。


背景技术:

2.勒索软件是一种常见的木马,通过骚扰、恐吓甚至采用绑架用户文件等方式,使用户数据资产或计算资源无法正常使用,并以此为条件向用户勒索钱财。这类用户数据资产包括文档、邮件、数据库、源代码、图片、压缩文件等多种文件。
3.如,勒索软件通过调用系统中dll(动态链接库)内的密钥生成密钥,并调用密钥使用函数对用户的文件进行加密,而用户由于不具有解密用的密钥,故而无法正常打开相应的文件。只有用户按照勒索软件的指引交付钱财后,才能获取到相应的密钥对文件进行解密。


技术实现要素:

4.有鉴于此,本技术提供一种攻击防御方法、装置、电子设备及存储介质,至少部分解决现有技术中存在的问题。
5.在本技术的一方面,提供一种攻击防御方法,应用于电子设备,所述方法包括:
6.获取所述电子设备内的每一密钥使用函数;所述密钥使用函数能够被所述电子设备内的程序调用以使用密钥对电子设备内的文件进行加密;
7.在每一密钥使用函数内添加预设代码;所述预设代码在其所在的密钥使用函数被调用时能够被触发执行,以记录所述密钥使用函数所使用的密钥。
8.在本技术的一种示例性实施例中,所述在每一密钥使用函数内添加预设代码,包括:
9.在每一密钥使用函数的函数入口添加预设代码。
10.在本技术的一种示例性实施例中,所述预设代码用于执行以下步骤:
11.获取所述密钥使用函数收到的加密密钥;
12.将所述加密密钥存储于预设存储空间。
13.在本技术的一种示例性实施例中,所述预设代码还用于执行以下步骤:
14.获取所述加密密钥所要加密的目标文件的文件名;
15.将所述文件名存储于预设存储空间。
16.在本技术的一种示例性实施例中,所述方法还包括:
17.若所述预设存储空间接收到所述密钥使用函数返回的加密密钥,建立所述加密密钥对应的记录文档;
18.建立所述记录文档和所述加密密钥的关联关系;所述记录文档用于记录与其具有关联关系的加密密钥,以及使用所述加密密钥进行加密的目标文件的文件名。
19.在本技术的一种示例性实施例中,所述若所述预设存储空间接收到所述密钥使用
函数返回的加密密钥,建立所述加密密钥对应的记录文档,包括:
20.确定所述预设存储空间内是否存在与所述加密密钥对应的记录文档;
21.若存在,则将所述加密密钥对应的文件名添加至所述记录文档内;
22.若不存在,则建立与所述加密密钥对应的记录文档,并将所述加密密钥对应的文件名添加至所述记录文档内。
23.在本技术的一种示例性实施例中,所述方法还包括:
24.若所述预设存储空间内的任一记录文档在预设时间长度内更新次数超过设定阈值,则输出提示信息和/或阻止所述密钥使用函数继续被调用。
25.在本技术的另一方面,提供一种攻击防御装置,应用于电子设备,包括:
26.获取模块,用于获取所述电子设备内的每一密钥使用函数;所述密钥使用函数能够被所述电子设备内的程序调用以使用密钥对电子设备内的文件进行加密;
27.处理模块,用于在每一密钥使用函数内添加预设代码;所述预设代码在其所在的密钥使用函数被调用时能够被触发执行,以记录所述密钥使用函数所使用的密钥。
28.在本技术的另一方面,提供一种电子设备,包括处理器和存储器;
29.所述处理器通过调用所述存储器存储的程序或指令,用于执行上述任一项所述方法的步骤。
30.在本技术的另一方面,提供一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行上述任一项所述方法的步骤。
31.本技术提供的攻击防御方法,会在电子设备内用于密钥使用的密钥使用函数中添加预设代码。使得密钥使用函数被调用时,其内的预设代码也能够被执行,且预设代码被执行时,能够记录所述密钥使用函数所生成的密钥。如此,即使电子设备内的文件被勒索软件加密,也能够通过记录的密钥,对加密后的文件进行解密,而不用向勒索软件支付钱财,从而实现了对勒索软件的防御,避免因勒索软件产生的损失。
附图说明
32.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
33.图1为本实施例提供的一种攻击防御方法的流程图;
34.图2为本实施例提供的一种攻击防御装置的结构框图。
具体实施方式
35.下面结合附图对本技术实施例进行详细描述。
36.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
37.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构
及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
38.请参考图1所示,在本技术的一方面,提供一种攻击防御方法,应用于电子设备。所述电子设备可以为手机、电脑、笔记本电脑、服务器或平板电脑等常见电子设备。
39.所述方法包括以下步骤:
40.s100,获取所述电子设备内的每一密钥使用函数。所述密钥使用函数能够被所述电子设备内的程序调用以使用密钥对电子设备内的文件进行加密。具体的,密钥使用函数用于响应于程序的调用,使用程序输入的密钥对文件进行加密。
41.其中,密钥使用函数可以为操作系统的dll内的用于密钥使用的函数/代码。密钥使用函数的确认可以通过预设的函数名列表进行确认,函数名列表中记录了操作系统中自带的dll中,每一密钥使用函数的函数名,如cryptencrypt函数。如此,通过函数名列表即可从dll内确认出密钥使用函数。本实施例中,密钥使用函数可以为多个,且此时,对每一密钥使用函数均会执行步骤s200。
42.s200,在每一密钥使用函数内添加预设代码。所述预设代码在其所在的密钥使用函数被调用时能够被触发执行,以记录所述密钥使用函数所使用的密钥。
43.预设代码被添加到密钥使用函数内后,能够在密钥使用函数被调用时,随密钥使用函数内原有代码一起被触发执行。且其开始执行时间受其在密钥使用函数中的位置影响。
44.本实施例提供的攻击防御方法,会在电子设备内用于密钥使用的密钥使用函数中添加预设代码。使得密钥使用函数被调用时,其内的预设代码也能够被执行,且预设代码被执行时,能够记录所述密钥使用函数所生成的密钥。如此,即使电子设备内的文件被勒索软件加密,也能够通过记录的密钥,对加密后的文件进行解密,而不用向勒索软件支付钱财,从而实现了对勒索软件的防御,避免因勒索软件产生的损失。
45.同时,相较于直接对密钥使用函数进行监控,在监控到密钥使用函数被调用时,通过其他函数或程序获取相关的密钥的技术方案,本实施例中,不用实时设置用于监控密钥使用函数的线程或进程,避免了常态下对电子设备内资源的长期占用。同时,若对密钥使用函数进行监控,很容易被勒索软件所发现。而本实施例中,由于是对密钥使用函数内的代码进行修改,但勒索软件一般只是通过函数名寻找和调用密钥使用函数,故而很难发现密钥使用函数内部的代码被修改。因此,本实施例提供的攻击防御方法在隐蔽性上也优于对密钥使用函数进行监控的技术方案。
46.在本技术的一种示例性实施例中,所述在每一密钥使用函数内添加预设代码,包括:
47.在每一密钥使用函数的函数入口添加预设代码。
48.所述预设代码用于执行以下步骤:
49.获取所述密钥使用函数收到的加密密钥;
50.将所述加密密钥存储于预设存储空间。
51.其中,函数入口可以为调用密钥使用函数所需要触发的api,或者为接收指令后的位置。在每一密钥使用函数的函数入口添加预设代码,使得能够获取到程序输入的加密密钥,并存储在预设存储空间内,从而实现加密密钥的记录。
52.在本技术的一种示例性实施例中,所述预设代码还用于执行以下步骤:
53.获取所述加密密钥所要加密的目标文件的文件名;
54.将所述文件名存储于预设存储空间。
55.在调用密钥使用函数时,需要向密钥使用函数输入加密密钥和目标文件的文件名和目标文件的存储路径,以使密钥使用函数用加密密钥对目标文件进行加密。本实施例中,预设代码在执行时,还用于获取目标文件的文件名,并存储于预设存储空间内。以使得能够通过预设存储空间内存储的内容,快速确定每一存储的密钥都加密了哪些文件。使得在发现文件被勒索软件加密后,能够快速的确定每一被加密的文件所使用的密钥,加快了解密的效率。
56.在本技术的一种示例性实施例中,所述方法还包括:
57.若所述预设存储空间接收到所述密钥使用函数返回的加密密钥,建立所述加密密钥对应的记录文档;
58.建立所述记录文档和所述加密密钥的关联关系;所述记录文档用于记录与其具有关联关系的加密密钥,以及使用所述加密密钥进行加密的目标文件的文件名。建立关联关系可以为通过关联文档,记录每一密钥和对应的记录文档的对应关系,或直接将记录文档的文件名修改为对应的密钥的文件名(由于文件名后缀不同,记录文档和密钥可以同时存在)。
59.即,预设存储空间每接收到一个新的加密密钥,都会为其建立相应的记录文档,使得用户可以通过查看记录文档,确定存储空间内的每一密钥都对哪些文件进行过加密。
60.在本技术的一种示例性实施例中,所述若所述预设存储空间接收到所述密钥使用函数返回的加密密钥,建立所述加密密钥对应的记录文档,包括:
61.确定所述预设存储空间内是否存在与所述加密密钥对应的记录文档。
62.若存在,则将所述加密密钥对应的文件名添加至所述记录文档内。
63.若不存在,则建立与所述加密密钥对应的记录文档,并将所述加密密钥对应的文件名添加至所述记录文档内。
64.本实施例中,在预设存储空间接收到密钥使用函数发送的加密密钥后,判断预设存储空间内是否已经具有与待存储密钥对应的记录文档,即确定是否之前接收到过相同的密钥,并仅在没有时,才生成对应的记录文档并存储密钥。从而避免了密钥的重复存储以及记录文档的重复建立,节省了存储空间。
65.在本技术的一种示例性实施例中,所述方法还包括:
66.若所述预设存储空间内的任一记录文档在预设时间长度内更新次数超过设定阈值,则输出提示信息和/或阻止所述密钥使用函数继续被调用。预设时间长度为1分钟-10分钟,本实施例中,预设时间长度为2分钟,设定阈值为50次。提示信息用于告知用户当前有概率是勒索软件在对文件进行加密。
67.若所述预设存储空间内的任一记录文档在预设时间长度内更新次数超过设定阈值,即可确定同一个密钥在短时间内被多次使用。而一般情况下,用户极少会自行在短时间
内对大量文件使用同一密钥进行加密,故而出现这种情况一般多为勒索软件在进行文件加密,此时,输出提示信息,可以使得用户及时获知该情况。同时,阻止密钥使用函数继续被调用,可以防止过多的文件被勒索软件加密,降低后续解密处理的处理量。
68.在本技术的一种示例性实施例中,记录文档还用于记录每一目标文件的文件存储路径。
69.本实施例提供的攻击防御方法,还包括以下步骤:
70.当任一记录文档更新后,根据本次更新接到的文件存储路径,确定所述文件存储路径对应的存储空间的所有与目标文件的文件类型相同的文件为第一文件。
71.若在设定时间内,每一第一文件的文件名,均被添加至当前的记录文档内,则输出提示信息和/或阻止所述密钥使用函数继续被调用。
72.一般情况下,用户极少会自行在短时间内对同一存储路径下的所有文件使用同一密钥进行加密,故而出现这种情况一般多为勒索软件在进行文件加密,此时,输出提示信息,可以使得用户即使获知该情况。同时,阻止密钥使用函数继续被调用,可以防止过多的文件被勒索软件加密,降低后续解密处理的处理量。
73.进一步的,所述确定所述文件存储路径对应的存储空间内的所有与目标文件的文件类型相同的文件为第一文件,包括
74.将所述文件存储路径对应的上级存储路径确定为目标路径;
75.将目标路径对应的存储空间内的所有与目标文件的文件类型相同的文件确定为第一文件。
76.其中,上级路径即文件存储路径所对应的存储空间的上一级存储空间的存储路径。例如,若文件存储路径为“c:\windows\boot\misc\pcat”,则目标路径即为“c:\windows\boot\misc”。
77.在一些情况下,一个文件夹中的文件很少时,用户可能会因自身的正常需求,对每一文件都进行加密处理。故而,本实施例为了避免这一情况下的误提示或误阻止调用,在确定第一文件时,是将文件存储路径对应的上级存储路径确定为目标路径,并将目标路径对应的存储空间内的所有与目标文件的文件类型相同的文件确定为第一文件,如此,能够增加确定出的第一文件的数量。而勒索软件通常都是对全磁盘的文件进行分别加密。故而,本实施例中,可以更精准的将勒索软件的行为识别出来,且降低了对用户正常行为的误识别率,提高了整体的准确率。
78.在本技术的一种示例性实施例中,所述方法还包括:
79.在每一密钥生成函数中添加第二预设代码。
80.第二预设代码被执行时,用于记录所述密钥生成函数生成的密钥。
81.相应的,若所述预设存储空间接收到所述密钥生成函数返回的生成密钥,建立所述生成密钥对应的记录文档。
82.建立所述记录文档和所述生成密钥的关联关系。
83.由于密钥生成函数发送到预设存储空间的密钥都是新生成的密钥,故而可以默认其在预设存储空间内没有相同的密钥,故而直接对其存储并建立对应的记录文档。节省了是否具有相同密钥的判断步骤,提高处理效率。
84.请参考图2所示,在本技术的另一方面,提供一种攻击防御装置,应用于电子设备,
包括:
85.获取模块,用于获取所述电子设备内的每一密钥使用函数;所述密钥使用函数能够被所述电子设备内的程序调用以使用密钥对电子设备内的文件进行加密;
86.处理模块,用于在每一密钥使用函数内添加预设代码;所述预设代码在其所在的密钥使用函数被调用时能够被触发执行,以记录所述密钥使用函数所使用的密钥。
87.此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
88.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
89.在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
90.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
91.根据本技术的这种实施方式的电子设备。电子设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
92.电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:上述至少一个处理器、上述至少一个储存器、连接不同系统组件(包括储存器和处理器)的总线。
93.其中,所述储存器存储有程序代码,所述程序代码可以被所述处理器执行,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。
94.储存器可以包括易失性储存器形式的可读介质,例如随机存取储存器(ram)和/或高速缓存储存器,还可以进一步包括只读储存器(rom)。
95.储存器还可以包括具有一组(至少一个)程序模块的程序/实用工具,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
96.总线可以为表示几类总线结构中的一种或多种,包括储存器总线或者储存器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
97.电子设备也可以与一个或多个外部设备(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口进行。并且,电子设备还可以通过网络适配器与一
个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器通过总线与电子设备的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
98.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
99.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本技术的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的步骤。
100.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
101.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
102.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
103.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
104.此外,上述附图仅是根据本技术示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
105.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
106.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1