




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、哈爾濱工程大學信息安全研究中心項目概要設計報告編號: HEUISRC-RDT-014 版本: 1.1 密級:編寫:呂敬輝 -郝建波 -賀婷日 期:檢查:日 期:審核:日 期:批準:日 期:版本日期作者修 訂 要 點1.0 2007-03-20 楊武文件建立楊武內容及文檔結構修訂1.1 2007-03-21 目 錄一、引言 1.1 編寫目的 對網絡數據流異常檢測系統的整體開發進行概要設計,為系統編程提供基礎支持。1.2 項目背景 項目名稱網絡數據流異常檢測,該項目主要對網絡數據出現大的流量變化,尤其對 syn、fin 、ping、端口和主機不可達事件進行異常檢測并報警。1.3 術語libPcap
2、 縮寫、術語解 釋捕包庫函數MySQL 數據庫C+ builder 界面編程ODBC 數據庫訪問接口標準adsystem服務器端數據庫名Newadsystem本地綁定遠程數據庫的系統數據源變量1.4 參考資料二、任務概述 2.1 系統描述 后臺:1)本系統能夠對網絡出入口的數據包進行分析,統計出 TCP、UDP、ICMP 等協議以及 TCP-SYN 事件、 TCP-FIN 事件、 ICMP_PING 事件、 ICMP_3.1 事件(主機不可達 事件)、ICMP_3.3 事件(端口不可達事件)的包的數量。2)通過異常檢測算法,對這些統計數量進行異常檢測。根據統計結果用自回歸模 型對網絡數據流量進
3、行預測,當某時刻數據流和預測結果不同時觸發報警事件。數據庫:將統計量、異常信息存入數據庫中前臺:1)進行通訊:發送給后臺登錄、檢測、關閉的標識;接收后臺數據,包括登錄標 識、流量包統計數及異常報警標識。2)對數據解析之后,對用戶的不同類型檢測的要求進行實時動態曲線的描繪;3)對異常事件進行報警 4)對歷史流量及異常信息進行數據庫查詢 2.2 開發與運行環境 Linux 操作系統平臺 C+ builder 、MySQL 數據庫 提供各種端口掃描的機器 2.2.1 開發環境的配置類別標準配置最低配置計算機硬件計算機軟件網絡通信Linux 、Windows 操作系統、mysql 數據庫管理工具、c+
4、 builder 前臺開發工具 ODBC 其它2.2.2 運行環境的配置類別標準配置最低配置計算機硬件計算機軟件 網絡通信Linux 、Windows 操作系統、mysql 數據庫管理工具 ODBC 其它2.2.3測試環境的配置 計算機軟件: Linux 、 Windows 操作系統、 mysql 數據庫管理工具網 絡通 信: ODBC2.3 需求概述 用戶登錄:用戶輸入服務器地址、用戶名、密碼訪問,驗證用戶權限是否正確用戶其他操作:用戶的其他操作需要并行進行。包括四個部分,介紹如下:1、動態實時曲線描繪:1) 配置信息, 用戶可自己配置流量統計時間間隔,根據不同的流量類型, 設置曲線圖的數據
5、顯示高度,同時可設置曲線圖的顯示寬度(輔助設計);2) 對于各項值, 需要提供默認值, 尤其數據顯示高度, 需根據以往的數據流量 值給出一個不同類型協議或事件的參考值;3) 完成信息的配置,啟動檢測,則在設置的時間間隔內開始描點;4) 曲線的描繪:曲線為動態波動、有規律進行的。2、異常檢測:當后臺檢測到異常時,立即發出警報提示。3、歷史流量數據的查詢:用戶可根據協議 量查詢。4、異常流量信息查詢:用戶可根據協議 信息查詢。2.4 條件與限制三、總體設計3.1 系統設計原則 在 linux 環境下進行系統后臺的編程,用/事件類型及檢測的時間范圍完成歷史流/事件類型及檢測的時間范圍完成異常流量li
6、bcap 庫函數進行抓包,并對包進行分析,統計出 TCP、UDP、ICMP 等協議以及 TCP-SYN 事件、 TCP-FIN 事件、 ICMP_PING 事 件、 ICMP_3.1 事件(主機不可達事件) 、ICMP_3.3 事件(端口不可達事件)的包的數 量。統計完成后將數據傳遞給異常檢測算法和數據庫,異常檢測算法根據初始統計的正常數據包數量對以后到達的數據包進行預測分析,出現異常時調用 socket函數傳遞給前臺一個異常信號, c+ building 來進行異常報警。另外 pcap統計的包的數量也要傳遞給前臺來建立一個正常流量模型。其中向前臺傳遞正常數據和異常信息分別用一個分線程,還有一
7、個分線程用來接收前臺的命令。3.2 系統網絡結構網 外網 外服務器 192.168.101.201系統網絡結構如圖3.1 所示:路由器 192.168.100.1路由器 192.168.101.1用戶交換機交換機用戶用戶用戶用戶用戶圖 3.1 系統網絡結構圖3.3 實現框架與處理流程1、系統總體設計流程如圖 3.2 所示:數據包捕獲數據流套接字通信 數據包的分析分類存儲滑窗算法前臺顯示報警異常檢測存儲異常事件數據庫數據庫連接圖 3.2 系統總體設計流程圖2、前臺業務流程如圖 3.3 所示:開始登錄失敗通訊獲取登錄標識成功異常標識啟動主線程用戶并行操作數據標識異常報告描繪曲線檢測查看歷史流量查看
8、異常流量關閉發送關閉標識結束圖 3.3 前臺業務流程圖3.4 結構模塊設計結構模塊如圖 3.4 所示:數據流異常檢測系統前臺 后臺登錄模塊用戶操作模塊多線程模塊數據包捕獲異常檢測通訊模塊非查查保通法看看存接曲異字歷異配收線常訊符史常置數描報判流信信據繪警斷量息息圖 3.4 系統結構模塊 模塊一覽表模塊名稱標識符模塊功能模塊性能要求登錄模塊Login 與后臺進行連接通訊; 判能夠及時返回斷字符是否合法; 判斷登用 戶 登 錄 信錄,登錄成功,開啟主線息,提供登錄程。或 重 登 錄 信息。用戶操作模塊Configuration 對數據庫操作: 保存配置能快速的對數多線程模塊信息,提供檢測啟動標據
9、庫 進 行 操識;查看歷史流量信息;作,返回用戶查看異常流量信息。查詢信息TCommunicationThread 接收后臺數據, 判斷數據當用戶進行檢數據包捕獲類型,解析數據,啟動曲測時,應及時線描繪函數及異常警報的、有規律的線程。描繪出曲線PCAP 在網絡數據流里捕獲數對 TCP、UDP、據包并對數據包進行統ICMP 等數據計,提取出相關的數據信流 量 進 行 統息進行分析并存儲于數計,檢測出相據庫中。關數據流量的異常。異常檢測Anomaly detection 檢測異常數據流對不符合捕獲數據包正常流量的進行檢測并報警通訊communication 進行前后臺的通信將統計得數據包數量直接輸
10、送到前臺進行顯示以及異常檢測的顯示。3.5 功能需求與程序模塊的關系需求代碼捕包模塊異常檢測模塊通訊登錄模塊用戶操作模塊前臺多線程模塊獲取原始數據流異常數據檢測存儲數據查詢數據庫接收數據發送數據顯示結果3.6 尚未解決的問題四、接口設計4.1 外部接口4.2 內部接口4.2.1 MySQL 數據庫和前臺 1)連接步驟c+ builder 的連接第一步:使用 ODBC數據庫訪問接口標準,綁定服務器 adsystem 數據庫建立一個數據源 Newadsystem;第二步: 使用 Databasesource(一個能和遠端資料庫透過 BDE 進行連結的元件) ,綁定數據源 Newadsystem,可
11、以儲存登入資料庫所需的身分認證資料,包括用戶名密碼,確保以后的數據庫操作中,不在需要確認;第三步:使用 Query 數據庫存取元件,綁定 Databasesource;第四步:使用 Datasource 傳遞元件,將 Query 取得的值傳遞給顯示元件;第五步:使用 StringGrid 元件,將獲取到的數據顯示。2)數據庫連接及數據存取示意圖如圖 4.1 所示:ODBC數據 源用Database提供Query將獲Data傳遞String可直取到sour接獲給顯數據戶名source的數Grid取的元件ce示元源密碼 綁定元件據暫元件資料件元件存庫服務器地址訪問遠端數據庫 adsystem圖 4
12、.1 數據庫連接及數據存取示意圖4.2.2 MySQL 數據庫和后臺Linux 的連接sql 描述符m_sql,再用主要是調用API 函數,先用mysql_init 初始化一個mysql_real_connect去連接服務器上的mysql,然后用 mysql_query 對數據庫進行讀寫操作,其中讀數據庫操作還要 mysql_query和 mysql_fetch_row 來讀出和存儲數據庫中的值。4.2.3 后臺 Linux 與前臺界面的 socket連接套接字有兩套, 分別為后臺作為 socket服務器端前臺作為 socket客戶端和后臺作為socket客戶端前臺作為 socket服務器端。
13、 也是調用相關的API 函數來實現套接字連接與通信,其中服務器端先用 socket 函數初始化一個 socket描述符 sock_fd,對 sockaddr_in結構體的成員變量進行賦值,其中sin_family 為 AF_INET ,sin_port =為 4005,地址是本地地址,完了以后用 bzero函數將結構體其余空間清零,然后用 bind 函數進行端口與本地地址綁定,用 listen 函數來監聽是否用連接,用連接是用 accept函數生成一個連接socket描述符 new_fd,用 recv 函數來接受前臺傳來的數據。五、數據結構設計5.1 邏輯結構設計1)后臺TCP typedef
14、 struct tcp_node/存儲 TCP 流量的循環鏈表,結構體初始化 int value; /TCP 流量大小struct tcp_node *next;/定義指針tcp_node; tcp_node *head,*tail;/TCP 循環鏈表頭尾指針typedef struct tcpsyn_node/存儲 TCPSYN 流量的循環鏈表,結構體初始化 int value; /TCPSYN 流量大小struct tcpsyn_node *next;/定義指針 tcpsyn_node; tcpsyn_node *head,*tail;/TCPSYN 循環鏈表頭尾指針typedef str
15、uct tcpfin_node/存儲 TCPFIN 流量的循環鏈表,結構體初始化 int value; /TCPFIN 流量大小struct tcpfin_node *next;/定義指針 tcpfin_node; tcpfin_node *head,*tail;/TCPFIN 循環鏈表頭尾指針typedef struct udp_node/存儲 UDP 流量的循環鏈表,結構體初始化 int value; /UDP 流量大小 struct udp_node *next; /定義指針 tcpudp_node; udp_node *head,*tail;/UDP 循環鏈表頭尾指針typedef s
16、truct icmp_node/存儲 ICMP 流量的循環鏈表,結構體初始化 int value; /ICMP 流量大小 struct icmp_node *next;/定義指針 icmp_node; icmp_node *head,*tail;/ICMP 循環鏈表頭尾指針typedef struct icmpping_node/存儲 ICMPPING 流量的循環鏈表,結構體初始化 int value; /ICMPPING 流量大小 struct icmpping_node *next;/定義指針 icmpping_node; icmpping_node *head,*tail;/ICMPPI
17、NG 循環鏈表頭尾指針typedef struct icmp31_node/存儲 ICMP31 流量的循環鏈表,結構體初始化 int value; /ICMP31 流量大小struct icmp31_node *next;/定義指針 icmp31_node; Icmp31_node *head,*tail;/ICMP31 循環鏈表頭尾指針typedef struct icmp33_node/存儲 ICMP33 流量的循環鏈表,結構體初始化 int value; /ICMP33 流量大小struct icmp33_node *next;/定義指針 icmp33_node; Icmp33_node
18、 *head,*tail;/ICMP33 循環鏈表頭尾指針2)前臺實現登錄功能,創建的類函數,主要完成用戶登錄及通訊。class TLoginForm : public TForm _published: 系統自定義的控件private: / User declarations public: / User declarations _fastcall TLoginForm(TComponent* Owner); /登錄表單的構造函數AnsiString Judgement(AnsiString EditContent); /非法字符判斷函數; AnsiString GetLLtime ; /
19、保存獲取到的系統時間的變量AnsiString ServiesAddress; /保存服務器地址的變量實現流量檢測,包括異常流量報警,正常流量曲線模型的繪制;實現歷史流量及異常流量的歷史數據查詢操作,對數據庫進行取操作。class TConfigurationForm : public TForm _published: /聲明系統的控件及方法函數private: / User declarations public: / User declarations _fastcall TConfigurationForm(TComponent* Owner);/ 配置窗口的構造函數int _fast
20、call connect_database1(AnsiString Ip); /Socket 通訊函數AnsiString PotocolType; /記錄時間間隔值int wWidth; /坐標寬度變量int WHight; /坐標高度變量void DrawDot (int DotValue,int count); /描繪曲線函數函數int TCtime; /保存配置信息時間差int SummitMessage; void CheckHistoryDatabass(); AnsiString HistoryType; /保存配置完成標識符 /歷史流量數據庫查詢函數 /所需查詢的歷史流量類型i
21、nt SumCount; /記錄從歷史流量表查詢到的記錄數int AERecordCount; int sock_fd, numbytes; /記錄從異常流量數據庫中獲取到的記錄數 /通訊端口使用的全局變量char recvbuf100; /接收后臺數據char sendbuf100; /發送數據char command20; /發送關閉值; 主線程類函數,用于保持接收后臺數據,并且進行數據解析,曲線繪制函數的調用及異常報警線程的調用。class TCommunication : public TThread private: protected: public: ; void _fastca
22、ll Execute(void); /線程的執行方法函數/int CommunicationSelect; _fastcall TCommunication(); /線程的構造函數AnsiString _fastcall Connect(); /連接函數從線程類函數,用于實現異常報警。class TWarningThread : public TThread private: protected: public: ; void _fastcall Execute(void); /報警線程的執行方法函數_fastcall TWarningThread(); /報警線程的構造函數/AnsiStri
23、ng TempMessage; 5.2 物理結構設計 5.3 數據結構與程序代碼的關系結構代碼捕包模塊異常檢測模塊數據庫模塊前臺struct ether_headerstruct in_addrstruct arp_headerstruct ip_headerstruct udp_headerstruct tcp_headerstruct icmp_headerstruct Linklistclass TLoginForm class TConfigurationForm class TCommunication class TWarningThread 六、 數據庫設計6.1 異常信息表 a
24、_yichang(對異常時間段內異常包的信息進行統計)異常的協議類型, Yevent 表示包出現異常的事件類型,。其中 Yprotocol 表示包出現 Ytime 表示統計異常事件發生的時間, Ynumber 表示異常事件還有此類型事件的個數。表 6.2 異常信息表( a_yichang)字段含義字段名稱數據類型長度空備注ID ID Int 11 否主鍵,自增協議類型Yprotocol Varchar 10 時間類型Yevent Varchar 10 檢測時間Ytime Datatime 10 異常包個數Ynumber Int 6.2 流量表 a_liuliang(對包中的 tcp 等協議流量
25、以及tcp-syn 等事件流量進行統計) 。其中 Ltcp表示單位時間內捕獲的 tcp 協議的包的數量, Ludp 表示單位時間內捕獲的 udp 協議的包的數量, Licmp 表示單位時間內捕獲的 icmp 協議的包的數量, Lsyn 表示單位時間內捕獲的含有 syn 事件的包的數量, Lfin 表示單位時間內捕獲的含有 fin 事件的包的數量,Lping 表示單位時間內捕獲的含有 捕獲的含有主機不可達事件的包的數量,達事件的包的數量。ping 事件的包的數量, Lzhu 表示單位時間內 Lduan 表示單位時間內捕獲的含有端口不可表 6.1 流量表( a_liuliang)字段含義字段名稱數
26、據類型長度空備注ID ID Int 11 否主鍵,自增Ltcp Int 10 Tcp 包數量Udp 包數量Ludp Int 10 Icmp 包數量Licmp Int 10 Syn 包數量Lsyn Int 10 Fin 包數量Lfin Int 10 Lping Int 10 Ping 包數量Lzhu Int 10 Icmp_3.1 包數量Lduan Int 10 Icmp_3.2 包數量Ltime Datatime 檢測時間6.3 配置信息表a_configuration (前臺給后臺配置時間窗口大?。┐笮 time 表示前臺給后臺傳的的捕包的窗口表 6.2 配置信息表( a_configuration)字段含義字段名稱數據類型長度空備注ID ID Int 11 否主鍵,自增統計流量時間差Ctime Varchar 10 6.4 用戶表 表 6.4 用戶表( a_user)字段含義字段名稱數據類型長度空備注ID ID Int 11 否主鍵,自增用戶名Uus
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同買賣擔保協議書
- 借款合同第三方擔保
- 醫療器械服務協議合同
- 建筑次結構勞務合同
- 房地產融資居間合同書
- 工作接送服務合同范本
- 項目合同終止申請書(2025年版)
- 牙膏批發合同范本
- 規劃與總體專業綠色建筑分析報告與計算書的內容要求
- 財務審計框架合同范本
- 第2課+古代希臘羅馬(教學設計)-【中職專用】《世界歷史》(高教版2023基礎模塊)
- 工會制度牌模板
- 2024年高級統計實務考試真題及答案解析
- 《日語零基礎學習》課件
- 打樣中心管理制度
- 前列腺癌護理個案查房課件
- 美團外賣平臺轉讓協議
- 2023年1月自考11466現代企業人力資源管理概論試題及答案含解析
- 外研版(三年級起點)三年級下冊英語單詞表-
- 幼兒園食譜播報
- 全國導游考試(面試)200問及面試內容(附答案)
評論
0/150
提交評論