◎91977部隊(duì) 崔振利
網(wǎng)絡(luò)服務(wù)器是用來(lái)提供一定網(wǎng)絡(luò)服務(wù)的計(jì)算機(jī),和個(gè)人用計(jì)算機(jī)在使用方面有較大區(qū)別,服務(wù)器通常24小時(shí)不關(guān)機(jī),正常工作情況下一般無(wú)人對(duì)其進(jìn)行操作。木馬是黑客用來(lái)遠(yuǎn)程控制計(jì)算機(jī)的軟件工具,由于網(wǎng)絡(luò)服務(wù)器具有24小時(shí)不關(guān)機(jī)且通常無(wú)人操作特性,所以網(wǎng)絡(luò)服務(wù)器是黑客比較喜歡遠(yuǎn)程控制的機(jī)器。提高網(wǎng)絡(luò)服務(wù)器安全,防止網(wǎng)絡(luò)服務(wù)器被黑客攻擊利用,是關(guān)系到單位甚至是國(guó)家安全的重要問(wèn)題。
網(wǎng)絡(luò)服務(wù)器對(duì)外開(kāi)監(jiān)聽(tīng)端口提供網(wǎng)絡(luò)服務(wù)。網(wǎng)絡(luò)端口相當(dāng)于單位的門(mén)戶,門(mén)戶提供人員物品出入,端口提供網(wǎng)絡(luò)數(shù)據(jù)出入。黑客獲得計(jì)算機(jī)的控制權(quán),即網(wǎng)絡(luò)入侵,通常有兩種方式,主動(dòng)攻擊和被動(dòng)攻擊。主動(dòng)攻擊包括端口掃描、口令探測(cè)、漏洞溢出等多種方式,漏洞溢出是比較常見(jiàn)且有效的一種網(wǎng)絡(luò)攻擊方式,通過(guò)網(wǎng)絡(luò)端口向目標(biāo)計(jì)算機(jī)發(fā)送特殊處理過(guò)的網(wǎng)絡(luò)數(shù)據(jù),目標(biāo)計(jì)算機(jī)在處理網(wǎng)絡(luò)數(shù)據(jù)時(shí),特殊構(gòu)造的網(wǎng)絡(luò)數(shù)據(jù)利用計(jì)算機(jī)漏洞獲得執(zhí)行,進(jìn)而獲得計(jì)算機(jī)控制權(quán)限。被動(dòng)攻擊是通過(guò)向目標(biāo)發(fā)送包含木馬病毒的電子郵件、或者發(fā)送指向包含木馬病毒網(wǎng)站的網(wǎng)絡(luò)連接等方式,當(dāng)人們不小心運(yùn)行電子郵件中包含的木馬病毒或者點(diǎn)擊含有病毒的網(wǎng)絡(luò)連接,如計(jì)算機(jī)存在漏洞、且沒(méi)有安裝殺毒軟件或殺毒軟件功能不完善時(shí),計(jì)算機(jī)即可被木馬控制。
木馬會(huì)在被控制計(jì)算機(jī)和控制計(jì)算機(jī)之間建立一個(gè)網(wǎng)絡(luò)連接,通常是TCP連接,木馬控制人員通過(guò)該連接向被控制計(jì)算機(jī)發(fā)送網(wǎng)絡(luò)數(shù)據(jù),木馬解析后,完成文件傳輸、執(zhí)行命令、屏幕察看等操作。功能完善的木馬,能夠完成計(jì)算機(jī)本地能夠完成的幾乎所有操作,且這些操作通常是在計(jì)算機(jī)后臺(tái)完成的,即使有人正在操作此計(jì)算機(jī)也不易察覺(jué)。
殺毒軟件能夠查殺大部分木馬病毒,但特殊制作的木馬軟件,殺毒軟件往往不能發(fā)現(xiàn)。網(wǎng)絡(luò)防火墻一般對(duì)外部進(jìn)入內(nèi)部的網(wǎng)絡(luò)數(shù)據(jù)包過(guò)濾嚴(yán)格,對(duì)由內(nèi)向外的數(shù)據(jù)包過(guò)濾不嚴(yán)格。功能完善的木馬一般采用http隧道技術(shù),將網(wǎng)絡(luò)數(shù)據(jù)包封裝成http數(shù)據(jù)格式,網(wǎng)絡(luò)防火墻一般難以識(shí)別攔截。
木馬控制是通過(guò)建立被控制計(jì)算機(jī)和控制計(jì)算機(jī)之間的網(wǎng)絡(luò)連接實(shí)現(xiàn)的,根據(jù)TCP連接發(fā)起方不同,可分成正向連接和反向連接兩種。正向連接是木馬軟件在被控制計(jì)算機(jī)開(kāi)監(jiān)聽(tīng)端口,黑客在自己的計(jì)算機(jī)運(yùn)行木馬控制端,直接向監(jiān)聽(tīng)端口發(fā)起連接。反向連接是黑客在自己的計(jì)算機(jī)或黑客控制的某臺(tái)計(jì)算機(jī)上開(kāi)監(jiān)聽(tīng)端口,木馬向該端口建立網(wǎng)絡(luò)連接。網(wǎng)絡(luò)連接建立后,黑客即可遠(yuǎn)程操控目標(biāo)計(jì)算機(jī)。目前主流木馬通常采用反向連接方式。
黑客實(shí)現(xiàn)遠(yuǎn)程控制計(jì)算機(jī)的主要環(huán)節(jié)有兩個(gè),一是成功網(wǎng)絡(luò)入侵,再一個(gè)是建立網(wǎng)絡(luò)連接實(shí)現(xiàn)遠(yuǎn)程控制。網(wǎng)絡(luò)入侵方式很多,難以杜絕,防護(hù)手段主要有殺毒軟件、防火墻、入侵檢測(cè)等。這里從另一環(huán)節(jié)入手,阻止木馬與外部建立網(wǎng)絡(luò)連接。
網(wǎng)絡(luò)安全配置思想是開(kāi)放最小的網(wǎng)絡(luò)權(quán)限,即如果該網(wǎng)絡(luò)服務(wù)器是用來(lái)提供網(wǎng)頁(yè)瀏覽服務(wù)的,則只對(duì)外開(kāi)放80端口即可,其它端口都不應(yīng)該對(duì)外提供。Windows默認(rèn)對(duì)外提供135、139、445端口,這幾個(gè)端口提供遠(yuǎn)程登錄、網(wǎng)絡(luò)共享、網(wǎng)上鄰居等功能,同時(shí)給計(jì)算機(jī)安全帶來(lái)極大隱患,弱口令掃描曾經(jīng)是黑客獲取肉雞的一個(gè)重要手段。目前許多殺毒軟件都自動(dòng)屏蔽這幾個(gè)端口,網(wǎng)絡(luò)服務(wù)商一般也在交換機(jī)等核心位置過(guò)濾這些端口數(shù)據(jù)。
由于操作系統(tǒng)設(shè)計(jì)的目的是方便網(wǎng)絡(luò)連接,所以從不禁止計(jì)算機(jī)向外發(fā)起網(wǎng)絡(luò)連接。如果計(jì)算機(jī)不能對(duì)外發(fā)起連接,則人們將不能執(zhí)行上網(wǎng)瀏覽網(wǎng)頁(yè)等各項(xiàng)操作。網(wǎng)絡(luò)服務(wù)器對(duì)外開(kāi)放特定端口提供網(wǎng)絡(luò)服務(wù),一般無(wú)人操作,是可以禁止其對(duì)外發(fā)起網(wǎng)絡(luò)連接的。如果能夠利用技術(shù)手段禁止網(wǎng)絡(luò)服務(wù)器對(duì)外發(fā)起網(wǎng)絡(luò)連接,則反向連接功能木馬就不能與外部建立網(wǎng)絡(luò)連接,服務(wù)器即使中了木馬,黑客也無(wú)法對(duì)其遠(yuǎn)程控制。
驅(qū)動(dòng)程序通常實(shí)現(xiàn)對(duì)某硬件設(shè)備的支持,驅(qū)動(dòng)在功能上往往是分層的,最底層驅(qū)動(dòng)與硬件直接相關(guān),上一層驅(qū)動(dòng)再與底層驅(qū)動(dòng)交互,還可以存在更上一層驅(qū)動(dòng)。過(guò)濾驅(qū)動(dòng)是在不影響上層和下層接口的情況下,在Windows系統(tǒng)內(nèi)核中加入新的層,從而不需要修改上層的軟件或者下層的真實(shí)驅(qū)動(dòng)程序,就加入了新的功能。通常根據(jù)其目的意義進(jìn)行命名,插入在文件操作驅(qū)動(dòng)之間的叫做文件過(guò)濾驅(qū)動(dòng),插入在磁盤(pán)操作驅(qū)動(dòng)之間的叫磁盤(pán)過(guò)濾驅(qū)動(dòng),插入在網(wǎng)絡(luò)驅(qū)動(dòng)之間的叫做網(wǎng)絡(luò)過(guò)濾驅(qū)動(dòng)。
過(guò)濾驅(qū)動(dòng)能夠獲得上層發(fā)往下層的數(shù)據(jù),處理后再發(fā)送給下層,能夠獲得下層發(fā)送到上層的數(shù)據(jù),處理后再發(fā)送給上層。過(guò)濾驅(qū)動(dòng)的下層一定是驅(qū)動(dòng),上層可以是驅(qū)動(dòng),也可以是應(yīng)用程序。所謂處理可以是加密、解密,也可以是通過(guò)、丟棄,還可以是偽造欺騙,可根據(jù)開(kāi)發(fā)需求實(shí)現(xiàn)。
網(wǎng)絡(luò)最底層的驅(qū)動(dòng)是網(wǎng)卡驅(qū)動(dòng),再上一層是集中各個(gè)網(wǎng)卡驅(qū)動(dòng)的小端口驅(qū)動(dòng),微軟命名為miniport驅(qū)動(dòng),再上層是網(wǎng)絡(luò)協(xié)議層驅(qū)動(dòng)。微軟提供兩種類(lèi)型網(wǎng)絡(luò)過(guò)濾驅(qū)動(dòng),分別叫TDI過(guò)濾驅(qū)動(dòng)和NDIS過(guò)濾驅(qū)動(dòng)。
TDI全稱(chēng)Transport Driver Interface,它指的是WindowsNT操作系統(tǒng)中各種運(yùn)輸層協(xié)議(如UDP、TCP等)與接收軟件之間的接口層。從TDI驅(qū)動(dòng)插入位置看,比較接近應(yīng)用層,對(duì)應(yīng)用層控制容易實(shí)現(xiàn),對(duì)較底層監(jiān)控不容易實(shí)現(xiàn)。
NDIS全稱(chēng)Network Driver Interface Specification,是網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范的簡(jiǎn)稱(chēng)。它橫跨傳輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層,定義了網(wǎng)卡或網(wǎng)卡驅(qū)動(dòng)程序與上層協(xié)議驅(qū)動(dòng)程序之間的通信接口規(guī)范,屏蔽了底層物理硬件的不同,使上層的協(xié)議驅(qū)動(dòng)程序可以和底層任何型號(hào)的網(wǎng)卡通信。NDIS為網(wǎng)絡(luò)驅(qū)動(dòng)程序創(chuàng)建了一個(gè)完整的開(kāi)發(fā)環(huán)境,只需調(diào)用NDIS函數(shù),而不用考慮操作系統(tǒng)的內(nèi)核以及與其他驅(qū)動(dòng)程序的接口問(wèn)題,從而使得網(wǎng)絡(luò)驅(qū)動(dòng)程序可以從與操作系統(tǒng)的復(fù)雜通訊中分離,極大地方便了網(wǎng)絡(luò)驅(qū)動(dòng)程序的編寫(xiě)。另外,利用NDIS的封裝特性,可以專(zhuān)注于一層驅(qū)動(dòng)的設(shè)計(jì),減少了設(shè)計(jì)的復(fù)雜性,同時(shí)易于擴(kuò)展驅(qū)動(dòng)程序棧。
制作基于NDIS的網(wǎng)絡(luò)過(guò)濾驅(qū)動(dòng),過(guò)濾規(guī)則為:對(duì)網(wǎng)卡接收到的數(shù)據(jù)包,非TCP格式包直接丟棄,對(duì)TCP格式包,判斷其接收端口是否為設(shè)定端口,如果是設(shè)定端口則正常通過(guò),否則丟棄。對(duì)發(fā)往網(wǎng)卡的數(shù)據(jù)包,非TCP格式包直接丟棄,對(duì)TCP格式包,判斷其發(fā)送端口是否為設(shè)定端口,如果是設(shè)定端口則正常通過(guò),否則丟棄。
由上邊過(guò)濾規(guī)則可以看出,網(wǎng)絡(luò)服務(wù)器提供的正常服務(wù)不受影響,但服務(wù)器對(duì)外發(fā)起網(wǎng)絡(luò)連接是允許的,本地的其它端口也不能接收到網(wǎng)絡(luò)數(shù)據(jù)。
設(shè)定端口可以是多個(gè),如一臺(tái)服務(wù)器同時(shí)提供網(wǎng)頁(yè)服務(wù)和數(shù)據(jù)庫(kù)訪問(wèn),則可以設(shè)定開(kāi)放網(wǎng)頁(yè)服務(wù)80端口和數(shù)據(jù)庫(kù)對(duì)應(yīng)端口。如果想保留網(wǎng)上鄰居等功能,可以開(kāi)放139、445端口,網(wǎng)絡(luò)服務(wù)商一般在核心交換機(jī)過(guò)濾這些端口數(shù)據(jù),能夠阻止外網(wǎng)遠(yuǎn)程登錄。這里建議遵循開(kāi)放最小網(wǎng)絡(luò)權(quán)限原則,開(kāi)放最少的網(wǎng)絡(luò)端口。
硬件防火通常價(jià)格較高,不是所有單位網(wǎng)絡(luò)都配備有硬件防火墻。
硬件防火墻配置比較復(fù)雜,安裝使用后,網(wǎng)絡(luò)正常情況下一般不再對(duì)其進(jìn)行配置。
硬件防火墻可以對(duì)單個(gè)IP進(jìn)行配置,但通常不這么做。配置某個(gè)IP,所有該IP向外發(fā)起的TCP連接全部禁止,外部只能與該IP特定端口建立連接,這樣就實(shí)現(xiàn)了本過(guò)濾驅(qū)動(dòng)功能。
本過(guò)濾驅(qū)動(dòng)相當(dāng)于軟件防護(hù)墻,設(shè)定端口即可,安裝配置方便。計(jì)算機(jī)安裝本過(guò)濾驅(qū)動(dòng)后,計(jì)算機(jī)不能向外發(fā)起網(wǎng)絡(luò)連接,用戶不能用該計(jì)算機(jī)瀏覽網(wǎng)頁(yè)、下載電子郵件,同樣情況,即使該計(jì)算機(jī)中了木馬,木馬也不能與外部建立網(wǎng)絡(luò)連接,即該計(jì)算機(jī)不再被木馬網(wǎng)絡(luò)控制。
LWF(Lightweight Filter)驅(qū)動(dòng)是微軟Windows操作系統(tǒng)NDIS 6.0 引入的一種新型網(wǎng)絡(luò)過(guò)濾驅(qū)動(dòng)。LWF驅(qū)動(dòng)具有更加出色的平臺(tái)兼容性,甚至可以支持Windows 10,因此成為微軟力薦的網(wǎng)絡(luò)驅(qū)動(dòng)實(shí)現(xiàn)方式,并且由此得到廣泛的應(yīng)用。由于本網(wǎng)絡(luò)過(guò)濾驅(qū)動(dòng)過(guò)濾規(guī)則簡(jiǎn)單,安裝該過(guò)濾驅(qū)動(dòng)后,對(duì)網(wǎng)速無(wú)影響。
硬件網(wǎng)絡(luò)防火墻,難以做到對(duì)每臺(tái)機(jī)器的網(wǎng)絡(luò)過(guò)濾設(shè)置,即使能夠做到,木馬還可以通過(guò)迂回方式,利用內(nèi)部機(jī)器作為跳板,間接與該服務(wù)器建立網(wǎng)絡(luò)連接,實(shí)現(xiàn)對(duì)該網(wǎng)絡(luò)服務(wù)器的控制。通過(guò)在網(wǎng)絡(luò)服務(wù)器安裝端口過(guò)濾驅(qū)動(dòng),該過(guò)濾驅(qū)動(dòng)相當(dāng)于軟件防火墻,可以阻止該服務(wù)器向外主動(dòng)建立網(wǎng)絡(luò)連接,也能阻止外部發(fā)往木馬的網(wǎng)絡(luò)連接,即使服務(wù)器中運(yùn)行有木馬程序,該服務(wù)器也不能被遠(yuǎn)程控制。當(dāng)然該系統(tǒng)并不能阻止所有木馬控制,端口復(fù)用技術(shù)以及網(wǎng)頁(yè)木馬,能夠繞過(guò)該端口防護(hù)措施。該種服務(wù)器保護(hù)方式部署成本低,安裝方便,應(yīng)大力推廣使用。