网络协议漏洞挖掘

2024-06-18

网络协议漏洞挖掘(精选3篇)

网络协议漏洞挖掘 篇1

摘要:随着网络应用程序的发展,网络协议安全性的要求不断提高,模糊测试成为研究热点。在总结了当前研究方向的基础上,重点研究了网络协议识别方法和网络协议的测试用例生成,在启发式搜索算法和概率权值的基础上提出了基于参数权值的启发式模糊测试框架。同时,选取现有模糊测试漏洞挖掘工具Peach进行扩展,其中数据生成模块采用基于参数权值的启发式输入追踪技术,利用IDAPRO提取函数的启发因子形成的启发规则指导测试用例生成过程,基于参数权值确定测试用例的发送顺序。最后,采用开发工具对常用的FTP协议进行了验证,通过测试结果验证了基于参数权值的启发式模糊测试框架达到了预期效果。

关键词:网络协议漏洞挖掘,模糊测试,启发式测试用例生成,Peach

互联网的发展,在促进人们生活水平的同时也面临着巨大的挑战。随着软件开发技术门槛的降低,软件的质量出现参差不齐的情况,很多系统在开发过程中本身就存在很大的隐患,容易受到各种各样的攻击[1]。网络协议在整个网络安全中占据着十分重要的位置,是各种网络传输的载体,它产生的漏洞具有很高的威胁性,一直是软件安全研究的热点。在模糊测试的过程中,模糊测试数据生成和网络协议识别是两个最重要的模块[1⁃2]。

1 网络协议模糊测试技术研究

1.1 基于参数权值的启发式模糊测试框架基本思想

基于参数权值的启发式模糊测试框架需要解决以下问题:基于C/S的模式进行通信;网络协议格式的解析;网络协议动态域匹配问题;数据输入空间的优化。

(1)基于C/S模式的协议通信

网络通信主要分为两种模式:C/S模式和B/S模式,其中C/S模式是指客户端/服务方式,通过TCP/IP协议传输数据,常用的网络应用层协议都是构建在TCP/IP之上的。

(2)协议格式的解析

针对常见的网络协议,总结了抽象的网络协议格式如图1所示。

在协议格式中HEAD和END是必须的,只有正确理解协议格式才能构造出合法的输入数据,在传统的基于错误注入的方法上,随机对字段进行变异,就很难保证修改的字段是否有效[3]。而在基于程序理解格式的基础上,才能对协议域进行有效变异,保证数据生成的有效性[4]。

(3)动态字段的匹配

采用Block⁃Based协议描述语言在对协议描述时,采用了如图1所示的协议格式模型,这样当在创建数据包时,可以将协议中长度字段绑定到对应的数据域,在内容字段进行更新后,长度等动态字段也会自动进行更新[5]。

(4)输入空间优化

一般用户的数据需要经过三层才能达到目标程序,接口访问层、输入数据校验层和逻辑功能实现层。基于测试的网络协议数据包根据效果可以分成:未通过输入数据验证被直接丢弃的数据包;经过输入验证层的验证,但是没有引发漏洞的数据包;到达了最终的实现逻辑层并且触发漏洞的数据包[6]。

1.2 基于参数权值的启发式模糊测试框架的基本步骤

基于参数权值的启发式模糊测试框架执行过程主要由以下部分组成:协议格式解析、测试脚本构造、参数权值衡量&启发式信息获取、构造并发送测试脚本、异常监控[7]。

(1)网络协议格式的解析

在模糊测试框架中,采用基于中间者的拦截模式,采用Trans Fuzz系统获取客户端和服务器端的网络流量,这样可以在网络交互一定次数稳定后再抓取相应的网络数据,保证了数据的准确性。在Trans Fuzz中,内置了数据分析模块,采用Wireshark和基于生物信息学结合的方法对网络协议进行解决,配合一定的人工干预,转换成Peach软件所需要的数据模型格式,减轻了对使用模糊测试器的专业要求,扩大了使用范围。

(2)模糊测试脚本的构造

为了提高模糊测试效率,在测试用例生成上,采用自动化的方法是非常有必要的。采用基于块的描述语言,定义一种协议描述XML文件对协议的各个字段进行定义。之所以选择XML文件,是因为XML文件具有通用性,已经成为数据传输格式的标准,而且很多开源工具或者语言都提供了对XML很好的支持。使用自定义算法获得协议后,要自动转换成上面的格式,需要实现一个转换工具bkc,实现将抓取的格式转换成上面的格式部分,同时针对Wireshark工具也编写了相应的工具pdml2bk,用于实现Wireshark格式到Peach Pit格式的转变[8]。

