端口掃描與檢測技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc
《端口掃描與檢測技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《端口掃描與檢測技術(shù)的實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文.doc(34頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)計(jì)( 論論 文文) 端口掃描與檢測技術(shù)的實(shí)現(xiàn)端口掃描與檢測技術(shù)的實(shí)現(xiàn) 論論文作者姓名:文作者姓名: 申申請請學(xué)位學(xué)位專業(yè)專業(yè): : 申申請請學(xué)位學(xué)位類別類別: : 指指導(dǎo)導(dǎo)教教師師姓姓名名( (職職稱稱) ): : 論論文提交日期:文提交日期: 端口掃描與檢測技術(shù)的實(shí)現(xiàn)端口掃描與檢測技術(shù)的實(shí)現(xiàn) 摘摘 要要 隨著 Internet 日益廣泛的應(yīng)用,黑客攻擊行為也是有增無減。如何有效地 抵御這種攻擊行為,一直是信息安全領(lǐng)域的焦點(diǎn)。 而其中,端口掃描技術(shù)吸引了越來越多人的關(guān)注。端口掃描是黑客搜集目 標(biāo)主機(jī)信息的一種常用方法。為了有效地對付網(wǎng)絡(luò)入侵行為,對端口掃描進(jìn)行研 究是非常有
2、益和必要的。攻擊者在攻擊一個(gè)目標(biāo)時(shí),首先要獲取目標(biāo)的一些基 本信息,端口掃描就是其中最簡單最重要的方法之一,它可以掃描目標(biāo)機(jī)器中 開放的端口,從而確定目標(biāo)機(jī)器中提供的服務(wù),為下一步攻擊做準(zhǔn)備。針對端 口掃描技術(shù),相應(yīng)的端口掃描檢測技術(shù)顯的越發(fā)重要,作為網(wǎng)絡(luò)安全技術(shù)中的 一個(gè)重要課題,端口掃描檢測技術(shù)意義重大。 本文首先闡述了端口掃描技術(shù)以及端口掃描檢測技術(shù)的基本原理和常用方 法,然后在此基礎(chǔ)上設(shè)計(jì)了一個(gè)對基于網(wǎng)絡(luò)的端口進(jìn)行掃描,能判斷出目標(biāo)主 機(jī)端口開放情況的程序以及一個(gè)從網(wǎng)絡(luò)信息的數(shù)據(jù)包的捕獲和分析著手,再通 過統(tǒng)計(jì)判斷是否存在端口掃描行為的程序,最后從攻擊和防御的角度對端口掃 描和檢測技術(shù)
3、作了演示及分析。 關(guān)鍵詞關(guān)鍵詞:端口;端口掃描;數(shù)據(jù)包捕獲;端口檢測 The Realization of Port Scanning and Detecting Technology Abstract As the widely applying of Internet, the 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
4、 information security. And the port scanning draws peoples attention more and more. Port scanning is a usual method which is used by the hacker 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 nece
5、ssary 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, 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
6、 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 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 th
7、e 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, and assess the opening situation of the target main processor, and the other program which begins on capturing and analyzing the information packet of Internet
8、, and then assess whether there is a behavior about port scanning through statistic analyses. Lastly, it demonstrates and analyses the technology of port scanning and port detecting from the viewpoint of attacking and resisting. Key Words:port; port scanning; packet capture; port detecting 目目 錄錄 論文總
9、頁數(shù):23 頁 1引言1 1.1本課題研究的意義1 1.2本課題的研究方法2 2端口掃描概述2 2.1基本概念2 2.2端口掃描原理3 2.3端口掃描技術(shù)簡介5 3檢測端口掃描概述7 3.1端口掃描檢測的分析7 3.2普通端口掃描檢測技術(shù)概述8 3.3慢速端口掃描檢測技術(shù)概述9 3.4端口掃描的分布式檢測概述9 3.5主流的端口掃描工具.11 4端口掃描的實(shí)現(xiàn).12 4.1掃描程序的設(shè)計(jì)原理.12 4.2程序流程圖.12 5檢測端口掃描的實(shí)現(xiàn).13 5.1檢測程序的設(shè)計(jì)原理.13 5.2程序流程圖.13 5.3設(shè)計(jì)實(shí)現(xiàn)重點(diǎn)代碼.14 6性能測試.18 6.1端口掃描程序性能測試.18 6.2檢
10、測端口掃描程序性能測試.19 結(jié) 論.20 參考文獻(xiàn).21 致 謝.22 聲 明.23 第 1 頁 共 23 頁 1 1 引言引言 隨著科學(xué)技術(shù)的飛速發(fā)展,21 世紀(jì)的地球人已經(jīng)生活在信息時(shí)代。20 世紀(jì) 人類的兩大科學(xué)技術(shù)成果計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù),均已深入到人類社會(huì)的 各個(gè)領(lǐng)域,Internet 把“地球村”的居民們緊密聯(lián)系在一起, “天涯若比鄰” 已然成為現(xiàn)實(shí)。 互聯(lián)網(wǎng)之所以能這樣迅速蔓延,被世人所接受,是因?yàn)樗邆涮赜械男畔?資源。無論對商人、學(xué)者,還是對社會(huì)生活中的普通老百姓,只要你進(jìn)入網(wǎng)絡(luò) 的世界,就能找到其隱藏的奧妙,就能得到你所需要的信息。近年來 Internet 的迅速發(fā)展,給
11、人們的日常生活帶來了全新的感受, “網(wǎng)絡(luò)生存”已經(jīng)成為時(shí)尚, 同時(shí)人類社會(huì)諸如政治、科研、經(jīng)濟(jì)、軍事等各種活動(dòng)對信息網(wǎng)絡(luò)的依賴程度 已經(jīng)越來越強(qiáng), “網(wǎng)絡(luò)經(jīng)濟(jì)”時(shí)代已初露端倪。 然而,網(wǎng)絡(luò)技術(shù)的發(fā)展在給我們帶來便利的同時(shí)也帶來了巨大的隱患,尤 其是 Internet 和 Intranet 的飛速發(fā)展對網(wǎng)絡(luò)安全提出了前所未有的挑戰(zhàn)。技 術(shù)是一把雙刃劍,不法分子試圖不斷利用新的技術(shù)伺機(jī)攻入他人的網(wǎng)絡(luò)系統(tǒng), 而肩負(fù)保護(hù)網(wǎng)絡(luò)安全重任的系統(tǒng)管理員則要利用最新的網(wǎng)絡(luò)技術(shù)來防范各種各 樣的非法網(wǎng)絡(luò)入侵行為。事實(shí)已經(jīng)證明,隨著互聯(lián)網(wǎng)的日趨普及,在互聯(lián)網(wǎng)上 的犯罪活動(dòng)也越來越多,特別是 Internet 大范圍
12、的開放以及金融領(lǐng)域網(wǎng)絡(luò)的接 入,使得越來越多的系統(tǒng)遭到入侵攻擊的威脅。而作為黑客入侵的前奏,端口 掃描是最常見的信息獲取手段,端口掃描的檢測技術(shù)在當(dāng)今已經(jīng)越來越成為一 個(gè)重要的課題。 本文首先對端口掃描技術(shù)進(jìn)行研究,并開發(fā)一個(gè)能查詢目標(biāo)主機(jī)端口開放 情況的程序;然后重點(diǎn)研究端口掃描的檢測技術(shù),從對數(shù)據(jù)包的捕獲和分析著 手,再定義一個(gè)判斷是否掃描的條件,并通過統(tǒng)計(jì)由定義的掃描條件判斷是否 存在端口掃描行為,不但能對一般的掃描、快速掃描能夠檢測,且在一定程度 上對慢速掃描也能很好的檢測。 1.11.1 本課題研究的意義本課題研究的意義 在今天快速發(fā)展的 Internet 中,黑客攻擊方法層出不窮,
13、網(wǎng)絡(luò)的安全性已 經(jīng)越來越受到威脅。要保證計(jì)算機(jī)資源的保密性、有效性、完整性也變得越來 越困難。 端口掃描作為黑客攻擊的一個(gè)重要方面,也在不停地向前發(fā)展,掃描手段 已經(jīng)變得越來越豐富,越來越隱蔽,越來越具有威脅性。如何有效的對端口掃 描行為進(jìn)行檢測,已經(jīng)是越來越重要的一個(gè)課題,這對于保證我們網(wǎng)絡(luò)的安全 性有著重要的意義,也是入侵檢測系統(tǒng)(IDS)和入侵預(yù)防系統(tǒng)(IPS)的一個(gè) 重點(diǎn)。 第 2 頁 共 23 頁 1.21.2 本課題的研究方法本課題的研究方法 本文分別對端口掃描技術(shù)以及端口掃描的檢測技術(shù)作了研究,并設(shè)計(jì)出一 個(gè)根據(jù)掃描者向目標(biāo)主機(jī)的 TCP/IP 服務(wù)端口發(fā)送探測數(shù)據(jù)包,并記錄目標(biāo)
14、主機(jī) 的響應(yīng),通過分析響應(yīng)來判斷服務(wù)端口是打開還是關(guān)閉,進(jìn)而得知端口的狀態(tài) 的端口掃描程序,以及一個(gè)從網(wǎng)絡(luò)信息的數(shù)據(jù)包的捕獲和分析著手,通過統(tǒng)計(jì) 判斷是否存在端口掃描行為的端口掃描檢測程序。 2 2 端口掃描概述端口掃描概述 2.12.1 基本概念基本概念 端口的含義: 在網(wǎng)絡(luò)技術(shù)中,端口(Port)大致有兩種意思:一是物理意義上的端口,比 如,ADSL Modem、集線器、交換機(jī)、路由器用于連接其他網(wǎng)絡(luò)設(shè)備的接口,如 RJ-45 端口、SC 端口等等。二是邏輯意義上的端口,一般是指 TCP/IP 協(xié)議中的 端口,端口號的范圍從 0 到 65535,比如用于瀏覽網(wǎng)頁服務(wù)的 80 端口,用于 F
15、TP 服務(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(遠(yuǎn)程過程調(diào) 用)服務(wù)等等。 (2)動(dòng)態(tài)端口(Dynamic Ports) 動(dòng)態(tài)端口的范圍從 1024 到 65535,這些端口號一般不固定
16、分配給某個(gè)服務(wù), 也就是說許多服務(wù)都可以使用這些端口。只要運(yùn)行的程序向系統(tǒng)提出訪問網(wǎng)絡(luò) 的申請,那么系統(tǒng)就可以從這些端口號中分配出一個(gè)供該程序使用。比如 1024 端口就是分配給第一個(gè)向系統(tǒng)發(fā)出申請的程序。在關(guān)閉程序進(jìn)程后,就會(huì)釋放 所占用的端口號。 不過,動(dòng)態(tài)端口也常常被病毒木馬程序所利用,如冰河默認(rèn)連接端口是 7626、WAY 2.4 是 8011、Netspy 3.0 是 7306、YAI 病毒是 1024 等等。 按協(xié)議類型劃分: 第 3 頁 共 23 頁 按協(xié)議類型劃分,可以分為 TCP、UDP、IP 和 ICMP(Internet 控制消息協(xié) 議)等端口。下面主要介紹 TCP 和
17、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 使用的 8000 和 4000 端口等等。 2.22.2端口掃描原理端口掃描原理 掃描者向目標(biāo)主機(jī)的 TCP/
18、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ì)算機(jī)上,完成一個(gè)完整 的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)答并不一致,在端口掃描中支持多種掃描方式,以保證掃描的準(zhǔn)確和快速。 大多數(shù)掃描技術(shù)要發(fā)送原始套接字包來進(jìn)行探測。因?yàn)橹挥?/p>
19、原始套接字支持對 IP 報(bào)頭的設(shè)置,即構(gòu)造IP 數(shù)據(jù)包。同時(shí),原始套接字也支持發(fā)送和接收IP數(shù) 據(jù)包。這樣,原始套接字接口實(shí)際上成為網(wǎng)絡(luò)層向上提供的接口。實(shí)現(xiàn)時(shí)可通 過調(diào)用Winsock2庫中的函數(shù)setsockopt()來設(shè)置選項(xiàng)IP_HDRINCL,以獲取自定 義IP報(bào)頭的權(quán)限。由于Windows2000僅支持Raw ICMP和Raw IGMP,不支持 RawTCP,因此,發(fā)送TCP數(shù)據(jù)包,必須通過設(shè)置選項(xiàng)IP_HDRINCL來構(gòu)造IP報(bào)頭。 首先創(chuàng)建原始套接字,定義IP首部。 IPHEADER, TCP偽首部TCPSOCHEADER和TCP首部TCPHEADER,再填充IP首部和 TCP
20、首部,其中,TCP首部中的結(jié)構(gòu)體變量tcpHeader的tcpHeade.th_flag=2,表 示發(fā)送的是SYN數(shù)據(jù)包,修改它可以實(shí)現(xiàn)不同的標(biāo)志位探測,如2是SYN,0是 NULL,1是FIN,16是ACK探測等等。因?yàn)槭亲约禾畛銲P首部和TCP首部,所以還 需定義一個(gè)計(jì)算校驗(yàn)和函數(shù)checksum來計(jì)算IP報(bào)頭和TCP報(bào)頭的校驗(yàn)和。在填充 TCP首部時(shí),通過TCP偽首部填充TCP數(shù)據(jù)包的IP選項(xiàng)。事實(shí)上TCP偽首部并不是 第 4 頁 共 23 頁 真正存在的,只是用于填充TCP的一些選項(xiàng)和計(jì)算校驗(yàn)和。調(diào)用setsockopt()設(shè) 置選項(xiàng)IP_HDRINCL,根據(jù)填充TCP、IP報(bào)頭的內(nèi)容
21、構(gòu)造IP 數(shù)據(jù)包。設(shè)置偵聽原 始套接字的同步和超時(shí)之后,調(diào)用sendto()發(fā)送IP 數(shù)據(jù)包。 發(fā)送原始套接字包流程圖如圖1所示: 圖 1 發(fā)送原始套接字包流程圖 原始套接字包發(fā)送完后,就可以接收目標(biāo)主機(jī)的回應(yīng)。當(dāng)發(fā)送原始套接字 包時(shí)(如TCP SYN數(shù)據(jù)包),操作系統(tǒng)核心并不知道,也沒有此數(shù)據(jù)發(fā)送或者連接 建立的記錄。因此,當(dāng)遠(yuǎn)端主機(jī)回應(yīng)時(shí),系統(tǒng)核心就把這些包都全部丟掉,從 而到達(dá)不了應(yīng)用程序上。所以,程序中不能簡單地使用接收函數(shù)來接收這些數(shù) 據(jù)包。要達(dá)到接收數(shù)據(jù)包的目的,必須采用嗅探,接收所有通過的數(shù)據(jù)包,然 后進(jìn)行篩選,留下符合需要的。為此可以再定義一個(gè)原始套接字,用來接收數(shù) 據(jù),并在套
22、接字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ì)算 機(jī)上,完成一個(gè)完整的3 次握手過程。如果端口處于偵聽狀態(tài),那么connect() 就能成功返回。否則,該端口不可用,即沒有提供服務(wù)。以上實(shí)現(xiàn)的端口掃描, 可以得到每個(gè)端口的狀態(tài),此處的狀態(tài)并非端口本身的性質(zhì),而是對掃描結(jié)果 的描述。端口狀態(tài)可以分為5
23、種: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)用,用來與每一個(gè)感興趣的目標(biāo)計(jì)算機(jī) 的端口進(jìn)行連接。如果端口處于偵聽狀態(tài),則connect就能成功。否則,這個(gè)端 口是不能用的,即沒有提供服務(wù)。 這個(gè)技術(shù)的最大的優(yōu)點(diǎn)是,用戶不需要任何權(quán)限,系統(tǒng)中的任何用戶都有 權(quán)利使用這個(gè)調(diào)用。另一個(gè)好處就是速
24、度快。如果對每個(gè)目標(biāo)端口以串行的方 式,使用單獨(dú)的connect()調(diào)用,那么將會(huì)花費(fèi)相當(dāng)長的時(shí)間,用戶可以通過同 時(shí)打開多個(gè)套接字,從而加速掃描。使用非阻塞I/O允許設(shè)置一個(gè)較低的超時(shí)時(shí) 限,同時(shí)觀察多個(gè)套接字。但這種方法的缺點(diǎn)是很容易被發(fā)覺,并且被過濾掉。 目標(biāo)計(jì)算機(jī)的logs文件會(huì)顯示一連串的連接和連接是否出錯(cuò)的服務(wù)消息,并且 能很快地使它關(guān)閉。 (2)TCP SYN掃描 這種技術(shù)通常認(rèn)為是“半開放”掃描,這是因?yàn)閽呙璩绦虿槐匾蜷_一個(gè) 完全的TCP連接。 掃描程序發(fā)送的是一個(gè)SYN數(shù)據(jù)包,好象準(zhǔn)備打開一個(gè)實(shí)際的連接并等待反 應(yīng)一樣(參考TCP的三次握手建立一個(gè)TCP連接的過程)。一個(gè)S
25、YN/ACK 的返回 信息表示端口處于偵聽狀態(tài)。一個(gè)RST返回,表示端口沒有處于偵聽?wèi)B(tài)。如果收 到一個(gè)SYN/ACK,則掃描程序必須再發(fā)送一個(gè)RST信號,來關(guān)閉這個(gè)連接過程。 這種掃描技術(shù)的優(yōu)點(diǎn)在于一般不會(huì)在目標(biāo)計(jì)算機(jī)上留下記錄,但這種方法的缺 點(diǎn)是,必須要有root權(quán)限才能建立自己的SYN數(shù)據(jù)包,不過這個(gè)條件一般都是很 容易滿足的。 (3)TCP FIN掃描 有的時(shí)候有可能SYN掃描都不夠秘密。一些防火墻和包過濾器會(huì)對一些指定 的端口進(jìn)行監(jiān)視,有的程序能檢測到這些掃描。相反,F(xiàn)IN數(shù)據(jù)包可能會(huì)順利通 第 6 頁 共 23 頁 過。 這種掃描方法的思想是關(guān)閉的端口會(huì)用適當(dāng)?shù)腞ST來回復(fù)FIN數(shù)
26、據(jù)包。另一 方面,打開的端口會(huì)忽略對FIN數(shù)據(jù)包的回復(fù)。這種方法和系統(tǒng)的實(shí)現(xiàn)有一定的 關(guān)系。如果有的系統(tǒng)不管端口是否打開,都回復(fù)RST,那么這種掃描方法就不適 用了。但這種方法在區(qū)分Unix和NT時(shí)是十分有用的。 (4)IP段掃描 這種不能算是新方法,只是其他技術(shù)的變化。 它并不是直接發(fā)送TCP探測數(shù)據(jù)包,是將數(shù)據(jù)包分成二個(gè)較小的IP段。這樣 就將一個(gè)TCP頭分成好幾個(gè)數(shù)據(jù)包,從而過濾器就很難探測到。但一些程序在處 理這些小數(shù)據(jù)包時(shí)會(huì)有些問題。 (5)FTP返回攻擊 FTP協(xié)議的一個(gè)的特點(diǎn)是它支持代理FTP連接。即入侵者可以從自己的計(jì)算 機(jī)和目標(biāo)主機(jī)的FTP server-PI(協(xié)議解釋器)連
27、接,建立一個(gè) 控制通信連接。然后,請求這個(gè)server-PI激活一個(gè)有效的server-DTP(數(shù)據(jù)傳 輸進(jìn)程)來給Internet上任何地方發(fā)送文件。對于一個(gè)User-DTP,這是個(gè)推測, 盡管RFC明確定義請求一個(gè)服務(wù)器發(fā)送文件到另一個(gè)服務(wù)器是可以的,但當(dāng)前的 大多數(shù)實(shí)現(xiàn)并不支持,因?yàn)檫@個(gè)特性“能用來發(fā)送不能跟蹤的郵件和新聞,給 許多服務(wù)器造成打擊,用盡磁盤,企圖越過防火墻”。 利用FTP返回攻擊的目的是從一個(gè)代理的FTP服務(wù)器來掃描TCP端口。這樣, 用戶能在一個(gè)防火墻后面連接到一個(gè)FTP服務(wù)器,然后掃描端口。如果FTP服務(wù) 器允許從一個(gè)目錄讀寫數(shù)據(jù),你就能發(fā)送任意的數(shù)據(jù)到發(fā)現(xiàn)的打開的端
28、口。對 于端口掃描,這個(gè)技術(shù)是使用PORT命令來表示被動(dòng)的User DTP正在目標(biāo)計(jì)算機(jī) 上的某個(gè)端口偵聽。然后入侵者試圖用LIST命令列出當(dāng)前目錄,結(jié)果通過 Server-DIP發(fā)送出去。如果目標(biāo)主機(jī)正在某個(gè)端口偵聽,傳輸就會(huì)成功,(產(chǎn) 生一個(gè)150或226的回應(yīng))否則,會(huì)出現(xiàn)“425 Cant build data connection:Connection refused.”。然后,使用另一個(gè)PORT命令,嘗試目標(biāo) 計(jì)算機(jī)上的下一個(gè)端口。這種方法的優(yōu)點(diǎn)很明顯,難以跟蹤,能穿過防火墻。 主要缺點(diǎn)是速度很慢,有的FTP服務(wù)器最終能得到一些線索,關(guān)閉代理功能。 (6)UDP ICMP端口不能到
29、達(dá)掃描 這種方法與上面幾種方法的不同之處在于使用的是UDP協(xié)議。由于這個(gè)協(xié)議 很簡單,所以掃描變得相對困難。 這是由于打開的端口對掃描探測并不發(fā)送一個(gè)確認(rèn),關(guān)閉的端口也并不需 要發(fā)送一個(gè)錯(cuò)誤數(shù)據(jù)包。幸運(yùn)的是,許多主機(jī)在你向一個(gè)未打開UDP端口發(fā)送一 個(gè)數(shù)據(jù)包時(shí),會(huì)返回一個(gè)ICMP_PORT_UNREACH錯(cuò)誤。這樣你就能發(fā)現(xiàn)哪個(gè)端口是 第 7 頁 共 23 頁 關(guān)閉的。UDP和ICMP錯(cuò)誤都不保證能到達(dá),因此,這種掃描器必須還實(shí)現(xiàn)一個(gè)在 包看上去是丟失的時(shí)候能重新傳輸。這種掃描方法是很慢的,因?yàn)镽FC對ICMP錯(cuò) 誤消息的產(chǎn)生速率作了規(guī)定。同樣,這種掃描方法需要具有root權(quán)限。 (7)UDP
30、 recvfrom()和write()掃描。 當(dāng)非root用戶不能直接讀到端口不能到達(dá)錯(cuò)誤時(shí),Linux能間接地在它們到 達(dá)時(shí)通知用戶。比如,對一個(gè)關(guān)閉的端口的第二個(gè)write()調(diào)用將失敗。在非阻 塞的UDP套接字上調(diào)用recvfrom()時(shí),如果ICMP出錯(cuò)還沒有到達(dá)時(shí)會(huì)返回 EAGAIN-重試。如果ICMP到達(dá)時(shí),返回ECONNREFUSED-連接被拒絕。這就是用來 查看端口是否打開的技術(shù)。 (8)TCP 反向 ident 掃描 ident 協(xié)議(rfc1413)允許看到通過 TCP 連接的任何進(jìn)程的擁有者的用戶 名,即使這個(gè)連接不是由這個(gè)進(jìn)程開始的。 例如,掃描者能連接到 Http 端
31、口,然后用 ident 來發(fā)現(xiàn)服務(wù)器是否正在以 root 權(quán)限運(yùn)行。這種方法只能在和目標(biāo)端口建立了一個(gè)完整的 TCP 連接后才能 看到。 總之,為了避過目標(biāo)系統(tǒng)的日志審計(jì)和防火墻的阻截,為了避過目標(biāo)系統(tǒng) 的端口掃描檢測,入侵者往往會(huì)采用一系列方法來改變正常的端口掃描方式, 以達(dá)成端口掃描的隱蔽性,這些方法包括:改變掃描端口的順序、慢速掃描、 端口掃描間隔隨機(jī)化、隨機(jī)化掃描包的其它區(qū)域、偽造源地址掃描和分布式掃 描等。 3 3 檢測端口掃描概述檢測端口掃描概述 3.13.1 端口掃描檢測的分析端口掃描檢測的分析 端口掃描是一臺(tái)主機(jī)對多個(gè)目標(biāo)端口進(jìn)行試探,包括打開的和沒有打開的 端口。這就為檢測端
32、口掃描提供了兩條“線索”:一是“是否存在試圖連接已 經(jīng)關(guān)閉端口的行為” ;二是“在一段時(shí)間內(nèi),是否存在從一個(gè)源地址發(fā)出的數(shù)據(jù) 包到達(dá)多個(gè)目的地址的行為” 。 檢測端口掃描的方法主要有兩種: 一種是對主機(jī)沒有對外提供服務(wù)的端口進(jìn)行監(jiān)聽,如果檢測到有對這樣的 端口的連接請求,就認(rèn)為有掃描發(fā)生; 另一種檢測方法是對整個(gè)網(wǎng)絡(luò)流量進(jìn)行監(jiān)控,檢查網(wǎng)絡(luò)中所有的數(shù)據(jù),并 對異常情況進(jìn)行記錄。 在本文中,為了便于對端口掃描檢測進(jìn)行研究,從端口掃描檢測的角度出 發(fā),把端口掃描技術(shù)分為普通掃描,慢速掃描及分布式掃描,并在后面的介紹 第 8 頁 共 23 頁 中分別對不同的檢測方法作了介紹。 3.23.2普通普通端口
33、掃描檢測技術(shù)概述端口掃描檢測技術(shù)概述 目前比較常見的端口掃描就是一對一的掃描關(guān)系,如下圖2所示,即只有一 個(gè)掃描者,且掃描者從本身出發(fā),不經(jīng)過任何隱藏通過發(fā)送探測性數(shù)據(jù)包來判 斷目標(biāo)主機(jī)的端口開放情況。 圖2 普通掃描技術(shù) 針對這種一對一的普通或快速的端口掃描技術(shù),目前端口掃描的檢測技術(shù) 采用的方法有Snort方法、Watcher方法和PortSentry方法等三種,都能很好的 檢測出這種掃描。 它們進(jìn)行端口掃描檢測采用的算法大致可以概括如下:在M秒內(nèi),監(jiān)測從同 一源端發(fā)出的數(shù)據(jù)包, 如果其目的IP與目的端口的組合數(shù)目超出N的話, 則認(rèn)為 是一次掃描。 Snort是一個(gè)輕量級的網(wǎng)絡(luò)入侵檢測系統(tǒng)
34、。它的探測引擎采用模塊化的插件 結(jié)構(gòu),允許開發(fā)者擴(kuò)展Snort的功能, 也可以使得用戶可以按自己的需要定制功 能。Snort檢測端口掃描的方法是:在Y秒內(nèi), 如果檢測到從同一個(gè)源發(fā)出,目的 為不同的主機(jī)和端口的組合的TCP或UDP包的數(shù)目超出閾值X, 則認(rèn)為是掃描。其 中X和Y的值可以由用戶自己設(shè)定。另外, Snort也同樣可以檢測有奇異標(biāo)志的 TCP包。 Watcher是一個(gè)比較完整的基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)的設(shè)計(jì)代碼。它檢測所 有通過的信息包, 并且將它認(rèn)為是惡意的攻擊行為記錄在syslog中。它的檢測 原理是:如果在短時(shí)間內(nèi)有超過7個(gè)以上的端口收到信息包(不管類型如何) , 那么這一事件就
35、被當(dāng)成端口掃描記錄下來。 PortSentry是基于主機(jī)的網(wǎng)絡(luò)入侵檢測系統(tǒng)的一個(gè)組成部分,主要用來檢 測外部對主機(jī)的端口掃描,它能夠?qū)Χ喾N掃描方法進(jìn)行檢測。它的檢測原理是: 對沒有開放服務(wù)的端口的訪問有可能是一次掃描。通過監(jiān)測沒有開放服務(wù)的端 口,在最近n次連接里由同一個(gè)源發(fā)起的連接超過X次則判斷為一次掃描。 以上幾種掃描檢測方法對端口掃描所采用的檢測技術(shù)都比較簡單,且存在 第 9 頁 共 23 頁 以下缺點(diǎn): (1)無法檢測慢速掃描, 因?yàn)樵跈z測中時(shí)間窗是個(gè)固定值, 只要掃描速度 低于這個(gè)閾值, 攻擊者就可以成功地逃避檢測。當(dāng)設(shè)定的時(shí)間閾值大到一定程 度時(shí),需要從相當(dāng)長時(shí)間的網(wǎng)絡(luò)連接記錄中找
36、出掃描行為,系統(tǒng)資源消耗較大,無 法適應(yīng)寬帶網(wǎng)絡(luò)尤其是高速網(wǎng)絡(luò)環(huán)境; 從理論上講,黑客總能夠以略大于系統(tǒng)設(shè) 定閾值的時(shí)間間隔進(jìn)行端口掃描; (2)未考慮到受保護(hù)網(wǎng)段的特點(diǎn), 對網(wǎng)段內(nèi)所有主機(jī)都采用相同的檢測策 略, 效率不高而且容易導(dǎo)致誤報(bào)。 3.33.3慢慢速端口掃描檢測技術(shù)概述速端口掃描檢測技術(shù)概述 慢速端口掃描是在普通端口掃描技術(shù)上進(jìn)化而來的,可以說是黑客技術(shù)提 高的體現(xiàn)。 通常普通端口掃描的掃描者對被掃描者發(fā)送探測性數(shù)據(jù)包都是快速的,被 掃描者在進(jìn)行捕包判斷上就會(huì)顯得比較容易,而慢速掃描與普通掃描一樣,都 是一對一,即掃描者和被掃描者都只有一個(gè),但是其對目標(biāo)主機(jī)發(fā)送探測性數(shù) 據(jù)包的時(shí)間
37、間隔上就變化很大,可以在1分鐘發(fā)送一個(gè)探測性數(shù)據(jù)包后20分鐘再 繼續(xù)發(fā)送探測性數(shù)據(jù)包,也或者在發(fā)送一個(gè)探測性數(shù)據(jù)包后時(shí)間就遞增,產(chǎn)生 一個(gè)時(shí)間上的變化,總之給檢測端口掃描帶來了極大的困難,這就需要用新的 規(guī)則,新的技術(shù)來進(jìn)行端口檢測。 在目前的慢速掃描檢測技術(shù)中,模糊技術(shù)是應(yīng)用的比較好的能檢測出慢速 端口掃描的新型技術(shù)。 3.43.4端口端口掃描的分布式檢測概述掃描的分布式檢測概述 在當(dāng)前端口掃描技術(shù)中,比較難以檢測的是分布式掃描,針對分布式掃描, 不能采取對普通掃描及慢速掃描的檢測方法。 如下圖 3 所示,分布掃描是指掃描者通過控制其他多臺(tái)計(jì)算機(jī)對目標(biāo)主機(jī) 進(jìn)行數(shù)據(jù)包探測,這樣,被掃描者所捕
38、獲的數(shù)據(jù)包就是來自于不同的 IP,但是 實(shí)際掃描者通過所控制的計(jì)算機(jī)對應(yīng)答數(shù)據(jù)包的分析依然能夠判斷出目標(biāo)主機(jī) 的端口開放情況,被掃描者雖然所捕獲到的探測性數(shù)據(jù)包其 IP 是正確的,但是 受到了 IP 欺騙,并沒有判斷出真正的掃描者,在這種情況下通常的檢測方法對 分布式掃描是無效的。當(dāng)然,在分布式掃描的基礎(chǔ)上加以慢速掃描,則是更加 難以檢測的掃描技術(shù)。 第 10 頁 共 23 頁 圖 3 分布式掃描技術(shù) 在當(dāng)前的分布式掃描檢測技術(shù)中,最常用的是在進(jìn)行端口掃描檢測時(shí),將 系統(tǒng)分成兩個(gè)部分: 第一部分是傳感器,它的功能是判斷一個(gè)包的異常程度,賦給包一個(gè)異常 值。如果一個(gè)包有異常,則從網(wǎng)絡(luò)數(shù)據(jù)中過濾出
39、來,進(jìn)行下一步的處理;如果 一個(gè)包沒有異常,則簡單地丟棄。 第二部分是分析器,它對異常包進(jìn)行匯集、分類、分析。首先將異常包根 據(jù)其不同特性分成不同的類,然后再對不同的類計(jì)算一個(gè)類的異常值總和。如 果一個(gè)類的異常值總和超過了閾值,則判斷為掃描。在分布式端口掃描檢測系 統(tǒng)中,傳感器分布在一個(gè)大網(wǎng)的各個(gè)子網(wǎng)內(nèi),采集網(wǎng)絡(luò)上的各種有關(guān)掃描異常 數(shù)據(jù);而分類器是一個(gè)匯總的分析器,通過匯總分析網(wǎng)絡(luò)內(nèi)各個(gè)子網(wǎng)的數(shù)據(jù), 可以更好地分析網(wǎng)絡(luò)上出現(xiàn)的掃描情況。 分布式檢測方法具有很多優(yōu)點(diǎn): 首先,它能夠?qū)崿F(xiàn)分布式掃描的檢測。因?yàn)榉植际綊呙杵鋻呙璋哂幸欢?的異常性,所以這些包可以被第一步的檢測從網(wǎng)絡(luò)數(shù)據(jù)中過濾出來。
40、在第二步 進(jìn)行分類分析的時(shí)候,由于這些分布式掃描的包具有一個(gè)共同的特性,即掃描 對象是同一個(gè)主機(jī)或同一個(gè)端口,因此它們可以被聚集到一個(gè)類里,從而被檢 測為掃描。其次,這種方法也能夠檢測慢速的掃描。由于網(wǎng)絡(luò)上巨大的通信量, 所以在以前的檢測方法里檢測時(shí)間窗T必須很小,否則會(huì)消耗掉太多的內(nèi)存和 CPU時(shí)間而癱瘓。而采用該方法,由于分析器只需分析處理異常包,因此可以取 一個(gè)很大的時(shí)間窗T,從而檢測出慢速的掃描。 另外,分布式檢測方法具有很好的實(shí)時(shí)性。由于傳感器只需要判斷一個(gè)包 的異常程度,而不需要判斷是否屬于掃描,因此可以實(shí)現(xiàn)一個(gè)很快的異常包過 濾器。而傳統(tǒng)的檢測方法,例如,SNORT在接收到一個(gè)包
41、以后,首先檢查包的結(jié) 第 11 頁 共 23 頁 構(gòu),然后檢查現(xiàn)有的掃描列表,相對來說是很費(fèi)時(shí)間的。 異常包的檢測: 首先,需要有一個(gè)準(zhǔn)則來確定網(wǎng)絡(luò)上一個(gè)包的異常程度。通過分析已有的 一些檢測工具、掃描工具、以及入侵者用以躲避掃描檢測的方法,總結(jié)出下面 的包是異常的包: (1)帶有奇怪標(biāo)志位的包有可能是掃描包; (2)沒有正確的執(zhí)行TCP協(xié)議握手過程的包有可能是掃描包; (3)連接后馬上斷開,沒有具體協(xié)議內(nèi)容的包,有可能是掃描包; (4)對沒有開放服務(wù)的端口的連接包有可能是掃描包。 掃描技術(shù)在進(jìn)步,相應(yīng)的檢測技術(shù)也在相應(yīng)提高,現(xiàn)今還出現(xiàn)了一種新的 檢測分布式掃描的方法,其原理是靠統(tǒng)計(jì)流量來進(jìn)行
42、判斷,也能很好的檢測出 分布式掃描。但是由于網(wǎng)絡(luò)上的流量非常的大,且相當(dāng)?shù)牟还潭?,要定義一定 時(shí)間內(nèi)的流量有很大的困難,所以這種檢測方法還存在很多缺陷,容易產(chǎn)生誤 判為端口掃描,也容易放過真正的端口掃描行為。 3.53.5主流的端口掃描工具主流的端口掃描工具 常用的幾種端口掃描檢測器有: NSM(The Network Security Monitor)、Gr IDS、Snort和Portsentry等。 NSM是最早的基于網(wǎng)絡(luò)的入侵檢測系統(tǒng),它認(rèn)為所有與大于15個(gè)其它主機(jī)建 立連接的主機(jī)都是掃描者。這種算法是許多檢測系統(tǒng)檢測算法的雛形。 Gr IDS通過建立網(wǎng)絡(luò)連接拓?fù)鋱D來檢測端口掃描。它使
43、用節(jié)點(diǎn)代表主機(jī), 如果主機(jī)間存在數(shù)據(jù)交換,就在相應(yīng)的節(jié)點(diǎn)間連線。一次掃描試探就會(huì)在掃描 者的主機(jī)和被掃描者的主機(jī)之間建立一條連線,Gr IDS通過計(jì)算一個(gè)節(jié)點(diǎn)上存 在多少連線的方法判斷是不是有端口掃描行為。這種方法不能檢測秘密掃描, 速度相對較慢,具體的端口掃描行為的判斷需要人工完成。 Snort是基于libpcap的一個(gè)源代碼公開的輕量級的入侵檢測系統(tǒng)。它的端 口檢測功能是通過一個(gè)嵌入程序來完成。Snort的掃描檢測器通過計(jì)算“在時(shí)間 X秒內(nèi)有Y個(gè)TCP或UDP數(shù)據(jù)包從一個(gè)源地址發(fā)往不同的目的地址”來確定是否有 端口掃描行為;Snort能查找單個(gè)不正常的TCP包。缺點(diǎn)是不能檢測分布式掃描、
44、慢速掃描,不能處理分片。 Portsentry是基于主機(jī)的端口掃描檢測器。它指定多個(gè)TCP/UDP端口進(jìn)行監(jiān) 聽,當(dāng)這些端口被試圖連接或掃描時(shí),能在瞬間捕捉連接或掃描企圖;它能有 效捕捉非連續(xù)隨機(jī)掃描,生成外界掃描動(dòng)作的詳細(xì)日志記錄,并將發(fā)起掃描的 主機(jī)地址寫入tcp_wrapper的host.deny文件中,并重指掃描者路由,把信息流 第 12 頁 共 23 頁 重定向到一個(gè)不存在的主機(jī)。缺點(diǎn)是僅限于對一臺(tái)單機(jī)進(jìn)行端口掃描分析;判 斷規(guī)則過于嚴(yán)格,正常的掃描容易被誤認(rèn)為是端口掃描行為。 4 4 端口掃描的實(shí)現(xiàn)端口掃描的實(shí)現(xiàn) 4.14.1掃描程序的設(shè)計(jì)原理掃描程序的設(shè)計(jì)原理 在進(jìn)行端口掃描的設(shè)
45、計(jì)與開發(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 檢測端口掃描的實(shí)現(xiàn)檢測端口掃描的實(shí)現(xiàn) 5.15.1檢測程序的設(shè)計(jì)原理檢測程序的設(shè)計(jì)原理 在檢測端口掃描程序的設(shè)計(jì)與開發(fā)中,這里首先是采取通過套接字來進(jìn)行 數(shù)據(jù)包的捕獲,再通過解 IP 包,然后對所解出的 TCP 包和 UDP 包分別再進(jìn)行解 包
46、,并記錄下到達(dá)的端口,以及源 IP 地址,目的 IP 地址,目的端口,再設(shè)計(jì) 一種算法,通過算法對數(shù)據(jù)包進(jìn)行統(tǒng)計(jì)分析,最后設(shè)定一個(gè)判斷發(fā)生掃描行為 的條件,當(dāng)滿足條件有三次及三次以上的相同源 IP 且到達(dá)端口的不同的數(shù)據(jù)包 即判斷發(fā)生端口掃描行為。 此檢測端口掃描程序的設(shè)計(jì)不但可以檢測一般的掃描和快速掃描,在一定 的程度上也能檢測慢速掃描。 以前的端口掃描檢測方法都是采用在一個(gè)固定的時(shí)間窗 T 內(nèi)查看從同一個(gè) 源地址發(fā)起的連接數(shù) X , 如果 X 超出了設(shè)定的閥值, 則判斷為一次掃描。由于 網(wǎng)絡(luò)上的通信量非常大, 所以以前的端口掃描方法都會(huì)設(shè)定一個(gè)很小的時(shí)間窗 T ,防止消耗掉過多的內(nèi)存和 C
47、PU 時(shí)間。由于本文提出的方法與時(shí)間窗無關(guān), 所 以在不降低系統(tǒng)整體性能的前提下,在慢速掃描發(fā)送探測性數(shù)據(jù)包時(shí)間間隔上 不超出所設(shè)計(jì)程序所能記錄數(shù)據(jù)包的最大上限的情況下仍能很好的檢測慢速掃 描。 5.25.2程序流程圖程序流程圖 如下圖 5 所示,所開發(fā)的檢測端口掃描程序基本流程圖: 第 14 頁 共 23 頁 圖 5 端口檢測流程圖 5.35.3設(shè)計(jì)實(shí)現(xiàn)重點(diǎn)代碼設(shè)計(jì)實(shí)現(xiàn)重點(diǎn)代碼 在此端口掃描檢測程序設(shè)計(jì)中,重點(diǎn)在于設(shè)計(jì)一個(gè)算法,用于研究是否存 在端口掃描行為,算法是此設(shè)計(jì)的重點(diǎn)。 就此設(shè)計(jì)的檢測程序來說,在捕獲數(shù)據(jù)包后所解的 TCP 包和 UDP 包,由于 在分析中要分別考慮 TCP 包和
48、UDP 包,但是對兩種包的分析都是一樣的,現(xiàn)我 們只詳細(xì)闡述分析 TCP 包的情況。 在所設(shè)計(jì)用于檢測端口掃描的算法中,首先是一個(gè)統(tǒng)計(jì)函數(shù),用于對通過 第 15 頁 共 23 頁 套接字捕獲數(shù)據(jù)包的統(tǒng)計(jì): void statistics(char szProtocol,char szSourceIP,int iSourcePort,char szDestIP) if(strcmp(szProtocol,“TCP“) if(TCP_MAX=MAX_LEN_REC) TCP_MAX=0; if(TCP_MAX=0) strcpy(TCP_RECTCP_MAX.szProtocol,szProtoc
49、ol); strcpy(TCP_RECTCP_MAX.szSourceIP,szSourceIP); TCP_RECTCP_MAX.iSourcePort=iSourcePort; strcpy(TCP_RECTCP_MAX.szDestIP,szDestIP); +TCP_MAX; else if(check(TCP_REC,szDestIP,iSourcePort,TCP_MAX-1) /調(diào)用 check 函數(shù) strcpy(TCP_RECTCP_MAX.szProtocol,szProtocol); strcpy(TCP_RECTCP_MAX.szSourceIP,szSourceIP)
50、; TCP_RECTCP_MAX.iSourcePort=iSourcePort; strcpy(TCP_RECTCP_MAX.szDestIP,szDestIP); +TCP_MAX; 在統(tǒng)計(jì)的時(shí)候這里需要調(diào)用一個(gè) check 函數(shù)即檢測函數(shù),此函數(shù)的作用是 用于排除完全相同的數(shù)據(jù)包,由于在分析中不需要對完全相同的數(shù)據(jù)包進(jìn)行分 析,以免出現(xiàn)重復(fù)情況產(chǎn)生誤判,所以在統(tǒng)計(jì)時(shí)候這里需要先把完全相同的數(shù) 據(jù)包進(jìn)行排除,以保證存入 TCP_REC中的數(shù)據(jù)包是完全沒有任何是一個(gè)是相 同的。 bool check(STATISTIC TYPE,char szDestIP,int port,int coun
51、t) /check 函數(shù),比 較協(xié)議類型,目的 IP,端口,計(jì)數(shù)(count) int i=0; bool flag=true; for(i=count;i=0;i-) if(!strcmp(TYPEi.szDestIP,szDestIP) break; return flag; 對所捕獲的數(shù)據(jù)包進(jìn)行統(tǒng)計(jì)后,接著是對所捕獲的 TCP 包以及 UDP 數(shù)據(jù) 包進(jìn)行分析的分析函數(shù),首先是一個(gè)用于存放不同 IP 的 rec,在這里我們用 到一個(gè)臨時(shí)變量 temp,用于幫助對不同 IP 的提取,最后再根據(jù)所記錄的不同 IP 到 TCP_REC中進(jìn)行提取符合 IP 的數(shù)據(jù)包信息,再存入 tcp_tem中
52、,在 tcp_tem中就是經(jīng)過統(tǒng)計(jì)分析后的所捕獲的探測性數(shù)據(jù)包。 void analysis_tcp(STATISTIC tcp)/對 IP,端口進(jìn)行分析的函數(shù),判定是否為端 口掃描行為 STATISTIC tcp_temMAX_LEN_REC,recMAX_LEN_REC,temp; int i=0;int count=0,reccount=0; strcpy(temp.szProtocol,tcp0.szProtocol); strcpy(temp.szSourceIP,tcp0.szSourceIP); temp.iSourcePort=tcp0.iSourcePort; strcpy(
53、temp.szDestIP,tcp0.szDestIP); /臨時(shí)變量記錄第一條數(shù)據(jù)包的情況 strcpy(recreccount.szProtocol,tcp0.szProtocol); strcpy(recreccount.szSourceIP,tcp0.szSourceIP); recreccount.iSourcePort=tcp0.iSourcePort; strcpy(recreccount.szDestIP,tcp0.szDestIP); /將第一條記錄保存到地址列表中 for(i=0;i=0;t-) /進(jìn)入 for 循環(huán),將 reccount 的值賦給 t,t 大于等于 0,t
54、 的值減 1 if(!strcmp(temp.szDestIP,rect.szDestIP) flag=false; break; /反向搜索地址記錄表如果有相同的則不記錄 if(flag) +reccount; strcpy(recreccount.szProtocol,temp.szProtocol); strcpy(recreccount.szSourceIP,temp.szSourceIP); recreccount.iSourcePort,temp.iSourcePort; strcpy(recreccount.szDestIP,temp.szDestIP); /沒有相同的則將該不同
55、的地址記錄到數(shù)組中 /if 條件判斷 /如果相同則不記錄 /for 循環(huán) system(“cls“); printf(“nTCP_REC 中的數(shù)據(jù)是:n“); for(i=0;iTCP_MAX;i+) printf(“%s:%dn“,TCP_RECi.szDestIP,TCP_RECi.iSourcePort); for(i=0;i=reccount;i+) int j=0;count=0; memset(tcp_tem,0,100*sizeof(STATISTIC); for(j;jTCP_MAX;j+) 第 18 頁 共 23 頁 if(!strcmp(reci.szDestIP,tcpj
56、.szDestIP) strcpy(tcp_temcount.szProtocol,tcpj.szProtocol); strcpy(tcp_temcount.szSourceIP,tcpj.szSourceIP); tcp_temcount.iSourcePort=tcpj.iSourcePort; strcpy(tcp_temcount.szDestIP,tcpj.szDestIP); +count; 在程序的最后,由于此設(shè)計(jì)是需要判斷是否發(fā)生端口掃描行為,這里就需 要設(shè)定一個(gè)條件來定義端口掃描行為。 在此設(shè)計(jì)中,我們定義掃描行為是當(dāng)有 3 個(gè)或 3 個(gè)以上的探測性數(shù)據(jù)包且 其源 IP 一
57、致的數(shù)據(jù)包存在的時(shí)候就判斷為端口掃描行為,當(dāng)然在這里能夠定義 更多或者更少的探測性數(shù)據(jù)包為發(fā)生端口掃描行為條件,只要檢測程序在當(dāng)記 錄到有 3 個(gè)或 3 個(gè)以上的數(shù)據(jù)包且源 IP 一致的數(shù)據(jù)包對本機(jī)進(jìn)行連接的時(shí)候能 顯示出來所發(fā)出的探測性數(shù)據(jù)包并判斷為存在端口掃描行為,并顯示出掃描者 的 IP 信息以及對本機(jī)所掃描的端口。 此檢測端口掃描程序設(shè)計(jì)對一般的以及快速掃描均能很好的掃描,在一定 程度上能很好的檢測慢速掃描,雖然并沒有設(shè)定時(shí)間閾值,不會(huì)存在當(dāng)設(shè)定的 時(shí)間閾值大到一定程度時(shí),需要從相當(dāng)長時(shí)間的網(wǎng)絡(luò)連接記錄中找出掃描行為, 系統(tǒng)資源消耗較大,無法適應(yīng)寬帶網(wǎng)絡(luò)尤其是高速網(wǎng)絡(luò)環(huán)境;但是畢竟所分
58、析的 數(shù)據(jù)包有個(gè)定量,掃描者總能以略大于系統(tǒng)設(shè)定數(shù)據(jù)包捕獲定量的時(shí)間間隔進(jìn) 行端口掃描,所以說針對慢速掃描只能在一定程度上實(shí)現(xiàn)。 6 6 性能測試性能測試 6.16.1端口掃描程序性能測試端口掃描程序性能測試 在端口掃描程序設(shè)計(jì)完成后,用開發(fā)出的端口掃描程序作了一個(gè)性能演示, 如下圖 6 所示,掃描者通過掃描命令向 IP 為 192.168.1.102 的目標(biāo)主機(jī)的 1- 10000 端口進(jìn)行了發(fā)送探測性數(shù)據(jù)包掃描,并根據(jù)回應(yīng)顯示目標(biāo)主機(jī)的端口開 放情況。 第 19 頁 共 23 頁 圖 6 端口掃描效果顯示圖 如圖 6 顯示,IP 為 192.168.1.102 的目標(biāo)主機(jī)在 1-10000
59、 端口中,開放的 端口有 21,25,81,82,83,110,119,139,143。 6.26.2檢測端口掃描程序性能測試檢測端口掃描程序性能測試 再用所開發(fā)的檢測端口掃描程序作了測試,針對攻擊者的掃描行為,捕獲 探測性數(shù)據(jù)包,并進(jìn)行分析,當(dāng)收到同一地址而且目的端口不同的數(shù)據(jù)包有3個(gè) 時(shí),能準(zhǔn)確判斷出來自掃描者的端口掃描行為。 如下圖7所示,當(dāng)程序運(yùn)行并有IP為192.168.1.7的掃描者向本機(jī)發(fā)起掃描 時(shí)候,能顯示IP為192.168.1.7的掃描者發(fā)起了端口掃描行為,能作出判斷并顯 示出相應(yīng)的信息。 圖 7 檢測端口掃描效果顯示圖 第 20 頁 共 23 頁 如圖 7 顯示當(dāng)本機(jī)遭受
60、到掃瞄者掃描時(shí),程序能對掃描者發(fā)起的探測性的 數(shù)據(jù)包進(jìn)行捕獲,并記錄下來,當(dāng)有 3 個(gè)來自于同一 IP,且目的端口不同的時(shí) 候程序就判定為遭到了來自于所捕獲數(shù)據(jù)包源 IP 主機(jī)的掃描。 這種情況是在只有一個(gè)掃描者的時(shí)候能正確顯示出掃描者的信息以及掃描 者對本機(jī)哪些端口進(jìn)行了掃描。 當(dāng)程序運(yùn)行并且有 IP 為 192.168.1.7 和 192.168.1.103 的兩個(gè)掃描者向本 機(jī)發(fā)起掃描時(shí)候,能顯示 IP 為 192.168.1.7 和 192.168.1.7 的掃描者對本機(jī)發(fā) 起了端口掃描行為,并能將探測性數(shù)據(jù)包顯示出來且能作出判斷并顯示出相應(yīng) 的信息,對用戶作出報(bào)警,由此可見掃描者的個(gè)
61、數(shù)并不會(huì)影響程序的正常檢測, 如下圖 8 所示: 圖 8 多掃描者進(jìn)行掃描時(shí)檢測端口掃描效果顯示圖 如圖 8 顯示當(dāng)本機(jī)遭受到有兩個(gè)掃瞄者掃描時(shí),程序能對掃描者發(fā)起的探 測性的數(shù)據(jù)包進(jìn)行捕獲,并記錄下來,當(dāng)有 3 個(gè)來自于同一 IP,且目的端口不 同的時(shí)候程序就判定為遭到了來自于所捕獲數(shù)據(jù)包源 IP 主機(jī)的掃描。在這種情 況下有兩個(gè)不同 IP 的掃描者對本機(jī)進(jìn)行掃描,程序能分辨出不同的 IP 并顯示 出來遭受到來自兩個(gè)掃描者的掃描。 結(jié)結(jié) 論論 本文首先介紹了各種掃描技術(shù),以及分析入侵者可以逃避檢測的各種方法。 其后又介紹了現(xiàn)有的各種端口掃描檢測工具,并對它們的原理和功能進(jìn)行了分 析。 檢測端
62、口掃描是防止系統(tǒng)被攻擊的一個(gè)重要手段,是 IDS 的主要內(nèi)容。文中 第 21 頁 共 23 頁 分析了端口掃描基本原理,總結(jié)了現(xiàn)有檢測工具存在的主要問題,對現(xiàn)有檢測工具 原理進(jìn)行了闡述。 本文所設(shè)計(jì)的端口掃描程序是基于 TCP 連接設(shè)計(jì);端口檢測是基于捕獲數(shù) 據(jù)包進(jìn)行統(tǒng)計(jì)分析,能較好的解決普通掃描,并在一定程度上能檢測出慢速掃 描,尚未解決分布式掃描,本人水平有限和時(shí)間倉促,很多問題考慮不周全甚 至可能有錯(cuò)誤。所以請老師多多指正。 參考文獻(xiàn)參考文獻(xiàn) 1 Andrew S.Tanenbaum美.計(jì)算機(jī)網(wǎng)絡(luò)M.北京:清華大學(xué)出版社,1998。 2 Anonymous美.網(wǎng)絡(luò)最高安全技術(shù)指南M.北京
63、:機(jī)械工業(yè)出版社,1998。 3 David A.Solomon美.計(jì)算機(jī)網(wǎng)絡(luò)管理M.北京:清華大學(xué)出版社,1999。 4 Douglas E.Comer美.TCP/IP 網(wǎng)絡(luò)互連技術(shù)M.北京:清華大學(xué)出版社,1998。 5 David J.Kruglinski美.Visual C+ 技術(shù)內(nèi)幕M.北京:清華大學(xué)出版社,1999。 6 Anonymous美.網(wǎng)絡(luò)入侵檢測系統(tǒng)分析與設(shè)計(jì)M.北京:機(jī)械工業(yè)出版社,1998。 7 W.Richard Stevens美.TCP/IP 詳解M.北京:機(jī)械工業(yè)出版社,2000。 8 張仕斌.網(wǎng)絡(luò)安全技術(shù)M.北京:清華大學(xué)出版社,2004。 第 22 頁 共
64、23 頁 致致 謝謝 本文是在趙攀老師和盛志偉老師的熱情關(guān)心和指導(dǎo)下完成的,他們淵博的 知識(shí)和嚴(yán)謹(jǐn)?shù)闹螌W(xué)作風(fēng)使我受益匪淺,對順利完成本課題起到了極大的作用。 在此向他表示我最衷心的感謝! 在論文完成過程中,本人還得到了同事和同學(xué)的熱心幫助,本人向他們表 示深深的謝意! 最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝! 作者簡介: 姓 名:謝欣 性別:男 出生年月:1983 年 11 月 18 日 民族:漢 E-mail: 第 23 頁 共 23 頁 聲聲 明明 本論文的工作是 2007 年 2 月至 2007 年 6 月在成都信息工程學(xué)院網(wǎng)絡(luò)工程 系完成的。文中除了特別加以標(biāo)注地方外,
65、不包含他人已經(jīng)發(fā)表或撰寫過的研 究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使 用過的材料。除非另有說明,本文的工作是原始性工作。 關(guān)于學(xué)位論文使用權(quán)和研究成果知識(shí)產(chǎn)權(quán)的說明: 本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括: (1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。 (2)學(xué)??梢圆捎糜坝?、縮印或其他復(fù)制方式保存學(xué)位論文。 (3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。 (4)學(xué)??稍试S學(xué)位論文被查閱或借閱。 (5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后 遵守此規(guī)定) 。 除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息 工程學(xué)院。 特此聲明! 作者簽名: 年 月 日 第 24 頁 共 23 頁 “Are you hungry now?“ “No, I am tired and lazy now; if I pursue you I will not catch you, and if I catch you-through y
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識(shí)競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案