中国韩国日本在线观看免费,A级尤物一区,日韩精品一二三区无码,欧美日韩少妇色

當前位置:主頁 > 科技論文 > 計算機論文 >

關(guān)于服務器軟件漏洞測試程序的設(shè)計與實現(xiàn)

發(fā)布時間:2014-07-29 21:02

網(wǎng)絡(luò)安全是當前的熱門話題,互聯(lián)網(wǎng)安全性差的重要表現(xiàn)是服務器軟件大多存在漏洞,黑客的入侵行為大多是利用服務器漏洞實現(xiàn)的,F(xiàn)在,筆耕論文新浪博客,每天都有新的服務器軟件出現(xiàn),但這些軟件基本上都存在著漏洞,按照傳統(tǒng)的測試方法,依靠測試人員去分析代碼來完成測試,顯然是滿足不了需求的。網(wǎng)絡(luò)服務器軟件的漏洞測試是一個十分重要的問題,設(shè)計一個較為自動化、通用的漏洞測試工具是十分必要的。
一般漏洞研究方法是先熟悉軟件功能,分析服務協(xié)議,檢查程序代碼,然后再推測什么情況下會出現(xiàn)漏洞。這是一個工作量很大的過程,而且開發(fā)出來的測試程序也是針對特定軟件,不能通用。我們的測試軟件要做到通用,就要找出網(wǎng)絡(luò)服務器軟件的共同特性,采用易于配置,易于擴展的結(jié)構(gòu)。

1.網(wǎng)絡(luò)服務的共性及漏洞產(chǎn)生原因
網(wǎng)絡(luò)服務基本上都是基于客戶機-服務器模型。
                              
 請求數(shù)據(jù)包

 響應數(shù)據(jù)報

  圖1 
                  
客戶機發(fā)出請求數(shù)據(jù)包,服務器返回響應數(shù)據(jù)包,即Request-Response方式。服務的共性就在于客戶機與服務器通過數(shù)據(jù)包進行通信。每個服務都有自己的應用層協(xié)議。服務器軟件的應用層協(xié)議決定了服務器對請求數(shù)據(jù)包里的內(nèi)容怎么解釋,所以協(xié)議也就體現(xiàn)在數(shù)據(jù)包中。服務器軟件的漏洞一般是因為服務器對異常的請求數(shù)據(jù)包不能正確響應。對于異常的請求數(shù)據(jù)包,像數(shù)據(jù)包里有太長的文件名或文件目錄路徑包含特殊字符等,如果服務器軟件不能正確處理,就可能導致緩沖區(qū)溢出、泄露服務器重要信息、拒絕服務等問題,使得入侵者有機可乘。如IIS服務器的UNICODE編碼漏洞,對于未打補丁的IIS服務器,如果入侵者輸入類似的請求,IIS服務器會將文件路徑中的%255c解釋為“/”,繞過系統(tǒng)安全策略,在服務器上執(zhí)行dir 命令,并將結(jié)果返回給客戶端。利用這種方法,可在服務器上執(zhí)行任何系統(tǒng)命令,能輕而易舉的控制整個服務器。我們的測試程序就是要能自動生成各種可能導致服務器不正常工作的請求數(shù)據(jù)包,并分析返回的響應信息,找出漏洞所在。

2.測試程序的設(shè)計方案
為了通用,測試程序不能過多涉及到具體協(xié)議,而測試數(shù)據(jù)包的格式又要符合具體協(xié)議,這是一個矛盾。我們采用樣本包和動態(tài)鏈接庫的方法來解決這個矛盾。樣本包,即有代表性的數(shù)據(jù)包,依www服務為例,請求數(shù)據(jù)包“GET /pub/index.htm HTTP/1.1”可以很好的代表一類請求,就可以作為一個樣本包。如果只對這個樣本包中的某個數(shù)據(jù)域進行變換,則生成數(shù)據(jù)包的格式一般也是滿足www服務通信協(xié)議的。對于一個具體服務,它的協(xié)議體現(xiàn)在通信所用的數(shù)據(jù)包中,我們可以收集一個足以體現(xiàn)該服務協(xié)議的樣本包集,采用一個腳本來描述這些樣本包,要測試不同的服務軟件,只須編寫與之對應的腳本即可。測試程序只對腳本進行處理,不必與具體協(xié)議相關(guān),也就實現(xiàn)了通用性。整個測試程序的系統(tǒng)框圖如圖2所示,測試數(shù)據(jù)包生成模塊處理腳本,生成測試數(shù)據(jù)包,發(fā)送給服務器;響應信息分析模塊分析返回信息,并將分析結(jié)果保存在記錄文件中。

腳本

記錄文件
                                圖2
