掌桥专利:专业的专利平台
掌桥专利
首页

一种缓冲区溢出攻击的检测方法及电子设备

文献发布时间:2023-06-19 10:27:30


一种缓冲区溢出攻击的检测方法及电子设备

技术领域

本申请涉及信息处理领域,特别涉及一种缓冲区溢出攻击的检测方法。

背景技术

在计算机等智能设备的信息处理领域中,针对缓冲区实施的缓冲区溢出攻击是利用缓冲区溢出漏洞所进行的攻击行动。缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统关机、重新启动等后果。对于该缓冲区溢出攻击的检测,目前是基于对与缓冲区相关程序代码的分析来判断是否发生了攻击行为,但是该手段并不能准确的检测出攻击行为,从而不能完全消除缓冲区溢出的漏洞。

发明内容

本申请实施例的目的在于提供一种缓冲区溢出攻击的检测方法,该方法能够通过对原始的写入缓冲区中的目标数据进行直接分析,从而基于目标数据的多个特征信息来精确的获得判断结果,以确定缓冲区是否受到了缓冲区溢出攻击。

本申请的实施例采用了如下技术方案:一种缓冲区溢出攻击的检测方法,其特征在于,包括:

获取写入缓冲区的目标数据;

确定所述目标数据是否符合边界条件,其中所述边界条件包括针对数据字段长度的限定信息;

在所述目标数据符合所述边界条件的情况下,获取所述目标数据中的多个特征信息,其中,所述特征信息具有各自所表征的目标数据的特征;

基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为。

作为可选,所述特征信息至少包括以下至少一个:目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息。

作为可选,所述的基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为,包括:

将目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息作为所述第一模型的输入;

基于所述第一模型中经过训练后确定的核函数,分别对所述目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息进行分析,以确定所述缓冲区是否存在被攻击的行为。

作为可选,所述方法还包括:

通过第二模型确定所述目标数据的字符串的混乱度信息

作为可选,在获取写入缓冲区的目标数据后,所述方法还包括:

对所述目标数据进行预处理操作,以使所述目标数据的数据结构和/或数据类型符合预定处理要求,其中,所述预处理操作包括去除所述目标数据中的杂乱数据,以及将所述目标数据中的数据格式转换为特定格式。

作为可选,所述的确定所述目标数据是否符合边界条件,包括:

获取所述目标数据中的数据字段长度;

在所述数据字段长度未超过预设边界长度的情况下,确定所述目标数据符合所述边界条件。

作为可选,在所述目标数据符合所述边界条件的情况下,所述方法还包括:

对所述目标数据中的特征信息分别进行向量化处理,以使所述特征信息符合第一模型的输入要求。

作为可选,所述方法还包括对所述第一模型进行训练,其中包括:

获取第一训练子数据,以及具有缓冲区溢出攻击行为的第二训练子数据,形成相应的训练数据;

分别对所述训练数据中的特征信息进行标签化处理;

基于进行了标签化处理后的所述特征信息,利用控制变量的方式确定所述第一模型中的核函数;

基于所述核函数完成对所述第一模型的训练。

本申请实施例还提供了一种电子设备,包括:

获取模块,其配置为:获取写入缓冲区的目标数据;

分析模块,其配置为:确定所述目标数据是否符合边界条件,其中所述边界条件包括针对数据字段长度的限定信息;

处理模块,其配置为:在所述目标数据符合所述边界条件的情况下,获取所述目标数据中的多个特征信息,其中,所述特征信息具有各自所表征的目标数据的特征;

基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为。

本申请实施例还提供了一种电子设备,包括处理器和存储器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:

获取写入缓冲区的目标数据;

确定所述目标数据是否符合边界条件,其中所述边界条件包括针对数据字段长度的限定信息;

在所述目标数据符合所述边界条件的情况下,获取所述目标数据中的多个特征信息,其中,所述特征信息具有各自所表征的目标数据的特征;

基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为。

本申请实施例的有益效果在于:该缓冲区溢出攻击的检测方法,能够利用边界条件对目标数据进行初始分析判断,而且还能够再基于机器学习模型,对原始的写入缓冲区中的目标数据进行直接分析,从而基于目标数据的多个特征信息来精确的获得判断结果,以确定缓冲区是否受到了缓冲区溢出攻击。

