摘要:該文在明確常用掃描器及端口掃描原理的基礎(chǔ)上,分析了端口掃描攻擊的改進(jìn)思路,并進(jìn)一步探討了網(wǎng)絡(luò)數(shù)據(jù)包中關(guān)鍵信息提取的實(shí)現(xiàn)以及異常訪問(wèn)檢測(cè)的實(shí)現(xiàn),很好了提升了網(wǎng)絡(luò)的安全性。
關(guān)鍵詞:端口掃描;數(shù)據(jù)包獲取;異常訪問(wèn)檢測(cè)
中圖法分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)35-9938-02
Analysis and Perfection of Typical Port Network Scan Attacks
YANG Yu
(Jiangsu Xuzhou Institute of Technology Civil Engineering College Training Center, Xuzhou 221009, China)
Abstract: This paper analyzes the improving method of port scan attacks based on a clear scanner and port scanning theory, and further discussed the collecting of the key information in network data packet and the realization of exception access detection, greatly improving the security of network.
Key words: port scanning; collecting of data packet; exception access detection
入侵者在正式入侵網(wǎng)絡(luò)前都要搜集相關(guān)的信息,因?yàn)楂@得的信息越多發(fā)現(xiàn)的漏洞也就越多,侵入網(wǎng)絡(luò)成功的可能性就越大。他們充分利用現(xiàn)在種類繁多的掃描探測(cè)工具(NMAP、Superscan、X-scanner等等)遠(yuǎn)程探測(cè)目標(biāo)主機(jī)不同端口的服務(wù),記錄目標(biāo)給予的應(yīng)答,從而搜集目標(biāo)主機(jī)上的各種信息,分析后找出系統(tǒng)存在的漏洞,然后發(fā)起攻擊。網(wǎng)絡(luò)漏洞掃描是以端口掃描為基礎(chǔ)上的,因?yàn)橹С諸CP/IP協(xié)議的主機(jī)和設(shè)備都是通過(guò)開(kāi)放端口來(lái)提供服務(wù),端口可以說(shuō)是系統(tǒng)對(duì)外的窗口。
1 網(wǎng)絡(luò)端口掃描分析
1.1 常用的掃描器
掃描是通過(guò)固定格式的詢問(wèn)來(lái)試探主機(jī)的,這是重復(fù)性的操作主要通過(guò)程序自動(dòng)進(jìn)行。眾多的掃描功能被集成在一起,形成了功能強(qiáng)大的綜合掃描器,它可以完成許多項(xiàng)目的掃描,如X-Scan、流光Fluxay、X-WAY等。
1.2 端口掃描原理
端口是一個(gè)16位號(hào)碼,用來(lái)標(biāo)識(shí)把消息傳輸?shù)侥膫€(gè)更高層協(xié)議或者應(yīng)用程序(進(jìn)程)。它由TCP/IP協(xié)議定義的,其中規(guī)定,用EP地址和端口作為套接字(socket),代表TCP連接的一個(gè)連接端。端口與進(jìn)程是一一對(duì)應(yīng)的,如果某個(gè)進(jìn)程正在等待連接,那么就會(huì)出現(xiàn)與之對(duì)應(yīng)的端口,稱之為該進(jìn)程正在相應(yīng)端口監(jiān)聽(tīng),或者說(shuō)相應(yīng)的端口是打開(kāi)的[1]。在Internet上,按照協(xié)議類型分類,端口被分為TCP端口和UDP端口兩類。從端口的分配來(lái)看,端口被分為固定端口和動(dòng)態(tài)端口兩大類。
端口掃描是通過(guò)發(fā)送特定類型的TCP/UDP報(bào)文給所要掃描的目標(biāo)主機(jī)的全部或特定端口,誘發(fā)目標(biāo)主機(jī)回復(fù)響應(yīng)報(bào)文,分析返回的響應(yīng)報(bào)文來(lái)推斷目標(biāo)主機(jī)端口的狀態(tài)等信息。最基本的端口掃描就是使用TCP connect全開(kāi)掃描,這種掃描方法使用TCP協(xié)議“三次握手”,與目標(biāo)主機(jī)建立標(biāo)準(zhǔn)的TCP連接。如果連接,就說(shuō)明相應(yīng)的端口打開(kāi)[2]。這種掃描的檢測(cè)結(jié)果是最精確的,但它與目標(biāo)主機(jī)建立了大量的連接,因而很容易被目標(biāo)主機(jī)記錄并加以拒絕。而端口掃描要順利地實(shí)現(xiàn)其探測(cè)目標(biāo)端口信息的目的,必須同時(shí)具備兩個(gè)特點(diǎn):有效性和隱蔽性,即有效地獲取目標(biāo)端口信息的同時(shí)又盡量做到不被目標(biāo)主機(jī)所發(fā)覺(jué)。
2 端口掃描攻擊的改進(jìn)
2.1 改進(jìn)思路
下面對(duì)端口掃描攻擊的防御從防火墻技術(shù)本身進(jìn)行改進(jìn)。改進(jìn)思路如下:
1) 從到達(dá)防火墻的數(shù)據(jù)包中通過(guò)提取數(shù)據(jù)包的IP頭指針和TCP頭指針得到該包的源IP地址、目的IP地址、目的端口號(hào)、TCP標(biāo)志位的信息等,這些信息是判斷該數(shù)據(jù)包是不是用于掃描的數(shù)據(jù)包的關(guān)鍵信息;
2) 分析TCP掃描數(shù)據(jù)包的標(biāo)志位特征,明確它與正常數(shù)據(jù)包的區(qū)別;
3) 通過(guò)異常訪問(wèn)檢測(cè)法實(shí)現(xiàn)對(duì)端口掃描攻擊的防御。
此外,各反掃描功能模塊的設(shè)計(jì)思路是:反SYN掃描模塊、反ACK掃描模塊、反FIN掃描模塊、反NULL掃描模塊和反Xmas掃描這五個(gè)反掃描模塊采用的是TCP標(biāo)志位檢測(cè)法,分別針對(duì)五種TCP端口掃描方式進(jìn)行檢測(cè)和防御。TCP協(xié)議報(bào)頭標(biāo)志位和這五種TCP端口掃描方式的描述,它們的TCP協(xié)議標(biāo)志位特征為:SYN掃描;SYN、ACK掃描;ACK、 FIN掃描;FIN、NULL掃描;Xmas掃描:FIN + PSH + URG。
2.2 數(shù)據(jù)包中關(guān)鍵信息提取的實(shí)現(xiàn)
通常情況下,防火墻的Netfilter工作于網(wǎng)絡(luò)IP層,要它能對(duì)TCP等傳輸層協(xié)議處理,就必須對(duì)到來(lái)的數(shù)據(jù)包進(jìn)行深入的分析。使用sk_buff這個(gè)數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)描述了內(nèi)存中的一塊數(shù)據(jù)區(qū)域,該區(qū)域存放著網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包。對(duì)載有該數(shù)據(jù)包的sk_buff進(jìn)行處理。提取數(shù)據(jù)包中的IP頭指針iphead:Struct ipdhr *iphead = skb -> nh.iph ; //s kb表示該數(shù)據(jù)包的sk_buff結(jié)構(gòu)u_int32_t saddr = iphead -> saddr ; // 取源IP地址u_int32_t daddr = iphead -> daddr ;// 取目的IP地址struct tcphdr *tcphead = (u_int32_t *) iphead + iphead -> ih1 ;//提取TCP頭指針tcphead;u_int32_t dest = tcphead -> dest ; // 取目的端口號(hào)u_int32_t source = tcphead -> source ;// 取源端口號(hào)tcphead -> fin ; ……Tcphead -> urg ; // 分別取出TCP報(bào)頭中的六個(gè)標(biāo)志位
2.3 異常訪問(wèn)檢測(cè)的實(shí)現(xiàn)
網(wǎng)絡(luò)中常用的服務(wù)端口只占全部端口的很少一部分,絕大部分端口是很少用到的。正常情況下網(wǎng)絡(luò)數(shù)據(jù)包訪問(wèn)這些很少用到的端口的概率p2就非常低,甚至接近于0。如果數(shù)據(jù)包訪問(wèn)這些很少用到的端口的概率p2大于正常概率P1的話,那它就可能是一次端口掃描。當(dāng)有攻擊者進(jìn)行掃描時(shí),想提高掃描效率,但不了解主機(jī)的詳細(xì)信息,所以常選擇的port/ip組合就容易偏離正常數(shù)據(jù)流的概率分布。這種偏離越大,就越容易檢測(cè)并確定潛在的掃描行為。給予以上分析得到一個(gè)系統(tǒng)異常訪問(wèn)檢測(cè)模塊具體實(shí)現(xiàn)步驟如下:
根據(jù)受保護(hù)目標(biāo)主機(jī)及其所處正常網(wǎng)絡(luò)壞境的具體情況,選擇一些特定的端口(平常是不用),即一直處于關(guān)閉狀態(tài)且極少被正常數(shù)據(jù)包訪問(wèn)。設(shè)計(jì)一個(gè)特定端口訪問(wèn)量檢測(cè)模塊,將選擇的特定端口加入模塊中的特定端口列表中,在正常的網(wǎng)絡(luò)環(huán)境中進(jìn)行檢測(cè),如果來(lái)訪數(shù)據(jù)包的目的端口號(hào)處在特定端口列表中,就輸出提醒信息。這一步主要是看在正常網(wǎng)絡(luò)環(huán)境中是否有數(shù)據(jù)包訪問(wèn)這些端口根據(jù)選擇的特定端口,實(shí)現(xiàn)異常訪問(wèn)檢測(cè)模塊。模塊的流程圖如圖1所示。
系統(tǒng)加載了異常訪問(wèn)檢測(cè)模塊后,根據(jù)模塊的作用機(jī)制,只要有數(shù)據(jù)包訪問(wèn)特定端口中的任何一個(gè),就會(huì)被反TCP端口掃描系統(tǒng)發(fā)現(xiàn)并報(bào)警。由于在正常的網(wǎng)絡(luò)環(huán)境中極少有數(shù)據(jù)包訪問(wèn)上述特定端口。因此可認(rèn)為這是一次掃描行為,根據(jù)報(bào)警輸出的IP地址,選擇是否將此IP地址加入到反掃描模塊中,丟棄來(lái)自此IP的掃描報(bào)文。
3 結(jié)束語(yǔ)
為防范端口掃描,通常是在防火墻的設(shè)置中嚴(yán)格控制異常TCP標(biāo)志位的數(shù)據(jù)包和不可信IP地址的數(shù)據(jù)包的流進(jìn)流出。我們還應(yīng)該做到在掃描行為發(fā)生之后能及時(shí)地發(fā)現(xiàn)它,然后再采取防御措施來(lái)阻止其下一步的攻擊。于是對(duì)現(xiàn)有網(wǎng)絡(luò)典型端口掃描攻擊的方式進(jìn)行一定的改進(jìn),可以進(jìn)一步提升網(wǎng)絡(luò)的安全性。
參考文獻(xiàn):
[1] 丁常福,方敏,徐亮.端口掃描技術(shù)及防御分析[J].微機(jī)發(fā)展,2003(6).
[2] 唐鑫.網(wǎng)絡(luò)安全端口掃描系統(tǒng)的研究[J].科技創(chuàng)新導(dǎo)報(bào),2008(12).