freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

計算機畢業(yè)論文-網(wǎng)絡嗅探器的設計與實現(xiàn)(編輯修改稿)

2025-02-13 04:15 本頁面
 

【文章內容簡介】 術實現(xiàn)審計跟蹤、攻擊檢測等在網(wǎng)絡安全問題上具有重要意義。3 入侵檢測系統(tǒng)與嗅探器 入侵檢測概念建立入侵檢測系統(tǒng)是網(wǎng)絡安全的一個重要工作,通過學習,對入侵檢測系統(tǒng)有了一定的了解,下面對入侵檢測技術做一個總體介紹。入侵檢測技術與防火墻、PKI 等技術不同,防火墻、PKI 只是立足于“防” ,而入侵檢測是對網(wǎng)絡系統(tǒng)的運行狀態(tài)進行監(jiān)視,發(fā)現(xiàn)各種攻擊企圖、攻擊行為或者攻擊結果,以保證系統(tǒng)資源的機密性、完整性和可用性。為了提高入侵檢測系統(tǒng)(IDS)產品、組件及與其他安全產品之間的互操作性,美國國防高級研究計劃署(DARPA)和互聯(lián)網(wǎng)工程任務組(IETF)的入侵檢測工作組(IDWG)發(fā)起制定了一系列建議草案,從體系結構、API、通信機制、語言格式等方面規(guī)范 IDS 的標準。DARPA 提出的建議是公共入侵檢測框架(CIDF) ,最早由加州大學戴維斯分校安全室主持起草工作。CIDF 提出了一個通用模型, 將入侵檢測系統(tǒng)分成了四大模塊:事件產生器(Event Generators) ,事件分析器(Event Analyzers) ,響應單元(Response Units)和事件數(shù)據(jù)庫(Event Database) 。各部分功能是:1. 事件產生器獲得數(shù)據(jù)并向 IDS 的其它模塊提供;2. 事件分析器針對數(shù)據(jù)進行入侵分析;3. 響應單元對分析的結果作出不同的響應;4. 數(shù)據(jù)庫存儲以上三個模塊收集及分析的各種數(shù)據(jù)。在檢測的技術上,主要分為三類:靜態(tài)分析、異常檢測、誤用檢測。:通過分析系統(tǒng)配置,檢查系統(tǒng)是否已經(jīng)或可能被人入侵。:通過歷史數(shù)據(jù)定義用戶正?;顒拥哪P停敊z測到與所建立的正常模型有差異的行為發(fā)生時,認為可能有入侵行為的發(fā)生。:通過分析已知的入侵模式,用事先定義的規(guī)則描述這些入侵模式,再通過這些已知的行為模式來檢測當前網(wǎng)絡中是否存在入侵行為。上述三種方法均建立在數(shù)據(jù)包捕獲的基礎上。 入侵檢測的實現(xiàn)與嗅探器 入侵檢測的實現(xiàn)由四部分組成:數(shù)據(jù)包嗅探解析部分、數(shù)據(jù)行為檢測部分、算法部分和掃描檢測部分。在這里以誤用檢測方法對入侵檢測的實現(xiàn)做更詳細的介紹。系統(tǒng)編寫構架如圖 31 所示: 顯示模塊入侵檢測模塊網(wǎng)絡協(xié)議分析模塊數(shù)據(jù)包捕獲模塊 存儲模塊規(guī)則解析模塊攻擊特征圖 31 入侵檢測系統(tǒng)的架構由圖 31 可以知道,在編寫入侵檢測系統(tǒng)時,需要遵循 CIDF 標準來進行系統(tǒng)的設計,首先通過數(shù)據(jù)包嗅探技術獲得網(wǎng)絡上流通的數(shù)據(jù)包;其次通過攻擊特征庫對嗅探到的數(shù)據(jù)包進行入侵行為的檢測;再次對入侵數(shù)據(jù)包做出報警;最后將這些入侵事件紀錄到數(shù)據(jù)庫,便于查詢和分析。 入侵檢測的實現(xiàn)與嗅探器的關系數(shù)據(jù)包嗅探技術是實現(xiàn)入侵檢測的基礎,將數(shù)據(jù)包從共享網(wǎng)絡線路中捕獲,并將其提取到應用程序中,這個過程要依賴于網(wǎng)絡物理層到應用層以及操作系統(tǒng)本身各方面進行協(xié)調、設置,下面通過實例來看一下以太網(wǎng)絡中數(shù)據(jù)包的流程:1. 物理層,在一個以太局域網(wǎng),數(shù)據(jù)在共享的網(wǎng)絡介質(網(wǎng)線、HUB)中以廣播的形式到達局域網(wǎng)每一個節(jié)點;2. 數(shù)據(jù)鏈路層,節(jié)點的網(wǎng)絡適配器(網(wǎng)卡 NIC)查看到來的數(shù)據(jù)幀(Frame) ,通過一系列的檢驗,將到來的大量的數(shù)據(jù)幀中屬于自己且正確合法的數(shù)據(jù)幀重構成數(shù)據(jù)包(Packet)送入操作系統(tǒng)的協(xié)議棧;3. 網(wǎng)絡層至運輸層,操作系統(tǒng)的協(xié)議棧通過這兩層中的 IP、TCP、UDP 等協(xié)議判斷到來的數(shù)據(jù)包是否屬于本操作系統(tǒng)的接收范圍(根據(jù) IP 地址) ,是否屬于本操作系統(tǒng)上的應用程序的接收范圍(根據(jù) Port 端口號) ,如果所屬范圍正確并且數(shù)據(jù)包合法,操作系統(tǒng)通過端口將數(shù)據(jù)包重構成報文(Segment)送入應用程序。 數(shù)據(jù)包嗅探技術在入侵檢測系統(tǒng)中的應用為了嗅探到網(wǎng)絡中的任意一個數(shù)據(jù)包,必須對物理線路、網(wǎng)卡、操作系統(tǒng)進行完全的配合,首先從網(wǎng)絡構成上講,嗅探技術并不是適合所有類型的網(wǎng)絡,不同傳輸介質的網(wǎng)絡的可監(jiān)聽性是不同的。一般來說,以太網(wǎng)被監(jiān)聽的可能性比較高,因為以太網(wǎng)是一個廣播型的網(wǎng)絡,在一個標準的以太網(wǎng)子網(wǎng)上,多臺計算機通過一條線路互聯(lián),且任何時刻,電纜上只有一個數(shù)據(jù)包存在,為了保證多臺計算機能 共 享 同 一 線 路 , 以 太 網(wǎng) 使 用 了 CSMA/CD(Carrier Sense MultipleAccess/Collision Detection)載波偵聽多路訪問/沖突檢測,這樣一來,共享線路上的所有以太網(wǎng)卡及相關設備總是處于對線路上的信號進行監(jiān)聽的狀態(tài)中,這使得每一臺機器都能夠探知并接受線路上的數(shù)據(jù)流。事實證明嗅探適用于基于廣播包的網(wǎng)絡,如利用廣播技術來分發(fā)數(shù)據(jù)包的連通網(wǎng)絡(或者使用令牌的網(wǎng)絡,只不過因為令牌不一定經(jīng)過本機器,所以只能嗅探到網(wǎng)絡中部分數(shù)據(jù)包) 。此外如果在一個子網(wǎng)內部進行嗅探,而子網(wǎng)頂部存在著諸如交換機這類設備,由于它能夠阻止廣播,所以就不能夠對子網(wǎng)內其他的機器進行監(jiān)聽,若想要對此子網(wǎng)進行監(jiān)聽,就必須處于與此交換機同級的包交換網(wǎng)絡中。例如從路由器到某一子網(wǎng)的共享網(wǎng)絡中安裝一個 hub,在將監(jiān)聽機器和子網(wǎng)交換機用此 hub 連接起來,這樣,就能夠對此子網(wǎng)進行監(jiān)聽了,另一種辦法就是在交換機上給監(jiān)聽機器做端口映射,指明讓它接受經(jīng)過交換機的所有數(shù)據(jù)包。當數(shù)據(jù)經(jīng)過數(shù)據(jù)鏈路層后,就要通過操作系統(tǒng)協(xié)議棧的審核了,系統(tǒng)協(xié)議棧在 TCP/IP 網(wǎng)絡模型跨越的層次非常多,它們直接從位于系統(tǒng)的數(shù)據(jù)鏈路層提取數(shù)據(jù),通過在這一層的開發(fā)環(huán)境中設置混雜模式,就可以成功的接收從驅動層來的各種數(shù)據(jù)包。大多數(shù)的操作系統(tǒng)在這一層使用的是 Socket 套接字技術,它們通過函數(shù) ioctlsocket(socket, SIO_RCVALL, amp。Value)來實現(xiàn)混雜模式接收數(shù)據(jù)包。通過 Socket 的處理,數(shù)據(jù)流( Bits)已經(jīng)變成了能識別的數(shù)據(jù)結構,最后協(xié)議棧將數(shù)據(jù)信息傳入應用層——應用程序中。最終,所有的數(shù)據(jù)變成可以識別的文字、符號出現(xiàn)在機器的視頻輸出上。4 嗅探器的實現(xiàn)與測試 利用套接字開發(fā)網(wǎng)絡嗅探程序的步驟利用套接字開發(fā)網(wǎng)絡嗅探器程序時的一般步驟如圖 41 所示:關閉套接字是開始建立套接字綁定套接字設置網(wǎng)卡為混雜模式初始化數(shù)據(jù)包接收結構停止接收分析處理數(shù)據(jù)包否開始捕獲顯示分析結果圖 41 嗅探器工作流程如圖 41 所示,在利用套接字開發(fā)網(wǎng)絡嗅探器程序時的一般步驟是:首先,創(chuàng)建原始套接字,并設置其操作選項;其次將原始套接字綁定到本地網(wǎng)卡地址上;設置網(wǎng)卡為混雜模式,這樣網(wǎng)卡就可以收到任何在網(wǎng)絡中傳輸?shù)臄?shù)據(jù)包;在以上條件下開始對數(shù)據(jù)包進行捕獲、分析。 嗅探器的具體實現(xiàn)原理嗅探器作為一種網(wǎng)絡通訊程序,是通過對網(wǎng)卡的編程來實現(xiàn)網(wǎng)絡通訊的,對網(wǎng)卡的編程是使用通常的套接字(socket)方式來進行。但是,通常的套接字程序只能響應與自己硬件地址相匹配的或是以廣播形式發(fā)出的數(shù)據(jù)幀,對于其他形式的數(shù)據(jù)幀比如已到達網(wǎng)絡接口但卻不是發(fā)給此地址的數(shù)據(jù)幀,網(wǎng)絡接口在驗證投遞地址并非自身地址之后將不引起響應,也就是說應用程序無法收取到達的數(shù)據(jù)包。而本設計的要求通過網(wǎng)絡嗅探器從網(wǎng)卡接收所有經(jīng)過它的數(shù)據(jù)包,因此,在該系統(tǒng)中將網(wǎng)卡以混雜模式替代通常的正常模式。 具體到編程實現(xiàn)上,這種對網(wǎng)卡混雜模式的設置是通過原始套接字(raw socket)來實現(xiàn)的,這也有別于通常經(jīng)常使用的數(shù)據(jù)流套接字和數(shù)據(jù)報套接字。在創(chuàng)建了原始套接字后,需要通過 setsockopt()函數(shù)來設置 IP 頭操作選項,然后再通過 bind()函數(shù)將原始套接字綁定到本地網(wǎng)卡。為了讓原始套接字能接受所有的數(shù)據(jù),還需要通過 WSAIoctl ()來進行設置。至此,實際就可以開始對網(wǎng)絡數(shù)據(jù)包進行嗅探了,對數(shù)據(jù)包的獲取仍象流式套接字或數(shù)據(jù)報套接字那樣通過 recv()函數(shù)來完成。但是與其他兩種套接字不同的是,原始套接字此時捕獲到的數(shù)據(jù)包并不僅僅是單純的數(shù)據(jù)信息,而是包含有 IP 頭、 TCP 頭等信息頭的最原始的數(shù)據(jù)信息,這些信息保留了它在網(wǎng)絡傳輸時的原貌。通過對這些在低層傳輸?shù)脑夹畔⒌姆治隹梢缘玫接嘘P網(wǎng)絡的一些信息。由于這些數(shù)據(jù)經(jīng)過了網(wǎng)絡層和傳輸層的打包,因此需要根據(jù)其附加的幀頭對數(shù)據(jù)包進行分析。下面先給出結構,數(shù)據(jù)包的總體結構如圖 42 所示: 數(shù)據(jù)包 IP 頭 TCP 頭(或其他信息頭) 數(shù)據(jù) 圖 42 數(shù)據(jù)包總體結構數(shù)據(jù)在從應用層到達傳輸層時,將添加 TCP 數(shù)據(jù)段頭,或是 UDP 數(shù)據(jù)段頭。其中 UDP 數(shù)據(jù)段頭比較簡單,由一個 8 字節(jié)的頭和數(shù)據(jù)部分組成,具體格式如圖 43 所示: 16 位 16 位 源端口 目的端口 UDP 長度 UDP 校驗和 圖 43 UDP 數(shù)據(jù)段頭格式對于此 UDP 數(shù)據(jù)段頭的分析在編程實現(xiàn)中可通過數(shù)據(jù)結構 UDPPacketHead來定義:struct UDPPacketHead {WORD SourPort。 //16 位源端口WORD DestPort。 //16 位目的端口WORD Len。 //16 位長度WORD ChkSum。 //16 位校驗和}。而 TCP 數(shù)據(jù)頭則比較復雜,以 20 個固定字節(jié)開始,在固定頭后面還可以有一些長度不固定的可選項,圖 44 給出 TCP 數(shù)據(jù)段頭的格式組成: 16 位 16 位 源端口 目的端口 順序號 確認號 TCP頭長 (保留)7 位 URG ACK PSH RST SYN FIN 窗口大小 校驗和 緊急指針 可選項(0 或更多的 32 位字) 數(shù)據(jù)(可選項) 圖 44 TCP 數(shù)據(jù)段頭格式對于此 TCP 數(shù)據(jù)段頭的分析在編程實現(xiàn)中可通過數(shù)據(jù)結構 TCPPacketHead來定義: struct TCPPacketHead {WORD SourPort。 //源端口WORD DestPort。 //目的端口DWORD SeqNo。 //32 位序列號DWORD AckNo。 //32 位確認號BYTE HLen。 //4 位首部長度BYTE Flag。 //6 位標志位WORD WndSize。 //16 位窗口大小WORD ChkSum。 //16 位校驗和WORD UrgPtr。 //16 位緊急數(shù)據(jù)偏移量}。在網(wǎng)絡層,還要給 TCP 數(shù)據(jù)包添加一個 IP 數(shù)據(jù)段頭以組成 IP 數(shù)據(jù)報。IP數(shù)據(jù)段頭格式如圖 45 所示: 16 位 16 位 版本 IHL 服務類型 總長 標識 標志 分段偏移 生命期 協(xié)議 頭校驗和 源地址 目的地址 選項(0 或更多) 圖 45 IP 數(shù)據(jù)段頭格式同樣,在實際編程中也需要通過一個數(shù)據(jù)結構來表示此 IP 數(shù)據(jù)段頭,下面給出此數(shù)據(jù)結構的定義: typedef struct _IPHEADER { unsigned char header_len:4。 //4 位首部長度 unsigned char version:4。 //4 位版本號 unsigned char tos。 // 8 位服務類型 unsigned short total_len。 // 16 位總長度 unsigned short ident。 // 16 位標識符 unsigned short flags。 //3 位標志位 unsigned char ttl。 //8 位生存時間 unsigned char proto。 // 8 位協(xié)議 ( IP , TCP, UDP etc) unsigned short checksum。 //16 位 IP 首部校驗和 unsigned int sourceIP。 //32 位源 IP 地址 unsigned int destIP。 //32 位目的 IP 地址}IPHEADER; 數(shù)據(jù)包捕獲程序設計根據(jù)前面的設計思路,本文在 windows 平臺下實現(xiàn)了一個嗅探器程序,開發(fā)工具使用 visual C++。下面就給出本設計的部分程序代碼,該設計可以捕獲到所有經(jīng)過本地網(wǎng)卡的數(shù)據(jù)包,并可從中分析出協(xié)議、IP 源地址、IP 目標地址、TCP 源端口號、TCP 目標端口號等信息。在捕獲數(shù)據(jù)包前,首先對原始套接字進行設置,代碼如下:void CIpmonDlg::OnLookUp() {char szErr [ 50 ] , szHostName[MAX_PATH]。DWORD dwErr 。 SOCKADDR_IN sa。gethostname(szHostName, sizeof(szHostName)) 。//獲取主機名m_iphostsource = m_ipsource 。 m_ipcheckedhost = ntohl(m_iphost) 。if( 0 == m_threadID ){SetDlgItemText(IDC_LOOKUP,停止捕獲! )。}else{if( m_threadID ){
點擊復制文檔內容
電大資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1