附图说明

图1为本申请实施例的缓冲区溢出攻击的检测方法的流程图;

图2为本申请实施例的步骤S4的一个具体实施例的流程图;

图3为本申请实施例的步骤S2的一个具体实施例的流程图;

图4为本申请实施例的缓冲区溢出攻击的检测方法的一个具体实施例流程图;

图5为本申请实施例的电子设备的结构框图。

具体实施方式

此处参考附图描述本申请的各种方案以及特征。

应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。

包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。

通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。

还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。

当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。

此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。

本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。

本申请实施例的一种缓冲区溢出攻击的检测方法,该方法能够对电子设备的缓冲区是否出现缓冲区溢出攻击的行为进行准确的判断。该方法通过直接对写入缓冲区的目标数据进行分析,通过使用边界条件对目标数据的内容进行第一次的分析和判断,而且还针对符合边界条件的目标数据进行进一步分析和判断,具体是通过经过训练的第一模型来对目标数据中的多个特征信息进行综合分析,根据多个特征信息的具体内容来确定缓冲区是否存在被攻击的行为。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。

如图1所示并结合图4,该缓冲区溢出攻击的检测方法包括如下步骤:

S1,获取写入缓冲区的目标数据。

该缓冲区可以是电子设备的缓冲区,缓冲区是程序在执行时用于存放数据的内存单元,其中存放的数据可能包括:运行程序指令的操作数或其他程序的入口地址。程序中若存在缓冲区溢出漏洞,缓冲区数据溢出可能会导致内存单元被修改;程序不能够正常执行、出错或终止;程序的执行流程改变。本实施例中可以获取写入缓冲区的目标数据,具体的获取方式可以直接读取缓冲区的数据,也可以在目标数据写入缓冲区的过程中同时获取。

S2,确定所述目标数据是否符合边界条件,其中所述边界条件包括针对数据字段长度的限定信息。

边界条件可以是对目标数据进行第一次的筛选,该边界条件可以根据经验信息或者历史数据来针对目标数据设置较宽的条件,使得至少大部分的未受到攻击的目标数据能够符合该边界条件,当然如果受到了缓冲区溢出攻击则通常情况下该目标数据的特征会较为明显,从而并不符合边界条件。如果确定不符合边界条件则可以生成报警信息,从而向用户发出警报,以便用户及时处理该攻击事件。本实施例中,边界条件包括针对数据字段长度的限定信息。该限定信息可以是对目标数据中的数据字段长度的具体限定,如果数据字段长度超过了第一预设长度值,则认为遭受攻击的特征明显,可以直接确定电子设备遭受缓冲区溢出攻击,无需其他判断步骤;反之,如果数据字段长度没有超过第一预设长度值,则需要对目标数据进行随后的分析和判断。

S3,在所述目标数据符合所述边界条件的情况下,获取所述目标数据中的多个特征信息,其中,所述特征信息具有各自所表征的目标数据的特征。

每个特征信息具有各自所表征的目标数据的特征,其所具有的内容并不相同,可以是目标数据的各个特征的体现,在目标数据符合边界条件的情况下,可以获取各个特征信息,本实施例中,具体获取那些目标数据的特征可以根据使用场景具体确定,例如可以在目标数据的所有的特征中选定若干个特征,作为特征信息,如将目标数据中具有代表性的特征作为特征信息。当然也可以基于所有的特征均生成相对应的特征信息。

S4,基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为。

由于特征信息能够表征目标数据的具体状态,因此基于特征信息可以分析电子设备的缓冲区是否遭到了缓冲区溢出攻击。本实施例中可以利用经过训练的第一模型来对特征信息进行分析,该第一模型为经过训练的智能模型,可以为支持向量机算法的模型(Support Vector Machine,SVM算法模型),该支持向量机算法的模型可以在缓冲区数据写入时,判断该写入的目标数据是否存在缓冲区溢出攻击的行为。此外,第一模型可以预先经过训练能够适用于实际的使用情况,包括适用于对目标数据的特征信息的分析。当然该第一模型的参数可以根据使用场景来做出相应的调整,如对于不同类型的电子设备,和/或不同时间段的检测操作,第一模型的参数可以做出与之相适应的调整。

