




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于基于.NET 的端口檢測技術(shù)的原理與實現(xiàn)的端口檢測技術(shù)的原理與實現(xiàn)摘摘 要要隨著 Internet 日益廣泛的應(yīng)用,黑客攻擊行為也是有增無減。如何有效地抵御這種攻擊行為,一直是信息安全領(lǐng)域的焦點。而其中,端口掃描技術(shù)吸引了越來越多人的關(guān)注。端口掃描是黑客搜集目標(biāo)主機(jī)信息的一種常用方法。為了有效地對付網(wǎng)絡(luò)入侵行為,對端口掃描進(jìn)行研究是非常有益和必要的。攻擊者在攻擊一個目標(biāo)時,首先要獲取目標(biāo)的一些基本信息,端口掃描就是其中最簡單最重要的方法之一,它可以掃描目標(biāo)機(jī)器中開放的端口,從而確定目標(biāo)機(jī)器中提供的服務(wù),為下一步攻擊做準(zhǔn)備。針對端口掃描技術(shù),相應(yīng)的端口掃描檢測技術(shù)顯的越發(fā)重要,作為網(wǎng)絡(luò)安全技
2、術(shù)中的一個重要課題,端口掃描檢測技術(shù)意義重大。本文首先闡述了端口掃描技術(shù)以及端口掃描檢測技術(shù)的基本原理和常用方法,然后在此基礎(chǔ)上設(shè)計了一個對基于網(wǎng)絡(luò)的端口進(jìn)行掃描,能判斷出目標(biāo)主機(jī)端口開放情況的程序以及一個從網(wǎng)絡(luò)信息的數(shù)據(jù)包的捕獲和分析著手,再通過統(tǒng)計判斷是否存在端口掃描行為的程序,最后從攻擊和防御的角度對端口掃描和檢測技術(shù)作了演示及分析。關(guān)鍵詞關(guān)鍵詞:端口;端口掃描;數(shù)據(jù)包捕獲;端口檢測The Realization of Port Scanning and Detecting TechnologyAbstractAs the widely applying of Internet, the
3、 attacking behavior made by hacker is increasing but not decreasing. How to resist this kind of attacking behavior is always the key point of the domain of the information security.And the port scanning draws peoples attention more and more. Port scanning is a usual method which is used by the hacke
4、r to collect the information of the target main processor. In order to deal with the invading behavior of the Internet effectively, it is very useful and necessary to work on the port scanning. When an attacker attacks to a target, he or she will firstly gets some basic information about the target,
5、 and the port scanning is one of the most simple and important methods which can scan the opening Port of the target machine to make sure the offering service made by the target machine, and it is a preparation to the next attacking. The port detecting seems more and more important referring to the
6、port scanning. As an important task of the secure technique of Internet, the port detecting is of great significance.In this thesis, it firstly elaborates the basic principles and usual methods of the port scanning. On this basis, it then designs a program which can scan the Port of the Internet, an
7、d assess the opening situation of the target main processor, and the other program which begins on capturing and analyzing the information packet of Internet, and then assess whether there is a behavior about port scanning through statistic analyses. Lastly, it demonstrates and analyses the technolo
8、gy of port scanning and port detecting from the viewpoint of attacking and resisting.Key Words:port; port scanning; packet capture; port detecting目目 錄錄論文總頁數(shù):23 頁1引言.11.1本課題研究的意義.11.2本課題的研究方法.22端口掃描概述.22.1基本概念.22.2端口掃描原理.32.3端口掃描技術(shù)簡介.53檢測端口掃描概述.73.1端口掃描檢測的分析.73.2普通端口掃描檢測技術(shù)概述.83.3慢速端口掃描檢測技術(shù)概述.93.4端口掃描
9、的分布式檢測概述.93.5主流的端口掃描工具.114端口掃描的實現(xiàn).124.1掃描程序的設(shè)計原理.124.2程序流程圖.125檢測端口掃描的實現(xiàn).135.1檢測程序的設(shè)計原理.135.2程序流程圖.135.3設(shè)計實現(xiàn)重點代碼.146性能測試.186.1端口掃描程序性能測試.186.2檢測端口掃描程序性能測試.19結(jié) 論.20參考文獻(xiàn).21第 1 頁 共 23 頁1 1 引言引言隨著科學(xué)技術(shù)的飛速發(fā)展,21 世紀(jì)的地球人已經(jīng)生活在信息時代。20 世紀(jì)人類的兩大科學(xué)技術(shù)成果計算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù),均已深入到人類社會的各個領(lǐng)域,Internet 把“地球村”的居民們緊密聯(lián)系在一起, “天涯若比鄰”已然
10、成為現(xiàn)實。互聯(lián)網(wǎng)之所以能這樣迅速蔓延,被世人所接受,是因為它具備特有的信息資源。無論對商人、學(xué)者,還是對社會生活中的普通老百姓,只要你進(jìn)入網(wǎng)絡(luò)的世界,就能找到其隱藏的奧妙,就能得到你所需要的信息。近年來 Internet的迅速發(fā)展,給人們的日常生活帶來了全新的感受, “網(wǎng)絡(luò)生存”已經(jīng)成為時尚,同時人類社會諸如政治、科研、經(jīng)濟(jì)、軍事等各種活動對信息網(wǎng)絡(luò)的依賴程度已經(jīng)越來越強(qiáng), “網(wǎng)絡(luò)經(jīng)濟(jì)”時代已初露端倪。然而,網(wǎng)絡(luò)技術(shù)的發(fā)展在給我們帶來便利的同時也帶來了巨大的隱患,尤其是 Internet 和 Intranet 的飛速發(fā)展對網(wǎng)絡(luò)安全提出了前所未有的挑戰(zhàn)。技術(shù)是一把雙刃劍,不法分子試圖不斷利用新的
11、技術(shù)伺機(jī)攻入他人的網(wǎng)絡(luò)系統(tǒng),而肩負(fù)保護(hù)網(wǎng)絡(luò)安全重任的系統(tǒng)管理員則要利用最新的網(wǎng)絡(luò)技術(shù)來防范各種各樣的非法網(wǎng)絡(luò)入侵行為。事實已經(jīng)證明,隨著互聯(lián)網(wǎng)的日趨普及,在互聯(lián)網(wǎng)上的犯罪活動也越來越多,特別是 Internet 大范圍的開放以及金融領(lǐng)域網(wǎng)絡(luò)的接入,使得越來越多的系統(tǒng)遭到入侵攻擊的威脅。而作為黑客入侵的前奏,端口掃描是最常見的信息獲取手段,端口掃描的檢測技術(shù)在當(dāng)今已經(jīng)越來越成為一個重要的課題。本文首先對端口掃描技術(shù)進(jìn)行研究,并開發(fā)一個能查詢目標(biāo)主機(jī)端口開放情況的程序;然后重點研究端口掃描的檢測技術(shù),從對數(shù)據(jù)包的捕獲和分析著手,再定義一個判斷是否掃描的條件,并通過統(tǒng)計由定義的掃描條件判斷是否存在端
12、口掃描行為,不但能對一般的掃描、快速掃描能夠檢測,且在一定程度上對慢速掃描也能很好的檢測。1.11.1 本課題研究的意義本課題研究的意義在今天快速發(fā)展的 Internet 中,黑客攻擊方法層出不窮,網(wǎng)絡(luò)的安全性已經(jīng)越來越受到威脅。要保證計算機(jī)資源的保密性、有效性、完整性也變得越來越困難。端口掃描作為黑客攻擊的一個重要方面,也在不停地向前發(fā)展,掃描手段已經(jīng)變得越來越豐富,越來越隱蔽,越來越具有威脅性。如何有效的對端口掃描行為進(jìn)行檢測,已經(jīng)是越來越重要的一個課題,這對于保證我們網(wǎng)絡(luò)的安全性有著重要的意義,也是入侵檢測系統(tǒng)(IDS)和入侵預(yù)防系統(tǒng)(IPS)的一個重點。第 2 頁 共 23 頁1.21
13、.2 本課題的研究方法本課題的研究方法本文分別對端口掃描技術(shù)以及端口掃描的檢測技術(shù)作了研究,并設(shè)計出一個根據(jù)掃描者向目標(biāo)主機(jī)的 TCP/IP 服務(wù)端口發(fā)送探測數(shù)據(jù)包,并記錄目標(biāo)主機(jī)的響應(yīng),通過分析響應(yīng)來判斷服務(wù)端口是打開還是關(guān)閉,進(jìn)而得知端口的狀態(tài)的端口掃描程序,以及一個從網(wǎng)絡(luò)信息的數(shù)據(jù)包的捕獲和分析著手,通過統(tǒng)計判斷是否存在端口掃描行為的端口掃描檢測程序。2 2 端口掃描概述端口掃描概述2.12.1 基本概念基本概念端口的含義:在網(wǎng)絡(luò)技術(shù)中,端口(Port)大致有兩種意思:一是物理意義上的端口,比如,ADSL Modem、集線器、交換機(jī)、路由器用于連接其他網(wǎng)絡(luò)設(shè)備的接口,如RJ-45 端口、
14、SC 端口等等。二是邏輯意義上的端口,一般是指 TCP/IP 協(xié)議中的端口,端口號的范圍從 0 到 65535,比如用于瀏覽網(wǎng)頁服務(wù)的 80 端口,用于FTP 服務(wù)的 21 端口等等。我們這里將要介紹的就是邏輯意義上的端口。 端口分類:邏輯意義上的端口有多種分類標(biāo)準(zhǔn),下面將介紹兩種常見的分類:按端口號分布劃分:(1)知名端口(Well-Known Ports)知名端口即眾所周知的端口號,范圍從 0 到 1023,這些端口號一般固定分配給一些服務(wù)。比如 21 端口分配給 FTP 服務(wù),25 端口分配給 SMTP(簡單郵件傳輸協(xié)議)服務(wù),80 端口分配給 HTTP 服務(wù),135 端口分配給 RPC
15、(遠(yuǎn)程過程調(diào)用)服務(wù)等等。(2)動態(tài)端口(Dynamic Ports)動態(tài)端口的范圍從 1024 到 65535,這些端口號一般不固定分配給某個服務(wù),也就是說許多服務(wù)都可以使用這些端口。只要運(yùn)行的程序向系統(tǒng)提出訪問網(wǎng)絡(luò)的申請,那么系統(tǒng)就可以從這些端口號中分配出一個供該程序使用。比如 1024端口就是分配給第一個向系統(tǒng)發(fā)出申請的程序。在關(guān)閉程序進(jìn)程后,就會釋放所占用的端口號。不過,動態(tài)端口也常常被病毒木馬程序所利用,如冰河默認(rèn)連接端口是7626、WAY 2.4 是 8011、Netspy 3.0 是 7306、YAI 病毒是 1024 等等。按協(xié)議類型劃分:第 3 頁 共 23 頁按協(xié)議類型劃分
16、,可以分為 TCP、UDP、IP 和 ICMP(Internet 控制消息協(xié)議)等端口。下面主要介紹 TCP 和 UDP 端口:(1)TCP 端口TCP 端口,即傳輸控制協(xié)議端口,需要在客戶端和服務(wù)器之間建立連接,這樣可以提供可靠的數(shù)據(jù)傳輸。常見的包括 FTP 服務(wù)的 21 端口,Telnet 服務(wù)的 23 端口,SMTP 服務(wù)的 25 端口,以及 HTTP 服務(wù)的 80 端口等等。(2)UDP 端口UDP 端口,即用戶數(shù)據(jù)包協(xié)議端口,無需在客戶端和服務(wù)器之間建立連接,安全性得不到保障。常見的有 DNS 服務(wù)的 53 端口,SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)服務(wù)的 161 端口,QQ 使用的 800
17、0 和 4000 端口等等。2.22.2端口掃描原理端口掃描原理掃描者向目標(biāo)主機(jī)的 TCP/IP 服務(wù)端口發(fā)送探測數(shù)據(jù)包,通過探測性數(shù)據(jù)包得到目標(biāo)主機(jī)的響應(yīng)并記錄下來,通過分析響應(yīng)來判斷服務(wù)端口是打開還是關(guān)閉,進(jìn)而得知端口的狀態(tài)。通常通過調(diào)用套接字函數(shù)connect ()連接到目標(biāo)計算機(jī)上,完成一個完整的3次握手程。如果端口處于偵聽狀態(tài),那么connect()就能成功返回。否則,該端口不可用,即沒有提供服務(wù)。端口掃描的第一步是向目標(biāo)主機(jī)的TCP/UDP端口發(fā)送探測數(shù)據(jù)包,然后根據(jù)對方的回應(yīng)判斷端口是否開放。由于網(wǎng)絡(luò)環(huán)境的差異以及操作系統(tǒng)對連接請求的應(yīng)答并不一致,在端口掃描中支持多種掃描方式,以
18、保證掃描的準(zhǔn)確和快速。大多數(shù)掃描技術(shù)要發(fā)送原始套接字包來進(jìn)行探測。因為只有原始套接字支持對IP 報頭的設(shè)置,即構(gòu)造IP 數(shù)據(jù)包。同時,原始套接字也支持發(fā)送和接收IP數(shù)據(jù)包。這樣,原始套接字接口實際上成為網(wǎng)絡(luò)層向上提供的接口。實現(xiàn)時可通過調(diào)用Winsock2庫中的函數(shù)setsockopt()來設(shè)置選項IP_HDRINCL,以獲取自定義IP報頭的權(quán)限。由于Windows2000僅支持Raw ICMP和Raw IGMP,不支持RawTCP,因此,發(fā)送TCP數(shù)據(jù)包,必須通過設(shè)置選項IP_HDRINCL來構(gòu)造IP報頭。首先創(chuàng)建原始套接字,定義IP首部。IPHEADER, TCP偽首部TCPSOCHEAD
19、ER和TCP首部TCPHEADER,再填充IP首部和TCP首部,其中,TCP首部中的結(jié)構(gòu)體變量tcpHeader的tcpHeade.th_flag=2,表示發(fā)送的是SYN數(shù)據(jù)包,修改它可以實現(xiàn)不同的標(biāo)志位探測,如2是SYN,0是NULL,1是FIN,16是ACK探測等等。因為是自己填充IP首部和TCP首部,所以還需定義一個計算校驗和函數(shù)checksum來計算IP報頭和TCP報頭的校驗和。在填充TCP首部時,通過TCP偽首部填充TCP數(shù)據(jù)包的IP選項。事實上TCP偽首部并不是第 4 頁 共 23 頁真正存在的,只是用于填充TCP的一些選項和計算校驗和。調(diào)用setsockopt()設(shè)置選項IP_H
20、DRINCL,根據(jù)填充TCP、IP報頭的內(nèi)容構(gòu)造IP 數(shù)據(jù)包。設(shè)置偵聽原始套接字的同步和超時之后,調(diào)用sendto()發(fā)送IP 數(shù)據(jù)包。發(fā)送原始套接字包流程圖如圖1所示:圖 1 發(fā)送原始套接字包流程圖原始套接字包發(fā)送完后,就可以接收目標(biāo)主機(jī)的回應(yīng)。當(dāng)發(fā)送原始套接字包時(如TCP SYN數(shù)據(jù)包),操作系統(tǒng)核心并不知道,也沒有此數(shù)據(jù)發(fā)送或者連接建立的記錄。因此,當(dāng)遠(yuǎn)端主機(jī)回應(yīng)時,系統(tǒng)核心就把這些包都全部丟掉,從而到達(dá)不了應(yīng)用程序上。所以,程序中不能簡單地使用接收函數(shù)來接收這些數(shù)據(jù)包。要達(dá)到接收數(shù)據(jù)包的目的,必須采用嗅探,接收所有通過的數(shù)據(jù)包,然后進(jìn)行篩選,留下符合需要的。為此可以再定義一個原始套接
21、字,用來接收數(shù)據(jù),并在套接字I/0控制函數(shù)中設(shè)置SIO_RCVALL,表示接收所有的數(shù)據(jù)。通過設(shè)置原始套接字的I/0控制命令,便可以調(diào)用recv()接收返回的數(shù)據(jù)包。一般情況下使用的是TCP SYN半連接掃描,由于TCPConnect()全連接掃描擁有很好的穩(wěn)定第 5 頁 共 23 頁性,這種技術(shù)用得非常多。通常通過調(diào)用套接字函數(shù)connect()連接到目標(biāo)計算機(jī)上,完成一個完整的3 次握手過程。如果端口處于偵聽狀態(tài),那么connect()就能成功返回。否則,該端口不可用,即沒有提供服務(wù)。以上實現(xiàn)的端口掃描,可以得到每個端口的狀態(tài),此處的狀態(tài)并非端口本身的性質(zhì),而是對掃描結(jié)果的描述。端口狀態(tài)可
22、以分為5種:open(開放的)、closed(關(guān)閉的)、filtered(被過濾的)、unfiltered(未被過濾的)和open filtered(開放或者被過濾的)。2.32.3端口掃描技術(shù)簡介端口掃描技術(shù)簡介常用的端口掃描技術(shù)主要有以下幾種:(1)TCP connect() 掃描這是最基本的TCP掃描。利用操作系統(tǒng)提供的connect系統(tǒng)調(diào)用,用來與每一個感興趣的目標(biāo)計算機(jī)的端口進(jìn)行連接。如果端口處于偵聽狀態(tài),則connect就能成功。否則,這個端口是不能用的,即沒有提供服務(wù)。這個技術(shù)的最大的優(yōu)點是,用戶不需要任何權(quán)限,系統(tǒng)中的任何用戶都有權(quán)利使用這個調(diào)用。另一個好處就是速度快。如果對每
23、個目標(biāo)端口以串行的方式,使用單獨的connect()調(diào)用,那么將會花費相當(dāng)長的時間,用戶可以通過同時打開多個套接字,從而加速掃描。使用非阻塞I/O允許設(shè)置一個較低的超時時限,同時觀察多個套接字。但這種方法的缺點是很容易被發(fā)覺,并且被過濾掉。目標(biāo)計算機(jī)的logs文件會顯示一連串的連接和連接是否出錯的服務(wù)消息,并且能很快地使它關(guān)閉。(2)TCP SYN掃描這種技術(shù)通常認(rèn)為是“半開放”掃描,這是因為掃描程序不必要打開一個完全的TCP連接。掃描程序發(fā)送的是一個SYN數(shù)據(jù)包,好象準(zhǔn)備打開一個實際的連接并等待反應(yīng)一樣(參考TCP的三次握手建立一個TCP連接的過程)。一個SYN/ACK 的返回信息表示端口處
24、于偵聽狀態(tài)。一個RST返回,表示端口沒有處于偵聽?wèi)B(tài)。如果收到一個SYN/ACK,則掃描程序必須再發(fā)送一個RST信號,來關(guān)閉這個連接過程。 這種掃描技術(shù)的優(yōu)點在于一般不會在目標(biāo)計算機(jī)上留下記錄,但這種方法的缺點是,必須要有root權(quán)限才能建立自己的SYN數(shù)據(jù)包,不過這個條件一般都是很容易滿足的。(3)TCP FIN掃描有的時候有可能SYN掃描都不夠秘密。一些防火墻和包過濾器會對一些指定的端口進(jìn)行監(jiān)視,有的程序能檢測到這些掃描。相反,F(xiàn)IN數(shù)據(jù)包可能會順利通第 6 頁 共 23 頁過。這種掃描方法的思想是關(guān)閉的端口會用適當(dāng)?shù)腞ST來回復(fù)FIN數(shù)據(jù)包。另一方面,打開的端口會忽略對FIN數(shù)據(jù)包的回復(fù)。
25、這種方法和系統(tǒng)的實現(xiàn)有一定的關(guān)系。如果有的系統(tǒng)不管端口是否打開,都回復(fù)RST,那么這種掃描方法就不適用了。但這種方法在區(qū)分Unix和NT時是十分有用的。(4)IP段掃描這種不能算是新方法,只是其他技術(shù)的變化。它并不是直接發(fā)送TCP探測數(shù)據(jù)包,是將數(shù)據(jù)包分成二個較小的IP段。這樣就將一個TCP頭分成好幾個數(shù)據(jù)包,從而過濾器就很難探測到。但一些程序在處理這些小數(shù)據(jù)包時會有些問題。(5)FTP返回攻擊FTP協(xié)議的一個的特點是它支持代理FTP連接。即入侵者可以從自己的計算機(jī)和目標(biāo)主機(jī)的FTP server-PI(協(xié)議解釋器)連接,建立一個控制通信連接。然后,請求這個server-PI激活一個有效的se
26、rver-DTP(數(shù)據(jù)傳輸進(jìn)程)來給Internet上任何地方發(fā)送文件。對于一個User-DTP,這是個推測,盡管RFC明確定義請求一個服務(wù)器發(fā)送文件到另一個服務(wù)器是可以的,但當(dāng)前的大多數(shù)實現(xiàn)并不支持,因為這個特性“能用來發(fā)送不能跟蹤的郵件和新聞,給許多服務(wù)器造成打擊,用盡磁盤,企圖越過防火墻”。利用FTP返回攻擊的目的是從一個代理的FTP服務(wù)器來掃描TCP端口。這樣,用戶能在一個防火墻后面連接到一個FTP服務(wù)器,然后掃描端口。如果FTP服務(wù)器允許從一個目錄讀寫數(shù)據(jù),你就能發(fā)送任意的數(shù)據(jù)到發(fā)現(xiàn)的打開的端口。對于端口掃描,這個技術(shù)是使用PORT命令來表示被動的User DTP正在目標(biāo)計算機(jī)上的某
27、個端口偵聽。然后入侵者試圖用LIST命令列出當(dāng)前目錄,結(jié)果通過Server-DIP發(fā)送出去。如果目標(biāo)主機(jī)正在某個端口偵聽,傳輸就會成功,(產(chǎn)生一個150或226的回應(yīng))否則,會出現(xiàn)“425 Cant build data connection:Connection refused.”。然后,使用另一個PORT命令,嘗試目標(biāo)計算機(jī)上的下一個端口。這種方法的優(yōu)點很明顯,難以跟蹤,能穿過防火墻。主要缺點是速度很慢,有的FTP服務(wù)器最終能得到一些線索,關(guān)閉代理功能。(6)UDP ICMP端口不能到達(dá)掃描這種方法與上面幾種方法的不同之處在于使用的是UDP協(xié)議。由于這個協(xié)議很簡單,所以掃描變得相對困難。這
28、是由于打開的端口對掃描探測并不發(fā)送一個確認(rèn),關(guān)閉的端口也并不需要發(fā)送一個錯誤數(shù)據(jù)包。幸運(yùn)的是,許多主機(jī)在你向一個未打開UDP端口發(fā)送一個數(shù)據(jù)包時,會返回一個ICMP_PORT_UNREACH錯誤。這樣你就能發(fā)現(xiàn)哪個端口是第 7 頁 共 23 頁關(guān)閉的。UDP和ICMP錯誤都不保證能到達(dá),因此,這種掃描器必須還實現(xiàn)一個在包看上去是丟失的時候能重新傳輸。這種掃描方法是很慢的,因為RFC對ICMP錯誤消息的產(chǎn)生速率作了規(guī)定。同樣,這種掃描方法需要具有root權(quán)限。(7)UDP recvfrom()和write()掃描。當(dāng)非root用戶不能直接讀到端口不能到達(dá)錯誤時,Linux能間接地在它們到達(dá)時通知
29、用戶。比如,對一個關(guān)閉的端口的第二個write()調(diào)用將失敗。在非阻塞的UDP套接字上調(diào)用recvfrom()時,如果ICMP出錯還沒有到達(dá)時會返回EAGAIN-重試。如果ICMP到達(dá)時,返回ECONNREFUSED-連接被拒絕。這就是用來查看端口是否打開的技術(shù)。(8)TCP 反向 ident 掃描ident 協(xié)議(rfc1413)允許看到通過 TCP 連接的任何進(jìn)程的擁有者的用戶名,即使這個連接不是由這個進(jìn)程開始的。例如,掃描者能連接到 Http 端口,然后用 ident 來發(fā)現(xiàn)服務(wù)器是否正在以root 權(quán)限運(yùn)行。這種方法只能在和目標(biāo)端口建立了一個完整的 TCP 連接后才能看到。總之,為了避
30、過目標(biāo)系統(tǒng)的日志審計和防火墻的阻截,為了避過目標(biāo)系統(tǒng)的端口掃描檢測,入侵者往往會采用一系列方法來改變正常的端口掃描方式,以達(dá)成端口掃描的隱蔽性,這些方法包括:改變掃描端口的順序、慢速掃描、端口掃描間隔隨機(jī)化、隨機(jī)化掃描包的其它區(qū)域、偽造源地址掃描和分布式掃描等。3 3 檢測端口掃描概述檢測端口掃描概述3.13.1 端口掃描檢測的分析端口掃描檢測的分析端口掃描是一臺主機(jī)對多個目標(biāo)端口進(jìn)行試探,包括打開的和沒有打開的端口。這就為檢測端口掃描提供了兩條“線索”:一是“是否存在試圖連接已經(jīng)關(guān)閉端口的行為” ;二是“在一段時間內(nèi),是否存在從一個源地址發(fā)出的數(shù)據(jù)包到達(dá)多個目的地址的行為” 。檢測端口掃描的
31、方法主要有兩種:一種是對主機(jī)沒有對外提供服務(wù)的端口進(jìn)行監(jiān)聽,如果檢測到有對這樣的端口的連接請求,就認(rèn)為有掃描發(fā)生;另一種檢測方法是對整個網(wǎng)絡(luò)流量進(jìn)行監(jiān)控,檢查網(wǎng)絡(luò)中所有的數(shù)據(jù),并對異常情況進(jìn)行記錄。在本文中,為了便于對端口掃描檢測進(jìn)行研究,從端口掃描檢測的角度出發(fā),把端口掃描技術(shù)分為普通掃描,慢速掃描及分布式掃描,并在后面的介紹第 8 頁 共 23 頁中分別對不同的檢測方法作了介紹。3.23.2普通普通端口掃描檢測技術(shù)概述端口掃描檢測技術(shù)概述目前比較常見的端口掃描就是一對一的掃描關(guān)系,如下圖2所示,即只有一個掃描者,且掃描者從本身出發(fā),不經(jīng)過任何隱藏通過發(fā)送探測性數(shù)據(jù)包來判斷目標(biāo)主機(jī)的端口開放
32、情況。圖2 普通掃描技術(shù)針對這種一對一的普通或快速的端口掃描技術(shù),目前端口掃描的檢測技術(shù)采用的方法有Snort方法、Watcher方法和PortSentry方法等三種,都能很好的檢測出這種掃描。它們進(jìn)行端口掃描檢測采用的算法大致可以概括如下:在M秒內(nèi),監(jiān)測從同一源端發(fā)出的數(shù)據(jù)包, 如果其目的IP與目的端口的組合數(shù)目超出N的話, 則認(rèn)為是一次掃描。Snort是一個輕量級的網(wǎng)絡(luò)入侵檢測系統(tǒng)。它的探測引擎采用模塊化的插件結(jié)構(gòu),允許開發(fā)者擴(kuò)展Snort的功能, 也可以使得用戶可以按自己的需要定制功能。Snort檢測端口掃描的方法是:在Y秒內(nèi), 如果檢測到從同一個源發(fā)出,目的為不同的主機(jī)和端口的組合的T
33、CP或UDP包的數(shù)目超出閾值X, 則認(rèn)為是掃描。其中X和Y的值可以由用戶自己設(shè)定。另外, Snort也同樣可以檢測有奇異標(biāo)志的TCP包。Watcher是一個比較完整的基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)的設(shè)計代碼。它檢測所有通過的信息包, 并且將它認(rèn)為是惡意的攻擊行為記錄在syslog中。它的檢測原理是:如果在短時間內(nèi)有超過7個以上的端口收到信息包(不管類型如何) , 那么這一事件就被當(dāng)成端口掃描記錄下來。PortSentry是基于主機(jī)的網(wǎng)絡(luò)入侵檢測系統(tǒng)的一個組成部分,主要用來檢測外部對主機(jī)的端口掃描,它能夠?qū)Χ喾N掃描方法進(jìn)行檢測。它的檢測原理是:對沒有開放服務(wù)的端口的訪問有可能是一次掃描。通過監(jiān)測沒有開放
34、服務(wù)的端口,在最近n次連接里由同一個源發(fā)起的連接超過X次則判斷為一次掃描。以上幾種掃描檢測方法對端口掃描所采用的檢測技術(shù)都比較簡單,且存在第 9 頁 共 23 頁以下缺點:(1)無法檢測慢速掃描, 因為在檢測中時間窗是個固定值, 只要掃描速度低于這個閾值, 攻擊者就可以成功地逃避檢測。當(dāng)設(shè)定的時間閾值大到一定程度時,需要從相當(dāng)長時間的網(wǎng)絡(luò)連接記錄中找出掃描行為,系統(tǒng)資源消耗較大,無法適應(yīng)寬帶網(wǎng)絡(luò)尤其是高速網(wǎng)絡(luò)環(huán)境; 從理論上講,黑客總能夠以略大于系統(tǒng)設(shè)定閾值的時間間隔進(jìn)行端口掃描;(2)未考慮到受保護(hù)網(wǎng)段的特點, 對網(wǎng)段內(nèi)所有主機(jī)都采用相同的檢測策略, 效率不高而且容易導(dǎo)致誤報。3.33.3慢
35、慢速端口掃描檢測技術(shù)概述速端口掃描檢測技術(shù)概述慢速端口掃描是在普通端口掃描技術(shù)上進(jìn)化而來的,可以說是黑客技術(shù)提高的體現(xiàn)。通常普通端口掃描的掃描者對被掃描者發(fā)送探測性數(shù)據(jù)包都是快速的,被掃描者在進(jìn)行捕包判斷上就會顯得比較容易,而慢速掃描與普通掃描一樣,都是一對一,即掃描者和被掃描者都只有一個,但是其對目標(biāo)主機(jī)發(fā)送探測性數(shù)據(jù)包的時間間隔上就變化很大,可以在1分鐘發(fā)送一個探測性數(shù)據(jù)包后20分鐘再繼續(xù)發(fā)送探測性數(shù)據(jù)包,也或者在發(fā)送一個探測性數(shù)據(jù)包后時間就遞增,產(chǎn)生一個時間上的變化,總之給檢測端口掃描帶來了極大的困難,這就需要用新的規(guī)則,新的技術(shù)來進(jìn)行端口檢測。在目前的慢速掃描檢測技術(shù)中,模糊技術(shù)是應(yīng)用
36、的比較好的能檢測出慢速端口掃描的新型技術(shù)。3.43.4端口端口掃描的分布式檢測概述掃描的分布式檢測概述在當(dāng)前端口掃描技術(shù)中,比較難以檢測的是分布式掃描,針對分布式掃描,不能采取對普通掃描及慢速掃描的檢測方法。如下圖 3 所示,分布掃描是指掃描者通過控制其他多臺計算機(jī)對目標(biāo)主機(jī)進(jìn)行數(shù)據(jù)包探測,這樣,被掃描者所捕獲的數(shù)據(jù)包就是來自于不同的 IP,但是實際掃描者通過所控制的計算機(jī)對應(yīng)答數(shù)據(jù)包的分析依然能夠判斷出目標(biāo)主機(jī)的端口開放情況,被掃描者雖然所捕獲到的探測性數(shù)據(jù)包其 IP 是正確的,但是受到了 IP 欺騙,并沒有判斷出真正的掃描者,在這種情況下通常的檢測方法對分布式掃描是無效的。當(dāng)然,在分布式掃
37、描的基礎(chǔ)上加以慢速掃描,則是更加難以檢測的掃描技術(shù)。第 10 頁 共 23 頁圖 3 分布式掃描技術(shù)在當(dāng)前的分布式掃描檢測技術(shù)中,最常用的是在進(jìn)行端口掃描檢測時,將系統(tǒng)分成兩個部分:第一部分是傳感器,它的功能是判斷一個包的異常程度,賦給包一個異常值。如果一個包有異常,則從網(wǎng)絡(luò)數(shù)據(jù)中過濾出來,進(jìn)行下一步的處理;如果一個包沒有異常,則簡單地丟棄。第二部分是分析器,它對異常包進(jìn)行匯集、分類、分析。首先將異常包根據(jù)其不同特性分成不同的類,然后再對不同的類計算一個類的異常值總和。如果一個類的異常值總和超過了閾值,則判斷為掃描。在分布式端口掃描檢測系統(tǒng)中,傳感器分布在一個大網(wǎng)的各個子網(wǎng)內(nèi),采集網(wǎng)絡(luò)上的各種
38、有關(guān)掃描異常數(shù)據(jù);而分類器是一個匯總的分析器,通過匯總分析網(wǎng)絡(luò)內(nèi)各個子網(wǎng)的數(shù)據(jù),可以更好地分析網(wǎng)絡(luò)上出現(xiàn)的掃描情況。分布式檢測方法具有很多優(yōu)點:首先,它能夠?qū)崿F(xiàn)分布式掃描的檢測。因為分布式掃描其掃描包具有一定的異常性,所以這些包可以被第一步的檢測從網(wǎng)絡(luò)數(shù)據(jù)中過濾出來。在第二步進(jìn)行分類分析的時候,由于這些分布式掃描的包具有一個共同的特性,即掃描對象是同一個主機(jī)或同一個端口,因此它們可以被聚集到一個類里,從而被檢測為掃描。其次,這種方法也能夠檢測慢速的掃描。由于網(wǎng)絡(luò)上巨大的通信量,所以在以前的檢測方法里檢測時間窗T必須很小,否則會消耗掉太多的內(nèi)存和CPU時間而癱瘓。而采用該方法,由于分析器只需分析
39、處理異常包,因此可以取一個很大的時間窗T,從而檢測出慢速的掃描。另外,分布式檢測方法具有很好的實時性。由于傳感器只需要判斷一個包的異常程度,而不需要判斷是否屬于掃描,因此可以實現(xiàn)一個很快的異常包過濾器。而傳統(tǒng)的檢測方法,例如,SNORT在接收到一個包以后,首先檢查包的結(jié)第 11 頁 共 23 頁構(gòu),然后檢查現(xiàn)有的掃描列表,相對來說是很費時間的。異常包的檢測:首先,需要有一個準(zhǔn)則來確定網(wǎng)絡(luò)上一個包的異常程度。通過分析已有的一些檢測工具、掃描工具、以及入侵者用以躲避掃描檢測的方法,總結(jié)出下面的包是異常的包:(1)帶有奇怪標(biāo)志位的包有可能是掃描包;(2)沒有正確的執(zhí)行TCP協(xié)議握手過程的包有可能是掃
40、描包;(3)連接后馬上斷開,沒有具體協(xié)議內(nèi)容的包,有可能是掃描包;(4)對沒有開放服務(wù)的端口的連接包有可能是掃描包。掃描技術(shù)在進(jìn)步,相應(yīng)的檢測技術(shù)也在相應(yīng)提高,現(xiàn)今還出現(xiàn)了一種新的檢測分布式掃描的方法,其原理是靠統(tǒng)計流量來進(jìn)行判斷,也能很好的檢測出分布式掃描。但是由于網(wǎng)絡(luò)上的流量非常的大,且相當(dāng)?shù)牟还潭ǎx一定時間內(nèi)的流量有很大的困難,所以這種檢測方法還存在很多缺陷,容易產(chǎn)生誤判為端口掃描,也容易放過真正的端口掃描行為。3.53.5主流的端口掃描工具主流的端口掃描工具常用的幾種端口掃描檢測器有:NSM(The Network Security Monitor)、Gr IDS、Snort和P
41、ortsentry等。NSM是最早的基于網(wǎng)絡(luò)的入侵檢測系統(tǒng),它認(rèn)為所有與大于15個其它主機(jī)建立連接的主機(jī)都是掃描者。這種算法是許多檢測系統(tǒng)檢測算法的雛形。Gr IDS通過建立網(wǎng)絡(luò)連接拓?fù)鋱D來檢測端口掃描。它使用節(jié)點代表主機(jī),如果主機(jī)間存在數(shù)據(jù)交換,就在相應(yīng)的節(jié)點間連線。一次掃描試探就會在掃描者的主機(jī)和被掃描者的主機(jī)之間建立一條連線,Gr IDS通過計算一個節(jié)點上存在多少連線的方法判斷是不是有端口掃描行為。這種方法不能檢測秘密掃描,速度相對較慢,具體的端口掃描行為的判斷需要人工完成。Snort是基于libpcap的一個源代碼公開的輕量級的入侵檢測系統(tǒng)。它的端口檢測功能是通過一個嵌入程序來完成。S
42、nort的掃描檢測器通過計算“在時間X秒內(nèi)有Y個TCP或UDP數(shù)據(jù)包從一個源地址發(fā)往不同的目的地址”來確定是否有端口掃描行為;Snort能查找單個不正常的TCP包。缺點是不能檢測分布式掃描、慢速掃描,不能處理分片。Portsentry是基于主機(jī)的端口掃描檢測器。它指定多個TCP/UDP端口進(jìn)行監(jiān)聽,當(dāng)這些端口被試圖連接或掃描時,能在瞬間捕捉連接或掃描企圖;它能有效捕捉非連續(xù)隨機(jī)掃描,生成外界掃描動作的詳細(xì)日志記錄,并將發(fā)起掃描的主機(jī)地址寫入tcp_wrapper的host.deny文件中,并重指掃描者路由,把信息流第 12 頁 共 23 頁重定向到一個不存在的主機(jī)。缺點是僅限于對一臺單機(jī)進(jìn)行端
43、口掃描分析;判斷規(guī)則過于嚴(yán)格,正常的掃描容易被誤認(rèn)為是端口掃描行為。4 4 端口掃描的實現(xiàn)端口掃描的實現(xiàn)4.14.1掃描程序的設(shè)計原理掃描程序的設(shè)計原理在進(jìn)行端口掃描的設(shè)計與開發(fā)中,利用三次握手的原理,建立原始套接字,通過向目標(biāo)主機(jī)的 TCP/IP 服務(wù)端口發(fā)送探測性數(shù)據(jù)包,并記錄目標(biāo)主機(jī)的響應(yīng)情況,最后通過分析響應(yīng)情況來判斷目標(biāo)主機(jī)服務(wù)端口是打開還是關(guān)閉,進(jìn)而得知端口的狀態(tài)。4.24.2程序流程圖程序流程圖如下圖 4 所示,所開發(fā)的端口掃描流程圖:圖 4 端口掃描流程圖第 13 頁 共 23 頁5 5 檢測端口掃描的實現(xiàn)檢測端口掃描的實現(xiàn)5.15.1檢測程序的設(shè)計原理檢測程序的設(shè)計原理在檢測
44、端口掃描程序的設(shè)計與開發(fā)中,這里首先是采取通過套接字來進(jìn)行數(shù)據(jù)包的捕獲,再通過解 IP 包,然后對所解出的 TCP 包和 UDP 包分別再進(jìn)行解包,并記錄下到達(dá)的端口,以及源 IP 地址,目的 IP 地址,目的端口,再設(shè)計一種算法,通過算法對數(shù)據(jù)包進(jìn)行統(tǒng)計分析,最后設(shè)定一個判斷發(fā)生掃描行為的條件,當(dāng)滿足條件有三次及三次以上的相同源 IP 且到達(dá)端口的不同的數(shù)據(jù)包即判斷發(fā)生端口掃描行為。此檢測端口掃描程序的設(shè)計不但可以檢測一般的掃描和快速掃描,在一定的程度上也能檢測慢速掃描。以前的端口掃描檢測方法都是采用在一個固定的時間窗 T 內(nèi)查看從同一個源地址發(fā)起的連接數(shù) X , 如果 X 超出了設(shè)定的閥值
45、, 則判斷為一次掃描。由于網(wǎng)絡(luò)上的通信量非常大, 所以以前的端口掃描方法都會設(shè)定一個很小的時間窗T ,防止消耗掉過多的內(nèi)存和 CPU 時間。由于本文提出的方法與時間窗無關(guān), 所以在不降低系統(tǒng)整體性能的前提下,在慢速掃描發(fā)送探測性數(shù)據(jù)包時間間隔上不超出所設(shè)計程序所能記錄數(shù)據(jù)包的最大上限的情況下仍能很好的檢測慢速掃描。5.25.2程序流程圖程序流程圖5.35.3設(shè)計實現(xiàn)重點代碼設(shè)計實現(xiàn)重點代碼6 6 性能測試性能測試6.16.1端口掃描程序性能測試端口掃描程序性能測試在端口掃描程序設(shè)計完成后,用開發(fā)出的端口掃描程序作了一個性能演示,如下圖 6 所示,掃描者通過掃描命令向 IP 為 02 的目標(biāo)主機(jī)的 1-10000 端口進(jìn)行了發(fā)送探測性數(shù)據(jù)包掃描,并根據(jù)回應(yīng)顯示目標(biāo)主機(jī)的端口開放情況。第 14 頁 共 23 頁圖 6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借借款合同范例
- pvc地膠合同范本
- 債務(wù)處理合同范例
- 制造業(yè)股合同范本
- 農(nóng)場用電安裝合同范例
- 倉儲配送中心合同范例
- 臨街門面店鋪轉(zhuǎn)讓合同范例
- 代租代理合同范例
- 產(chǎn)品和技術(shù)合作合同范例
- 常規(guī)施工方案的混凝土
- 《環(huán)境與資源保護(hù)法(第5版)》全套教學(xué)課件
- DL∕T 827-2014 燈泡貫流式水輪發(fā)電機(jī)組啟動試驗規(guī)程
- 2024年南京信息職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- VDA6.3-2023過程審核檢查表
- 2024-汽車噴漆外包協(xié)議
- 大班語言活動:我驕傲-我是中國娃
- 食品安全教育主題班會課件
- 小學(xué)二年級數(shù)學(xué)-除法豎式計算訓(xùn)練100題
- MOOC 國際商務(wù)-暨南大學(xué) 中國大學(xué)慕課答案
- 《酵母表達(dá)系統(tǒng)》課件
- 依法行使權(quán)利-統(tǒng)編版道德與法治八年級下冊
評論
0/150
提交評論