(3)基于参数权值的启发式测试用例生成

在测试数据生成策略中,采用启发因子指导测试用例的生成过程,启发因子的使用大大缩小了输入域的状态空间。启发因子主要采用软件自动提取,重点关注程序中的敏感函数和比较常量。在生成测试数据后,采用基于参数权值的方式对待测的测试数据进行权值估计,最后按照相对权值的大小确定发送顺序,优先选择容易导致漏洞的测试用例。

目前进程监控调试工具主要有:Pin(Intel),Dy⁃namo RIO,Valgrind,pydbg。考虑到采用的Python平台,pydbg的功能基本满足了需要,而且pydbg很好地实现了对Windows32系统的兼容,提供了指令级别的监控和调试[9]。

2 网络协议模糊测试技术实现

2.1 网络协议模糊测试开源平台的选择

为了实现基于参数权值的启发式模糊测试框架,在综合比较开发一套全新的框架和在现有平台基础上修改后,对现有工具进行了评估,主要基于以下几个方面:

(1)平台的应用范围,可维护性和更新速度;

(2)软件是否开源,软件组件是否可扩展,允许用户自定义的模块,是否支持基于块的协议描述语言;

(3)选用的模糊测试器应该尽量简化用户的工作,让用户有更多的精力实现自己的算法。而且应该尽量支持不同的协议,具有广泛的适用性;

(4)模糊测试器应该尽量具有较好的平台适用性,在常见的主流平台上都有对应的版本,这样算法才具有更大的应用范围,针对不同的平台不需要修改就可以使用;

(5)软件的开发语言应该是目前主流的开发语言,而且源代码应该具有良好的注释和规范性,具有相应的源代码说明。

鉴于Peach更新速度更快,可扩展性更好,选择Peach作为基于权值的启发式模糊测试框架的实现平台。

2.2 基于参数权值的启发式模糊测试框架

Peach内置了基于变异和基于生成的测试用例生成方法。Peach主要由以下组件构成:数据表示,数据产生模块,数据发送模块,异常监视模块,日志记录模块。在数据表示中,Peach定义了一种自定义的格式Peach Pit文件,它基于XML表示了协议的基本配置、数据模型、状态模型、测试配置、代理和监视器、运行配置等多种信息。Peach的工作流程如图2所示。首先,用户创建Peach Pit文件,Peach从文件中读取配置信息后根据数据模型和状态模型进行数据变异,变异后的数据通过Publisher发送到目标应用程序,Peach通过pydbg或者windbg对目标程序调试监视,如果发现错误则输出到指定的地方进行后续分析。

在要实现的平台中,需要对上述流程进行修改,满足基于参数权值的启发式模糊框架的要求,修改后的流程图如图3所示。改进后的流程图主要在以下方面进行了修改:

(1)Peach Pit文件的生成由网络协议字段识别算法生成,省去了手工编写的麻烦,提高了自动化程度,简化了模糊测试的流程。

(2)实现了自定义的模糊测试数据生成器Mutator,在测试数据生成中,加入了启发式进行,对生成的字符串进行了参数权值评估,发现漏洞的概率会相应的提高。

2.3 基于参数权值的启发式模糊测试平台实现

(1)网络协议字段识别算法的实现

网络协议字段识别算法的思想如下:对于wireshark不同识别的协议,采用前面提到的生物信息学方法进行字段识别;识别结束了,采取相应的转换工具,将前面识别后的结果转换成Peach Pit XML格式,以便于让后续的Peach读取。

算法的具体步骤如下:采用局部序列对比算法计算字节序列之间的相对距离,得到距离矩阵;采用非加权成对群算术平均法,根据序列顺序构建系统树;采用渐进比对算法遍历系统树,实现多序列对比。PI项目采用构造系统树的启发式方法引导多序列对比的执行,可以有效降低多序列对比的时间复杂度。

(2)网络协议格式转换算法

实现自动化转换的方法如图4所示。方法的主要思想是采用类似于中间者攻击模式,在中间假设一个Trans Fuzz系统,获取Peach和服务器端的通信流量,然后对截取的数据包进行分析,转换成Peach结构存储在Peach Pit文件的数据模型中。在截取数据流量的过程中,要让系统首先进行几次迭代,因为前期要进行数据连接的建立过程。通过图形界面对Trans Fuzz进行配置,可以控制要提取的元素,进行一定的人工分析,辅助完成Peach Pit文件的生成。