该缓冲区溢出攻击的检测方法,能够利用边界条件对目标数据进行初始分析判断,而且还能够再基于机器学习模型,对原始的写入缓冲区中的目标数据进行直接分析,从而基于目标数据的多个特征信息来精确的获得判断结果,以确定缓冲区是否受到了缓冲区溢出攻击。

在本申请的一个实施例中,所述特征信息至少包括以下至少一个:目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息。

具体来说,目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息,均为目标数据的主要特征的表现,通过主要特征可以在不会消耗过多系统资源的情况下也能够准确的分析出电子设备的缓冲区是否出现了缓冲区溢出攻击的行为。

目标数据的数据字段长度信息表示了数据字段的长度,如果长度超过第二预设长度值,则表明目标数据可能出现缓冲区溢出攻击,该第二预设长度值小于第一预设长度值。目标数据的数字频率信息表示了数字字符出现的频率;目标数据的字母频率信息,表示了字母字符出现的频率,如果数字频率和字母频率不稳定,则表明目标数据可能出现缓冲区溢出攻击,相反如果数字频率和字母频率稳定,如“\x50\xfb\x45”,则表明目标数据可能不会出现缓冲区溢出攻击,或者出现缓冲区溢出攻击的概率较低。目标数据的熵值可以表达一个字段的混乱程度,熵值越小则表明该字段分布均匀,出现缓冲区溢出攻击的可能性较小。目标数据的字符串的混乱度信息表示了目标数据中的字符串的混乱程度,如果混乱程度较高则出现缓冲区溢出攻击的可能性较大,反之混乱程度较低则出现缓冲区溢出攻击的可能性较小,此外,目标数据的字符串的混乱度信息可以通过第二模型的处理来得到。

在本申请的一个实施例中,所述的基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为,如图2所示,包括:

S41,将目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息作为所述第一模型的输入;

S42,基于所述第一模型中经过训练后确定的核函数,分别对所述目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息进行分析,以确定所述缓冲区是否存在被攻击的行为。

具体的,第一模型为智能模型,其具有机器学习和训练能力,将目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息作为所述第一模型的输入,使得第一模型可以基于上述多个信息综合对目标数据的状态做出判断。第一模型中具有核函数,核函数支持向量机,不用计算复杂的非线性变换,直接得到非线性变换的内积,这将大大简化计算过程。基于核函数对上述多个信息进行分析,从而可以精确的得知缓冲区是否存在被攻击的行为。

在本申请的一个实施例中,第一模型可以关联或包括第二模型,所述方法还包括:通过第二模型确定所述目标数据的字符串的混乱度信息。该第二模型可以使用隐马尔可夫模型。

进一步结合一个具体实施例说明,对于目标数据的熵值可以通过以下技术公式得到。

熵值计算公式:

参数说明,其中:

X:表示字段。

x:表示为X(字段)中的某一个字符串。

p(x):表示这个字符串x出现的概率。

对于目标数据的字符串的混乱度信息,可以通过隐马尔科夫(Hidden MarkovModel,HMM)相关计算公式得到,具体的利用以下相关公式:

根据隐马尔可夫模型,计算其观测序列的联合概率分布,计算公式:

参数说明:

x

x

y

计算经过2-gram处理后计算2-gram值的和,计算公式:

计算转移概率,计算公式:

参数说明:

x

基于隐马尔可夫模型的相关技术公式,可以得到目标数据的字符串的混乱度信息。此外,得到的隐马尔可夫转移概率值越小则表明该字段存在缓冲区溢出攻击行为的可能性越高,反之越低。

在本申请的一个实施例中,在获取写入缓冲区的目标数据后,所述方法还包括:

对所述目标数据进行预处理操作,以使所述目标数据的数据结构和/或数据类型符合预定处理要求,其中,所述预处理操作包括去除所述目标数据中的杂乱数据,以及将所述目标数据中的数据格式转换为特定格式。