2.1腳本
腳本是對樣本包集的描述,服務器軟件的協(xié)議體現(xiàn)在腳本中。測試數(shù)據(jù)包就是對樣本包的某個域進行變換后得到的數(shù)據(jù)包。
為了便于程序處理,定義了幾個關(guān)鍵字:
SAMPS , 樣本包開始;ITEM , 數(shù)據(jù)項;  SAMPE ,樣本包結(jié)束; RESULT ,返回結(jié)果特征串;
“ ; ”,注釋,如果一行以 “;” 打頭,則這一行是注釋行。
腳本中依次列出各個樣本包,每個樣本包分成幾個數(shù)據(jù)域,每個數(shù)據(jù)域用一個數(shù)據(jù)項來表示。
GET /pub/index.htm HTTP/1.1的腳本描述為:

SAMPS
ITEM COMM GET
    ITEM  PATH  /pub/
    ITEM  FILE  index.htm
ITEM  VER  HTTP/1.1
RESULT …
  SAMPE

每個數(shù)據(jù)項由三部分組成,以第一個數(shù)據(jù)項ITEMS COMMI GET 為例: ITEMS,關(guān)鍵字,標識數(shù)據(jù)項開始(每個數(shù)據(jù)項占一行,因此無須關(guān)鍵字標識數(shù)據(jù)項結(jié)束);COMM:數(shù)據(jù)項類型名,數(shù)據(jù)項類型名決定了它的變換處理函數(shù);GET: 數(shù)據(jù)項的內(nèi)容。

2.2測試數(shù)據(jù)包生成模塊
 測試數(shù)據(jù)包生成模塊是整個測試工具的關(guān)鍵所在,只有生成最可能導致服務器出問題的請求數(shù)據(jù)包,才能發(fā)現(xiàn)服務器軟件的漏洞所在。但又不能產(chǎn)生過多的數(shù)據(jù)包,使得測試效率太低。從統(tǒng)計測試的角度來說,就是要生成最可能導致服務器出錯的數(shù)據(jù)包的樣本集。
測試數(shù)據(jù)包生成模塊對腳本的處理過程為:從腳本中讀出一個樣本包,腳本處理函數(shù)構(gòu)造描述樣本包的鏈表,鏈表的結(jié)構(gòu)為:
typedef struct RULELIST
{
     rulenode* rulelisthead;
     rulenode* rulelistend;
}RULELIST;
樣本包中的每一項為鏈表中的一個節(jié)點rulenode;
結(jié)點rulenode的定義為
   typedef struct _rulenod
{  
  char  type[8];        //數(shù)據(jù)項類型名
char item[128];       //數(shù)據(jù)項內(nèi)容
  _rulenode *nextnode;  //指向下一個結(jié)點的指針
}rulenode;

構(gòu)造好鏈表后,對該樣本包里一個數(shù)據(jù)項的內(nèi)容進行變換,而保持其它數(shù)據(jù)項不變,生成測試數(shù)據(jù)包,發(fā)送給服務器,分析返回信息,將測試結(jié)果寫入記錄文件,處理完該樣本包的所有數(shù)據(jù)項后,釋放鏈表,讀出下一樣本包,重復上面的處理過程,直至腳本結(jié)束。
模塊中對數(shù)據(jù)項內(nèi)容進行變換的處理函數(shù)做成DLL動態(tài)鏈接庫,調(diào)用時根據(jù)數(shù)據(jù)項類型名進行調(diào)用。這樣使得該測試程序易于擴展,如果被測試軟件的數(shù)據(jù)包中有原測試程序未定義的數(shù)據(jù)項類型,只需在腳本中加入新的數(shù)據(jù)項類型, 同時將對應的處理函數(shù)做成DLL動態(tài)鏈接庫的形式,拷貝至測試程序目錄下即可,而原有的程序一點也不必改動。

2.3響應信息分析模塊
   響應信息分析模塊主要對返回信息進行特征串搜索,記錄下服務器軟件出現(xiàn)異常時的情況。特征串定義在腳本中,特征串搜索采用Boyer-Moore字符串匹配算法.如果返回信息中有匹配的字符串,就意味著服務器可能出錯.例如,IIS 返回 “The remote procedure call failed ” ,就是RPC 服務出現(xiàn)錯誤。由于很多情況下返回信息很難預料,即便采用人工智能的方法也難判斷服務器到底出了什么問題。所以響應信息分析模塊只是檢測異常,將異常記錄下來,進一步的分析判斷還需要人工介入。    
 

 



本文編號:6512

資料下載
論文發(fā)表

本文鏈接:http://www.lk138.cn/kejilunwen/jisuanjikexuelunwen/6512.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶87fca***提供,本站僅收錄摘要或目錄,作者需要刪除請E-mail郵箱bigeng88@qq.com