在Trans Fuzz中,数据分析功能的结构如图5所示。数据分析模块的输入来自客户端和服务器端的原始协议数据包,输出是一个Peach Pit中的数据模型。从图5中可以看出,数据分析过程可以分为相关但又相对独立的三个阶段:伪造数据包构造,数据分解和树形结构转换。在第一个阶段中,原始数据转化成伪造数据包。第二阶段,伪造数据包作为数据包解析过程的输入。第三阶段,来自数据包解析阶段的输出被转化成Python对象,然后提取信息写入Python配置文件。采用了模块化的思路把这三个阶段分成三个模块,这样能够在修改时相对独立,容易扩展。

在转换的过程中,需要对字符串进行切割,传统的方法在对协议进行树形构建的过程中,存在一些错误区分的情况。根据经验,采用启发式策略指导协议树的构造过程。在策略中主要是下面两种:采用特定的分隔符进行字符串分割,如括号或者指定的字符0x FFFF;查找协议字段间的关系,主要是数据字段和对应的长度。

在转换成Python Tree结构后,得到了一些不同的Data Model,这些不同的数据模型代表不同的数据命令或者执行过程,然后在后续的识别过程中,针对不同的数据模型分别进行测试,验证该过程的有效性。

(3)启发因子的抽取

采用IDA提取启发因子的具体过程如图6所示。首先对目标代码执行反汇编,然后运行自己写的Python脚本代码,分别记录不安全函数和比较常量,写入相应的配置文件。

(4)自定义测试数据生成模块实现

模糊测试框架中,采用了启发式的模糊测试用例生成方法,这样需要采用自定义的Mutator实现功能,采用启发因子得到的启发规则,主要是利用启发因子func⁃tion File.conf和constant File.conf指导数据生成过程,完成优化。对网络协议中的字段进行域划分,对不同的域根据前面的启发因子可以大致计算出取值范围,进而构造正常元素和异常元素。在发送数据时,对各个字段进行笛卡尔乘积,这样遍历输入空间,输入空间较随机方法得到了很大的缩小。在发送数据后,发送的Tracer对每个输入进行权值评估,在不断的计算过程中得到权值列表,按照指定的顺序发送到真实的目标软件。在这个过程中,输入数据生成和权值衡量是可以同时进行的。

3 网络协议模糊测试技术验证

3.1 设计框架方案和环境需求

框架的验证是在Windows下完成的。框架实现采用Peach2.3.8源代码,网路协议抓包和解析工具Wire⁃shark,调试工具Windbg,IDAPython等。

3.2 软件实验结果和分析

对模糊测试框架的评价主要从三个方面来评估:发现漏洞的效率,发现漏洞的数量和软件的易用性。

(1)发现漏洞效率分析

采用Peach自带的命令,在命令行上对filezilla.xml进行验证,具体的命令是Peach⁃afilezilla.xml,搭建Peach代理,默认端口是9000,监听服务器程序的运行情况。执行后,在另一个cmd窗口,执行命令Peachfilezilla.xml,这样Peach就会发送测试数据到服务器FTP软件上。

(2)发现漏洞数量分析

针对File Zilla FTP软件,通过分析改进前和改进后发现的漏洞类型,都发现了数据分支比较漏洞和函数参数漏洞,分别是改进前和改进后发现的USER命令漏洞,从数量上看该方法并没有遗漏基本的漏洞,在保证时间提升的情况下,基本发现了漏洞。

(3)软件的易用性分析

对于测试用例分析,主要有三种情况:改进前和改进后都存在的测试用例类型;改进前存在,改进后不存在的测试用例类型;改进前没有,改进后新增的测试用例类型。

①改进前和改进后都存在的测试用例类型:对于该测试用例,在改进前是由多个‘A’组成的字符串导致目标软件缓冲区溢出漏洞,而在改进后是由多个空格组成的字符串导致的漏洞。

②改进前存在,改进后不存在的测试用例类型:主要是采用空格字符串替代USER,然后后面是多个‘A’组成的长字符串,因为在协议域分析中USER是常量,没有对该域进行变化。

③改进前没有,改进后新增的测试用例类型:主要是USER命令和不定长的空格组成的命令,后面有不同长度的空格,这样可以测试参数的长度类型,这个在改进前的方法中是随机的,而且不用空格,是采用其他字符。

3.3 软件代码的可复用性分析

基于权值的启发式模糊测试框架不仅仅局限于Peach软件,启发因子的提取可以独立出来,指导其他模糊测试工具的数据生成模块。协议格式识别模块也是可以复用的,提供协议格式后,提供对外接口,提取工具可以根据结构获得协议解析格式。这样框架的应用范围是广泛的,具有一定的实践意义。