具体的,预处理操作可以对目标数据进行解析,并进行标准化的整理,去除目标数据中的杂乱数据,并将目标数据中的数据格式转换为符合边界条件判断的特定格式。还可以对目标数据中的具体内容进行分类,进而整理出相应的特征信息,以便进行随后的分析判断。

在本申请的一个实施例中,所述的确定所述目标数据是否符合边界条件,如图3所示并结合图4,包括:

S21,获取所述目标数据中的数据字段长度;

S22,在所述数据字段长度未超过预设边界长度的情况下,确定所述目标数据符合所述边界条件。

具体的,如果数据字段长度未超过预设边界长度,则说明可能溢出区没有受到缓冲区溢出攻击,但是如果数据字段长度超过预设边界长度,则意味着极有可能出现溢出区没有受到缓冲区溢出攻击,从而可以不使用第一模型做随后的分析和判断,而是直接得到被攻击的结果。进而发出报警信息。

在本申请的一个实施例中,在所述目标数据符合所述边界条件的情况下,所述方法还包括:

对所述目标数据中的特征信息分别进行向量化处理,以使所述特征信息符合第一模型的输入要求。

具体的,对特征信息进行向量化处理,可以把数学公式直接转换为相应的程序代码,这样不但直观、方便阅读,更使复杂的数学公式实现变得简单,提高算法速度。还使得向量化处理后的特征信息符合第一模型的使用要求,也符合被调用的第二模型的使用要求。

在本申请的一个实施例中,所述方法还包括对所述第一模型进行训练,其中包括:

获取第一训练子数据,以及具有缓冲区溢出攻击行为的第二训练子数据,形成相应的训练数据;

分别对所述训练数据中的特征信息进行标签化处理;

基于进行了标签化处理后的所述特征信息,利用控制变量的方式确定所述第一模型中的核函数;

基于所述核函数完成对所述第一模型的训练。

具体来说,训练时可以收集正常缓冲区写入数据作为第一训练子数据,并获取具有缓冲区溢出攻击行为数据作为第二训练子数据。将第一训练子数据和第二训练子数据组合,形成训练数据。

对目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及隐马尔可夫条件转移值(表征目标数据的字符串的混乱度信息)进行计算,并且对上述信息进行标签化。

采用控制变量法,保证特征信息和其他基本参数不变的同时,测试不同核函数的效果并最终确定第一模型的核函数。

训练完成后保存第一模型,以便随后调用该第一模型。

本申请实施例还提供了一种电子设备,如图5所示,包括:

获取模块,其配置为:获取写入缓冲区的目标数据。

该缓冲区可以是电子设备的缓冲区,缓冲区是程序在执行时用于存放数据的内存单元,其中存放的数据可能包括:运行程序指令的操作数或其他程序的入口地址。程序中若存在缓冲区溢出漏洞,缓冲区数据溢出可能会导致内存单元被修改;程序不能够正常执行、出错或终止;程序的执行流程改变。本实施例中获取模块可以获取写入缓冲区的目标数据,具体的获取方式可以直接读取缓冲区的数据,也可以在目标数据写入缓冲区的过程中同时获取。

分析模块,其配置为:确定所述目标数据是否符合边界条件,其中所述边界条件包括针对数据字段长度的限定信息。

边界条件可以是对目标数据进行第一次的筛选,该边界条件可以根据经验信息或者历史数据来针对目标数据设置较宽的条件,使得至少大部分的未受到攻击的目标数据能够符合该边界条件,当然如果受到了缓冲区溢出攻击则通常情况下该目标数据的特征会较为明显,从而并不符合边界条件。如果分析模块确定不符合边界条件则可以生成报警信息,从而向用户发出警报,以便用户及时处理该攻击事件。本实施例中,边界条件包括针对数据字段长度的限定信息。该限定信息可以是对目标数据中的数据字段长度的具体限定,如果数据字段长度超过了第一预设长度值,则认为遭受攻击的特征明显,分析模块可以直接确定电子设备遭受缓冲区溢出攻击,无需其他判断步骤;反之,如果数据字段长度没有超过第一预设长度值,则需要对目标数据进行随后的分析和判断。

处理模块,其配置为:在所述目标数据符合所述边界条件的情况下,获取所述目标数据中的多个特征信息,其中,所述特征信息具有各自所表征的目标数据的特征;

