訪問惡意網站告警系統設計探究

前言:尋找寫作靈感?中文期刊網用心挑選的訪問惡意網站告警系統設計探究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

訪問惡意網站告警系統設計探究

摘要:互聯網上存在很多惡意傳播病毒的網站和假冒的欺騙網站,不知情的用戶訪問這些網站后有可能被感染上病毒,或者被欺騙。基于對網絡嗅探技術的簡要分析,研究了網絡數據包的捕獲機制,根據網頁推送的需求基于WinPcap在Windows平臺下設計實現了一個訪問惡意網站告警系統,通過捕獲用戶使用瀏覽器發出的HTTP通信報文,分析其請求字段,當主機字段內容與惡意網站匹配時,通過推送程序發送給用戶預先指定的告警頁面,以達到提醒和保護用戶安全的作用。

關鍵詞:網絡嗅探器;數據包捕獲;數據包分析;推送;TCP通信

1概述

隨著計算機技術、通信技術和互聯網技術的飛速發展,網絡購物、網上消費、電子商務等早已風靡全球,網絡信息已經成為社會發展和個人生活的重要組成部分。然而由于計算機網絡組成形式多樣性、終端分布廣和網絡的開放性、互聯性等特征致使這些網絡信息容易受到來自世界各地的各種人為攻擊例如信息泄漏、信息竊取、數據篡改、數據刪添、計算機病毒等,涉及到個人的主要包括銀行賬號、密碼、個人隱私等敏感信息,網絡安全的形式越來越嚴峻。據某知名殺毒軟件公司統計,平均每天檢測到的感染木馬的計算機數量為上千臺,平均每天新增加的惡意程序特征就高達780個,惡意軟件最廣泛是通過互聯網特別是惡意網站進行傳播。為了給個人計算機加強網絡安全,避免惡意網站的侵襲,需要截斷惡意網站與用戶之間的正常通信,同時向用戶推送告警頁面。這樣既不會讓病毒、惡意軟件有機可乘,又讓用戶注意到已經在訪問惡意網站,加強自我管理。通過對網絡嗅探器對網絡上傳輸的數據包特別是HTTP請求的捕獲與分析,當發現HTTP請求報文Host字段與惡意網站列表中的網站名匹配時,獲取組建推送告警報文所需要的MAC地址、IP源地址、目的地址、TCP端口、SEQ序號和ACK序號等通信信息[1],直接生成用戶要訪問的網站的回應數據包,并將告警信息成功推送至用戶,從而阻止惡意網站內容傳輸至用戶瀏覽器,截斷如木馬、病毒等惡意軟件的傳播途徑,以達到保護用戶安全的目的。本系統可根據收集的惡意網站名單,對惡意網站列表進行實時更新,并且系統管理員可自行選擇推送頁面,系統使用簡單靈活,因此對訪問惡意網站告警系統的應用具有重要意義。

2系統概述

本系統主要包括網絡嗅探器和網頁推送器兩部分,其中嗅探器和網頁推送器是本系統實現的關鍵。網絡嗅探器(Sniffer系統),放置于網絡節點處,對網絡中的數據幀進行捕獲的一種被動監聽手段,是一種常用的收集有用數據的方法,本系統網絡嗅探器主要用于捕捉用戶發出的TCP數據包[2]。網頁推送器用于將告警頁面以HTTP請求應答包的形式發送至用戶主機,該應答報文必須滿足TCP/IP通信協議,同時由于本系統一般架設于局域網內部,推送報文的源MAC地址、目的MAC地址必須與請求報文對應,以實現將應答報文正確傳輸至用戶計算機。由于本系統包含網頁推送器程序,且當系統運行在局域網內時,MAC地址是以太網通信的基礎,因此要求本系統的嗅探器不僅能夠獲取請求報文中高層協議如IP協議、TCP協議等信息,還必須能抓取請求報文中的MAC地址等報文底層數據。從常見的嗅探器實現機制[3]中可以了解,WinPcap直接從網卡驅動NIC中獲取報文,該報文包含了請求報文包括MAC地址在內的所有信息,而套接字包捕獲則僅獲取報文IP層以上的數據,對于MAC地址信息無法獲取。為了實現網頁推送器能夠正確填充MAC地址,本系統嗅探器同樣采用的WinPcap實現,通過使用WinPcap設計開發嗅探器[4]。網頁推送器用于將告警頁面以HTTP請求應答包的形式發送至用戶主機,因此必須滿足TCP/IP通信協議。同時為了實現將網頁推送至客戶端瀏覽器,對本系統設計時提出了一些關鍵要求。

3系統設計與實現

