下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、服务器软件漏洞测试程序的设计与实现 摘要:服务器软件漏洞是导致网络不安全的重要因素,当前还没有什么方法能保证服务器软件没有漏洞,因此漏洞测试在网络安全方面占有重要地位。本文给出了一个通用漏洞测试程序的设计与实现,设计方案采用脚本、样本包及动态链接库技术,使得测试程序与协议无关,提高了通用性。关键词:网络安全; 漏洞测试; 样本包; 动态链接库网络安全是当前的热门话题,互联网安全性差的重要表现是服务器软件大多存在漏洞,黑客的入侵行为大多是利用服务器漏洞实现的。现在,每天都有新的服务器软件出现,但这些软件基本上都存在
2、着漏洞,按照传统的测试方法,依靠测试人员去分析代码来完成测试,显然是满足不了需求的。网络服务器软件的漏洞测试是一个十分重要的问题,设计一个较为自动化、通用的漏洞测试工具是十分必要的。一般漏洞研究方法是先熟悉软件功能,分析服务协议,检查程序代码,然后再推测什么情况下会出现漏洞。这是一个工作量很大的过程,而且开发出来的测试程序也是针对特定软件,不能通用。我们的测试软件要做到通用,就要找出网络服务器软件的共同特性,采用易于配置,易于扩展的结构。1.网络服务的共性及漏洞产生原因网络服务基本上都是基于客户机-服务器模型。
3、 请求数据包2.测试程序的设计方案为了通用,测
4、试程序不能过多涉及到具体协议,而测试数据包的格式又要符合具体协议,这是一个矛盾。我们采用样本包和动态链接库的方法来解决这个矛盾。样本包,即有代表性的数据包,依www服务为例,请求数据包“GET /pub/index.htm HTTP/1.1”可以很好的代表一类请求,就可以作为一个样本包。如果只对这个样本包中的某个数据域进行变换,则生成数据包的格式一般也是满足www服务通信协议的。对于一个具体服务,它的协议体现在通信所用的数据包中,我们可以收集一个足以体现该服务协议的样本包集,采用一个脚本来描述这些样本包,要测试不同的服务软件,只须编写与之对应的脚本即可。测试程序只对脚本进行处理,不必与具体协议
5、相关,也就实现了通用性。整个测试程序的系统框图如图2所示,测试数据包生成模块处理脚本,生成测试数据包,发送给服务器;响应信息分析模块分析返回信息,并将分析结果保存在记录文件中。 脚本 记录文件
6、 图22.1脚本脚本是对样本包集的描述,服务器软件的协议体现在脚本中。测试数据包就是对样本包的某个域进行变换后得到的数据包。为了便于程序处理,定义了几个关键字:SAMPS , 样本包开始;ITEM , 数据项; SAMPE ,样本包结束; RESULT ,返回结果特征串;“ ; ”,注释,如果一行以 “;” 打头,则这一行是注释行。脚本中依次列出各个样本包,每个样本包分成几个数据域,每个数据域用一个数据项来表示。GET /pub/index.htm HTTP/1.
7、1的脚本描述为:SAMPSITEM COMM GET ITEM PATH /pub/ ITEM FILE index.htmITEM VER HTTP/1.1RESULT SAMPE每个数据项由三部分组成,以第一个数据项ITEMS COMMI GET 为例: ITEMS,关键字,标识数据项开始(每个数据项占一行,因此无须关键字标识数据项结束);COMM:数据项类型名,数据项类型名决定了它的变换处理函数;GET: 数据项的内容。2.2测试数
8、据包生成模块 测试数据包生成模块是整个测试工具的关键所在,只有生成最可能导致服务器出问题的请求数据包,才能发现服务器软件的漏洞所在。但又不能产生过多的数据包,使得测试效率太低。从统计测试的角度来说,就是要生成最可能导致服务器出错的数据包的样本集。 测试数据包生成模块对脚本的处理过程为:从脚本中读出一个样本包,脚本处理函数构造描述样本包的链表,链表的结构为:typedef struct RULELIST rulenode* rulelisthead; rulenode* rulelisten
9、d;RULELIST;样本包中的每一项为链表中的一个节点rulenode;结点rulenode的定义为 typedef struct _rulenod char type8; /数据项类型名char item128; /数据项内容 _rulenode *nextnode; /指向下一个结点的指针rulenode;构造好链表后,对该样本包里一个数
10、据项的内容进行变换,而保持其它数据项不变,生成测试数据包,发送给服务器,分析返回信息,将测试结果写入记录文件,处理完该样本包的所有数据项后,释放链表,读出下一样本包,重复上面的处理过程,直至脚本结束。模块中对数据项内容进行变换的处理函数做成DLL动态链接库,调用时根据数据项类型名进行调用。这样使得该测试程序易于扩展,如果被测试软件的数据包中有原测试程序未定义的数据项类型,只需在脚本中加入新的数据项类型, 同时将对应的处理函数做成DLL动态链接库的形式,拷贝至测试程序目录下即可,而原有的程序一点也不必改动。2.3响应信息分析模块 响应信息分析模块主要对返回信息进行特征串搜
11、索,记录下服务器软件出现异常时的情况。特征串定义在脚本中,特征串搜索采用Boyer-Moore字符串匹配算法.如果返回信息中有匹配的字符串,就意味着服务器可能出错.例如,IIS 返回 “The remote procedure call failed ” ,就是RPC 服务出现错误。由于很多情况下返回信息很难预料,即便采用人工智能的方法也难判断服务器到底出了什么问题。所以响应信息分析模块只是检测异常,将异常记录下来,进一步的分析判断还需要人工介入。 3.实现中的关键问题测试程序用vc+6.0写成,在实现中有几个关键问题:3.1 样本包的获取样本包可
12、以通过分析网络服务器软件的协议,手工设置;也可以通过截包程序来获得样本包。要想得到好的测试效果,这两种方法要综合应用。另一个问题是特殊字符的处理,如“r”,”n”等,测试程序利用它们作为分隔符,但样本包中也可能包含这些字符。对于这类字符,在脚本中用“%”后加特殊字符的ASCII码来表示,”r”即为“%0D”。从脚本中读取特殊字符后的转换函数为 .if(s= = '% ' ) /字符串s 中s为%,si+1,si+2为特殊字符的ASCII码 strj=(isdigit(s
13、i+1) ? (si+1-'0'):(toupper(si+1)-'A'+10)*16 +(isdigit(si+2) ? (si+2-'0'):(toupper(si+2)-'A'+10); /转换后存入strj i+=2; j+;3.2数据项的变换函数这是影响测试工具效果最重要的因素,在某种程度上也是与
14、协议相关的,具体的实现要根据经验,甚至分析协议,一定要变换出各种特殊情况。例如,对文件名,需要测试文件名过长、文件名为空、文件名中包含特殊字符等,对基于 Windows的系统,尤其要测试系统对不同类型文件(如有 .exe , .asp , .php, .htr等扩展名的文件)的响应情况,IIS服务器的许多漏洞都与此有关。变换函数的原型为 int TEANSER(FILE* fp,char* item);一个数据项有很多种变换结果,为了实现方便,处理时,一次得出一个数据项的所有变换结果,写入临时文件,再从临时文件中读出变换后所得的数据项内容,组包后发送给服务器。这样变换函数不需要保持状态,编程起
15、来就容易多了。变换函数做成DLL动态连接库形式,如果有新的数据项类型,只需在脚本中定义新的数据项类型名,编写对应的DLL库,处理时,处理函数会自动调用它来进行变换处理。实现自动调用的主要代码如下:.typedef VOID (*MYPROC)(FILE*,char*); /函数原型FILE* fp /临时文件指针;. if (!deffunc(idx->type)
16、 / idx为指向当前结点的指针,deffunc判断当前数据项类型是否 / 已在测试工具中定义,如已定义,返回真。 / 如果数据类型未定义
17、60; HINSTANCE h; CString str;MYPROC proc; If (h=LoadLibrary(idx->type) = = NULL) / 装入对应的动态链接库CString str;
18、; str.Format("cant load the library %s.dll", idx->type); MessageBox(str, "ERROR"); proc=(MYPROC)GetProcAddress(h, idx->type); /取得变换函数地址(proc)(fp, idx->item);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设项目招投标管理指南
- 车间-6S-管理制度
- 2026年剧本杀运营公司员工安全知识培训管理制度
- 2025年智能座舱自动驾驶行业创新报告
- 2026年5G通信行业网络切片应用报告及边缘计算发展趋势报告
- 2026年量子传感器高精度测量技术应用创新报告
- 2026年及未来5年中国大气污染防治设备市场供需格局及未来发展趋势报告
- 2026年及未来5年中国偏转线圈行业发展运行现状及投资战略规划报告
- 空军文职面试题目及答案
- 交警辅警面试题目及答案
- 青鸟消防JB-QB-JBF5012火灾报警控制器使用说明书V1.3
- 第一学期政治组教研工作总结
- 1春《寒假新启航五年级》参考答案
- 猪肉配送投标方案(完整技术标)
- GM公司过程控制计划审核表
- GB/T 6185.2-20162型全金属六角锁紧螺母细牙
- GB/T 26218.1-2010污秽条件下使用的高压绝缘子的选择和尺寸确定第1部分:定义、信息和一般原则
- GB/T 18934-2003中国古典建筑色彩
- GB/T 15114-1994铝合金压铸件
- 心理健康试卷分析及分析报告
- GB 19195-2003普及(娱乐)类卡丁车通用技术条件
评论
0/150
提交评论