在本文中,主要对FTP协议进行分析,其他协议也可以通过相同的过程进行分析,主要是验证协议的不同实现是否存在漏洞。

4 结论

网络协议漏洞挖掘一直是信息安全工作者研究的热点之一,而模糊测试在漏洞挖掘方面一直占据着重要的地位。通过研究模糊测试方法在网络协议漏洞挖掘方面的应用,针对传统模糊测试方法在模糊测试数据生成和网络协议自动化识别方面的不足,本文提出了基于参数权值的启发式模糊测试框架,并对框架在具体的FTP协议上进行了实验验证和分析,证明了框架的可行性和有效性。

参考文献

[1]李伟明,张爱芳,刘建财,等.网络协议的自动化模糊测试漏洞挖掘方法[J].计算机学报,2011,34(2):242-255.

[2]杨世德,梁光明,余凯.基于ARM嵌入式系统底层漏洞挖掘技术研究[J].现代电子技术,2015,38(18):57-59.

[3]李淼,吴世忠.软件漏洞起因的分类研究[J].计算机工程,2006,32(20):163-165.

[4]李鹏,王汝传,王绍棣.格式化字符串攻击检测与防范研究[J].南京邮电大学学报(自然科学版),2011,27(5):84-89.

[5]ZHANG Zhao,WEN Qiaoyan,TANG Wen.An efficient mutation-based fuzz testing approach for detecting flaws of network protocol[C]//Proceedings of 2012 International Conference on Computer Science and Service System.Washington DC:IEEE,2012:814-817.

[6]GORBUNOV Serge,ROSENBLOOM Arnold.Auto Fuzz:automated network protocol fuzzing framework[J].International journal of computer science and network security,2014,10(8):239-245.

[7]SHIN Y,MENEELY A,WILLIAMS L,et al.Evaluating complexity,code churn,and developer activity metrics as indicators of software vulnerabilities[J].IEEE transactions on software engineering,2013,37(6):772-786.

[8]SUI A F,TANG W,HU J J,et al.An effective fuzz input generation method for protocol testing[C]//Proceedings of 201113th IEEE International Conference on Communication Technology.Jinan,China:IEEE,2011:728-731.

[9]黄奕,曾凡平,张美超.基于动态输入追踪的模糊技术[J].计算机工程,2011,37(6):44-45.

网络协议漏洞挖掘 篇2

随着两化的深度融合,工业控制系统集成了自动化技术、网络技术和信息技术,工业企业也由原来的“孤岛式”、完全封闭的状况,向互联互通方向大力发展。工业企业的信息化建设提高了企业的生产经营效率,也带来了工业控制系统信息安全的风险。最近几年,针对工业控制系统的攻击层出不穷,且攻击的深度和强度进一步增强,“震网”和“火焰”病毒肆虐,已经说明了工业控制系统信息安全问题的严重性。2015年12月,乌克兰电网被攻破,导致大面积停电;2016年1月,以色列宣称本国电网遭受了大规模信息安全攻击等,更是直指工业控制系统的脆弱性。由于工业控制系统大量应用在国家重要基础设施内,若被恶意攻击,使得控制系统崩溃,后果将不堪设想。

对于工业企业来说,及时发现信息安全风险,尽早对大量工业企业控制系统进行检测测试,发现其安全漏洞并及时加固,才可提高其自身的工控信息安全抵抗能力。但是,目前使用的工业控制标准基本参照国际标准,工控产品大部分都是国外品牌,我国政府并没有强制性的审查制度和认证体系,工控设备厂商不会完全主动对我国工业企业开放,只能采用黑盒技术,从标准协议入手,利用Fuzzing测试手段,挖掘工业控制系统和产品的安全漏洞,做到尽早发现、尽早加固。

1 Fuzzing测试

Fuzzing测试是采用黑盒测试的思想和技术,将一组随机生成的数据作为程序的输入,并监视程序的异常状态,通过记录导致异常的输入来进一步回溯程序的缺陷位置。早期的Fuzzing技术仅是应用在软件测试方面的一种简单的随机测试技术,但却有效地发现了许多程序中的错误。

一般情况下,Fuzzing工具包括一个随机数据生成器,用来产生随机二进制数据或者字符串,同时,为了协助追踪错误原因和地址,Fuzzing还引入了一些脚本用来加强测试过程的自动化,记录程序崩溃现场。为了避免产生大量无效的测试数据,参数脚本给出了引擎生成的测试用例中数据的格式、长度等与数据之间的一些关系,如SPIKE、Sulley使用的类C格式的脚本、Peach使用的XML格式的脚本。许多Fuzzing工具的数据生成方式基于变异技术,而样本文件则是这些工具用来变异测试数据的基准。基于样本文件产生的测试数据,可以大大提高测试用例的有效性,可以提高测试的代码覆盖率,可以减轻测试用例构造的复杂度[1]。图1为模糊测试阶段。

