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