在信息时代,互联网技术在人们生活、娱乐、休闲等行为活动中的占比逐渐增大。网络成为大众获取信息、了解世界的重要窗口。但是,在网络技术逐渐满足人们日常资讯需求的同时,因为恶意代码所带来的网络安全事故也严重影响着广大网络用户的计算机安全。恶意代码对网页有很大的破坏性,如果不能在短时间内发现恶意代码,将会对网页平台以及访问网页的互联网用户造成巨大损失,故出于减小恶意代码威胁的目的,网页安全管理人员要构建起良好的检测算法,及时发现和根除威胁,保证网页安全。
1网页恶意代码的概念及攻击方式
搭建一个网页通常会用到ActiveX等控件和JavaScript等编程语言,恶意代码就是以这些控件和语言脚本为攻击点,在网页运行时查找电脑安全漏洞,以未经网页运行者同意或者知晓的方式执行网页内的控件脚本来达到某种具有恶意和破坏性目的[1]。如果用户在访问网页时不小心触发了恶意代码,有一定概率造成用户的主机被恶意程序入侵,产生用户电脑系统的注册表设置或者程序配置被篡改,电脑资源被恶意盗取或删除,引发电脑死机和资料丢失等恶果。恶意代码的攻击方式有两种,一种主动攻击,这种攻击方式容易被察觉,并被防火墙阻隔。因此当前大部分的恶意代码采用的是第二种攻击方式,也就是被动攻击模式,这种攻击方式通过SQL注入或者跨站脚本攻击等手段获取服务器的控制权。访问者的访问界面会被强制性转移到攻击者制作的恶意网页,在进入恶意网页后,攻击程序会检查访问者电脑的系统环境,寻找其中可能存在的漏洞,一旦发现存在漏洞可以利用,程序就会对访问者的主机发动攻击,执行各种强迫性操作,比如不经用户同意或允许,将各种垃圾程序强行安装到用户电脑,挤占资源,或者修改用户的系统环境参数,造成电脑运行卡顿,数据外泄等。归纳而言,网页恶意代码的攻击过程可以分为五个步骤:①将恶意代码嵌入网页服务器;②在网页服务器接收到用户请求后触发;③在用户返回网页时攻击用户浏览器,或者进行重定向操作强迫用户的访问页面跳转,进入攻击者所制作的恶意网页;④恶意网页检查用户主机系统的安全防护情况,寻找安全漏洞和攻击机会;⑤触发漏洞后抢夺主机权限,获得电脑控制权,进行恶意操作,损害用户利益。由此可见,攻击者出于隐蔽性和保密性的目的,多采用恶意代码被访问者触发再发起攻击的被动攻击模式,这让恶意代码存在一定的潜伏性,在网页安全管理中较难察觉,因此管理者需要加强对检测算法的构建,筛查和发现网页中的恶意代码,并及时清除,防止对访问用户的主机造成伤害,引发网络安全事故。
2检测恶意代码的算法类型
常用的网页恶意代码检测算法有支持向量机、朴素贝叶斯、神经网络三种,三种算法的检测效果各有不同,需要结合网页的安全管理需求适当挑选。(1)支持向量机支持向量机是一种常见的分类算法,在恶意代码检测工作中应用较多,该算法最早提出于1995年,由Vapnik等人所设计,其原理是利用统计学习理论,采用非线性映射,将样本数据从低维映射到高维特征空间,并在高维空间中搭建间隔超平面,实现各种类型数据的有效分隔[2]。支持向量机的决策函数又称核函数,在使用支持向量机的过程中,确定最佳核函数才能让模型效果达到最好,如图1所示。从图1可见在支持向量机的二维特征空间中,边界两边是各种类别样本的分隔处,管理者可以通过对决策边界进行确定,解决存在的样本分类问题,也就是f:wχ+b=0的边界问题,在边界函数中,如果向量w和参数b可以得到确认,那么就能确定边界f,分类问题也就可以得到解决。不过在支持向量机的特征空间中,往往存在很多相互平行或者不同方向的决策边界,为了确保样本分类的准确性,SVM需要得到最佳的分离决策边界,从而让样本边缘达到最大,分类效果达到最佳。(2)朴素贝叶斯朴素贝叶斯是贝叶斯分类算法的算法模式之一,该算法以概率统计理论为基础,通过假设类中的特征各自独立、互不影响来确定数据样本归类[3]。不过在现实情况中,朴素贝叶斯所设定的特征A、B、C彼此的存在互不关联很难成立,所以一般采取降低属性依赖关系的方式来提升朴素贝叶斯的分类准确率。具体做法是将所有的数据样本设为n维度特征向量X表示,即X=χ1,χ2,χ3,χ4...,χn,所有的数据样本又可以分成m个类,即表示为C1,C2,C3,C4,...Cm.在网页安全管理中,管理人员预测到新数据样本X,按照朴素贝叶斯的分类方法将该新数据样本标记成Ci,表示X被分到了i类,此时新样本数据具最高后验概率,计算公式为P�CiX�>P�CjX�,其中1≤j≤,且。依照贝叶斯定律的计算公式为:P(Ci/X)>P(X/Cj)×P(Ci)/P(X)在安全管理人员给定预测数据样本之后,P(X)作为常数,这样对数据样本的分类就不会有影响,安全管理人员只需计算出P(X/Cj)×P(Ci)就能得到最大的P(Ci/X),而P(Ci)的计算公式为P(Ci)=Si/S,P(X/Cj)的计算公式为P(Cj/X)=∏P(χk)/nk=1Ci。其中,S表示数据样本的综述,Si表示Ci类别的数据样本数,根据最终的计算结果,安全管理人员可以知晓新数据样本属于哪一类的概率较大,并适当归类。如当根据朴素贝叶斯计算新数据样本含恶意代码的概率小于不含恶意代码概率,那么被测网页就会被归类为正常网页,但如果数据样本的含恶意代码概率大于不含恶意代码概率,那么被测网页就会被归类到恶意网页。(3)神经网络神经网络的模型多采用BP网络,其结构为三层神经网络,即该网络有三层处理单元,除输入层外,还有隐含层和输出层,不同层有各自的神经元,具体如图2所示[4]。从图中可见,神经网络是一个向前反馈的数据网络,当隐含层和输出层这两层处理单元接收到反馈时,会检测其效果是否达标,并通过修改权重让训练持续下去,并以这样不断地在反馈接受中修改权重,持续训练,来起到减少误差的目的,最终完成训练效果,实现对数据的预测和分类。
3检测恶意代码的算法构建
检测恶意代码的算法以上述三个算法为基础,采取区块链技术,增加账户数据和本地访问,在区块链类型中,访问是用哈希值形式存储在块数据,同时,因为块头上增加了账户树根,区块数据结构如图3所示。其中,Time是时间戳,是对矿工挖矿的时间记录,而Nonce是作为矿工计算出的一个不超过要求值的哈希值,是矿工完成工作量的证明。从图3的区块数据结构可见,在区块链中,PrevBlockHash是以前块的整个块数据进行哈希运算后得到的哈希指针,这个哈希指针从结构中的前块指向后块,所以后块就保留了前块的哈希值,也就是说每个区块中会保存上一个块的哈希值,这样一来就形成了链式结构,同时轻量型区块链也具备了不可篡改性。因为下一个块要记录上一个块的哈希值,如果改动任意一个区块的身前区块数据,就会引发数据冲突,而身后区块的PrevBlockHash就会对身前区块的数据进行检验,避免了访问中存在的数据错误,利用这种逐层计算访问哈希值的方式,检验访问本身的合法性。在运行区块链时,操作人员只需要将访问中需要计算的访问数据和该区块中其他访问做运算,然后将ROOT值做简单比较就可以验证访问合法性。
4结语
综上所述,网页运行的安全性与稳定性,能够对网络用户的休闲娱乐、资讯信息获取产生促进作用。但是计算机在使用中容易受到网络安全隐患,为广大用户日常生活带来了不利影响。管理人员必须在网络安全防护中增加投入,既要建立完善的检测算法,也要配置先进的软件设备,并增强用户网络安全防护意识,才能构建安全、稳定的网络环境,真正发挥出网页的信息共享和传递功能。
参考文献:
[1]邵福骏.移动平台恶意软件检测算法的设计与实现[D].电子科技大学,2020.
[2]基于N-gram特征的网络恶意代码分析方法[J].数字技术与应用,2020,357(03):59-60+62.
[3]朱翔宇,张健,高铖,等.基于虚拟化环境恶意代码检测系统的设计与实现[J].天津理工大学学报,2020,158(01):15-20+27.
[4]张华,陈淑珍.基于BP神经网络算法的恶意代码检测系统[J].莆田学院学报,2020,130(05):75-80.
《网页设计中恶意代码的检测算法构建》来源:《网络安全技术与应用》,作者:谢淑林