關鍵詞: 網(wǎng)絡掃描? 網(wǎng)絡掃描檢測? 陷阱機
網(wǎng)絡掃描通過掃描本地主機,能檢測主機當前可用的服務及其開放端口,幫助網(wǎng)絡管理員查找安全漏洞,查殺木馬、蠕蟲等危害系統(tǒng)安全的病毒。一些掃描器還封裝了簡單的密碼探測,利用自定義規(guī)則的密碼生成器來檢測過于簡單和不安全的密碼。?
網(wǎng)絡掃描一般包括2個階段:(1)對整個網(wǎng)絡掃描一遍,從而找到活動主機(因為許多子網(wǎng)配置得很稀疏,大部分IP地址是空的)。(2)對每個活動主機進行窮盡式的端口掃描。?
網(wǎng)絡掃描也是網(wǎng)絡入侵的基礎。一次成功的網(wǎng)絡入侵離不開周密的網(wǎng)絡掃描。攻擊者利用網(wǎng)絡掃描探知目標主機的各種信息,根據(jù)掃描的結果選擇攻擊方法以達到目的。因此,若能及時監(jiān)測、識別網(wǎng)絡掃描,就能預防網(wǎng)絡攻擊。為了得到被掃描主機的信息,網(wǎng)絡掃描報文對應的源地址往往是真正的地址,因此監(jiān)測網(wǎng)絡掃描可以定位攻擊者。?
1? 網(wǎng)絡掃描原理?
網(wǎng)絡掃描通過檢測目標主機TCP/IP不同端口的服務,記錄目標給予的回答。通過這種方法,可以搜集到很多目標主機的各種信息(如是否能用匿名登錄,是否有可寫的FTP目錄,是否能用Telnet等)。在獲得目標主機TCP/IP端口和其對應的網(wǎng)絡訪問服務的相關信息后,與網(wǎng)絡漏洞掃描系統(tǒng)提供的漏洞庫進行匹配,如果滿足匹配條件,則視為漏洞存在。?
在匹配原理上,網(wǎng)絡漏洞掃描器一般采用基于規(guī)則的匹配技術。根據(jù)安全專家對網(wǎng)絡系統(tǒng)安全漏洞、黑客攻擊案例的分析和系統(tǒng)管理員關于網(wǎng)絡系統(tǒng)安全配置的實際經(jīng)驗,形成一套標準的系統(tǒng)漏洞庫,然后在此基礎上構成相應的匹配規(guī)則,由程序自動進行系統(tǒng)漏洞掃描的分析工作。如在對TCP 80端口的掃描過程中,發(fā)現(xiàn)/cgi-bin/phf或/cgi-bin/Count.cgi,則根據(jù)專家經(jīng)驗以及CGI程序的共享性和標準化,可以推知該WWW服務存在2個CGI漏洞。?
1.1 主機在線探測?
為了避免不必要的空掃描,在掃描之前一般要先探測主機是否在線。其實現(xiàn)原理和常用的ping命令相似。具體方法是向目標主機發(fā)送ICMP報文請求,根據(jù)返回值來判斷主機是否在線。所有安裝了TCP/IP協(xié)議的在線網(wǎng)絡主機,都會對這樣的ICMP報文請求給予答復。該方法不僅能探測主機是否在線,而且能根據(jù)ICMP應答報文的TTL(TTL是位于IP首部的生存時間字段)值來粗略分辨出目標主機操作系統(tǒng),為下一步的掃描工作提供依據(jù)。RFC793說明了TCP怎樣響應特別的信息包:這些響應基于2個TCP狀態(tài),即關閉(CLOSED)和監(jiān)聽(LISTEN)。?
RFC793描述了當一個端口在關閉狀態(tài)時,必須采用下面的規(guī)則:(1)任意進入的包含RST標志的信息段(segment)將被丟棄。(2)任意進入的不包含RST標志的信息段(如SYN、FIN和ACK)會導致在響應中回送一個RST。
當一個端口處于監(jiān)聽狀態(tài)時,將采用下面的規(guī)則:(1)任意進入的包含RST標志的信息段將被忽略。(2)任意進入的包含ACK標志的信息段將導致一個RST的響應。?
如果SYN位被設置,且進入的信息段不被允許,則將導致一個RST的響應;若進入的信息段被允許,則將導致響應中發(fā)送一個SYN|ACK 信息包。?
這樣,通過2個ACK信息包的發(fā)送就可以驗證計算機是否處于在線狀態(tài)。?
1.2 端口狀態(tài)探測?
發(fā)送1個SYN包到主機端口并等待響應。如果端口打開,則響應必定是SYN|ACK;如果端口關閉,則會收到RST|ACK響應。這個掃描可以稱為半打開(half-scan)掃描。如NMAP(Network Mapper)在進行端口狀態(tài)探測時會發(fā)送1個SYN包到主機,如果端口關閉就發(fā)送RST信息通知NMAP。但如果NMAP發(fā)送SYN信息包到打開狀態(tài)的端口,端口就會響應SYN|ACK信息包給NMAP。當NMAP探測到SYN|ACK信息包后自動回應RST,并由這個RST斷開連接。一般情況下,計算機不會記錄這種情況,但對于NMAP來說也已經(jīng)知道端口是否打開或者關閉。如果被掃描主機安裝了防火墻則會過濾掉請求包,使發(fā)送者得不到回應,這時就需發(fā)送設置了TCP首部中標志位的FIN、PSH和URG位(其中FIN表示發(fā)端完成發(fā)送任務,PSH表示接收方應該盡快將這個報文段交給應用層,URG表示緊急指針有效)的echo request請求信息包。因為一些配置較差的防火墻允許這些信息包通過。?
1.3 操作系統(tǒng)探測?
每個操作系統(tǒng),甚至每個內核修訂版本在TCP/IP棧方面都存在微小的差別,這將直接影響對相應數(shù)據(jù)包的響應。如NMAP提供了一個響應列表,把所接收到的響應與表中的各項響應進行比較,如果能與某種操作系統(tǒng)的響應相匹配,就能識別出被探測主機所運行的操作系統(tǒng)的類型。在進行網(wǎng)絡入侵攻擊時,了解操作系統(tǒng)的類型是相當重要的,因為攻擊者可以由此明確應用何種漏洞,或由此掌握系統(tǒng)存在的弱點。?
2? 主要掃描技術?
2.1 TCP connect掃描?
這是最基本的TCP掃描。利用操作系統(tǒng)提供的系統(tǒng)調用connect(),與每一個感興趣的目標計算機的端口進行連接。如果端口處于偵聽狀態(tài),則connect()就能成功。否則,該端口是不能用的,即沒有提供服務。該技術的優(yōu)點是響應速度快,并且使用者不需要任何權限。系統(tǒng)中的任何用戶都有權利使用該調用。另一個優(yōu)點就是速度很快。但缺點是容易被發(fā)覺,并且易被過濾掉。使用該方法時目標計算機的logs文件會顯示一連串的連接和連接時出錯的服務消息,并且能很快將連接關閉。?
2.2 TCP SYN掃描?
TCP SYN掃描是半開放式掃描,掃描程序不必打開一個完全的TCP連接。掃描程序發(fā)送的是SYN數(shù)據(jù)包。返回RST,表示端口沒有處于偵聽狀態(tài);返回SYN/ACK信息表示端口處于偵聽狀態(tài),此時掃描程序必須再發(fā)送一個RST信號來關閉這個連接過程。這種掃描技術的優(yōu)點是一般不會在目標計算機上留下記錄。但這種方法必須要有管理員權限才能建立自己的SYN數(shù)據(jù)包。通常這個條件很容易滿足。?
2.3 TCP FIN掃描?
有時SYN掃描不夠秘密,防火墻和包過濾器就會對一些指定的端口進行監(jiān)視,并能檢測到這些掃描。相反,FIN數(shù)據(jù)包可能會沒有任何麻煩地被放行。這種掃描方法的思想是關閉的端口會用適當?shù)腞ST來回復FIN數(shù)據(jù)包;而打開的端口會忽略對FIN數(shù)據(jù)包的回復。但這種方法和系統(tǒng)的實現(xiàn)有關。有的系統(tǒng)不管端口是否打開,都回復RST,這時這種掃描方法就不適用了。在區(qū)分Unix和NT操作系統(tǒng)時,這種方法是有效的。?
2.4 IP段掃描?
IP段掃描并不是直接發(fā)送TCP探測數(shù)據(jù)包,而是將數(shù)據(jù)包分成2個較小的IP段。這樣就將一個TCP頭分成好幾個數(shù)據(jù)包,從而很難探測到過濾器。但必須小心,一些程序在處理這些小數(shù)據(jù)包時會丟棄。?
2.5 TCP反向ident掃描?
ident協(xié)議(RFC1413)允許看到通過TCP連接的任何進程的擁有者的用戶名。例如用戶能連接到http端口,然后用identd來發(fā)現(xiàn)服務器是否正在以管理員權限運行。這種方法只能在和目標端口建立了完整的TCP連接后才能使用。?
2.6 FTP代理間接掃描?
FTP協(xié)議支持代理(proxy)FTP連接,攻擊者可以通過FTP server-PI(協(xié)議解釋器)使源主機和目標主機建立控制通信連接。然后,請求該server-PI激活一個有效的server -DTP(即數(shù)據(jù)傳輸進程)來給其他主機發(fā)送信息。因此,攻擊者可以用代理服務技術來掃描代理服務器所在網(wǎng)段主機的TCP端口。這樣,攻擊者就可以繞過防火墻,通過連接到防火墻內部的一個FTP服務器進行端口掃描。該方法的優(yōu)點是很難被跟蹤,能穿過防火墻;其缺點是速度很慢。?
2.7 UDP不可達掃描?
該方法與前述方法的不同之處在于使用的是UDP協(xié)議。UDP協(xié)議對數(shù)據(jù)包的請求不回應,打開的端口對掃描探測不發(fā)送確認,關閉的端口也不發(fā)送錯誤數(shù)據(jù)包。但是許多主機在用戶向一個未打開的UDP端口發(fā)送數(shù)據(jù)包時,會返回一個ICMP_PORT_UNREACH錯誤信息。這樣攻擊者就能判斷哪些端口是關閉的。UDP包和ICMP錯誤消息都不保證能到達。因此,在掃描時必須在探測包看似丟失時重傳。RFC793對ICMP錯誤消息的產生速率做了規(guī)定,因此,這種掃描方法很慢。?
當非管理員用戶不能直接讀取端口且不能到達錯誤信息時,Linux能間接地在它們到達時通知用戶,如對一個關閉的端口的第2個write()調用將失敗;在非阻塞的UDP套接字上調用recvfrom()時,如果ICMP出錯信息還沒有到達,則返回EAGAIN(重試),否則返回ECONNREFUSED(連接被拒絕)。?
3? 網(wǎng)絡掃描檢測的實現(xiàn)?
因為網(wǎng)絡掃描首先需要對整個網(wǎng)絡掃描一遍,從而找到活動主機(因為許多子網(wǎng)配置得很稀疏,所以大部分IP地址是空的),然后對每個活動主機進行窮盡式的端口掃描。因此可以設計一個網(wǎng)絡陷阱機來檢測網(wǎng)絡掃描。其原理與實現(xiàn)過程如下。?
在網(wǎng)絡陷阱機上虛擬多個IP地址,這些地址與需重點保護的主機的IP地址相鄰,并且服務與開放端口及需重點保護的主機相同。網(wǎng)絡陷阱機與交換機或路由器的映射端口(span port)相連,這樣連接就能采集到流經(jīng)整個網(wǎng)絡的數(shù)據(jù)。?
3.1 數(shù)據(jù)包過濾?
數(shù)據(jù)包過濾的主要目的是縮減數(shù)據(jù)。為了防止丟包,包過濾只做簡單的基于包頭內容的過濾(如IP地址、TCP/IP端口、TCP標志位等),去除不關心的網(wǎng)絡數(shù)據(jù)包的數(shù)據(jù)而只留下其報頭,并將其結果存入指定數(shù)據(jù)庫。經(jīng)過包過濾之后的網(wǎng)絡包數(shù)據(jù)量將大大減少。包過濾規(guī)則的BNF范式描述如下:?
例如,在以下規(guī)則中:“{12,4}=={16,4}20”,表示若從第12字節(jié)偏移處開始的4個字節(jié)(源IP地址)等于從第16個字節(jié)偏移處開始的4個字節(jié)(目的IP地址),則將包的前20字節(jié)獲取過來,而拋棄包的其余內容。利用此語法定義的過濾規(guī)則簡單且過濾條件基本上是簡單的比較運算,適于計算機進行高效快速地處理。?
3.2 網(wǎng)絡掃描檢測?
????檢測程序對指定數(shù)據(jù)庫文件進行分析。當源地址連續(xù)相同的IP請求連接記錄大于某一閥值時,則認為此地址的用戶可能在掃描網(wǎng)絡,這時將此地址上報給執(zhí)行程序。執(zhí)行程序通過對可疑IP地址某一時間段內的所有記錄進行分析,來發(fā)現(xiàn)網(wǎng)絡掃描。例如若發(fā)現(xiàn)可疑IP對其他主機進行了窮盡式的端口連接,則認為該IP地址用戶在進行網(wǎng)絡掃描。?
但是隱蔽掃描的IP地址很可能是偽裝的,且掃描時間也可能不連續(xù),因此用上面的方法不一定能檢測到隱蔽掃描。?
網(wǎng)絡掃描的目的是要發(fā)現(xiàn)網(wǎng)絡中活動主機并找出其安全漏洞,因此服務與端口開放較多的重點保護主機是掃描者的重點對象。檢測程序對指定數(shù)據(jù)庫文件進行分析,比較受保護主機的請求連接和網(wǎng)絡陷阱機與之相近IP地址的請求連接,如在某時間段內的非常用連接相近,則認為此地址的主機可能被掃描。將此地址上報給執(zhí)行程序,執(zhí)行程序對可疑主機IP地址某一時間段內的所有記錄進行分析,如發(fā)現(xiàn)有窮盡式的端口連接,則認為該主機被網(wǎng)絡掃描。?
4? 結束語?
網(wǎng)絡掃描是一把雙刃劍。網(wǎng)絡管理員通過網(wǎng)絡掃描能檢測網(wǎng)絡中主機存在的漏洞,從而查漏補缺,使得網(wǎng)絡運行更為安全可靠。然而現(xiàn)在網(wǎng)絡掃描技術的發(fā)展,特別是黑客的積極參與使得網(wǎng)絡掃描技術成為一種危害網(wǎng)絡安全的行為。只有對網(wǎng)絡掃描進行有效監(jiān)控,才能更有效地保護網(wǎng)絡,將網(wǎng)絡優(yōu)勢發(fā)揮出來。?
參考文獻?
1?? Fyodor.Remote OS Detection via TCP/IP Stack FingerPrinting.?www.insecure.org,1998?
2?? Guo X B,Qian D P,Liu M et al.Detection and Protection?Against Network Scanning:IEDP.ICCNMC2001,2001?
3?? Postel J.Transmission Control Protocol.RFC 793,1981?
4?? Johns M S.Identification Protocol.RFC 1413,1993?
5?? Nothcutt S著,林琪譯.入侵檢測特征與分析.北京:中國電力出版社,2002?
6?? 劉敏,過曉冰.針對網(wǎng)絡掃描的監(jiān)測系統(tǒng).計算機工程,?2002;28(7)?
7?? 朱艷輝,黃家林.網(wǎng)絡掃描的自動監(jiān)控.計算機應用,2000;20(7)?
8?? 李素科.掃描器原理與反掃描措施.網(wǎng)絡安全技術與應用,2001;(3)?
評論