網絡安全監(jiān)控系統(tǒng)中漏洞掃描模塊的研究與設計-畢業(yè)論文_第1頁
網絡安全監(jiān)控系統(tǒng)中漏洞掃描模塊的研究與設計-畢業(yè)論文_第2頁
網絡安全監(jiān)控系統(tǒng)中漏洞掃描模塊的研究與設計-畢業(yè)論文_第3頁
網絡安全監(jiān)控系統(tǒng)中漏洞掃描模塊的研究與設計-畢業(yè)論文_第4頁
網絡安全監(jiān)控系統(tǒng)中漏洞掃描模塊的研究與設計-畢業(yè)論文_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本科畢業(yè)論文(科研訓練、畢業(yè)設計)題 目:網絡安全監(jiān)控系統(tǒng)中漏洞掃描模塊的研究與設計姓 名:學 院:軟件學院系:專 業(yè):軟件工程年 級: 學 號:指導教師: 職稱: 年 月48摘要自從計算機進入人類歷史以來,它就日益改變著人類的生活,在人們生活中扮演著越來越重要的角色。以網絡方式獲取信息和交流信息已成為現(xiàn)代信息社會的一個重要特征?;ヂ?lián)網作為當代社會傳播信息資源的工具已經越來越重要。網絡已經成為當今社會人們生活中必不可少的一部分。而隨著計算機網絡越來越復雜,網絡安全己變得日益重要,要求網絡安全對網絡變化做出快速反應,以及大型網絡安全提供必要的手段等等。網絡安全監(jiān)控分析系統(tǒng)作為網絡安全的一個重要的基礎系統(tǒng),對網絡的安全進行實時的監(jiān)控,為網絡黑客攻擊防范工作起到了最重要的作用。我們所設計的網絡安全監(jiān)控分析系統(tǒng)是運用winsock,多線程,MFC,Snort等技術并基于WINPCAP進行開發(fā)的,采用VisualC+作為開發(fā)平臺,MySQL作為后臺的數(shù)據(jù)庫管理系統(tǒng),提供良好的用戶管理界面,可以實現(xiàn)對本地網絡安全的實時監(jiān)控、統(tǒng)計分析。論文中闡述了在網絡安全監(jiān)控系統(tǒng)中漏洞分析模塊的設計與實現(xiàn),并通過實際測試對其性能進行驗證。關鍵詞 漏洞分析 多線程 WinsockAbstractSince the computer came into the human beings history,they change the peoplelife a lot,and play a more and more important role. The way to obtain and exchange information through the Internet has become an important feature of the modern information society. Internet as a resource tool for the dissemination of information in contemporary society has become increasingly important. The network has become an essential part of societys life.As computer networks become more complex, network security has become increasingly important for the network to react quickly to changes in the security of the network, as well as for the security of large networks with the necessary means, and so on. Network security system, as an important foundation system of the network security, conducts a real-time monitoring to the network security control, plays the most important role in the follow-up management of the network and network hackerscrime prevention.Based on the analysis of the network traffic monitoring system we designed is based on the technique of winsock,multithreading,MFC,Snort and WinPcap to develop, uses Visual C+ a development platform, MySQL as the background database management system. It can achieved on real-time monitoring and statistical analysis on Local network security. In the paper on network security monitoring system of loopholes in the design and implementation of the modules, and through practical test to verify its performance.Key words: Analysis of the loopholes, Denial of Service Attacks, Winsock目錄第一章緒論11.1課題背景11.2主要研究內容21.3論文組織結構2第二章基本概念和開發(fā)工具32.1 基本概念介紹32.1.1以太網簡介32.1.2 IP/TCP、UDP、ICMP、Winpcap協(xié)議32.1.3 端口、多線程、Winsock及其常用函數(shù)介紹62.1.4 snort簡介122.2 設計工具介紹132.2.1 Microsoft VS .net簡介132.2.2 Microsoft Visual C+簡介142.2.3 MySQL簡介152.2.4 MFC簡介16第三章系統(tǒng)詳細設計173.1系統(tǒng)開發(fā)目的和設計目標173.2 系統(tǒng)整體設計思想173.3 三大模塊詳細設計方案183.3.1 漏洞掃描與端口探測183.3.2 流量監(jiān)控203.3.3 入侵檢測29第四章系統(tǒng)實現(xiàn)304.1 系統(tǒng)運行主界面304.2 系統(tǒng)功能演示304.2.1 漏洞掃描與端口探測功能304.2.2 流量監(jiān)控與分析功能324.2.3 入侵檢測功能36第五章 總結37參 考 文 獻38致 謝39ContentsChapter1 Introduction11.1 Subject Background11.2 Main Content21.3 Papers Organizational Structure2Chapter2 Basic Concept and Design Tools32.1 Introducing of Basic Concept32.1.1 Ethernet32.1.2 IP/TCP、UDP、ICMP、Winpcap Protocols32.1.3 Port、Multithreading、Winsock and Usual Function62.1.4 Snort122.2 Introducing of Design Tools132.2.1 Microsoft VS .net132.2.2 Microsoft Visual C+142.2.3 MySQL152.2.4 MFC16Chapter3 Detail of System Design173.1Purpose and Aim173.2 Design Ideas173.3 Design Programme of The Three Main Part183.3.1 Network Vulnerability Scan and Port Scan183.3.2 Flow Analysis203.3.3 Intrusion Detection29Chapter4 System Implementation304.1 Main Interface of the System304.2 Function Show304.2.1 Network Vulnerability Scan and Port Scan304.2.2 Flow Analysis324.2.3 Intrusion Detection36Chapter5 Conclusions37References38Acknowledgement39第一章 緒論1.1課題背景由于互聯(lián)網的發(fā)展,信息安全的內涵也就發(fā)生了根本的變化。它不僅從一般性的防衛(wèi)變成了一種非常普通的防范,而且還從一種專門的領域變成了無處不在。當人類步入這一信息社會、網絡社會的時候,一套完整的網絡安全體系必不可少。當今社會是一個信息化社會,計算機通信網絡在政治、軍事、金融、商業(yè)、交通、電信、文教等方面的作用日益增加。社會對計算機網絡的依賴也日益增強,尤其是計算機技術和通信技術相結合所形成的信息基礎設施已經成為反映信息社會特征最重要的基礎設施。人們建立了各種各樣完備的信息系統(tǒng),使得人類社會的一些機密和財富高度集于計算機中。但是這些信息系統(tǒng)都是依靠計算機網絡接受和處理信息,實現(xiàn)其相互間的聯(lián)系和對目標的管理、控制。隨著網絡上各種新業(yè)務的興起,比如電子商務、電子現(xiàn)金、數(shù)字貨幣、網上銀行等的興起,數(shù)據(jù)的保密問題顯得十分重要。由于互聯(lián)網早期設計的缺陷,在廣泛普及的同時越來越多的安全問題開始暴露出來。在人類進入信息時代的今天,人們對重要信息,小到個人隱私,個人虛擬財產,大到商業(yè)機密,國家安全機密的重視程度與日俱增。信息網絡已經成為社會發(fā)展的重要保證。信息網絡涉及到國家的政府、軍事、文教等諸多領域。包括政府宏觀調控決策、商業(yè)經濟信息、銀行資金轉帳、股票證券、能源資源數(shù)據(jù)、科研數(shù)據(jù)等重要信息。其中有很多是敏感信息,甚至是國家機密,難免會吸引來自世界各地的各種人為攻擊(例如信息泄漏、信息竊取、數(shù)據(jù)篡改、數(shù)據(jù)刪添、計算機病毒等)。同時,網絡實體還要經受諸如水災、火災、地震、電磁輻射等方面的考驗。因此即使是一個非常普通的電腦應用者,都應該擁有一個可以保障自身信息安全的網絡安全檢測系統(tǒng),了解一點信息安全知識。1.2主要研究內容互聯(lián)網絡中,無論是應用業(yè)務種類還是流量規(guī)模都在飛速發(fā)展。不斷變化的網絡需要相應靈活的監(jiān)控工具幫助網絡管理者及時了解網絡狀態(tài),以便于進行網絡規(guī)劃及故障排除。目前,網絡安全問題正受到越來越多的關注,我們有必要認真地去認識它、了解它,并最終應用它,讓它幫助我們解決各種各樣的網絡問題。本文設計完成的網絡安全監(jiān)控分析系統(tǒng)是以監(jiān)控用戶網絡流量情況、掃描安全漏洞、防范黑客攻擊進行入侵檢測為主要目的而進行開發(fā)的?;赪inpcap 協(xié)議來完成網絡數(shù)據(jù)包的捕獲,通過對所捕獲數(shù)據(jù)包的內容進行統(tǒng)計分析,完成對網絡流量的監(jiān)控分析和對可能發(fā)生的拒絕服務攻擊進行檢測等功能,通過Snort來對網絡安全可能存在的危險進行監(jiān)測。其中將重點分析漏洞分析模塊的設計與實現(xiàn)。1.3論文組織結構本論文結構如下:第一章:緒論。介紹本論文的課題背景,主要研究內容和和組織結構。背景主要介紹了當今網絡的重要性和安全狀況,主要研究內容介紹了網絡安全問題的基本情況、漏洞的產生、流量統(tǒng)計情況,以及系統(tǒng)的實現(xiàn)意義。第二章:基本概念和設計工具。介紹本系統(tǒng)使用的技術,如TCP/IP網絡協(xié)議的起源及分層結構,端口功能簡介,多線程技術和winsock技術,snort技術介紹等。以及系統(tǒng)的開發(fā)環(huán)境:Microsoft Visual Studio .net,Microsoft Foundation Class,MySQL等。第三章:系統(tǒng)詳細設計。主要介紹系統(tǒng)的設計模式,類之間的關聯(lián)(類圖),系統(tǒng)運行的整體流程和詳細的圖表說明。以及系統(tǒng)詳細設計,主要包括端口探測子模塊、漏洞掃描子模塊、安全檢測、流量統(tǒng)計幾個模塊。第四章:系統(tǒng)實現(xiàn)。簡要說明了系統(tǒng)的運行界面,包括系統(tǒng)各個部分的功能和各個控件的作用。并演示了端口探測功能和漏洞掃描功能的執(zhí)行結果,流量統(tǒng)計情況,以及入侵檢測執(zhí)行結果。第五章:總結??偨Y了系統(tǒng)設計的經驗以及個人對系統(tǒng)的評價等。第二章 基本概念和開發(fā)工具系統(tǒng)的開發(fā)將會運用到很多方面的技術,我們需要對一些基本概念和設計工具進行了解,這樣才能很好的理解各種概念和工具的應用。下面就介紹一些基本概念和設計工具,以及它們的作用。2.1 基本概念介紹本系統(tǒng)以Visual Studio.Net作為開發(fā)平臺,利用TCP/IP協(xié)議和winsock技術進行端口探測和漏洞分析,基于Winpcap協(xié)議的網絡流量監(jiān)控系統(tǒng),實現(xiàn)針對不同網絡協(xié)議和不同網絡服務的相關數(shù)據(jù)包流量的實時分析,并將檢測數(shù)據(jù)保存到數(shù)據(jù)庫,采用snort技術對系統(tǒng)安全進行監(jiān)測。整個系統(tǒng)開發(fā)采用C語言實現(xiàn)后臺數(shù)據(jù)包捕獲,VC+實現(xiàn)前臺界面顯示,利用MySQL實現(xiàn)數(shù)據(jù)存儲。所以在本章中主要對以太網、IP/TCP協(xié)議、UDP和ICMP協(xié)議、Winpcap協(xié)議、端口、多線程、Winsock、Snort、MySQL數(shù)據(jù)庫以及系統(tǒng)開發(fā)工具做詳細介紹。2.1.1以太網簡介以太網(Ethernet)是一種計算機局域網組網技術。IEEE制定的IEEE802.3標準給出了以太網的技術標準。它規(guī)定了包括物理層的連線、電信號和介質訪問層協(xié)議的內容。以太網是當前應用最普遍的局域網技術。它很大程度上取代了其他局域網標準,如令牌環(huán)網、FDDI和ARCNET。以太網的標準拓撲結構為總線型拓撲,但目前的快速以太網(100BASE-T、1000BASE-T標準)為了最大程度的減少沖突,最大程度的提高網絡速度和使用效率,使用交換機(Switch)來進行網絡連接和組織,這樣,以太網的拓撲結構就成了星型,但在邏輯上,以太網仍然使用總線型拓撲和CSMA/CD(CarrierSenseMultipleAccess/CollisionDetect即帶沖突檢測的載波監(jiān)聽多路訪問)的總線爭用技術,并以10 Mbps的速率運行在多種類型的電纜上。2.1.2 IP/TCP、UDP、ICMP、Winpcap協(xié)議TCP/IP 協(xié)議是在60 年代由麻省理工學院和一些商業(yè)組織為美國國防部開發(fā)的。TCP/IP協(xié)議是支持Internet/Intranet 的基本通信協(xié)議。傳輸控制協(xié)議TCP(Transmission Control Protocol),負責數(shù)據(jù)的流量控制,并保證傳輸?shù)恼_性;網際協(xié)議IP(Internet Protocol),負責將數(shù)據(jù)從一處傳往另一處。TCP/IP 協(xié)議具有廣泛的兼容性和可伸縮性,可連接不同的計算機網絡協(xié)議、不同的網絡設備。TCP/IP 已成為網絡互連事實上的標準,并成為支持Internet/Intranet 的協(xié)議標準。TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網路層、傳輸層、會話層、表示層和應用層。而TCP/IP通訊協(xié)議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。這4層分別為: 應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網絡遠程訪問協(xié)議(Telnet)等。 傳輸層:在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送服務,如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又?,這一層負責傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。 互連網絡層:負責提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網際協(xié)議(IP)。 網絡接口層:對實際的網絡媒體的管理,定義如何使用實際網絡(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。用戶數(shù)據(jù)報協(xié)議UDP(User Datagram Protocol)是 ISO 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務的簡單不可靠信息傳送服務。 UDP 協(xié)議基本上是 IP 協(xié)議與上層協(xié)議的接口。 UDP 協(xié)議適用端口分辨運行在同一臺設備上的多個應用程序。與 TCP 不同, UDP 并不提供對 IP 協(xié)議的可靠機制、流控制以及錯誤恢復功能等。由于 UDP 比較簡單, UDP 頭包含很少的字節(jié),比 TCP 負載消耗少。UDP 適用于不需要 TCP 可靠機制的情形,比如,當高層協(xié)議或應用程序提供錯誤和流控制功能的時候。 UDP 是傳輸層協(xié)議,服務于很多知名應用層協(xié)議,包括網絡文件系統(tǒng)(NFS)、簡單網絡管理協(xié)議(SNMP)、域名系統(tǒng)(DNS)以及簡單文件傳輸系統(tǒng)(TFTP)Internet 控制信息協(xié)議ICMP(Internet Control Message Protocol)是 IP 組的一個整合部分。通過 IP 包傳送的 ICMP 信息主要用于涉及網絡操作或錯誤操作的不可達信息。ICMP 包發(fā)送是不可靠的,所以主機不能依靠接收 ICMP 包解決任何網絡問題。ICMP 的主要功能有:通告網絡錯誤、通告網絡擁塞、協(xié)助解決故障、通告超時。協(xié)議結構如下:Winpcap是一個免費公開的軟件系統(tǒng)。它用于windows系統(tǒng)下的直接的網絡編程。大多數(shù)網絡應用程序訪問網絡是通過廣泛使用的套接字。這種方法很容易實現(xiàn)網絡數(shù)據(jù)傳輸,因為操作系統(tǒng)負責底層的細節(jié)(比如協(xié)議棧,數(shù)據(jù)流組裝等)以及提供了類似于文件讀寫的函數(shù)接口。圖21 Winpcap的內部結構Winpcap的主要組成及其功能:第一個模塊NPF(Netgroup Packet Filter),是一個虛擬設備驅動程序文件。它的功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊,這個過程中包括了一些操作系統(tǒng)特有的代碼。第二個模塊packet.dll 為win32 平臺提供了一個公共的接口。不同版本的Windows 系統(tǒng)都有自己的內核模塊和用戶層模塊。Packet.dll 用于解決這些不同。調用Packet.dll 的程序可以運行在不同版本的Windows 平臺上,而無需重新編譯。第三個模塊Wpcap.dll 是不依賴于操作系統(tǒng)的。它提供了更加高層、抽象的函數(shù)。packet.dll直接映射了內核的調用。Wpcap.dll 提供了更加友好、功能更加強大的函數(shù)調用。Winpcap 可以為Win32 應用程序提供訪問網絡底層的能力。它提供了以下的各項功能:a. 捕獲原始數(shù)據(jù)包,包括在共享網絡上各主機發(fā)送/接收的以及相互之間交換的數(shù)據(jù)包;b. 在數(shù)據(jù)包發(fā)往應用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)包過濾掉;c. 在網絡上發(fā)送原始的數(shù)據(jù)包;d. 收集網絡通信過程中的統(tǒng)計信息。Winpcap 的主要功能在于獨立于主機協(xié)議(如TCP-IP)而發(fā)送和接收原始數(shù)據(jù)報。也就是說,Winpcap 不能阻塞,過濾或控制其他應用程序數(shù)據(jù)報的發(fā)收,它僅僅只是監(jiān)聽共享網絡上傳送的數(shù)據(jù)報。目前基于Winpcap 的應用主要有:WinDump、Analyzer、Ethereal 以及snort,這些軟件能夠捕捉網絡通信、讀取并翻譯來自其他系統(tǒng)的tcpdump 類型二進制數(shù)據(jù)包。另外還有Sniffer,Project URL Snooper,Hidownload 等有特定實際用途的網絡軟件。2.1.3 端口、多線程、Winsock及其常用函數(shù)介紹端口是計算機與外界通訊交流的出口。應用程序通過系統(tǒng)調用與某端口建立連接(binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應的進程所接收,相應進程發(fā)給傳輸層的數(shù)據(jù)都從該端口輸出。在TCP/IP協(xié)議的實現(xiàn)中,端口操作類似于一般的I/O操作,進程獲取一個端口,相當于獲取本地唯一的I/O文件,可以用一般的讀寫方式訪問類似于文件描述符,每個端口都擁有一個叫端口號的整數(shù)描述符,用來區(qū)別不同的端口。按端口號可分為3大類:(1)公認端口(WellKnownPorts):從0到1023,它們緊密綁定(binding)于一些服務。通常這些端口的通訊明確表明了某種服務的協(xié)議。例如:80端口實際上總是HTTP通訊。(2)注冊端口(RegisteredPorts):從1024到49151。它們松散地綁定于一些服務。也就是說有許多服務綁定于這些端口,這些端口同樣用于許多其它目的。例如:許多系統(tǒng)處理動態(tài)端口從1024左右開始。(3)動態(tài)和/或私有端口(Dynamicand/orPrivatePorts):從49152到65535。理論上,不應為服務分配這些端口。實際上,機器通常從1024起分配動態(tài)端口。但也有例外:SUN的RPC端口從32768開始。端口掃描用于判斷目標主機的端口是否開放。從黑客的角度講,攻擊一臺聯(lián)網主機首先必定是尋找對方開放了哪些網絡服務,即便該主機可能有防火墻保護,只要它開放了一些網絡服務,那么其安全性就會大大降低。而獲得目標主機是否開放某些服務,最好的辦法就是嘗試連接該服務所對應的端口。其工作原理為向掃描對象的TCP/UDP端口發(fā)送連接請求,根據(jù)對方的回應判斷端口是否開放。具體流程將在Winsock函數(shù)中進行介紹。線程(Thread)是進程(Process)中的一個實體,是被系統(tǒng)獨立調度和分派的基本單位。線程自己不擁有系統(tǒng)資源,只擁有一點在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創(chuàng)建和撤消另一個線程,同一進程中的多個線程之間可以并發(fā)執(zhí)行。由于線程之間的相互制約,致使線程在運行中呈現(xiàn)出間斷性。線程也有就緒、阻塞和運行三種基本狀態(tài)。 線程是程序中一個單一的順序控制流程, 它和進程的區(qū)別在于,子進程和父進程有不同的代碼和數(shù)據(jù)空間,而多個線程則共享數(shù)據(jù)空間,每個線程有自己的執(zhí)行堆棧和程序計數(shù)器為其執(zhí)行上下文。線程的周期包括新建,就緒,運行,阻塞,死亡5個階段。在MFC中,線程分為用戶界面線程和工作者線程2種。這2種之間的區(qū)別是UI線程有消息循環(huán),而工作者線程沒有。UI線程能夠創(chuàng)建窗口并處理發(fā)送給這些窗口的消息,而工作者線程執(zhí)行后臺任務,并不需要處理窗口和消息循環(huán)。由于多線程的執(zhí)行在應用程序中是異步的,適當?shù)倪\用多線程技術雖然增加了代碼的額外復雜度,卻可以極大的提高程序的響應性能。工作者線程適合于執(zhí)行孤立的任務,這些任務能夠與應用程序的其他部分相互脫離,并且能夠在前臺進行其他處理時在后臺執(zhí)行這些任務,有效的降低了程序的等待時間,提高了運行的效率。在MFC中,線程作為CWinThread類存在,其相關函數(shù)為:(1)AfxBeginThread()聲明:CWinThread* AfxBeginThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);作用:根據(jù)輸入的線程類型創(chuàng)建一個新線程,并將LPVOID類型的指針作為參數(shù)傳遞給新創(chuàng)建的線程。參數(shù): pfnThreadProc:指向要創(chuàng)建線程類型的工作者線程指針(一般為UINT定義類型),不能為空。pParam:傳遞給要創(chuàng)建線程參數(shù)指針,類型由pfnThreadProc函數(shù)定義。nPriority:要創(chuàng)建線程的優(yōu)先級,為0則優(yōu)先級于創(chuàng)建該線程的線程相同。nStackSize:指定要創(chuàng)建線程德堆棧大小,以字節(jié)為單位。dwCreateFlags:函數(shù)調用的執(zhí)行方式。lpSecurityAttrs:設定要創(chuàng)建線程的安全級別。返回值:若成功,則返回指向新創(chuàng)建線程的指針。(2)AfxEndThread()聲明:void AFXAPI AfxEndThread(UINT nExitCode, BOOL bDelete = TRUE);作用:終止正在執(zhí)行的某個線程參數(shù):nExitCode:指定線程的退出值bDelete:為true則將該線程從內存中釋放返回值:無(3)WaitForSingleObject() 聲明:DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);作用:在等待時間內判斷線程或對象是否已經正常中止或有響應。參數(shù):hHandle:線程或對象的句柄。 dwMilliseconds:線程的等待時間,以毫秒為單位返回值:若函數(shù)成功,則返回線程結束的事件,可以為WAIT_ABANDONED(該線程作為互斥線程,在調用該線程的線程結束之前無法中止),WAIT_OBJECT_0(線程有響應,并且已經正常中止),WAIT_TIMEOUT(超過規(guī)定的等待時間,強制退出)。WindowsSockets規(guī)范以U.C.Berkeley大學BSDU NIX中流行的Socket接口為范例定義了一套Micosoft Windows下網絡編程接口。它不僅包含了人們所熟悉的Berkeley Socket風格的庫函數(shù);也包含了一組針對Windows的擴展庫函數(shù),以使程序員能充分地利用Windows消息驅動機制進行編程。WindowsSockets規(guī)范本意在于提供給應用程序開發(fā)者一套簡單的API,并讓各家網絡軟件供應商共同遵守。此外,在一個特定版本Windows的基礎上,Windows Sockets也定義了一個二進制接口(ABI ),以此來保證應用WindowsSockets API的應用程序能夠在任何網絡軟件供應商的符合Windows Sockets協(xié)議的實現(xiàn)上工作。因此這份規(guī)范定義了應用程序開發(fā)者能夠使用,并且網絡軟件供應商能夠實現(xiàn)的一套庫函數(shù)調用和相關語義。遵守這套WindowsSockets規(guī)范的網絡軟件,我們稱之WindowsSockets兼容的,而WindowsSockets兼容實現(xiàn)的提供者,我們稱之為Windows Sockets提供者。一個網絡軟件供應商必須百分之百地實現(xiàn)Windows Sockets規(guī)范才能做到現(xiàn)Windows Sockets兼容。任何能夠與WindowsSockets兼容實現(xiàn)協(xié)同工作的應用程序就被認為是具有WindowsSockets接口。我們稱這種應用程序為WindowsSockets應用程序。WindowsSockets規(guī)范定義并記錄了如何使用API與Internet協(xié)議族(IPS,通常我們指的是TCP/IP)連接,尤其要指出的是所有WindowsSockets實現(xiàn)都支持流套接口和數(shù)據(jù)報套接口應用程序調用WindowsSockets的API實現(xiàn)相互之間的通訊。WindowsSockets又利用下層的網絡通訊協(xié)議功能和操作系統(tǒng)調用實現(xiàn)實際的通訊工作。常用Winsock函數(shù)介紹(1)htons()聲明:u_short htons(u_short hostshort);作用:將主機的無符號短整形數(shù)轉換成網絡字節(jié)順序。參數(shù):hostshort:主機字節(jié)順序表達的16位數(shù)返回值:返回一個網絡字節(jié)順序的值(2)inet_addr()聲明:unsigned long inet_addr(const char* cp);作用:將一個點間隔地址轉換成為一個in_addr。參數(shù):cp:一個以Internet標準.間隔的字符串返回值:若無錯誤發(fā)生,返回一個無符號長整形數(shù),其中以適當字節(jié)順序存放Internet地址。如果傳入的字符串不是一個合法的Internet地址,那么inet_addr()返回INADDR_NONE。(3)socket()聲明:SOCKET socket(int af, int type, int protocol);作用:創(chuàng)建一個對應于特定服務的套接口參數(shù):af:一個地址描述,目前僅支持PF_INET格式,就是ARPA Internet地址格式type:新套接口的類型描述。目前包含2種協(xié)議類型:SOCK_STREAM提供一個可靠的,雙向的,面向連接的流協(xié)議,主要用于TCP協(xié)議通訊。SOCK_DGRAM提供不可靠,無連接的協(xié)議,主要用于UDP協(xié)議通訊。protocol:套接口所用的協(xié)議。通常設置為0。 返回值:若無錯誤發(fā)生,返回引用新套接口的描述字。否則返回SOCKET_ERROR錯誤,可以用WSAGetLastError()獲取相應錯誤代碼。(4)connect()聲明:int connect(SOCKET s, const struct sockaddr* name, int namelen);作用:建立一個面向某套接口的連接參數(shù):s:標識一個未連接套接口的描述字name:欲進行連接的端口名namelan:端口名的長度返回值:若無錯誤發(fā)生,返回0。否則,返回一個SOCKET_ERROR錯誤,可以用WSAGetLastError()獲取相應錯誤代碼。(5)send()聲明:int send(SOCKET s, const char* buf, int len, int flags);作用:向一個已連接的套接口發(fā)送數(shù)據(jù)參數(shù): s:一個用于標識已連接套接口的描述字buf:包含待發(fā)送數(shù)據(jù)的緩沖區(qū)len:緩沖區(qū)中的數(shù)據(jù)長度flags:調用執(zhí)行方式返回值:若無錯誤發(fā)生,返回所發(fā)送數(shù)據(jù)的總數(shù)(可能小于len規(guī)定的大?。?。否則返回一個SOCKET_ERROR錯誤,可以用WSAGetLastError()獲取相應錯誤代碼。(6)recv()聲明:int recv(SOCKET s, char* buf, int len, int flags);作用:從一個套接口接收數(shù)據(jù)參數(shù):s:一個標識已連接套接口的描述字buf:用于接收數(shù)據(jù)的緩沖區(qū)len:緩沖區(qū)的長度flags:指定調用方式返回值:若無錯誤發(fā)生,返回讀入的字節(jié)數(shù)。如果連接中斷,返回0。否則返回一個SOCKET_ERROR錯誤,可以用WSAGetLastError()獲取相應錯誤代碼。(7)closesocket()聲明:int closesocket(SOCKET s);作用:關閉一個套接口參數(shù):s:一個套接口的描述字返回值:若無錯誤發(fā)生,返回0。否則,返回一個SOCKET_ERROR錯誤,可以用WSAGetLastError()獲取相應錯誤代碼。2.1.4 snort簡介早在1998年,Martin Roesch先生開發(fā)了開放源代碼(Open Source)的入侵檢測系統(tǒng)Snort.直至今天,Snort已發(fā)展成為一個多平臺(Multi-Platform),實時(Real-Time)流量分析,網絡IP數(shù)據(jù)包(Pocket)記錄等特性的強大的入侵檢測/防御系統(tǒng)(Network Intrusion/Prevention System),即NIDS/NIPS.Snort基于GNU通用公共許可證(GPL)發(fā)布。您可以通過免費下載獲得Snort,并且只需要幾分鐘就可以安裝并開始使用它。Snort有三種工作模式:嗅探器、數(shù)據(jù)包記錄器、網絡入侵檢測系統(tǒng)。嗅探器模式僅僅是從網絡上讀取數(shù)據(jù)包并作為連續(xù)不斷的流顯示在終端上。數(shù)據(jù)包記錄器模式把數(shù)據(jù)包記錄到硬盤上。網路入侵檢測模式是最復雜的,而且是可配置的。我們可以讓snort分析網絡數(shù)據(jù)流以匹配用戶定義的一些規(guī)則,并根據(jù)檢測結果采取一定的動作。2.2 設計工具介紹設計工具主要應用到Microsoft VS.net、Microsoft Visual C、MYSQL、MFC等工具,為了對他們有具體的了解,我們將對其一一進行介紹。2.2.1 Microsoft VS .net簡介Visual Studio.NET是.NET平臺下最為強大的開發(fā)工具,無論是軟件服務商,還是企業(yè)應用程序的部署與發(fā)布,Visual Studio.NET都可以提供近乎完美的解決方案。Visual Studio.NET提供了包括設計、編碼、編譯調試、數(shù)據(jù)庫聯(lián)接操作等基本功能和基于開放架構的服務器組件開發(fā)平臺、企業(yè)開發(fā)工具和應用程序重新發(fā)布工具以及性能評測報告等高級功能。Web 應用程序(以因特網為基礎的應用程序)的優(yōu)點在于可以讓企業(yè)間的商業(yè)數(shù)據(jù)及交易等行為,透過因特網的通訊來彼此交換訊息。這樣不但可以節(jié)省數(shù)據(jù)交換的時間,而且可以簡化流程。但是在新一代的.NET 開發(fā)平臺還沒有出現(xiàn)之前,要讓因特網應用程序達到上述的功能是一項浩大的工程。牽涉到的技術及程序開發(fā)語言,可能包括了HTML、ASP、VBScript、JavaScript、C+、ADO、SQL、COM、MTS 等。這樣的環(huán)境對于開發(fā)人員來說,想要快速的開發(fā)一個功能強大且穩(wěn)定可靠的Web 應用程序,不是一項輕松的工作。之前的Microsoft Visual StudioTM(微軟的解決方案開發(fā)平臺)及Windows 上的一些架構及服務,已經幫助程序設計師由單機平臺的程序開發(fā)轉為主從式(Client/Server)的架構來開發(fā)應用程序。但是對于現(xiàn)在的環(huán)境而言,因為企業(yè)的客戶或供貨商等所使用的系統(tǒng)或軟件可能不盡相同, 開發(fā)人員所要面對的挑戰(zhàn)是要如何整合所有的異質性資源,所以必須把焦點轉到如何發(fā)展分布式的因特網應用程序架構,好整合這些存在于不同平臺或不同軟件的異質資源。目前全世界有超過六百萬的專業(yè)程序設計師,而百分之70 以上的人使用微軟的Visual Studio 開發(fā)平臺;現(xiàn)今最受歡迎的架構則為主/從式的架構,而發(fā)展最快速的架構則是以Web 為基礎的架構。在這種架構下程序邏輯及數(shù)據(jù)的處理都是在伺服端,使用者是透過網絡以瀏覽器來存取伺服端的數(shù)據(jù)。這種架構的開發(fā)工具,微軟早在前兩版的Visual Studio 中透過Active Server Pages(ASP)以及IIS 3.0 就已經提供了。為了因應Web 架構的快速發(fā)展及廣大程序開發(fā)人員的需求,微軟亦舉辦了不下百場的研討會和開發(fā)人員溝通、交換意見;就是為了提供給開發(fā)人員更好的解決方案開發(fā)平臺。而這個新一代開發(fā)平臺目前已經推出了,即為Visual Studio.NET。VisualStudio.NET 開發(fā)平臺里面包含Visual Basic.NET、C#、Visual C+、ASP.NET 以及VisualFoxPro。為了讓這套開發(fā)平臺更容易開發(fā)以因特網為基礎的應用程序,這個開發(fā)平臺做了許多和以往不同的改革,這個改革就是.NET Framework。.NET 架構(就是.NET Framework,.NET念作dot Net)就是為了讓開發(fā)分布式因特網應用程序架構變得更簡單容易而發(fā)展出來的。2.2.2 Microsoft Visual C+簡介Visual C+是一個功能強大的可視化軟件開發(fā)工具,是Visual Studio .net重要的一員。自1993年Microsoft公司推出Visual C+1.0后,隨著其新版本的不斷問世,Visual C+已成為專業(yè)程序員進行軟件開發(fā)的首選工具。Visual C+不僅是一個C+編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C+由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發(fā)工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。Visual C+大概可以分成三個主要的部分:(1)Developer Studio,這是一個集成開發(fā)環(huán)境,日常工作的99%都是在其上完成的。雖然Developer Studio提供了一個很好的編輯器和很多Wizard,但實際上它沒有任何編譯和鏈接程序的功能。Developer Studio并不是專門用于VC的,它也同樣用于VB,VJ,VID等Visual Studio系列的其他產品。Developer Studio并不等于Visual C+, 它只是Visual C+的一個殼子。(2)MFC。從理論上來講,MFC不是專用于Visual C+。 Borland C+,C+Builder和Symantec C+同樣可以處理MFC。同時,用Visual C+編寫代碼也并不意味著一定要用MFC,只要愿意,用Visual C+來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。然而,Visual C+本來就是為MFC打造的,Visual C+中的許多特征和語言擴展也是為MFC而設計的,所以用Visual C+而不用MFC就等于拋棄了Visual C+中很大的一部分功能。(3)Platform SDK。這是Visual C+和整個Visual Studio的精華和靈魂。大致說來,Platform SDK是以Microsoft C/C+編譯器為核心,配合MASM,并輔以其他一些工具和文檔資料。編譯程序的功能是由CL,NMAKE,和其他許多命令行程序實現(xiàn)的。這些看不到的程序是Visual Studio的基石。2.2.3 MySQL簡介MySQL,出自瑞典小公司MySQL 公司的開放源碼的數(shù)據(jù)庫軟件,目前對數(shù)據(jù)庫老牌廠商Oracle, IBM, Microsoft 以及Sybase 等公司產生威脅。它同樣具有良好的可靠性、安全性和易用性,是大規(guī)模聯(lián)機事務處理、數(shù)據(jù)倉庫和電子商務應用程序的優(yōu)秀數(shù)據(jù)庫平臺。MySQL提供了其它數(shù)據(jù)庫少有的編程工具,而且MySQL 對于商業(yè)和個人用戶是免費的。MySQL 是大規(guī)模聯(lián)機事務處理、數(shù)據(jù)倉庫和電子商務應用程序的優(yōu)秀數(shù)據(jù)庫平臺。MySQL 數(shù)據(jù)庫最主要的兩大特點就是開源和免費,此外,它還具有以下主要特點:1. 同時訪問數(shù)據(jù)庫的用戶數(shù)量不受限制;2. 可以保存超過50,000,000 條記錄;3. 是目前市場上現(xiàn)有產品中運行速度最快的數(shù)據(jù)庫系統(tǒng);4. 用戶權限設置簡單、有效。由于MySQL 本身并不像MS SQL Server 那樣提供圖形化顯示界面,所以為了在開發(fā)過程中顯示方便,我們還可以裝上一些MySQL 的插件,比如MySQL Front,這是一款小巧的管理Mysql 的應用程序。主要特性包括多文檔界面,語法突出,拖拽方式的數(shù)據(jù)庫和表格,可編輯/可增加/刪除的域。可編輯/可插入/刪除的記錄,可顯示的成員,可執(zhí)行的SQL 腳本,提供與外程序接口,保存數(shù)據(jù)到CSV 文件等。2.2.4 MFC簡介MFC,即微軟基礎類(Microsoft Foundation Classes),是微軟提供用于在C+環(huán)境下編寫應用程序的一個框架和引擎,是掛在Visual C+之上的一個輔助軟件開發(fā)包。MFC同Borland C+集成的VCL一樣是一個非外掛式的軟件包,類庫,然而MFC類是微軟為Visual C+專配的。MFC是Win API與C+的結合。(API,即微軟提供的Windows操作系統(tǒng)下應用程序的編程語言接口,是一種軟件編程的規(guī)范,但不是一種程序開發(fā)語言本身??梢栽试S用戶使用各種各樣的第三方編程語言來進行對Windows下應用程序的開發(fā),使這些被開發(fā)出來的應用程序能在Windows下運行。)MFC不只是一個功能單純的界面開發(fā)系統(tǒng),它提供的類絕大部分用來進行界面開發(fā),關聯(lián)一個窗口的動作。但它提供的類中有許多類不與一個窗口關聯(lián),即類的作用不是一個界面類,不實現(xiàn)對一個窗口對象的控制(如創(chuàng)建,銷毀),而是一些在Windows中實現(xiàn)內部處理的類,如數(shù)據(jù)庫的管理類等。MFC中的各種類結合起來構成了一個應用程序框架,它的目的就是讓程序員在此基礎上來建立Windows下的應用程序,這是一種相對SDK來說更為簡單的方法。因為總體上,MFC框架定義了應用程序的輪廓,并提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。Microsoft Visual C+提供了相應的工具來完成這個工作:AppWizard可以用來生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設計用戶接口;ClassWizard用來協(xié)助添加代碼到框架文件;最后,編譯,則通過類庫實現(xiàn)了應用程序特定的邏輯。第三章 系統(tǒng)詳細設計前面我們對系統(tǒng)進行了詳細的分析,對所要運用到的技術進行了詳細的介紹,下面我們將詳細的討論我們這個系統(tǒng)的開發(fā)目的、設計目標以及設計方案。3.1系統(tǒng)開發(fā)目的和設計目標該系統(tǒng)主要是設計一個可以監(jiān)控和分析本機網絡安全的系統(tǒng),對主機進行漏洞掃描、端口探測、流量監(jiān)控以及安全檢測。系統(tǒng)通過UI接口來接受用戶輸入的信息參數(shù),來對主機進行漏洞分析、端口探測,系統(tǒng)給出主機漏洞結果以及端口開放情況。流量監(jiān)控模塊提供圖形化分析工具,把分析所得的結果通過如折線圖、柱狀圖、餅狀圖等圖形化的界面顯示出來,并將檢測數(shù)據(jù)保存到數(shù)據(jù)庫,用戶可以查詢歷史流量記錄。安全檢測模塊主要是顯示出主機是否存在潛在的安全威脅。如果存在異常情況,系統(tǒng)對用戶發(fā)出警報提示,使用戶能及時的采取相應的預防或補救的措施。3.2 系統(tǒng)整體設計思想根據(jù)流網絡安全監(jiān)控分析系統(tǒng)的開發(fā)目的及設計目標,將系統(tǒng)定位于一個包含漏洞掃描和端口探測、流量監(jiān)測、Snort安全檢測三個模塊。漏洞掃描和端口探測模塊主要包含5大類:UI接口類,端口探測線程,漏洞掃描線程,端口探測子線程,漏洞掃描子線程。其中UI接口類是整個程序的主類,負責調用和創(chuàng)建端口探測線程和漏洞掃描線程,以及更新各個控件的當前狀態(tài),輸出要表達的計算結果等。端口探測線程和漏洞掃描線程用來控制端口掃描子線程和漏洞掃描子線程的多線程運算,提高系統(tǒng)的整體效率和響應能力。端口探測子模塊和漏洞掃描子模塊是系統(tǒng)的關鍵部分,程序的主要功能都在這里實現(xiàn)。流量監(jiān)測模塊中,捕獲分析模塊是系統(tǒng)的后臺運行程序,主要負責的是,通過使用Winpcap 協(xié)議,對通過所監(jiān)聽的網

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論