• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于NDIS中間層驅(qū)動(dòng)的隱蔽通信研究與實(shí)現(xiàn)*

      2014-05-22 02:25:56陸幼驪解海濤
      通信技術(shù) 2014年6期
      關(guān)鍵詞:重傳中間層服務(wù)端

      鄢 明,陸幼驪,解海濤

      (海軍指軍學(xué)院浦口分院,江蘇 南京210000)

      0 引言

      隨著網(wǎng)絡(luò)防護(hù)手段日趨嚴(yán)密,一般情況下防火墻都會(huì)對(duì)數(shù)據(jù)包進(jìn)行分析、選擇和過(guò)濾[1]。因此,如果要實(shí)現(xiàn)隱蔽通信,就必須首先穿透防火墻[2]。傳統(tǒng)計(jì)算機(jī)隱蔽通信方式大多數(shù)是基于HOOK的,不能從根本上解決通信數(shù)據(jù)包被防火墻截獲丟棄的問(wèn)題。NDIS中間層驅(qū)動(dòng)技術(shù)常用于防火墻和抓包軟件[3],數(shù)據(jù)包的發(fā)送和接收都需要經(jīng)過(guò)中間層驅(qū)動(dòng),因此將NDIS中間層驅(qū)動(dòng)技術(shù)應(yīng)用于隱蔽通信,對(duì)于穿透防火墻比較理想。

      為從根本上解決了防火墻穿透問(wèn)題,最終實(shí)現(xiàn)隱蔽通信,文中提出了一種基于NDIS中間層驅(qū)動(dòng)技術(shù)的隱蔽通信方法,并實(shí)現(xiàn)了一個(gè)通信例程。

      1 NDIS中間層驅(qū)動(dòng)

      NDIS中間層驅(qū)動(dòng)位于協(xié)議驅(qū)動(dòng)和NDIS小端口驅(qū)動(dòng)之間,在NDIS中起著轉(zhuǎn)發(fā)上層驅(qū)動(dòng)程序送來(lái)的數(shù)據(jù)包,并將其向下層驅(qū)動(dòng)程序發(fā)送的接口功能[4]。NDIS中間層驅(qū)動(dòng)層次關(guān)系如圖1所示。

      當(dāng)前多數(shù)WINDOWS防火墻采用TDI層截取、分析數(shù)據(jù)包的技術(shù)[5]。而NDIS中間層驅(qū)動(dòng)可以直接截獲來(lái)自網(wǎng)絡(luò)適配器來(lái)的數(shù)據(jù)包,比常見(jiàn)的WINDOWS防火墻更加底層[6],因此,采用NDIS中間層驅(qū)動(dòng)技術(shù)實(shí)現(xiàn)通信,可以達(dá)到穿透防火墻通信的目的。

      圖1 NDIS框架Fig.1 NDIS framework

      2 隱蔽通信實(shí)現(xiàn)方式

      2.1 隱蔽通信數(shù)據(jù)流

      基于NDIS中間層驅(qū)動(dòng)的隱蔽通信由3部分組成,服務(wù)端、NDIS中間層驅(qū)動(dòng)和客戶端。數(shù)據(jù)流如圖2所示。

      圖2 基于NDIS中間層驅(qū)動(dòng)的隱蔽通信數(shù)據(jù)流程Fig.2 Convert communication data flow diagram based on NDIS intermediate driver

      NDIS中間層驅(qū)動(dòng)主要完成網(wǎng)絡(luò)適配器的綁定,截獲所有數(shù)據(jù)包,并且對(duì)所截獲的數(shù)據(jù)包進(jìn)行解析,如果是客戶端發(fā)送過(guò)來(lái)的自定義協(xié)議通信數(shù)據(jù)包,則將它保存,并且激活服務(wù)端的數(shù)據(jù)等待事件,通知服務(wù)端程序來(lái)取數(shù)據(jù)。

      服務(wù)端程序工作在應(yīng)用層,程序初始化后,等待中間層驅(qū)動(dòng)激活等待數(shù)據(jù)事件,如果事件被激活,則通過(guò)讀取共享內(nèi)存數(shù)據(jù)的方式,獲出驅(qū)動(dòng)中的通信數(shù)據(jù)包,然后進(jìn)行解密、分析,再執(zhí)行相應(yīng)的指令,最后將執(zhí)行結(jié)果加密后通過(guò)隱蔽通信通道發(fā)送給遠(yuǎn)程的客戶端。

      客戶端程序工作在應(yīng)用層,程序初始化后,等待應(yīng)用層的發(fā)送給服務(wù)端的數(shù)據(jù),當(dāng)接收到發(fā)送數(shù)據(jù)后,用自定義協(xié)議對(duì)數(shù)據(jù)進(jìn)行封裝,并且對(duì)通信數(shù)據(jù)進(jìn)行加密,最后發(fā)送給服務(wù)端,由服務(wù)端進(jìn)行數(shù)據(jù)包的解析處理。

      2.2 隱蔽通信設(shè)計(jì)

      NDIS中間層驅(qū)動(dòng)常被用于Windows防火墻設(shè)計(jì),文中通過(guò)分析NDIS中間層驅(qū)動(dòng)的原理,提出一種基于NDIS中間層驅(qū)動(dòng)的隱蔽通信方式,并詳細(xì)論述了實(shí)現(xiàn)過(guò)程。

      2.2.1 NDIS中間層驅(qū)動(dòng)的收發(fā)數(shù)據(jù)包原理

      NDIS中間層驅(qū)動(dòng)主要利用PtReceive和PtReceivePacket完成數(shù)據(jù)包的接收。數(shù)據(jù)包接收原理如圖3所示。

      圖3 NDIS中間層驅(qū)動(dòng)接收數(shù)據(jù)包原理Fig.3 Principle diagram of NDIS receives packets

      當(dāng)?shù)讓域?qū)動(dòng)通知接收數(shù)據(jù)包時(shí),NDIS中間層驅(qū)動(dòng)就用PtReceive或PtReceivePacket來(lái)獲取完整的數(shù)據(jù)包。

      NDIS中間層驅(qū)動(dòng)主要利用MPSend和MPSend-Packet完成數(shù)據(jù)包的發(fā)送[7]。數(shù)據(jù)包發(fā)送原理如圖4所示。

      圖4 NDIS中間層驅(qū)動(dòng)發(fā)送數(shù)據(jù)包原理Fig.4 Principle diagram of NDIS Sending Packets

      當(dāng)協(xié)議驅(qū)動(dòng)收到數(shù)據(jù)包后,調(diào)用NdisSend向下層發(fā)送數(shù)據(jù)報(bào)文,中間層驅(qū)動(dòng)調(diào)用 MPSend或MPSendPacket函數(shù)將數(shù)據(jù)包繼續(xù)向下發(fā)送。

      2.2.2 隱蔽通信的實(shí)現(xiàn)原理

      常見(jiàn)隱蔽通信技術(shù)有進(jìn)程隱藏、端口利用、DLL注入和NDIS HOOK技術(shù),基于NDIS中間層驅(qū)動(dòng)的隱蔽通信主要通過(guò)中間層驅(qū)動(dòng)的數(shù)據(jù)包接收和發(fā)送原理實(shí)現(xiàn)。驅(qū)動(dòng)首先綁定網(wǎng)卡,截獲網(wǎng)絡(luò)數(shù)據(jù)包,再對(duì)數(shù)據(jù)包進(jìn)行分析,如果是自定義協(xié)議數(shù)據(jù)包,則將其保存下來(lái),不往上層協(xié)議傳送;如果是普通數(shù)據(jù)包,則正常傳遞。具體做法是:修改PtReceive和Pt-ReceivePacket函數(shù),添加數(shù)據(jù)包分析功能。NDIS中間層驅(qū)動(dòng)首先通過(guò)PtReceive或PtReceivePacket接收數(shù)據(jù)包,在收到數(shù)據(jù)包后,進(jìn)行解析,如果是自己定義的數(shù)據(jù)包,則直接截獲,并申請(qǐng)一段內(nèi)存,進(jìn)行保存,將原來(lái)的數(shù)據(jù)包丟棄,再通過(guò)消息機(jī)制和共享內(nèi)存的方法,將數(shù)據(jù)包傳遞給應(yīng)用層的服務(wù)端,等待服務(wù)端的響應(yīng)數(shù)據(jù)包,當(dāng)收到服務(wù)端的響應(yīng)數(shù)據(jù)包后,直接調(diào)用NDIS的發(fā)包函數(shù)NdisSend向下層的小端口程序發(fā)送數(shù)據(jù)包,這樣利用我們自己設(shè)計(jì)的一套發(fā)送和接收數(shù)據(jù)包機(jī)制完成隱蔽通信。

      2.2.3 自定義可靠報(bào)文傳輸協(xié)議

      (1)報(bào)文格式

      基于NDIS中間層驅(qū)動(dòng)的隱蔽通信使用自定義的可靠傳輸協(xié)議。報(bào)文格式如圖5所示。

      圖5 隱蔽通信可靠傳輸協(xié)議報(bào)文格式Fig.5 Reliable transport protocol message format of convert communication

      報(bào)文頭部大小為10個(gè)字節(jié),各字段作用如下:

      協(xié)議標(biāo)志用于區(qū)分協(xié)議的類(lèi)型,定義“HD”的ASCⅡ碼來(lái)表示NDIS隱蔽通信協(xié)議,NDIS中間層驅(qū)動(dòng)截獲數(shù)據(jù)包后,通過(guò)分析數(shù)據(jù)包協(xié)議標(biāo)志位來(lái)判斷數(shù)據(jù)包的類(lèi)型,并根據(jù)判斷結(jié)果進(jìn)行后面的處理。

      命令類(lèi)型用于區(qū)分發(fā)送給服務(wù)端的命令類(lèi)型,“-c”表示cmd命令,“-f”表示文件傳輸命令,此標(biāo)志位可以進(jìn)行擴(kuò)展。服務(wù)端根據(jù)命令類(lèi)型,調(diào)用相應(yīng)的模塊,執(zhí)行相應(yīng)的命令。

      數(shù)據(jù)包類(lèi)型用于區(qū)分?jǐn)?shù)據(jù)包類(lèi)型,其中“1”表示命令數(shù)據(jù)包,“0”表示普通通信數(shù)據(jù)包。如果是命令數(shù)據(jù)包,NDIS中間層驅(qū)動(dòng)將其轉(zhuǎn)發(fā)給服務(wù)端執(zhí)行命令,如果是通信數(shù)據(jù)包則將數(shù)據(jù)包進(jìn)行正常的傳輸。

      傳輸結(jié)束標(biāo)志用于表示數(shù)據(jù)傳輸結(jié)束,為“1”時(shí)表示數(shù)據(jù)傳輸結(jié)束。

      數(shù)據(jù)傳輸總長(zhǎng)度用于記錄傳輸?shù)臄?shù)據(jù)總長(zhǎng)度,當(dāng)接收方實(shí)際接收數(shù)據(jù)的總長(zhǎng)度與數(shù)據(jù)傳輸總長(zhǎng)度標(biāo)志位的數(shù)值一樣時(shí),則表示傳輸完成,此時(shí)要將傳輸結(jié)束標(biāo)志設(shè)置為“1”。

      數(shù)據(jù)包序列用于記錄數(shù)據(jù)包的傳輸序列,建立數(shù)據(jù)包確認(rèn)重傳機(jī)制。

      數(shù)據(jù)包大小用于記錄當(dāng)前數(shù)據(jù)包的數(shù)據(jù)字段長(zhǎng)度。

      數(shù)據(jù)段存儲(chǔ)用于傳輸數(shù)據(jù)。

      (2)數(shù)據(jù)包封裝流程

      文中采用基于UDP協(xié)議擴(kuò)展的自定義協(xié)議進(jìn)行通信,數(shù)據(jù)包的封裝逐層進(jìn)行封裝。流程如圖6所示。

      圖6 數(shù)據(jù)包封裝流程Fig.6 Flow chart of packet encapsulation

      通信數(shù)據(jù)產(chǎn)生后,首先加上NDIS中間層傳輸協(xié)議的首部,然后向下層傳輸,在UDP層加上UDP協(xié)議首部,再往下傳輸,在IP層加上IP協(xié)議首部,最后加上以太網(wǎng)首部,封裝成以太網(wǎng)幀。

      (3)確認(rèn)重傳機(jī)制

      由于網(wǎng)絡(luò)的不穩(wěn)定性,為了保證通信的穩(wěn)定性,必須要建立數(shù)據(jù)傳輸?shù)拇_認(rèn)重傳機(jī)制。由于是隱蔽通信,通信數(shù)據(jù)量不大,所以文中采用在串行傳輸?shù)幕A(chǔ)上實(shí)現(xiàn)序列確認(rèn)重傳的機(jī)制,具體設(shè)計(jì)為:在每次通信中,數(shù)據(jù)包發(fā)送方在發(fā)包后,等待確認(rèn)報(bào)文,接收方接收到數(shù)據(jù)包后發(fā)一個(gè)數(shù)據(jù)包接收確認(rèn)包,發(fā)送方收到數(shù)據(jù)包接收確認(rèn)包后,再進(jìn)行下一個(gè)數(shù)據(jù)包的發(fā)送,如果沒(méi)有收到確認(rèn)包則重發(fā)。

      假設(shè)A向B發(fā)包,A發(fā)送數(shù)據(jù)包后等待B的確認(rèn)報(bào)文,如果A收到確認(rèn)報(bào)文,檢測(cè)確認(rèn)報(bào)文的包序列是否比A發(fā)送包序列大1,如果是,則繼續(xù)發(fā)送數(shù)據(jù)包,直到A收到結(jié)束報(bào)文,否則重發(fā)。具體流程如圖7所示。

      圖7 數(shù)據(jù)包確認(rèn)重傳機(jī)制流程Fig.7 Flow chat of packets confirmation and retransmission mechanism

      (4)超時(shí)重傳及流量控制

      為保證傳輸?shù)姆€(wěn)定性,文中設(shè)計(jì)了超時(shí)重傳及流量控制機(jī)制,具體做法是:維護(hù)一個(gè)重傳定時(shí)器,以進(jìn)行超時(shí)重傳,考慮到本系統(tǒng)的通信數(shù)據(jù)量較小,且對(duì)數(shù)據(jù)處理的實(shí)時(shí)性要求高,設(shè)計(jì)一個(gè)動(dòng)態(tài)計(jì)算超時(shí)時(shí)間間隔的算法代價(jià)高,對(duì)本系統(tǒng)的意義不大,因此文中將重傳定時(shí)器設(shè)定為固定值10 s,當(dāng)超過(guò)這個(gè)時(shí)間,接收方仍沒(méi)有收到確認(rèn)報(bào)文,則認(rèn)為上一個(gè)數(shù)據(jù)包沒(méi)有收到,需要進(jìn)行重傳。同時(shí)考慮到通信時(shí)的網(wǎng)絡(luò)鏈路狀態(tài),當(dāng)超時(shí)重傳的次數(shù)過(guò)多時(shí),需要暫停通信,間隔一段時(shí)間后再重新傳送數(shù)據(jù),文中通過(guò)維護(hù)一個(gè)重傳計(jì)數(shù)器,當(dāng)通信數(shù)據(jù)包發(fā)生重傳則加1,重傳的次數(shù)大于5次時(shí),進(jìn)行流量控制,暫停通信,間隔60 s后重新發(fā)送當(dāng)前數(shù)據(jù)包。

      2.2.4 客戶端設(shè)計(jì)

      客戶端采用B/S架構(gòu),需要解決通信數(shù)據(jù)的傳輸和接收問(wèn)題。

      客戶端采用Windows Socket機(jī)制實(shí)現(xiàn)數(shù)據(jù)包的接收和發(fā)送,通信協(xié)議使用UDP。客戶端數(shù)據(jù)包發(fā)送和接收流程如圖8所示。

      圖8 客戶端數(shù)據(jù)包發(fā)送和接收流程Fig.8 Flow chart of client data packets sending and receiving

      當(dāng)客戶端需要發(fā)送數(shù)據(jù)時(shí),首先建立Socket,需要設(shè)定的主要參數(shù)有通信IP地址和通信端口號(hào),然后對(duì)通信數(shù)據(jù)進(jìn)行封裝,加上NDIS通信協(xié)議的首部,生成最終的發(fā)送數(shù)據(jù)包,最后直接調(diào)用Windows Socket的發(fā)送API進(jìn)行發(fā)送??蛻舳税l(fā)送完數(shù)據(jù)后,等待遠(yuǎn)程的服務(wù)端響應(yīng)數(shù)據(jù)包,當(dāng)接收到服務(wù)端的數(shù)據(jù)包后,對(duì)數(shù)據(jù)包進(jìn)行解析,在客戶端顯示解析的結(jié)果,完成整個(gè)通信數(shù)據(jù)的發(fā)送和接收。

      2.2.5 服務(wù)端設(shè)計(jì)

      服務(wù)端主要是與和中間層驅(qū)動(dòng)進(jìn)行通信,需要解決和中間層驅(qū)動(dòng)的交互問(wèn)題,指令的獲取和執(zhí)行問(wèn)題。

      (1)驅(qū)動(dòng)交互

      服務(wù)端主要采用消息機(jī)制實(shí)現(xiàn)與NDIS中間層驅(qū)動(dòng)的交互。主要消息有:取數(shù)據(jù)消息、客戶端數(shù)據(jù)到來(lái)消息。具體的消息處理流程如圖9所示。

      圖9 消息處理流程Fig.9 Message processing flow chart

      NDIS中間層驅(qū)動(dòng)初始化消息后,循環(huán)等待客戶端的數(shù)據(jù)包,當(dāng)接收到客戶端數(shù)據(jù)包后,激活客戶端數(shù)據(jù)到來(lái)消息,通知服務(wù)端來(lái)取數(shù)據(jù),并且等待服務(wù)端的取數(shù)據(jù)消息。

      服務(wù)端初始化消息后,循環(huán)等待NDIS中間層驅(qū)動(dòng)激活客戶端的數(shù)據(jù)到來(lái)消息,當(dāng)消息被激活后,向驅(qū)動(dòng)取來(lái)自客戶端的指令數(shù)據(jù),并且激活取數(shù)據(jù)消息。

      (2)指令的獲取與執(zhí)行

      服務(wù)端與NDIS中間層驅(qū)動(dòng)的通信采用共享內(nèi)存的方式,當(dāng)NDIS中間層驅(qū)動(dòng)收到客戶端數(shù)據(jù)包后,將其拷貝至共享內(nèi)存中,服務(wù)端通過(guò)訪問(wèn)共享內(nèi)存獲得客戶端的指令數(shù)據(jù)。取指令流程如圖10所示。

      圖10 服務(wù)端取指令流程Fig.10 Flow chart of server instruction fetching

      服務(wù)端的指令執(zhí)行采用CMDShell和管道技術(shù)實(shí)現(xiàn)。具體流程如圖11所示。

      圖11 命令執(zhí)行流程Fig.11 Flow chart of command execution

      文中采用Windows提供的CMDShell執(zhí)行命令。CMDShell是用戶與操作系統(tǒng)對(duì)話的一個(gè)接口,客戶端發(fā)送來(lái)的命令通過(guò) CMDShell告訴操作系統(tǒng)執(zhí)行。

      管道技術(shù)是操作系統(tǒng)常用的進(jìn)程間通信機(jī)制[8],它是一塊內(nèi)存緩沖區(qū),進(jìn)程間可通過(guò)管道進(jìn)行通信。文中采用匿名管道實(shí)現(xiàn)命令執(zhí)行結(jié)果的傳輸。

      服務(wù)端獲取客戶端的命令數(shù)據(jù)包后,首先對(duì)數(shù)據(jù)包進(jìn)行解析,獲取命令,然后調(diào)用Windows CMDShell執(zhí)行命令,再創(chuàng)建管道,將命令寫(xiě)入管道,獲取最終的命令執(zhí)行結(jié)果。

      (3)數(shù)據(jù)包發(fā)送

      服務(wù)端的數(shù)據(jù)包封裝和數(shù)據(jù)包的發(fā)送,采用驅(qū)動(dòng)通信和數(shù)據(jù)包封裝技術(shù)實(shí)現(xiàn)。發(fā)送流程如圖12所示。

      文中采用的驅(qū)動(dòng)通信技術(shù)主要是利用共享內(nèi)存機(jī)制和IRP機(jī)制完成。服務(wù)端采用的數(shù)據(jù)包封裝技術(shù)與客戶端的數(shù)據(jù)包封裝原理一樣,采用逐層封裝的方法。

      圖12 服務(wù)端數(shù)據(jù)包發(fā)送流程Fig.12 Flow chart of server sending packets

      2.2.6 NDIS 中間層驅(qū)動(dòng)設(shè)計(jì)

      NDIS中間層驅(qū)動(dòng)設(shè)計(jì)是文中的核心內(nèi)容,主要完成數(shù)據(jù)包的截獲、數(shù)據(jù)包的分析處理和數(shù)據(jù)包的接收發(fā)送,使用NDIS5.0進(jìn)行開(kāi)發(fā)。

      (1)數(shù)據(jù)包分析處理

      數(shù)據(jù)包的分析處理包括數(shù)據(jù)的截獲、分析、處理。數(shù)據(jù)包的截獲功能,采用數(shù)據(jù)包的拷貝和丟棄技術(shù)實(shí)現(xiàn)。流程如圖13所示。

      圖13 數(shù)據(jù)包截獲流程Fig.13 Flow chart of data packets interception

      NDIS驅(qū)動(dòng)綁定網(wǎng)卡后,可獲得綁定網(wǎng)卡的所有通信數(shù)據(jù)包,通過(guò)分析數(shù)據(jù)包中的協(xié)議標(biāo)志位,來(lái)判斷是否是隱蔽通信數(shù)據(jù)包,如果是隱蔽通信數(shù)據(jù)包,則將數(shù)據(jù)包拷貝至驅(qū)動(dòng)的數(shù)據(jù)鏈表,通知服務(wù)端程序取數(shù)據(jù),并將包標(biāo)志設(shè)為丟棄。如果不是,則不做處理,正常向上傳遞。

      數(shù)據(jù)包的分析和處理主要采用協(xié)議解析技術(shù)和消息機(jī)制實(shí)現(xiàn)。流程如圖14所示。

      圖14 數(shù)據(jù)包分析處理流程Fig.14 Flow chart of packet analysis

      中間層驅(qū)動(dòng)獲得客戶端的通信數(shù)據(jù)包后,首先根據(jù)NDIS通信協(xié)議進(jìn)行解析,獲得包類(lèi)型大小,再將數(shù)據(jù)包存入共享內(nèi)存,激活客戶端的數(shù)據(jù)到來(lái)消息,通知服務(wù)端取數(shù)據(jù),并且等待取數(shù)據(jù)消息的激活。

      (2)數(shù)據(jù)包接收發(fā)送

      NDIS中間層驅(qū)動(dòng)的數(shù)據(jù)包接收發(fā)送采用共享內(nèi)存、IRP請(qǐng)求實(shí)現(xiàn)。流程如圖15所示。

      圖15 NDIS中間層驅(qū)動(dòng)接收發(fā)送數(shù)據(jù)包流程Fig.15 Flow chart of NDIS receiving and sending packet

      當(dāng)服務(wù)端有數(shù)據(jù)向客戶端發(fā)送時(shí),首先服務(wù)端將數(shù)據(jù)包寫(xiě)入共享內(nèi)存,并且向NDIS中間層驅(qū)動(dòng)發(fā)IRP請(qǐng)求,NDIS中間層驅(qū)動(dòng)響應(yīng)IRP請(qǐng)求,從共享內(nèi)存中取出發(fā)送數(shù)據(jù)包,最后通過(guò)調(diào)用NDIS的發(fā)包函數(shù)NdisSend向下層的小端口程序發(fā)送數(shù)據(jù)包。

      3 測(cè)試與結(jié)果

      3.1 測(cè)試環(huán)境

      文中測(cè)試環(huán)境需要主機(jī)6臺(tái),其中:服務(wù)端主機(jī)5臺(tái),客戶端主機(jī)一臺(tái),具體配置如表1所示。

      表1 測(cè)試環(huán)境配置Table 1 Test environment configuration table

      客戶端主機(jī)分別安裝ZonAlarm、金山衛(wèi)士、Comodo防火墻、Mcafee個(gè)人防火墻和Mcafee專(zhuān)業(yè)版防火墻。服務(wù)端與客戶端主機(jī)處于同一網(wǎng)段。

      3.2 測(cè)試方法

      測(cè)試采用對(duì)比測(cè)試法,即通過(guò)將基于NDIS中間層驅(qū)動(dòng)的隱蔽通信程序與一個(gè)基于SOCKET通信的例程進(jìn)行對(duì)比測(cè)試。

      首先采用驅(qū)動(dòng)安裝工具或手動(dòng)安裝的方法,先將驅(qū)動(dòng)安裝在服務(wù)端主機(jī)上,再將服務(wù)端程序拷貝到服務(wù)端主機(jī)上,并在服務(wù)端主機(jī)安裝測(cè)試用的防火墻,將防火墻設(shè)置為禁止服務(wù)端程序連接網(wǎng)絡(luò),然后在另一臺(tái)客戶端主機(jī)安裝客戶端程序,最后在客戶端發(fā)送命令給服務(wù)端,檢測(cè)通信情況并記錄結(jié)果。

      在服務(wù)端和客戶端主機(jī)分別安裝基于SOCKET通信的服務(wù)端程序和客戶端程序,防火墻禁止服務(wù)端程序訪問(wèn)網(wǎng)絡(luò),相互發(fā)送通信數(shù)據(jù),檢測(cè)通信情況并記錄結(jié)果。

      3.3 測(cè)試結(jié)果

      通過(guò)對(duì)比記錄的通信情況,分析得到測(cè)試結(jié)果如表2所示。

      表2 測(cè)試結(jié)果Table 2 Test results table

      測(cè)試表明,在安裝有金山衛(wèi)士的計(jì)算機(jī),采用傳統(tǒng)SOCKET通信和文中介紹的基于NIDS中間層驅(qū)動(dòng)的通信方式,服務(wù)端和客戶端都能夠進(jìn)行正常通信。而對(duì)于其它工作在TDI層的防火墻,采用文中所述的隱蔽通信方式,可以穿透防火墻進(jìn)行通信,如果采用傳統(tǒng)SOCKET的通信方式,則通信完全被防火墻阻斷。

      4 結(jié)語(yǔ)

      文中采用基于NDIS中間層驅(qū)動(dòng)技術(shù)實(shí)現(xiàn)的隱蔽通信方式,相對(duì)于常見(jiàn)Windows防火墻在Windows網(wǎng)絡(luò)體系中的所處的工作層次要低,因此,隱蔽性較高、穿透能力也較好。此外,NDIS中間層驅(qū)動(dòng)技術(shù)不但可應(yīng)用于隱蔽通信,而且可應(yīng)用于木馬通信、防火墻技術(shù),對(duì)于信息安全和防火墻技術(shù)的研究有一定的啟示作用。

      [1]王正.網(wǎng)絡(luò)安全中的防火墻技術(shù)探討[J].通信技術(shù),2008,41(08):218-220.WANG Zheng.Firewall Technology in Computer Network Security[J].Communications Technology,2008,41(08):218-220.

      [2]宋志剛,郭林.基于NdisHook的木馬隱蔽信道模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(15):3573 -3576.SONG Zhi- gang,GUO Lin.The Hidden Communication Model of NDIS Hook Based on Trojan[J].Computer Engineering and Design,2007,28(15):3573 -3576.

      [3]范莉萍.基于NDIS技術(shù)的個(gè)人防火墻設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2008(08):259 -260.FAN Li- ping.The Design and Implementation of NDIS Based on Personnel Firewall[J].Computer Applications and Software,2008(08):259-260.

      [4]譚文,楊瀟,邵堅(jiān)磊.Windows內(nèi)核安全編程[M].北京:電子工業(yè)出版社,2009:436-442.TAN Weng,YANG Xiao,SHAO Jian - lei.The Secure Programing of Windows Kernel[M].Bei Jing,Publishing House Of Electronics Industry,2009:436 -442.

      [5]劉福超,倪佑生,付素明.個(gè)人防火墻穿透技術(shù)研究[J].信息安全與信息保密,2009(09):94-95.LIU Fu-chao,NI You-sheng,F(xiàn)U Su-ming.A Aersonal Firewall Penetration Technology Research[J].Information Security and Communications Privacy,2009(09):94 -95.

      [6]劉文濤.基于NDIS驅(qū)動(dòng)的網(wǎng)絡(luò)數(shù)據(jù)捕獲研究[J].電腦知識(shí)與技術(shù),2010,6(03):571 -572.LIU Wen-tao.Network Data Capture Research based on NDIS Driver[J].Computer Knowledge and Technology,2010,6(03):571 -572.

      [7]石磊,常桂然,曹斌.NDIS技術(shù)在個(gè)人信息安全方面的應(yīng)用[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2002(05):21-24.SHI Lei,CHANG Gui- ran,CAO Bing.Application of NDIS on Personal Information Security[J].Network Security Technology and Application,2002(05):21-24.

      [8]周超,虞慧群.Windows命名管道技術(shù)的分析與實(shí)現(xiàn)[J].電腦與信息技術(shù),2007,15(06):18 -20.ZHOUChao,YU Hu - qun.Analysis and Implementation of Windows Named Pipe Technology[J].Computer and Information Technology,2007,15(06):18 -20.

      猜你喜歡
      重傳中間層服務(wù)端
      面向異構(gòu)網(wǎng)絡(luò)的多路徑數(shù)據(jù)重傳研究?
      云存儲(chǔ)中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
      新時(shí)期《移動(dòng)Web服務(wù)端開(kāi)發(fā)》課程教學(xué)改革的研究
      在Windows Server 2008上創(chuàng)建應(yīng)用
      鎳基高溫合金TLP擴(kuò)散焊中間層材料研究進(jìn)展
      焊接(2016年8期)2016-02-27 13:05:10
      B含量對(duì)IC10合金TLP焊接用中間層材料及接頭組織的影響
      焊接(2016年6期)2016-02-27 13:04:55
      數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進(jìn)
      社會(huì)中間層建設(shè)與活動(dòng)機(jī)制網(wǎng)研究
      柵格中間層數(shù)據(jù)在數(shù)字地形分析中的應(yīng)用
      MPTCP中一種減緩緩存阻塞的重傳策略
      蓬莱市| 西畴县| 吴川市| 睢宁县| 无棣县| 邵东县| 阿坝县| 什邡市| 武宁县| 民和| 金寨县| 东光县| 正定县| 望谟县| 新余市| 兴城市| 湖口县| 泽库县| 厦门市| 读书| 河西区| 时尚| 公安县| 平原县| 绵竹市| 台北县| 梓潼县| 视频| 新密市| 英山县| 石棉县| 自治县| 驻马店市| 东明县| 钟山县| 苍溪县| 梅河口市| 泰兴市| 蛟河市| 安平县| 天长市|