针对工业控制系统标准协议的Fuzzing测试,需要结合工业控制系统的特征,一种比较有效的方式就是对工业控制系统标准协议的格式进行分析,通过对有效字段的有效变换来增加输入的有效性。这种方式的实现主要是忽略掉协议的固定字段进而减少输入数据的产生数量,提高测试效率和测试的有效性。其次为了进一步提高数据的生成效率,可以采用多元联动的方式来生成数据,即:由原来的每次变换只变换一个字段改成每次变换同时变换多个相关的字段。这样的数据生成器可以产生更加有效的输入[2]。为了解决随机产生数据带来的状态爆炸等问题,在数据生成器中加入了数据行为和状态机,这样的生成方式超越了黑盒测试的限制,介于黑盒测试和白盒测试之间,而状态机的加入更是提高了数据之间的关联特性,使得生成测试数据的有效性大大提高。

2 MMS标准

IEC61850标准是电力系统自动化领域唯一的全球通用标准。其中MMS标准协议是基于通用网络通信平台的IEC61850标准的8-1指定协议,大量应用在电力系统自动化领域。

MMS标准是为了便于信息处理系统互联而制定的成套国际标准之一,它作为开放系统互联OSI的基本参考模型的一个应用层服务元素ASE,列入OSI环境中的应用层之中。

MMS是最大、最复杂的应用层协议标准之一,其目的是定义由MMS提供的各种服务,MMS服务由MMS协议提供。协议采用ISO8649及ISO8822分别定义关联控制服务元素ACSE和表示层的适用服务。也就是说,MMS作为OSI应用层标准,它需要使用OSI表示层(第六层)向其提供服务[3]。

3 基于Fuzzing测试的漏洞挖掘研究及问题分析

本文研究对象为电力自动化系统自动化设备中的继电保护设备,该设备是变电站二次电力系统中最重要的一个设备。当电力系统发生故障或异常工况时,可以自动将故障设备从系统中切除,或者发出信号由值班人员消除异常工况根源,以减轻或者避免设备损坏和对相邻地区供电的影响。

3.1 Fuzzing测试工具架构

Fuzzing测试工具为自主研发,该产品硬件设备为定制化开发,具有6个10/100/1 000 M业务电口、16路数字量输入接口、2路继电器输出接口、1路RJ45 console接口(RS232协议)、1路232/485(DB9)接口。

软件系统采用B/S结构,功能模块分为:控制模块、端口扫描模块、测试用例生成与加载模块、Fuzz模块、Monitor模块;测试工具还集成了数据行为学习功能的自学习模块,可根据数据情况自学习数据结构,建立数据分析库,提高Fuzzing测试算法的效率。Fuzzing测试工具涵盖Ethernet、ARP、IP、ICMP、IGMP、UDP以及TCP等常用网络协议的模糊测试,同时还支持Modbus TCP/IP、DNP3.0、Ether Net/IP-CIP、Foudation Fieldbus、IEC104、IEC-61850、MMS、PROFINET以及OPC UA等工控协议。软件系统的功能模块图如图2所示。

3.2 基于Fuzzing的漏洞挖掘过程

针对继电保护的测试采用Fuzzing测试技术,利用桥接方式,在被测设备和其上位机系统之间建立物理连接,具有监听、学习、测试等模式。

按照图3的连接示意图将被测设备和测试工具连接在一起,对被测设备进行测试时,首先对被测报文进行监听(如图4),分析得出其被测设备与上位机系统通信规约为MMS标准协议。

确定MMS标准协议后,启动测试程序,选择ARP、ICMP、TCP等状态监视器,用来监控被测设备的通信状态,同时选择MMS标准协议语法测试模块。此时被测设备与测试工具通信状态良好,如图5监视器连接状态比对图所示。

图5左侧说明在测试开始时,ARP、ICMP、TCP等状态监视器显示正常,被测设备与测试工具之间通信连接正常。启动以后,会利用Fuzzing技术进行MMS协议语法测试用例的构造。MMS-TPKT数据语法测试用例中,按照TPKT格式,版本号和保留位为固定字段,长度和数据段进行多种变异,从而生成大量格式正确的随机数据。在测试过程中,会打开一个TCP连接,发送数据包并尝试接收数据包,如果不能接收,则关闭该TCP连接,并且打开一个新的TCP连接。如果不能打开一个新的TCP连接,则表示上一条测试数据导致设备发生了异常,并且对该数据的版本号值、保留位以及相关子集的大小等进行分析,得出产生异常的原因。