基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为。

具体的,每个特征信息具有各自所表征的目标数据的特征,其所具有的内容并不相同,可以是目标数据的各个特征的体现,在目标数据符合边界条件的情况下,处理模块可以获取各个特征信息,本实施例中,处理模块具体获取那些目标数据的特征可以根据使用场景具体确定,例如可以在目标数据的所有的特征中选定若干个特征,作为特征信息,如将目标数据中具有代表性的特征作为特征信息。当然也可以基于所有的特征均生成相对应的特征信息。

由于特征信息能够表征目标数据的具体状态,因此基于特征信息可以分析电子设备的缓冲区是否遭到了缓冲区溢出攻击。本实施例中处理模块可以利用经过训练的第一模型来对特征信息进行分析,该第一模型为经过训练的智能模型,可以为支持向量机算法的模型(Support Vector Machine,SVM算法模型),该支持向量机算法的模型可以在缓冲区数据写入时,判断该写入的目标数据是否存在缓冲区溢出攻击的行为。此外,第一模型可以预先经过训练能够适用于实际的使用情况,包括适用于对目标数据的特征信息的分析。当然该第一模型的参数可以根据使用场景来做出相应的调整,如对于不同类型的电子设备,和/或不同时间段的检测操作,第一模型的参数可以做出与之相适应的调整。

在本申请的一个实施例中,所述特征信息至少包括以下至少一个:目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息。

在本申请的一个实施例中,处理模块进一步配置为:

将目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息作为所述第一模型的输入;

基于所述第一模型中经过训练后确定的核函数,分别对所述目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息进行分析,以确定所述缓冲区是否存在被攻击的行为。

在本申请的一个实施例中,处理模块进一步配置为:

通过第二模型确定所述目标数据的字符串的混乱度信息

在本申请的一个实施例中,还包括预处理模块,预处理模块配置为:

对所述目标数据进行预处理操作,以使所述目标数据的数据结构和/或数据类型符合预定处理要求,其中,所述预处理操作包括去除所述目标数据中的杂乱数据,以及将所述目标数据中的数据格式转换为特定格式。

在本申请的一个实施例中,分析模块进一步配置为:

获取所述目标数据中的数据字段长度;

在所述数据字段长度未超过预设边界长度的情况下,确定所述目标数据符合所述边界条件。

在本申请的一个实施例中,处理模块进一步配置为:

对所述目标数据中的特征信息分别进行向量化处理,以使所述特征信息符合第一模型的输入要求。

在本申请的一个实施例中,还包括训练模块,训练模块用于对所述第一模型进行训练,训练模块具体配置为:

获取第一训练子数据,以及具有缓冲区溢出攻击行为的第二训练子数据,形成相应的训练数据;

分别对所述训练数据中的特征信息进行标签化处理;

基于进行了标签化处理后的所述特征信息,利用控制变量的方式确定所述第一模型中的核函数;

基于所述核函数完成对所述第一模型的训练。

本申请实施例还提供了一种电子设备,包括处理器和存储器,所述存储器中存储有可执行程序,所述处理器执行所述可执行程序以进行如下步骤:

获取写入缓冲区的目标数据;

确定所述目标数据是否符合边界条件,其中所述边界条件包括针对数据字段长度的限定信息;

在所述目标数据符合所述边界条件的情况下,获取所述目标数据中的多个特征信息,其中,所述特征信息具有各自所表征的目标数据的特征;

基于所述特征信息,利用经过训练的第一模型确定所述缓冲区是否存在被攻击的行为。

具体的,该缓冲区可以是电子设备的缓冲区,缓冲区是程序在执行时用于存放数据的内存单元,其中存放的数据可能包括:运行程序指令的操作数或其他程序的入口地址。程序中若存在缓冲区溢出漏洞,缓冲区数据溢出可能会导致内存单元被修改;程序不能够正常执行、出错或终止;程序的执行流程改变。本实施例中可以获取写入缓冲区的目标数据,具体的获取方式可以直接读取缓冲区的数据,也可以在目标数据写入缓冲区的过程中同时获取。

