隨著“校校通”工程的實(shí)施,現(xiàn)在有許多學(xué)校搭建了校園網(wǎng)。校園網(wǎng)在給學(xué)校的教學(xué)和管理帶來各種便利的同時(shí),也顯現(xiàn)了一個(gè)十分嚴(yán)峻的問題:網(wǎng)絡(luò)安全。網(wǎng)絡(luò)中存在的各種安全隱患和漏洞成為黑客攻擊的切入點(diǎn),所以事先采用安全掃描技術(shù)查找這些安全隱患和漏洞,之后將其堵上才是解決網(wǎng)絡(luò)安全問題的根本措施。本文對校園網(wǎng)中常見的安全掃描技術(shù)進(jìn)行簡要分析。
一、安全掃描技術(shù)簡介
安全掃描技術(shù),也稱為網(wǎng)絡(luò)安全分析,是一種基于Internet遠(yuǎn)程檢測目標(biāo)網(wǎng)絡(luò)或本地主機(jī)安全脆弱點(diǎn)的技術(shù)。通過安全掃描,系統(tǒng)管理員能夠發(fā)現(xiàn)網(wǎng)絡(luò)中的存活主機(jī)、服務(wù)器上開放的TCP、UDP端口和服務(wù)、各種弱口令的用戶等信息。安全掃描技術(shù)主要有端口掃描、認(rèn)證掃描、代理掃描等。
二、端口掃描
端口掃描技術(shù)是一項(xiàng)自動探測本地和遠(yuǎn)程系統(tǒng)端口開放狀況的策略及方法。通過端口掃描能夠獲得目標(biāo)主機(jī)上開放的TCP、UDP端口或提供的服務(wù),能通過一些連接測試得到監(jiān)聽端口返回的banner(旗標(biāo))信息,這些信息對于判斷端口上開放的服務(wù)類型、對應(yīng)的軟件版本甚至操作系統(tǒng)類型都有重要作用。
端口是傳輸層標(biāo)識服務(wù)的手段,在傳輸層有兩個(gè)重要的協(xié)議:傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報(bào)協(xié)議UDP。在端口掃描技術(shù)中,大多數(shù)掃描技術(shù)采用TCP數(shù)據(jù)包作為探測手段。根據(jù)發(fā)送端發(fā)送的報(bào)文類型,端口掃描技術(shù)可以分為TCP connect掃描(全連接掃描)、TCP SYN掃描(半連接掃描)和秘密掃描。
1.TCP connect掃描
TCP connect掃描在進(jìn)行端口掃描時(shí),本地主機(jī)嘗試與遠(yuǎn)程主機(jī)的端口建立一次正常的TCP連接。如果連接成功則表明目標(biāo)端口開放,否則表明目標(biāo)端口關(guān)閉。建立一個(gè)TCP連接,需要經(jīng)過本地主機(jī)和遠(yuǎn)端主機(jī)之間的“三次握手”,圖1表示連接成功,圖2表示連接失敗。
?。?)由Client端發(fā)送請求建立連接的、SYN類型(SYN=1,下同)的TCP報(bào)文。
(2)Server端返回SYN/ACK報(bào)文,表明端口開放;返回RST/ACK,表明端口關(guān)閉。
(3)Client端返回ACK報(bào)文,表明連接已建立;返回RST報(bào)文,表明關(guān)閉這個(gè)連接。
圖1 TCP連接建立成功 圖2 TCP連接建立未成功
從上面可以看出,在建立TCP連接的“三次握手”過程中,客戶端發(fā)送SYN類型報(bào)文后,根據(jù)服務(wù)器端返回的報(bào)文類型就可以判斷對方的端口狀態(tài)。該掃描方法的優(yōu)點(diǎn)是普通用戶就有建立TCP連接的權(quán)限,就能夠執(zhí)行該掃描過程,并不需要具備Root用戶的權(quán)限。
2.TCP SYN掃描
在雙方利用TCP連接進(jìn)行通信的“三次握手”中,客戶端根據(jù)服務(wù)器方返回的報(bào)文類型即可判斷出服務(wù)器方的端口狀態(tài),不需要再向?qū)Ψ桨l(fā)送報(bào)文,即沒有完成整個(gè)TCP連接的“三次握手”過程,并且不會在對方的系統(tǒng)上留下記錄,這種掃描稱為TCP SYN掃描,或稱為半連接掃描。
3.秘密掃描
在進(jìn)行端口掃描時(shí),TCP連接掃描很容易會被對方的路由器、防火墻或者是入侵檢測系統(tǒng)檢測到,為了避免掃描完成后被別人追蹤,于是產(chǎn)生了秘密掃描技術(shù)。
秘密掃描技術(shù)能夠躲避對方IDS、防火墻、包過濾器和日志的記錄,從而獲取目標(biāo)主機(jī)的端口信息。在秘密掃描中,因?yàn)椴话琓CP的“三次握手”協(xié)議的任何部分,所以對方?jīng)]有辦法記錄掃描的過程,但是這種掃描的可靠性會降低?,F(xiàn)有的秘密掃描方式有TCP FIN掃描、TCP ACK掃描、NULL掃描、XMAS掃描和SYN/ACK掃描等。
?。?)TCP FIN掃描很多系統(tǒng)能夠過濾掉SYN數(shù)據(jù)報(bào)文,但是允許中斷連接的FIN數(shù)據(jù)報(bào)文通過,而且不記錄這樣的報(bào)文。利用TCP FIN掃描,如果目標(biāo)主機(jī)的端口開放,則目標(biāo)主機(jī)會認(rèn)為對方請求關(guān)閉TCP連接,只是簡單丟棄FIN數(shù)據(jù)報(bào)文。如果目標(biāo)主機(jī)存在而端口沒有打開,則會認(rèn)為關(guān)閉的是一個(gè)不存在的連接,判斷這是一個(gè)錯(cuò)誤,并且會返回一個(gè)RST數(shù)據(jù)報(bào)文,如圖3、圖4所示。這樣,根據(jù)是否有返回報(bào)文就可以判斷對方的端口狀態(tài)。
圖3 對方端口開放時(shí)發(fā)FIN包 圖4 對方端口未開放時(shí)發(fā)FIN包
?。?)TCP ACK掃描掃描主機(jī)向目標(biāo)主機(jī)發(fā)送確認(rèn)應(yīng)答數(shù)據(jù)包ACK時(shí),正常情況下目標(biāo)主機(jī)會返回?cái)嚅_連接的數(shù)據(jù)包RST,這時(shí)掃描主機(jī)有兩種方式根據(jù)RST數(shù)據(jù)包來判斷目標(biāo)主機(jī)的端口開放情況。第一種,如果返回的RTS數(shù)據(jù)包的TTL值小于或等于64,則端口開放,否則端口關(guān)閉。第二種,如果返回的RTS數(shù)據(jù)包的WINDOW值非零,則端口開放,否則端口關(guān)閉。
?。?)NULL掃描掃描主機(jī)將TCP數(shù)據(jù)包中的控制位ACK(確認(rèn))、FIN(結(jié)束連接)、RST(重新設(shè)定連接)、SYN(連接同步化)、URG(緊急)、PSH(接收端收到數(shù)據(jù)后交由上一層處理)標(biāo)志位置空后,將數(shù)據(jù)包發(fā)送給目標(biāo)主機(jī)。如果目標(biāo)主機(jī)的端口開放,則其不返回任何信息;如果目標(biāo)主機(jī)返回RST類型的數(shù)據(jù)包,則表示端口關(guān)閉。
?。?)XMAS掃描其掃描原理和NULL掃描類似,但它是將TCP數(shù)據(jù)包中的ACK、FIN、RST、SYN、URG、PSH標(biāo)志位置1后發(fā)送給目標(biāo)主機(jī)。如果目標(biāo)主機(jī)端口開放,則其不返回任何信息;如果目標(biāo)端口關(guān)閉,則目標(biāo)主機(jī)將返回RST信息。
?。?)SYN/ACK掃描在正常的TCP連接過程中,數(shù)據(jù)包的發(fā)送順序是SYN→SYN/ACK→ACK,但在采用SYN/ACK掃描時(shí),掃描主機(jī)首先發(fā)送SYN/ACK數(shù)據(jù)包,這時(shí)目標(biāo)主機(jī)會判斷為一個(gè)錯(cuò)誤的連接。如果目標(biāo)端口開放,目標(biāo)主機(jī)將返回RST信息;如果目標(biāo)端口關(guān)閉,目標(biāo)主機(jī)將丟棄數(shù)據(jù)包,不返回任何信息。
?。?)UDP ICMP端口不可達(dá)掃描 掃描主機(jī)發(fā)送UDP數(shù)據(jù)包給目標(biāo)主機(jī)的UDP端口,等待目標(biāo)端口不可達(dá)的ICMP信息。如果超時(shí)也沒有接到端口不可達(dá)的ICMP信息,則表明目標(biāo)端口處于打開的狀態(tài);如果ICMP信息及時(shí)接收到,則表明目標(biāo)端口處于關(guān)閉狀態(tài)。這種方式只能掃描UDP端口,并且這種方式的可靠性不高。因?yàn)閁DP協(xié)議本身就是不可靠的協(xié)議,UDP數(shù)據(jù)包可能在途中丟失。另外,如果目標(biāo)主機(jī)打開防火墻,防火墻可能攔截UDP數(shù)據(jù)包或者禁止ICMP數(shù)據(jù)包通過,這樣操作者收不到ICMP數(shù)據(jù)包,會誤判對方的端口開放,而實(shí)際情況并非如此。
三、認(rèn)證掃描和代理掃描
1.認(rèn)證掃描(TCP Ident掃描)是基于Ident協(xié)議(RFC1413)的,利用Ident協(xié)議可以獲得運(yùn)行在某個(gè)端口上的進(jìn)程的用戶名。
認(rèn)證掃描中用到一個(gè)Ident服務(wù),Ident服務(wù)是網(wǎng)絡(luò)中服務(wù)器驗(yàn)證客戶方身份的,它在客戶端的TCP113端口上監(jiān)聽服務(wù)器方。該網(wǎng)絡(luò)連接的服務(wù)器方首先向客戶方的113端口反方向建立連接,再進(jìn)行通信。認(rèn)證掃描的優(yōu)點(diǎn)是掃描迅速,不需要Root用戶的權(quán)限,并且能夠返回必要的服務(wù)信息,但是這種掃描容易被目標(biāo)主機(jī)監(jiān)測到。
2.代理掃描是一種基于FTP協(xié)議的掃描技術(shù),文件傳輸協(xié)議(FTP)支持代理FTP連接。這個(gè)選項(xiàng)允許一個(gè)客戶端同時(shí)跟兩個(gè)FTP服務(wù)器建立連接,再在服務(wù)器之間直接傳輸數(shù)據(jù)。然而,在多數(shù)情況下,希望能夠使得FTP服務(wù)器發(fā)送文件到Internet的任何地方,許多攻擊正是利用了這個(gè)缺陷。FTP代理掃描主要使用FTP代理服務(wù)器來掃描TCP端口。掃描步驟如下:
?。?)假定S是掃描機(jī),T是掃描目標(biāo),F(xiàn)是一個(gè)FTP服務(wù)器,這個(gè)服務(wù)器支持代理選項(xiàng),能夠跟S和T建立連接。
?。?)S與F建立一個(gè)FTP會話,使用PORT命令聲明一個(gè)選擇的端口(稱之為P-T)作為代理傳輸所需要的被動端口。
?。?)S使用一個(gè)LIST命令,嘗試啟動一個(gè)到P-T的數(shù)據(jù)傳輸。
?。?)如果端口P-T在監(jiān)聽,傳輸就會成功(返回碼150和226被發(fā)送回給S),否則S會收到“425無法打開數(shù)據(jù)連接”的應(yīng)答。
?。?)S持續(xù)使用PORT和LIST命令,直到T上所有的選擇端口掃描完畢。
FTP代理掃描不但難以跟蹤,而且當(dāng)FTP服務(wù)器在防火墻后面時(shí),還可以穿透防火墻。它的主要缺點(diǎn)是速度太慢。
從以上可以看出,正確采用各種掃描技術(shù)就可以分析出目標(biāo)主機(jī)的存活狀態(tài)、運(yùn)行的進(jìn)程和操作系統(tǒng)類型等信息。安全掃描技術(shù)種類較多,除上述外還有操作系統(tǒng)掃描,ping掃描等。由于篇幅有限,這里不再贅述。在實(shí)際應(yīng)用中,由于防火墻等的存在,應(yīng)該綜合采用各種技術(shù),這樣才能確保掃描結(jié)果的準(zhǔn)確性。
參考文獻(xiàn)
[1]石志國等.計(jì)算機(jī)網(wǎng)絡(luò)安全教程.清華大學(xué)出版社,2004年4月第一版.
[2]