在启动测试并持续一段时间后,如图5右侧所示,ARP、ICMP状态监视器发生丢包,TCP状态监视器连接中断,被测设备出现拒绝服务状态,完全无法工作。

3.3 问题回溯以及结果分析

对被测设备发生的问题进行数据分析,采用回溯方式,同时分析测试报文,如图6。

MMS协议栈是基于TCP/IP的,作为定义在开放系统互联模型(OSI)之上的应用层协议,在TCP/IP之上构建MMS通信的映射方式有2种:(1)在TCP/IP与会话层之间采用RFC1006作为MMS的适配层;(2)在MMS与TCP/IP之间直接映射。

当把ISO/OSI应用移植到TCP/IP环境中时,可采用2种方式:(1)移植每一个单独的应用,在TCP上开发本地协议;(2)通过TCP/IP提供的ISO/OSI的传输服务,此方法为所有的基于传输服务的应用提供通用方案。

ISO8073传输协议在对等层间以非连续的单元传输信息,这些单元叫作传输协议数据单元(TPDU),为了在TCP上实现TS服务,需要将TPDU封装入一个非连续的报文单元———TPKT。

由于TCP报文字节流是没有边界的,为了达到NS服务的要求,要通过一种机制实现TPDU的定界,TPKT恰好实现了这种封装。

TPKT包含报文头、TPDU两部分。通过TCP实现NS服务要实现报文的封装和拆分,以向上层提供非连续的报文而非字节流。TPKT的具体格式如表1。

分析得出,MMS标准利用了TPKT协议,而TPKT(transport services on top of the TCP)协议是应用层数据传输协议,它处于TCP协议之上,用来传输应用层数据负载,而在电力设备中,基于MMS协议的数据用来传输通信的负载数据,或者承载更高层的协议。

利用问题报文并结合MMS协议进行分析,发现如下问题:

(1)在TCP流上进行传输的数据是没有界限的,而TPKT提供了报文分界,于是当发送的报文的TPKT的length字段超过了设备缓存的长度,length字段设置为50 000,实际测试用例累计达到50 004,就可能造成设备内存溢出进而造成设备宕机,拒绝服务。

(2)在测试用例中组装了正确的协议头,但是协议负载部分填充了不符合MMS协议规约的数据,如果设备对这种报文的处理存在缺陷,可能导致协议栈崩溃,出现拒绝服务。

在回溯过程中,如果回溯的区间过短,那么Fuzzing测试工具监视器不会出现问题,只有回溯的区间达到某一个临界值后问题才会重现漏洞。由此可见,漏洞的出现和数据的积累有着直接的相关性。

4 结束语

本文介绍了Fuzzing测试技术的基本情况,分析了MMS标准协议的结构和工作特点,利用自主研发的Fuzzing测试工具,完成了针对电力设备的漏洞挖掘及分析工作,有效证明了基于Fuzzing测试技术的工业控制协议漏洞挖掘技术的可行性。同时对于工业控制系统及设备来说,被恶意攻击后拒绝服务,会给工业企业正常生产带来非常大的影响。可以利用这项研究,与工业企业、工控系统及设备生产制造商合作,开展相关测试的研究并形成测试规范和标准,在系统以及设备上线前、运行调试中、后期维护中进行测试工作,发现系统本身的漏洞,及时进行补丁升级或者实施有效防护措施,有效提升工业控制系统的信息安全性。

参考文献

[1]Michael Sutton,Adam Greene,Pedram Amini.模糊测试-强制发掘安全漏洞的利器[M].段念,赵勇,译.北京:电子工业出版社,2013.

[2]张宝峰,张罛斌,许源.基于模糊测试的网络协议漏洞挖掘[J].清华大学学报:自然科学版,2009,49(S):14-15.

网络协议漏洞挖掘 篇3

关键词:图书馆,计算机网络,TCP/IP协议,IP安全协议,漏洞,欺骗

1概述

面对信息技术的飞速发展和网络的日益普及, 图书馆数据库发展逐渐数字化和网络化, 成为图书馆文献资源的重要组成部分。与传统检索方式相对应地, 通过计算机网络构建的文献、书籍等资料的检索网络更能适应时代的发展需求。各大高校紧跟时代的脚步, 狠抓网络环境下图书馆数据库的建设和发展, 积极构建依赖于计算机网络的文献检索资源, 在高校的教学和科研中发挥了重要作用。

