计算机网络安全入侵检测技术研究
2022-11-18吴华勋
吴华勋
(福建省邮电学校,福建 福州 350008)
计算机网络极大地改变了人们的生活方式,提升了生产效率。但是由于计算机网络的覆盖范围大、信息交换量高,给计算机网络安全带来了隐患[1]。很多黑客以计算机网络为目标,通过入侵计算机网络获取信息谋取私人利益。计算机网络安全的一项重要内容,就是对黑客的入侵行为进行检测,即入侵检测[2]。入侵检测发现入侵行为即可以调度防御算法,抵御黑客的进一步入侵,保护计算机网络的安全。入侵检测算法的核心是字符匹配机制,通过各种规则的设计和匹配算法,找到具有入侵行为特征的程序[3]。该文进一步改进鲍威尔入侵检测算法,希望建立一种效果更好的入侵检测算法。
1 鲍威尔算法及其改进
1.1 鲍威尔入侵检测算法
鲍威尔算法的实质是一种字符匹配算法,最早出现于字符比较、字符串相似性判断的研究工作中。在这个标准字符串中,配置两个关键词符,一个是“Good”字符,一个是“Bad”字符。然后,将待匹配的字符串和这个标准字符串进行比较。比较的顺序,是沿着字符串长度方向上,从左到右的执行。在匹配过程中,通过和关键词符即“Good”字符、“Bad”字符的比较,确定匹配是否成功,匹配结果可以用于是否发生入侵行为的判定。
图1就给出了有关标准字符串和待匹配字符串匹配过程的描述。
从图1中可以看出,图1(a)中用B表示的字符串就是标准字符串,用T表示的字符串就是匹配字符串。“Bad”字符在字符串中用h表示,关键后缀用字符z表示。
图1(b)表示了标准串中不含有“Bad”字符的情况,匹配过程会将标准字符串直接移动到字符h之后。
图1(c)表示了标准串中含有“Bad”字符的情况,匹配过程会将标准字符串直接移动到字符h所对应的位置上。
图1 鲍威尔算法中字符串的匹配过程
关键后缀z在鲍威尔算法中扮演了非常重要的角色,用于引导鲍威尔算法完成整个匹配过程。在匹配的执行过程中,字符串之间会出现有一部分匹配、另一部分不匹配的情况。通过记录匹配位置和匹配长度,可以找到匹配长度最长的字串,进而根据后缀字符z进行移动处理。这里的操作包括以下3种情况:第一种情况,标准字符串中还存在其他子串中也包括关键后缀的情况,这时可以通过移动这些子串使其到达和关键后缀对齐的位置。这时的具体操作,可以参考图2(a)。第二种情况,标准字符串中没有其他子串包括关键后缀的情况,这时需要在标准字符串的前缀子串中进行进一步寻找,如果能找到这样的前缀,使其和关键后缀对齐即可。第三种情况,标准字符串中既没有包括关键后缀的其他子串,也找不到包括关键后缀的前缀子串,这时只能将整个标准字符串移动到关键后缀再后面一个字符的位置,这时的具体操作,可以参考图2(b)。
图2 关键后缀引导的匹配过程所发生的不同情况
在鲍威尔算法中,采用关键后缀完成匹配过程的引导一般通过配置一个数组来实现,这个数组及数组满足的关系如公式(1)所示。
式中:参数k表示了一个长度,这个长度是和标准字符串相匹配的字符串的最大长度;参数i表示字符串中的位;Datagroup表示字符数组。
根据这个公式所表达的内容,关键后缀引导下的鲍威尔算法执行的匹配过程在数学上的形式如式(2)所示:
式中:参数B表示标准字符串;参数i、m表示字符串中的位;参数k表示长度。
1.2 鲍威尔算法的改进处理
通过鲍威尔算法的原理分析可知,鲍威尔算法匹配准确率与最大移动距离直接相关。如果能进一步增大移动距离,不仅会提升匹配准确率,也会减少匹配次数,从而提升鲍威尔算法的执行效率。基于此,该文对鲍威尔算法的改进,确定了进一步增大移动距离的思路。
根据鲍威尔算法的两种策略,首先得到一个初始的最大移动距离MobileLength1。在此基础上,将匹配字符串中两个临近字符T[k+1]和T[k+2]组合匹配,从而可以得到一个新的最大移动距离MobileLength2。通过比较新的最大移动距离和初始最大移动距离,选取匹配算法实际采用的最大移动距离。
该文改进的鲍威尔算法的执行过程一共包括以下5个步骤。
第一个步骤,构建一个新的数组用于计数统计,它主要负责记录每个字符在标准字符串中一共出现了几次,这个数组的数学形式如式(3)所示:
式中:参数Btime(char)表示了任意一个字符在标准字符串中出现的次数。根据公式(3)可以看出,如果任意一个字符在标准字符串中出现的次数恰好为1,那么数组就记录为1;如果任意一个字符在标准字符串中出现的次数大于1,那么数组就记录为0。
第二个步骤,结合匹配字符串的具体情况,组合T[k+2]和T[k+2]并提取相邻字符,提取后的结果纳入char(1,2),之后将char(1,2)和标准字符串进行相似性比较。
第三个步骤,如果标准字符串中并不含有char(1,2)一样的子串,再将char(1,2)和标准字符串中的首字符比较一次。如果char(1,2)也不含有标准字符串中的首字符B[1],这时MobileLength2的大小记录为m+2;如果char(1,2)中的首字符和标准字符串中的首字符B[1]一致,这时MobileLength2的大小也记录为m+2;如果char(1,2)中的次字符和标准字符串中的首字符B[1]一致,这时MobileLength2的大小记录为m+1。
第四个步骤,如果标准字符串中存在与char(1,2)一致的子串,同时char(1,2)中没有和标准字符串首字符B[1]一致的字符,并且Dtime(char)=1,这时MobileLength2的大小记录为m+2。
第五个步骤,如果标准字符串中存在与char(1,2)一致的子串,同时char(1,2)中没有和标准字符串首字符B[1]一致的字符,并且Dtime(char)=0,这时MobileLength2的大小和MobileLength1一致。MobileLength1的大小按照公式(4)进行计算:
式中:参数B表示标准字符串;参数i、m表示字符串中的位;参数k表示长度;MobileLength表示移动长度。
2 改进鲍威尔算法的计算机网络入侵检测试验
该文通过详细的改进设计,改变了鲍威尔算法的执行过程。为了验证这种改进处理所达到的效果,该文进一步进行计算机网络入侵检测试验。检测试验中所使用的计算机CPU为双核配置,单核主频为3.0GHz。操作系统选择了Windows10.0系统,选择的计算机网络入侵检测系统为斯诺特检测平台。
选择斯诺特检测平台的原因在于其突出的开源特征。这种开源的设计,可以便捷地加入自己设计的程序和代码。在该文的验证试验中加入了自己设计的检测算法,然后从斯诺特平台的主函数中加以调用,就可以进行入侵检测试验和算法性能验证了。
在试验过程中,选择了传统的鲍威尔算法和该文改进处理后的鲍威尔算法,方便比较改进前后的算法性能。
在试验过程中,设置了随机长度的100个字符串,作为鲍威尔算法和改进鲍威尔算法的检测样本。这些字符串长度不一,构成也没有具体的规律。受到篇幅的限制,该文给出了前6个字符串的效果,见表1。
表1 100个随机字符串中的前6个样本
为了客观地评价两种算法的性能,整个试验过程进行三项试验。其中,第一项试验就是比较鲍威尔算法和改进鲍威尔算法的字符匹配次数,这一结果的示例如图3所示。
从图3给出的第一组试验的比较结果可以明显看出,在入侵检测算法的字符比较次数方面,该文提出的改进鲍威尔算法的比较次数明显低于鲍威尔算法的比较次数。从两条曲线的对比情况可以看出,随着字符串长度不断变长,字符比较次数都有明显的下降,但该文提出的改进鲍威尔算法下降速度更快。
图3 第一组试验的比较结果
进一步比较鲍威尔算法和改进鲍威尔算法的窗口移动次数,这一结果的示例如图4所示。
从图4给出的第二组试验的比较结果可以明显看出,在入侵检测算法的窗口移动次数方面,该文提出的改进鲍威尔算法的移动次数明显低于鲍威尔算法的移动次数。从两条曲线的对比情况可以看出,随着字符串长度不断变长,窗口移动次数都有明显的下降,但该文提出的改进鲍威尔算法下降速度更快。
图4 第二组试验的比较结果
进一步比较鲍威尔算法和改进鲍威尔算法的执行时间,这一结果的示例如图5所示。
从图5给出的第三组试验的比较结果可以明显看出,在入侵检测算法的执行时间方面,该文提出的改进鲍威尔算法的执行时间明显低于鲍威尔算法的执行时间。从5组对比结果可以看出,随着数据包大小的增加,执行时间都有所增加,但改进鲍威尔算法的执行时间增加的更慢。
图5 第三组试验的比较结果
3 结论
计算机网络安全是计算机网络领域中的研究热点,入侵检测算法是保护计算机网络安全的重要手段。该文针对鲍威尔入侵检测算法进行改进,提出了一种新的入侵检测算法。在该算法中,通过组合字符的使用提升匹配准确率,通过三种策略调整最大移动长度,使其更符合检测过程的需要。试验结果表明,改进鲍威尔算法具有更少的比较和移动次数,算法的执行时间也更低,可以提升计算机网络入侵检测的效果。