◆修扬 张月红
网络协议漏洞分析测试平台在实验教学中的应用
◆修扬 张月红
(上海电子信息职业技术学院 上海 201411)
网络是搭起信息系统的桥梁,网络的安全性是整个信息系统安全的主要环节,只有网络系统安全可靠,才能保证信息系统的安全可靠。网络系统也是非法入侵者主要攻击的目标,协议的开放性是开放分布或互联网络存在的不安全因素的主要体现。信息安全专业的学生在平时的学习过程中往往更多的依赖现成的攻防工具,但是却不清楚工具运行所依赖的网络协议,学生在学习攻防知识的时候仅仅是停留在使用工具的层面,但是却没有更深入地理解“工具为什么要这要用”、“参数为什么要这样设置”,因此开发网络协议漏洞分析平台具有现实的教学意义,能够帮助学生更深入地理解协议运行原理以及协议攻防技术。
协议开放性;网络协议;协议漏洞分析
网络协议是计算机之间为了互联共同遵守的规则,目前的互联网络所采用的主流协议TCP/IP,由于在其设计初期人们过分强调其开发性和便利性,没有仔细考虑其安全性,因此很多的网络协议都存在严重的安全漏洞,给Internet留下了许多安全隐患。另外,有些网络协议缺陷造成的安全漏洞还会被黑客直接用来攻击受害者系统。目前大部分的攻防工具都是以命令行或者图形化界面的形式呈现,并没有将工具所依赖的协议原理性东西呈现出来,学生在学习TCP/IP协议模型的时候,往往听不懂;通过攻防平台学习攻防知识时,学生大多是依赖现成攻防工具,只知道要把相应的命令记一下就可以了,只需要记住命令参数的配置就行了,但是并不知道该命令执行成功的原因、以及这些工具能够实现攻击的原理,不清楚工具所依赖的网络协议原理,仅仅是停留在用的层面,而不知道“为什么要这样用”。
图1 协议分析平台总体框架
平台的主要思想就是基于规则库的条件下,对网络协议数据进行分析,分析相关协议漏洞,并对协议漏洞进行复现,最终生成协议分析报告。
2.2.1协议嗅探技术
现成的嗅探器有很多,它们在功能以及设计上也有不同,一般情况下,大多数的嗅探器都能分析TCP/IP协议,在网络嗅探的工具中,pcap是目前公认的较好用的嗅探器,pcap(packet capture)由捕获网络流量的应用程序编程接口(API)组成[1]。类Unix的系统主要是在libpcap库中实现pcap,而Windows系统则是使用名为WinPcap的libpcap端口。libpcap和WinPcap提供了许多开源和商业网络工具的数据包捕获和过滤引擎,包括协议分析器(数据包嗅探器)、网络监视器、网络入侵检测系统、流量生成器和网络测试器。libpcap和WinPcap还支持将捕获的数据包保存到文件中,并读取包含保存的数据包的文件;使用libpcap或WinPcap可以编写应用程序,就能够很好的捕获网络流量并对其进行分析,或使用相同的分析代码读取保存的捕获数据并进行分析。通过研究pcap协议嗅探器的网络接入方式,嗅探实现原理以及嗅探器使用方法,将嗅探器以交换机端口镜像的方式接入网络,以供流量数据包捕获、统计和协议分析。研究相关协议分析技术,将嗅探器获得的流量包统计数据解码为可阅读的形式,通过对网络协议的深入了解,根据学习需求设置数据包的字段、如MAC地址、IP地址、端口信息等,以实现网络攻击仿真。
2.2.2基于Fuzzing测试的协议漏洞挖掘
漏洞挖掘技术过程可以分为白盒测试、灰盒测试和黑盒测试[2],白盒测试是在获得源代码码的基础上实施的,但是一般情况下,源代码很难获取得到,因此白盒测试只适用于开源软件的源代码测试;在不能对源代码进行漏洞挖掘的情况下,只能采用对目标代码进行分析的灰盒测试技术,灰盒测试技术是采用逆向工程将目标代码的二进制转成汇编代码,通过反汇编的方式进行漏洞测试。M. Sutton等人提出了模糊测试技术,该技术是一种黑盒测试方法,该技术又称为Fuzzing测试技术[3],该技术是一种发现安全漏洞的有效的测试方法,模糊测试将随机的坏数据插入程序,观察程序是否能容忍杂乱输入,模糊测试是不合逻辑的,只是产生杂乱数据攻击程序,采用模糊测试攻击应用程序可发现其他采用逻辑思维来测试很难发现的安全漏洞。
Fuzzing测试技术不需要源代码的参与,并且可以自动完成目标识别、该技术包括识别测试目标、识别输入、生成模糊测试数据、执行模糊测试数据、监视异常、确定可利用性等流程。其中识别测试目标意思是识别目标程序中所使用的协议;识别用户输入包括数据包、端口等发送到目标程序的数据;等到确定输入数据后,根据目标应用程序所需的数据格式生成fuzzing测试数据,fuzzing测试数据生成将直接影响测试结果;在执行fuzzing大量的测试用例之后,并不是任何一个测试用例都会导致目标应用程序崩溃,因此要监视程序的异常反应;一旦某个测试用例使得目标应用程序发生异常,该技术将通过异常日志或者模糊数据判断目标程序崩溃时暴露漏洞的可利用性。
2.3.1协议数据包捕获模块
数据包的捕获和解析是实现后续协议分析的基础,数据包将包括自身平台获取的数据包报文以及第三方平台接入的数据包报文,该模块可以直接将报文数据发送给后续的协议分析模块进行分析,也可以将报文数据存储为PCAP格式数据等待后续分析。
2.3.2协议规则库更新模块
协议分析需要协议漏洞知识库的支持,但是基于规则匹配的漏洞识别技术只能识别已有的漏洞,而不能识别新型的漏洞,因此需要及时更新已有的漏洞知识库。本平台的规则库包含现有的协议规则库、第三方流量经过漏洞扫描工具得到检测结果生成规则库,未知漏洞经过人工分析生成的规则库以及Fuzzing模糊测试后生成的规则库。
2.3.3协议数据分析模块
协议报文分析模块是影响整个工程效率最关键的部分,其主要功能是分析报文捕获模块中捕获的报文数据,该模块中最重要的部分就是要清楚“对协议中的哪些字段”进行分析,分析结果将会利用相应的格式进行描述。
对于信息安全专业的学生来说,仅仅依靠工具是万万不行的,网络安全中由于协议的开放性,TCP/IP协议不提供安全保证,网络协议的开放性方便了网络互连,同时也为非法入侵者提供了方便,非法入侵者可以冒充合法用户进行破坏,篡改信息,窃取报文内容。对协议知识的学习,要求学生在分析TCP/IP协议的基础上,要充分理解不同层的协议通信原理,以及对协议通信的参数进行配置修改,该平台能够对整个协议攻击过程进行记录,方便学生对整个攻击过程的了解和回溯,在充分掌握攻击原理后,才能对协议攻击采取相应的措施。
[1]张春泳. 基于WinPcap的网络嗅探器的设计与实现[D]. 吉林大学.
[2]王希忠,黄俊强. 漏洞挖掘技术研究[J].网络空间安全, 2014(06):32-35.
[3]黄影,邹颀伟,范科峰. 基于Fuzzing测试的工控网络协议漏洞挖掘技术[J]. 通信学报,2018,039(0z2):181-188.
[4]丁岚.高等院校图书馆计算机网络安全与防范——TCP/IP网络协议漏洞分析及解决途径[J].黑龙江科技信息,2016(16):161-162.