边界条件可以是对目标数据进行第一次的筛选,该边界条件可以根据经验信息或者历史数据来针对目标数据设置较宽的条件,使得至少大部分的未受到攻击的目标数据能够符合该边界条件,当然如果受到了缓冲区溢出攻击则通常情况下该目标数据的特征会较为明显,从而并不符合边界条件。如果确定不符合边界条件则可以生成报警信息,从而向用户发出警报,以便用户及时处理该攻击事件。本实施例中,边界条件包括针对数据字段长度的限定信息。该限定信息可以是对目标数据中的数据字段长度的具体限定,如果数据字段长度超过了第一预设长度值,则认为遭受攻击的特征明显,可以直接确定电子设备遭受缓冲区溢出攻击,无需其他判断步骤;反之,如果数据字段长度没有超过第一预设长度值,则需要对目标数据进行随后的分析和判断。

每个特征信息具有各自所表征的目标数据的特征,其所具有的内容并不相同,可以是目标数据的各个特征的体现,在目标数据符合边界条件的情况下,可以获取各个特征信息,本实施例中,具体获取那些目标数据的特征可以根据使用场景具体确定,例如可以在目标数据的所有的特征中选定若干个特征,作为特征信息,如将目标数据中具有代表性的特征作为特征信息。当然也可以基于所有的特征均生成相对应的特征信息。

由于特征信息能够表征目标数据的具体状态,因此基于特征信息可以分析电子设备的缓冲区是否遭到了缓冲区溢出攻击。本实施例中可以利用经过训练的第一模型来对特征信息进行分析,该第一模型为经过训练的智能模型,可以为支持向量机算法的模型(Support Vector Machine,SVM算法模型),该支持向量机算法的模型可以在缓冲区数据写入时,判断该写入的目标数据是否存在缓冲区溢出攻击的行为。此外,第一模型可以预先经过训练能够适用于实际的使用情况,包括适用于对目标数据的特征信息的分析。当然该第一模型的参数可以根据使用场景来做出相应的调整,如对于不同类型的电子设备,和/或不同时间段的检测操作,第一模型的参数可以做出与之相适应的调整。

在本申请的一个实施例中,所述特征信息至少包括以下至少一个:目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息。

在本申请的一个实施例中,处理器执行所述可执行程序以进行如下步骤:

将目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息作为所述第一模型的输入;

基于所述第一模型中经过训练后确定的核函数,分别对所述目标数据的数据字段长度信息,目标数据的数字频率信息,目标数据的字母频率信息,目标数据的熵值以及目标数据的字符串的混乱度信息进行分析,以确定所述缓冲区是否存在被攻击的行为。

在本申请的一个实施例中,处理器执行所述可执行程序以进行如下步骤:

通过第二模型确定所述目标数据的字符串的混乱度信息

在本申请的一个实施例中,处理器执行所述可执行程序以进行如下步骤:

对所述目标数据进行预处理操作,以使所述目标数据的数据结构和/或数据类型符合预定处理要求,其中,所述预处理操作包括去除所述目标数据中的杂乱数据,以及将所述目标数据中的数据格式转换为特定格式。

在本申请的一个实施例中,处理器执行所述可执行程序以进行如下步骤:

获取所述目标数据中的数据字段长度;

在所述数据字段长度未超过预设边界长度的情况下,确定所述目标数据符合所述边界条件。

在本申请的一个实施例中,处理器执行所述可执行程序以进行如下步骤:

对所述目标数据中的特征信息分别进行向量化处理,以使所述特征信息符合第一模型的输入要求。

在本申请的一个实施例中,处理器执行所述可执行程序以进行如下步骤:

对所述第一模型进行训练,其中包括:

获取第一训练子数据,以及具有缓冲区溢出攻击行为的第二训练子数据,形成相应的训练数据;

分别对所述训练数据中的特征信息进行标签化处理;

基于进行了标签化处理后的所述特征信息,利用控制变量的方式确定所述第一模型中的核函数;

基于所述核函数完成对所述第一模型的训练。

以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。

相关技术
  • 一种缓冲区溢出攻击的检测方法及电子设备
  • 一种基于硬件的缓冲区溢出攻击检测方法
技术分类

06120112553592