3.1嗅探器的設計與實現。本文在Windows平臺下采用MFC實現了一個嗅探器程序,開發工具使用VisualC++,該設計可以捕獲到所有經過本地網卡的所有的HTTP數據包,并可從查找符合惡意網站列表的報文。在捕獲數據包前,首先需要獲取網卡設備列表,如圖1所示,當用戶單擊某一網卡時,在列表控件中填充該網卡諸如名稱、描述、IP地址、子網掩碼等詳細信息。當選中了某一網卡后按“確定”按鈕完成網卡的選擇,通過CMainFrame的pcap_if_t*dev成員變量保存該網卡。為了實現對惡意網站的管理,本系統設計了網站列表維護對話框,通過該對話框可實現惡意網站的增加、修改和刪除等操作。當完成網卡選擇、推送文件選擇和惡意網站列表維護后,用戶單擊“文件”菜單的“開始”菜單項,系統通過建立ReceivePacket線程開始進行WinPcap捕獲設置,包括打開網卡、設置過濾器等,最后循環調用pcap_loop設置的packet_handler回調函數。在packet_handler中,首先分析該TCP報文的flag標志,只有為用戶瀏覽器請求報文結束標志PSH+ACK有效時再進行下一步解析判斷。根據TCP報文結構定義,將數據指針定位于TCP數據區,也即HTTP報文頭位置。然后在HTTP報文中查找是否為請求報文,即是否包含GET字段內容。繼續在HTTP請求報文中定位Host字段。根據惡意網站列表數據查找是否匹配,如果匹配則調用sendpkt進行告警頁面推送。

3.2推送器的設計與實現。網頁推送的報文在組包時,不僅要符合TCP的數據結構,而且必須符合TCP的數據傳輸要求[5],下列為本系統實現推送的關鍵步驟。3.2.1惡意網站匹配報文的抓?。簭腍TTP請求分析中可以發現,Host屬性包含了用戶訪問的網站域名,因此需在WinPcap中對抓到的報文檢查Host屬性是否與惡意網站列表匹配。3.2.2TCP序列號和確認:TCP序列號和確認號是實現可靠傳輸的基礎,因此推送的報文必須符合序列號、確認號的要求,也即推送報文的SEQ為請求報文的ACK,推送報文的ACK為請求報文的SEQ加上請求報文TCP數據長度。3.2.3校驗和計算:校驗和包括IP頭部校驗和TCP數據包校驗,IP報文的校驗和根據源IP、目的IP信息,而TCP數據包校驗既包含TCP頭部數據、TCP數據,還包括一個源IP、目的IP和協議信息在內的偽IP頭部數據。3.2.4響應時間:推送的報文必須先于惡意網站生成的應答報文到達用戶,這樣由于TCP協議的規約,后續到達的應答報文將被視為重傳失敗而被用戶主機丟棄。3.2.5報文發送:推送器必須能直接發送包含以太網MAC數據在內的報文,而socket編程無法實現對目的MAC、源MAC的修改,WinPacp中則提供了pcap_sendpacket直接發送數據報文的接口函數。當嗅探器捕捉到用戶瀏覽器向惡意網站提交的HTTP請求后,由sendpkt函數進行發送。sendpkt函數原型為:voidsendpkt(PUSH_INFO_PTRpush_info,constuint_8*pkt_data_in);其中,push_info為系統推送信息PUSH_INFO結構體指針,pkt_data_in為嗅探器捕獲的數據包。在sendpkt中需要根據捕獲的報文內容完成推送報文的MAC地址復制、IP地址復制、TCP端口復制、序列號和確認號填充、IP校驗和計算以及TCP校驗和計算。最后調用pcap_sendpacket完成推送報文的發送。嗅探結果如圖2所示。為了實現網頁推送器成功推送至用戶瀏覽器,不僅要滿足TCP數據結構,還必須滿足TCP通信的數據傳輸要求,且響應時間必須先于惡意網站響應時間。因此本系統在設計時采用了如下一些加速措施。一是提前填充確定的數據至推送報文:如以太網頭部類型、IP頭部、TCP頭部等,并預先格式化好HTTP應答信息。二是提前讀取推送文件:將用戶選擇的推送頁面文件提前讀取后存放在推送報文中,減少推送時間。三是將計算TCP校驗和所需的TCP報文長度(TCP頭部+TCP數據總長度+偽IP頭部)預先計算好后放于PUSH_INFO結構體。

4結論

本文的主要研究內容是利用WinPcap開發網絡嗅探器和推送器實現惡意網站的告警,具體設計中通過捕捉用戶發出的IP數據包能將捕捉到的數據包中的目標地址取出與惡意網站列表中的地址進行比對,如發現目標地址與列表中的地址相同,即調用告警頁面推送程序;也可以人工對惡意網站列表進行手動管理。本系統可以作為基礎的惡意網站過濾系統維護普通計算機用戶的網絡安全,也可以用于學校機房、校園網等應用場合,具有廣泛的應用前景。在使用中,本系統不免存在一些不足之處,需要在下一步的完善中不斷進步,例如:

4.1本系統沒有對推送報文進行TCP分包傳輸處理,因此對推送文件的大小作了不大于1400字節的限制,讓其包含在1個TCP報文中。

4.2本論文中的嗅探器只適用于基于廣播包的網絡,不能夠對子網內其他的機器進行監聽,若想要對子網進行監聽,必須處于與此交換機同級的包交換節點中。

4.3系統未實現一個獨立的網頁推送器。在未來,可以嘗試使用過命令行參數傳遞、進程間共享內存通信等方式獨立設計網頁推送器。

作者:潘卿 單位:南京林業大學

亚洲精品一二三区-久久