当前,计算机网络病毒的传播给人们使用计算机造成了很大的困扰,网络病毒在计算机中轻则导致隐私泄露,重则导致系统瘫痪。同时,《中华人民共和国网络安全法》的通过与实施使我们清楚地认识到网络安全与国家安全息息相关,没有网络安全就没有国家安全。因此,研究更有效的计算机网络病毒防御技术具有重要意义。而将数据挖掘技术应用于计算机网络病毒防御中,可以有效控制当前迅速传播的网络病毒,从而更好地保护计算机网络系统的安全。
1计算机网络病毒
1.1计算机网络病毒的定义与特征
从广义上来讲,计算机网络病毒是指通过网络传播并破坏计算机功能或者毁坏计算机内部数据的代码程序。从狭义上来讲,计算机网络病毒是指传播途径和破坏对象均为网络的代码程序[1]。计算机网络病毒主要包括木马病毒、蠕虫病毒、宏病毒和脚本病毒等。当前,为对抗特征码检测技术,计算机网络病毒多采用加密、多态、变形等技术手段,使得反病毒软件即使从单个样本中提取出特征码也无法检测出变形后的病毒,展现出变化速度较快的特征;由于网络技术的迅猛发展,计算机网络病毒可以通过多种方式如系统漏洞、电子邮件、文件共享、不良网页等方式进行传播,展现出传播速度较快且传播形式多样的特征;通过窃取或破坏用户存储在计算机内的隐私信息或重要文件,政府、企业等组织的机密信息来获取经济利益,计算机网络病毒展现出越来越强的针对性与破坏性的特征。
1.2计算机网络病毒的主要防治技术
1.2.1静态病毒检测技术。(1)特征码检测技术特征码是反病毒软件从病毒样本中提取出的一串二进制数值,可以根据这一数值来判断一个文件是不是病毒文件或是否已感染病毒。常见的可以作为特征码的信息有病毒感染计算机后在屏幕上显示的信息、病毒的感染标记或病毒文件中任何一段连续的、不含空格的且长度不大于64字节的字符串[2]。随后,病毒检测引擎可以将待检测文件与病毒特征码进行二进制匹配,如果匹配成功,则该文件很有可能是病毒或已感染病毒。(2)校验和检测技术首先计算出正常文件或系统扇区的校验和并将其写入数据库。其中常见的计算对象有系统数据、文件头部、文件属性和文件内容,常用的校验和算法有MD5、CRC等[2]。然后,当使用文件或启动系统时计算文件或系统扇区的校验和并将其与数据库中保存的校验和进行对比。若比较结果不一致,则文件或系统扇区有可能已感染病毒。(3)启发式扫描技术启发式扫描技术运用反汇编引擎得到病毒程序的汇编指令序列,并将其与病毒程序行为代码数据库进行对比,找出程序中的可疑代码。然后根据统计规律,判断该文件是不是病毒文件或是否已感染病毒并给出合理解释。当面对变形或多态病毒时,可以将该技术与虚拟机检测技术结合起来,先使用虚拟机检测技术使病毒现出“原形”,然后使用启发式扫描技术对该文件进行检测。1.2.2动态病毒检测技术。(1)虚拟机检测技术为对抗网络上日益猖獗的加密、多态和变形病毒,虚拟机检测技术应运而生。虚拟机首先从病毒程序或染毒文件中读取病毒的入口点代码,然后模拟执行病毒内部的解密程序段,暴露出病毒的“原形”,随后使用特征码检测技术或启发式扫描技术来对该文件进行检测。(2)主动防御技术主动防御技术是指通过实时监控应用程序的行为来判断其是否有恶意倾向,当程序发生敏感行为时将向用户发出警告,若其行为已严重到对系统安全构成巨大威胁时也可直接将程序清除。1.2.3云查杀技术。云查杀技术是指将客户端上的可疑文件、行为数据和对可疑文件的处理过程等上传到云端服务器,利用云端服务器强大的数据和运算资源以及各种分析手段来对其进行判别,并指导客户端做出相应处理。这大大提高了判别的准确性,也使得安全厂商可以更快地掌握新型病毒的行为特点和传播动向,并及时采取相应防御措施[2]。
2数据挖掘技术及其在计算机网络病毒防御中的应用
2.1数据挖掘技术简介数据挖掘是指从大量的数据中,运用统计学、人工智能、机器学习等方法,挖掘出未知的、且有价值的信息和知识的过程。数据挖掘技术主要有关联分析、分类分析、聚类分析、异类分析、特异群组分析和演变分析等。
2.2构建网络病毒防御系统的数据挖掘技术。2.2.1有监督的数据挖掘技术。分类分析是有监督的数据挖掘技术,指预先设定几个类别,然后将个体依据其特征分别纳入不同的类别。分类分析的输入数据是记录的集合,每条记录用元组(x,y)来表示。其中x是属性集合,y是这条记录所属的类别[3]。进行分类分析的目的在于利用统计方法或机器学习方法等构造分类模型,将数据库中的数据映射到某个特定类,即实现从x到y的映射,然后利用该分类规则分类其他数据[4]。若将分类分析与启发式扫描技术相结合,则需要在训练集中导入良性样本和恶意样本。其中属性集合x为各种程序行为代码,若某一样本的汇编指令序列中出现该代码则记为1,否则记为0;类标号y为Yes或No,代表该样本是不是病毒程序。由此训练出分类模型,随后我们可以用一个包含良性样本和恶意样本的检验集来判断该模型是否有效。在静态分析中,支持向量机算法表现较好;而在动态分析中,集成算法表现较好。下面介绍一个可以有效应用于网络病毒防御中的分类方法:决策树分类法。决策树是一种由节点和有向边组成的层次结构,它通过提出一系列关于检验记录属性的问题来进行分类[3]。在决策树中一个内部结点代表一个属性测试条件,一个树枝代表一个检测结果,叶子上的结点代表不同的类别。在决策树中最常用的运算法则是ID3和C4.5,它们都属于从下到上树形结构,它们的运算法则表述为:x1+x2=x[5]。决策树挖掘是依据从大到小,从广到细的原则逐级划分判断条件,对不同属性逐级进行判断,当有一级不满足判断条件时即可做出相应的防御反应。在构建计算机网络病毒防御系统中,决策树挖掘的条件为:(1)该程序是否有破坏能力;(2)该程序是否有复制传播能力;(3)该程序是否具有隐蔽性[6]。2.2.2无监督的数据挖掘技术。(1)聚类分析聚类分析指将数据划分成不同的组,要求在一个组中的个体有相似的特征且差异较小,而组与组之间存在不同特征且差异较大。进行聚类分析的目的在于发现紧密相关的观测值组群,通过聚类分析还可以较好地呈现出数据分布的疏密情况和全局分布模式[7]。若将聚类分析与启发式扫描技术或主动防御技术相结合,那么我们可以将程序行为或其行为代码聚类为正常和异常两类,在异常类中又可按其严重程度将其进一步聚类,由此我们可以更加精准地区分出正常和异常的程序行为或其行为代码,随后我们可以将由聚类分析得到的类作为对未知程序进行分类的依据。(2)关联分析关联分析指在数据库中发现有强关联特征的模式,常用XàY的蕴含表达式表示,其中X与Y均为项集。如果两个或多个变量之间存在某种规律性,那么这些数据之间就存在着一定的关联性,其中的关联主要有简单关联、时序关联和因果关联[8]。我们常用支持度(s)和置信度(c)来度量关联规则的强度,支持度表示既包含X又包含Y的事务在所有事务中所占的比例,其中s(XàY)=P(X&Y)/N;置信度表示同时包含X和Y的事务在包含X的事务中所占的比例,其中c(XàY)=P(X&Y)/P(X)[3]。进行关联分析的目的是找出数据库当中存在的关联网,挖掘数据之间的关联性以找出数据之间的关联规则[8]。若将关联分析与启发式扫描技术相结合,则需要在数据中导入良性样本和恶意样本。其中每个项为一个程序行为代码,若某一样本的汇编指令序列中出现该代码则记为1,否则记为0。对这些数据进行关联分析我们可以发现某些行为代码之间具有关联,这些关联拥有较高的支持度和置信度。若我们发现XàY,且项集X与项集Y的权重的和足以触发警报。那么当项集X发生时,项集Y就很有可能发生,该程序也很有可能是病毒。若将关联分析与主动防御技术相结合,则需要在数据中导入良性样本和恶意样本。当样本程序运行时,系统日志会记录程序运行信息,并且这些数据会被转化成事件存入数据库。数据中每个项为一个程序行为,若某一样本的行为集中出现该行为则记为1,否则记为0。若不严重的敏感行为集与某些严重违反安全规则的行为之间存在关联,那么当不严重的敏感行为集发生时,我们应当对其足够重视,并向用户发出严重安全威胁可能发生的警报或采取措施清除危险程序。2.2.3异类分析。异类分析指分析数据库中与其他数据偏离较为明显的数据,即偏离常规模式的数据。因为与常规数据相比,这些异常数据很可能是由完全不同的机制产生的[7]。当然,由于测量误差产生的异常数据我们应当及时予以清除。因此,异类分析常作为数据预处理的一部分。异类分析算法需要识别出真正的异常点,即具有高的检出率和低的误报率[3]。异常数据相对于正常数据来讲有其独有的特殊性,我们往往可以从中发现有悖常理的结果和更有价值的信息。异常检测可分为监督的,非监督的和半监督的。监督的异常检测要求在训练集中存在正常样本和异常样本,并做好标记,即标好类标号;非监督的异常检测则不要求标好类标号。而在半监督的异常检测中,我们需要使用有标记的正常样本信息,发现检验集中异常样本的类标号或得分[3]。我们也可以先构造出一个正常程序的轮廓,当某一个程序到来或运行时便将其与之比较,如果该程序的特性与正常程序的轮廓无法很好地拟合,那么该程序就很有可能是网络病毒。
2.3数据挖掘技术在计算机网络病毒防御中的应用与挑战
随着社会的信息化与网络化不断向前推进,计算机网络病毒的威胁也日益严重。而数据挖掘技术的发展使人们希望借助数据挖掘技术来提升对计算机网络病毒的防御能力。目前,支付宝、京东金融等互联网金融平台已使用数据挖掘技术来防御网络病毒,保障用户的数据安全。与传统基于特征码的病毒检测技术不同,基于数据挖掘的计算机网络病毒防御技术不需要规模庞大的特征码库,并且可以很好地识别未知病毒,提高对病毒识别的准确率。但是,该技术在进行数据预处理和数据挖掘的过程中需要消耗较多的资源和时间。我们应该发挥该技术的长处,并与传统的反病毒技术相互配合,才能更好地防御计算机网络病毒。
3基于数据挖掘技术的计算机网络病毒防御系统流程
数据挖掘技术的重点在寻找未知的模式与规律,其主要由以下五大模块组成:(1)数据源模块;(2)预处理模块;(3)规则库模块;(4)数据挖掘模块;(5)决策模块。在基于数据挖掘技术的计算机网络病毒防御系统中,首先收集含有入侵指令的数据,通过这些数据初始化来往的网络数据,然后对这些数据运用预处理模块进行预处理。预处理完成后开始进行数据挖掘,使用关联分析、分类分析、聚类分析、异类分析等数据挖掘技术建立规则集即网络病毒的特征集合,再将待检测数据与规则集匹配检测,如果两者之间的匹配度较高,则说明该数据包中可能存在网络病毒;如果两者之间的匹配度较低,则说明有可能是未知病毒,这时会触发预警机制,并提取该病毒特征属性以及连接数据的方式将其纳入规则集[8]。
3.1数据挖掘技术组成模块
数据挖掘技术主要由以下五大模块组成:3.1.1数据源模块。数据源模块会截取计算机网络中的原始数据包,这些数据包中包含着一些重要的数据结构和功能信息,之后将这些原始数据交由预处理模块进行预处理[7]。数据源模块为数据挖掘提供充足的数据,是数据挖掘的基础。3.1.2预处理模块。预处理模块是整个数据挖掘流程中的重点模块。预处理数据主要由链接数据、数据净化、变量整合以及格式转换等构成[9]。由于在大量原始数据中存在许多不完整、不一致的数据,这些数据将会严重影响数据挖掘建模的执行效率和执行结构。通过对数据源模块截获到的数据进行预处理,可以选择出与当前数据挖掘任务相关的数据,使数据能够被数据挖掘模块所处理,提高数据的辨识度和准确性,还能缩短数据挖掘时间,提高数据挖掘效果,为后期进行数据挖掘创造了条件[7]。3.1.3规则库模块。规则库模块是通过对已经能够分析检测到的网络病毒进行数据挖掘而形成的规则集,该规则集反映了网络病毒的行为特征。利用该规则集,可以指导数据挖掘模块的工作,还可以探究并抵御计算机网络中的其他病毒[9]。3.1.4数据挖掘模块。数据挖掘模块是整个数据挖掘流程中的关键一环,其主要由事件库和数据挖掘算法两大部分组成,通过数据挖掘算法对由数据源模块和预处理模块形成的事件库进行分析,在事件库中记录的主要是用于进行数据挖掘的相关数据。经过数据挖掘模块的处理后,最终形成规则清晰的数据挖掘结果,并将其传递给决策模块[8]。3.1.5决策模块决策模块的作用是将数据挖掘结果与规则库中的规则进行匹配。如果数据挖掘结果与规则库中的规则匹配度很高,那么说明决策模块信息存在病毒特征,数据包中存在计算机网络病毒的风险很大,应当及时对病毒予以清除。如果数据挖掘结果与规则库中的规则不匹配,那么说明数据包中可能存在未知的新型病毒,此时预警系统将会发出新型病毒警告,规则库模块将此新型病毒引入规则库,形成新的规则类别[10]。
3.2基于数据挖掘技术的计算机网络病毒防御系统流程图
基于数据挖掘技术的计算机网络病毒防御系统流程图如图1所示。
4结语
当前,利用数据挖掘技术进行网络病毒防御是社会的迫切需要,也是网络病毒防御技术的发展趋势,数据挖掘技术在网络病毒防御系统中的重要性也越来越明显。我们可以将传统计算机网络病毒防御技术与数据挖掘技术相结合,利用各自的优点提高网络病毒查杀的准确度和效率。如利用有监督的数据挖掘技术可以快速训练出一个模型,但需要许多有标记的数据;而无监督的数据挖掘技术使用大量未标记的数据来训练模型。在获取大量未标记的数据越来越容易而进行人工标记的成本越来越高的今天,使用无监督的数据挖掘技术来防御网络病毒是该项技术的发展趋势。今后,数据挖掘技术将发挥其独特优势,在计算机网络病毒的识别和判断方面发挥关键作用。
《数据挖掘技术在计算机网络病毒防御中的应用研究》来源:《电脑知识与技术》,作者:潘恒绪 卞炜松 邓杰 肖文