作为计算机网络中的基本通信协议, TCP/IP协议是在图书馆网络资源构建中发挥了不可替代的作用。总体而言, TCP/IP为一组通信协议, 可分为4层, 分别为应用层、传输层、网络层、网络接口层。其中, 应用层主要通过TELNET、FTP、SMTP、DSN等协议, 向用户提供Internet访问。传输层包括TCP和UDP两个基本协议, 主要为用户提供应用程序端到端的通信服务。网络层主要包括IP和ICMP两个基本协议, 从而确保相邻主机间通信的畅通。在TCP/IP协议的最底层工作的是网络接口层, 其工作为确保数据帧发送和接收的畅通。该协议是计算机网络通信的基础, 因此也是确保图书馆计算机网络安全所需要考虑的首要因素。

然而, 由于互连协议最初产生是为了更方便信息的交流, 设计者对安全方面很少甚至不去考虑, 致使TCP/IP协议簇本身存在着一些安全性问题;又由于该协议是计算机网络通信的基础, 针对该协议的攻击手段屡见不鲜, 这就直接导致了TCP/IP协议的安全性问题成为了计算机网络中的严重漏洞, 从而给高等院校图书馆的计算机网络安全构成严重威胁。

2 TCP/IP协议简介

到20世纪90年代, TCP/IP协议就已经发展成了计算机间通信的基础协议, 其广泛的支持性也为其在如今万物互联的大环境中发挥重要支撑作用提供了保证。

TCP/IP协议是由4层不同的协议组成的, 分别介绍如下。

a.链路层, 有时也称作数据链路层或网络接口层, 其任务是加强物理层的功能, 使其上层的通路成为一条无错的数据传输线路。

b.网络层, 主要包括报文分组、路由选择等多项功能。

c.传输层, 工作在网络层和应用层之间, 确保各段信息的正确性, 使其上层的通路不受下层硬件变化的影响。

d.应用层, 包括许多普遍应用的协议, 对不同的文件系统、不同的文本表示方法等具有兼容性。

TCP/IP协议之所以成为网络通信中的基础协议, 其主要原因在于IP协议在网络层中的不可替代的作用。其提供的报文分组、封装等操作, 为异构的互联网络提供了极大的灵活性, 但这同时也导致了诸多安全上的漏洞。

3 TCP/IP协议的漏洞分析及可能的解决途径

造成图书馆计算机操作系统漏洞的一个重要原因, 就是TCP/IP协议本身在安全上的疏忽给整个互联网带来的威胁。本节对TCP/IP协议中有关安全性可能存在的威胁进行了较为详尽的分析, 并给出了可能的针对性攻击手段。

3.1链路层安全漏洞

一般地, 链路层中的协议通常较少, 针对链路层的安全性的讨论也常常成为网络安全工作人员的盲点, 这就造成了链路层成为了计算机网络安全中的薄弱环节。由于以太网中共享信道的存在, 工作在链路层的CSMA/CD协议很容易收到不属于本台主机的数据帧, 从而造成安全威胁。解决该漏洞的对策是:网络分段, 利用交换器、动态集线器和桥等设备对数据流进行限制、加密[1]。

3.2 IP漏洞

在IP协议中, 数据包离开源地址后, 其源IP地址就几乎不再使用, 这就给其它主机假冒该地址提供了可乘之机。远程攻击者可能利用此漏洞获取局域网内部IP地址信息, 对局域网内的用户进行欺骗, 从而破坏网络连接。解决该漏洞的对策是:在路由器设置中, 对来自外部网络但与内网中IP地址相同的报文进行拦截。

3.3 ARP欺骗

ARP协议主要完成网络实体的物理地址到IP地址的转换工作。攻击者往往利用ARP欺骗来进行身份伪装或将目标机诱导到恶意网站中。当发现上网时断时续, 网速变慢甚至连内网主页都无法打开的情况时, 很可能遭受到了ARP欺骗攻击。解决该漏洞的对策是:确保合法用户的IP地址与实际物理地址MAC地址的对应关系, 从而防止非法ARP报文对终端和网关的欺骗。

3.4路由欺骗

在网络层中, 各个路由器会根据路由协议定时向周围的路由器广播路由信息, 从而更新相互的路由表。其攻击者控制路由器发送非法或伪造的路由更新报文, 就可以达到路由欺骗的目的, 从而对网络安全构成威胁。解决该漏洞的对策是:将主机设置为忽略未知来源的路由更新报文或重定向报文, 从而防止路由欺骗。

4 TCP/IP协议安全性及加强措施

针对高等院校图书馆计算机网络和TCP/IP协议的特点, 本节在网络层、传输层和应用层三个方面分析了提高TCP/IP协议安全性的方法。

4.1网络层的安全性

网络层安全协议 (NLSP) 是由国际标准化组织制定的安全协议标准。对于图书馆计算机网络安全来而言, 对网络层安全性的加强最主要的优势在于其操作的透明性, 即, 添加新的安全服务并不需要引入新的应用程序, 或是对其他通信层次和网络部件做任何改动。与此相对, 对网络层安全性的加强, 其最主要的缺点在于, 网络层对于分属不间进程的数据包不做甄别[6]。

总地来说, 网络层是非常适合进行基于主机安全服务的加强性操作的。可以利用安全协议在互联风上建立确保安全性的IP通道和虚拟私有网, 用于机密消息的传递。例如, 利用安全协议对IP包的加密和解密功能, 便可方便地强化防火墙的防卫能力和安全性[7]。RSA数据安全公司日前发起了一个倡议, 主要用于促进防火墙厂商和TCP/IP软件厂商的联合, 共同开发虚拟化的私有网络, 其目标是制定和推荐网络层的安全协议标准。针对图书馆的网络环境而言, 确保网络层的安全, 最主要是要确保网络设备的安全, 如位于网络出口的路由器、交换机等不被非法入侵或感染病毒。这就需要建立制度, 加强管理, 定期对图书馆中的网络设备进行检查维护, 对相应的软件和新设备进行更新, 对路由设备进行重启或重新配置访问控制列表, 从而确保网络层的安全性。

4.2传输层的安全性

在图书馆计算机网络应用中, 主要通过使用广义的进程间通信 (IPC) 机制来与其它层次的安全协议沟通, 从而保证信息传输的便捷高效。因此, 加强其服务安全性的一个首要的措施便是对其通信过程的安全性加以提高, 如BSD、Sockets等措施, 该措施主要通过z加强对实体的身份认证、对传输数据进行加密等来维护传输层的通信安全。在此想法的基础上, Netscape公司制定SSL安全协议, 从而建立了可靠的传输服务。

目前, 工作在传输层中安全机制, 其主要缺点在于不能确保提供服务的透明性, 需要对传输层IPC界面和应用程序进行修改。此外, 同工作在网络层的安全机制相比, 工作在传输层的安全机制可针对进程提供安全服务, 其针对性更强, 操作粒度也更细。对于图书馆计算机网络系统而言, 安装相应的传输层安全性服务是确保该层信息传输安全的重要手段, 应建立相应机制, 定期对传输层安全服务进行更新、清理, 从而确保网络安全。

4.3应用层的安全性

总体而言, 主要通过两种不同的手段强加应用层的安全性, 一种手段是对应用层上的每个软件及其协议分别进行修改。例如, 在RFC1421至1424中, IETF规定了私用强化邮件 (PEM) 来为基于SMTP的电子邮件系统提供安全服务。另一种就是通过引入监控机制, 对工作在应用层的软件进行监督和防范。对于图书馆计算机网络系统而言, 由于使用环境开放, 面临的网络环境也更为复杂, 更需要建立更好的监督和防范机制, 严格控制软件的安装, 最好在主机上加装系统还原卡, 从而确保主机环境相对安全。同时, 需要对主机安装防火墙、网站防篡改系统、入侵检测系统等, 对使用人员进行相应的安全培训, 建立相应的健全安全管理机制。

5结论

近年来, 随着网络的不断发展, 高等院校图书馆计算机网络资源也顺应时代潮流进入了网络化发展的阶段。各大高校分别采取了一系列措施, 加速推进了高校图书馆网络资源的发展。TCP/IP通信协议是网络通信的基础协议, 也是确保网络安全的重要环节。因此, 对TCP/IP通信协议安全性的研究应着力创新求实, 只有这样才会在高等院校图书馆计算机网络资源建议日益发展的今天, 为其安全提供强有力的技术支撑。

参考文献

[1]吴钰峰, 刘泉, 李方敏.网络安全中的密码技术研究及其应用[J].真空电子技术, 2004.

[2]杨义先.网络安全理论与技术[M].北京:北京人民邮电出版社, 2003.

[3]李学诗.计算机系统安全技术[M].武汉:华中理工大学出版社, 2003.

[4]Bedford T, Cooke R.Probabilistic Risk Analysis[M].Cambridge University Press, 2001.

[5]Peltier T R.Information Security Risk Analysis[M].Auerbach Publishtions, 2001.

[6]Gary.Wright, W.Richard Stevens, TCP/IP Illustrated[M].机械工业出版社, 2000.

上一篇:技术内生下一篇:学习需求与建议