




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、哈爾濱工程大學信息安全研究中心項目概要設計報告編號: HEUISRC-RDT-014 版本: 1.1 密級:編寫:呂敬輝 -郝建波 -賀婷日 期:檢查:日 期:審核:日 期:批準:日 期:版本日期作者修 訂 要 點1.0 2007-03-20 楊武文件建立楊武內(nèi)容及文檔結(jié)構(gòu)修訂1.1 2007-03-21 目 錄一、引言 1.1 編寫目的 對網(wǎng)絡數(shù)據(jù)流異常檢測系統(tǒng)的整體開發(fā)進行概要設計,為系統(tǒng)編程提供基礎支持。1.2 項目背景 項目名稱網(wǎng)絡數(shù)據(jù)流異常檢測,該項目主要對網(wǎng)絡數(shù)據(jù)出現(xiàn)大的流量變化,尤其對 syn、fin 、ping、端口和主機不可達事件進行異常檢測并報警。1.3 術(shù)語libPcap
2、 縮寫、術(shù)語解 釋捕包庫函數(shù)MySQL 數(shù)據(jù)庫C+ builder 界面編程ODBC 數(shù)據(jù)庫訪問接口標準adsystem服務器端數(shù)據(jù)庫名Newadsystem本地綁定遠程數(shù)據(jù)庫的系統(tǒng)數(shù)據(jù)源變量1.4 參考資料二、任務概述 2.1 系統(tǒng)描述 后臺:1)本系統(tǒng)能夠?qū)W(wǎng)絡出入口的數(shù)據(jù)包進行分析,統(tǒng)計出 TCP、UDP、ICMP 等協(xié)議以及 TCP-SYN 事件、 TCP-FIN 事件、 ICMP_PING 事件、 ICMP_3.1 事件(主機不可達 事件)、ICMP_3.3 事件(端口不可達事件)的包的數(shù)量。2)通過異常檢測算法,對這些統(tǒng)計數(shù)量進行異常檢測。根據(jù)統(tǒng)計結(jié)果用自回歸模 型對網(wǎng)絡數(shù)據(jù)流量進
3、行預測,當某時刻數(shù)據(jù)流和預測結(jié)果不同時觸發(fā)報警事件。數(shù)據(jù)庫:將統(tǒng)計量、異常信息存入數(shù)據(jù)庫中前臺:1)進行通訊:發(fā)送給后臺登錄、檢測、關(guān)閉的標識;接收后臺數(shù)據(jù),包括登錄標 識、流量包統(tǒng)計數(shù)及異常報警標識。2)對數(shù)據(jù)解析之后,對用戶的不同類型檢測的要求進行實時動態(tài)曲線的描繪;3)對異常事件進行報警 4)對歷史流量及異常信息進行數(shù)據(jù)庫查詢 2.2 開發(fā)與運行環(huán)境 Linux 操作系統(tǒng)平臺 C+ builder 、MySQL 數(shù)據(jù)庫 提供各種端口掃描的機器 2.2.1 開發(fā)環(huán)境的配置類別標準配置最低配置計算機硬件計算機軟件網(wǎng)絡通信Linux 、Windows 操作系統(tǒng)、mysql 數(shù)據(jù)庫管理工具、c+
4、 builder 前臺開發(fā)工具 ODBC 其它2.2.2 運行環(huán)境的配置類別標準配置最低配置計算機硬件計算機軟件 網(wǎng)絡通信Linux 、Windows 操作系統(tǒng)、mysql 數(shù)據(jù)庫管理工具 ODBC 其它2.2.3測試環(huán)境的配置 計算機軟件: Linux 、 Windows 操作系統(tǒng)、 mysql 數(shù)據(jù)庫管理工具網(wǎng) 絡通 信: ODBC2.3 需求概述 用戶登錄:用戶輸入服務器地址、用戶名、密碼訪問,驗證用戶權(quán)限是否正確用戶其他操作:用戶的其他操作需要并行進行。包括四個部分,介紹如下:1、動態(tài)實時曲線描繪:1) 配置信息, 用戶可自己配置流量統(tǒng)計時間間隔,根據(jù)不同的流量類型, 設置曲線圖的數(shù)據(jù)
5、顯示高度,同時可設置曲線圖的顯示寬度(輔助設計);2) 對于各項值, 需要提供默認值, 尤其數(shù)據(jù)顯示高度, 需根據(jù)以往的數(shù)據(jù)流量 值給出一個不同類型協(xié)議或事件的參考值;3) 完成信息的配置,啟動檢測,則在設置的時間間隔內(nèi)開始描點;4) 曲線的描繪:曲線為動態(tài)波動、有規(guī)律進行的。2、異常檢測:當后臺檢測到異常時,立即發(fā)出警報提示。3、歷史流量數(shù)據(jù)的查詢:用戶可根據(jù)協(xié)議 量查詢。4、異常流量信息查詢:用戶可根據(jù)協(xié)議 信息查詢。2.4 條件與限制三、總體設計3.1 系統(tǒng)設計原則 在 linux 環(huán)境下進行系統(tǒng)后臺的編程,用/事件類型及檢測的時間范圍完成歷史流/事件類型及檢測的時間范圍完成異常流量li
6、bcap 庫函數(shù)進行抓包,并對包進行分析,統(tǒng)計出 TCP、UDP、ICMP 等協(xié)議以及 TCP-SYN 事件、 TCP-FIN 事件、 ICMP_PING 事 件、 ICMP_3.1 事件(主機不可達事件) 、ICMP_3.3 事件(端口不可達事件)的包的數(shù) 量。統(tǒng)計完成后將數(shù)據(jù)傳遞給異常檢測算法和數(shù)據(jù)庫,異常檢測算法根據(jù)初始統(tǒng)計的正常數(shù)據(jù)包數(shù)量對以后到達的數(shù)據(jù)包進行預測分析,出現(xiàn)異常時調(diào)用 socket函數(shù)傳遞給前臺一個異常信號, c+ building 來進行異常報警。另外 pcap統(tǒng)計的包的數(shù)量也要傳遞給前臺來建立一個正常流量模型。其中向前臺傳遞正常數(shù)據(jù)和異常信息分別用一個分線程,還有一
7、個分線程用來接收前臺的命令。3.2 系統(tǒng)網(wǎng)絡結(jié)構(gòu)網(wǎng) 外網(wǎng) 外服務器 192.168.101.201系統(tǒng)網(wǎng)絡結(jié)構(gòu)如圖3.1 所示:路由器 192.168.100.1路由器 192.168.101.1用戶交換機交換機用戶用戶用戶用戶用戶圖 3.1 系統(tǒng)網(wǎng)絡結(jié)構(gòu)圖3.3 實現(xiàn)框架與處理流程1、系統(tǒng)總體設計流程如圖 3.2 所示:數(shù)據(jù)包捕獲數(shù)據(jù)流套接字通信 數(shù)據(jù)包的分析分類存儲滑窗算法前臺顯示報警異常檢測存儲異常事件數(shù)據(jù)庫數(shù)據(jù)庫連接圖 3.2 系統(tǒng)總體設計流程圖2、前臺業(yè)務流程如圖 3.3 所示:開始登錄失敗通訊獲取登錄標識成功異常標識啟動主線程用戶并行操作數(shù)據(jù)標識異常報告描繪曲線檢測查看歷史流量查看
8、異常流量關(guān)閉發(fā)送關(guān)閉標識結(jié)束圖 3.3 前臺業(yè)務流程圖3.4 結(jié)構(gòu)模塊設計結(jié)構(gòu)模塊如圖 3.4 所示:數(shù)據(jù)流異常檢測系統(tǒng)前臺 后臺登錄模塊用戶操作模塊多線程模塊數(shù)據(jù)包捕獲異常檢測通訊模塊非查查保通法看看存接曲異字歷異配收線常訊符史常置數(shù)描報判流信信據(jù)繪警斷量息息圖 3.4 系統(tǒng)結(jié)構(gòu)模塊 模塊一覽表模塊名稱標識符模塊功能模塊性能要求登錄模塊Login 與后臺進行連接通訊; 判能夠及時返回斷字符是否合法; 判斷登用 戶 登 錄 信錄,登錄成功,開啟主線息,提供登錄程?;?重 登 錄 信息。用戶操作模塊Configuration 對數(shù)據(jù)庫操作: 保存配置能快速的對數(shù)多線程模塊信息,提供檢測啟動標據(jù)
9、庫 進 行 操識;查看歷史流量信息;作,返回用戶查看異常流量信息。查詢信息TCommunicationThread 接收后臺數(shù)據(jù), 判斷數(shù)據(jù)當用戶進行檢數(shù)據(jù)包捕獲類型,解析數(shù)據(jù),啟動曲測時,應及時線描繪函數(shù)及異常警報的、有規(guī)律的線程。描繪出曲線PCAP 在網(wǎng)絡數(shù)據(jù)流里捕獲數(shù)對 TCP、UDP、據(jù)包并對數(shù)據(jù)包進行統(tǒng)ICMP 等數(shù)據(jù)計,提取出相關(guān)的數(shù)據(jù)信流 量 進 行 統(tǒng)息進行分析并存儲于數(shù)計,檢測出相據(jù)庫中。關(guān)數(shù)據(jù)流量的異常。異常檢測Anomaly detection 檢測異常數(shù)據(jù)流對不符合捕獲數(shù)據(jù)包正常流量的進行檢測并報警通訊communication 進行前后臺的通信將統(tǒng)計得數(shù)據(jù)包數(shù)量直接輸
10、送到前臺進行顯示以及異常檢測的顯示。3.5 功能需求與程序模塊的關(guān)系需求代碼捕包模塊異常檢測模塊通訊登錄模塊用戶操作模塊前臺多線程模塊獲取原始數(shù)據(jù)流異常數(shù)據(jù)檢測存儲數(shù)據(jù)查詢數(shù)據(jù)庫接收數(shù)據(jù)發(fā)送數(shù)據(jù)顯示結(jié)果3.6 尚未解決的問題四、接口設計4.1 外部接口4.2 內(nèi)部接口4.2.1 MySQL 數(shù)據(jù)庫和前臺 1)連接步驟c+ builder 的連接第一步:使用 ODBC數(shù)據(jù)庫訪問接口標準,綁定服務器 adsystem 數(shù)據(jù)庫建立一個數(shù)據(jù)源 Newadsystem;第二步: 使用 Databasesource(一個能和遠端資料庫透過 BDE 進行連結(jié)的元件) ,綁定數(shù)據(jù)源 Newadsystem,可
11、以儲存登入資料庫所需的身分認證資料,包括用戶名密碼,確保以后的數(shù)據(jù)庫操作中,不在需要確認;第三步:使用 Query 數(shù)據(jù)庫存取元件,綁定 Databasesource;第四步:使用 Datasource 傳遞元件,將 Query 取得的值傳遞給顯示元件;第五步:使用 StringGrid 元件,將獲取到的數(shù)據(jù)顯示。2)數(shù)據(jù)庫連接及數(shù)據(jù)存取示意圖如圖 4.1 所示:ODBC數(shù)據(jù) 源用Database提供Query將獲Data傳遞String可直取到sour接獲給顯數(shù)據(jù)戶名source的數(shù)Grid取的元件ce示元源密碼 綁定元件據(jù)暫元件資料件元件存庫服務器地址訪問遠端數(shù)據(jù)庫 adsystem圖 4
12、.1 數(shù)據(jù)庫連接及數(shù)據(jù)存取示意圖4.2.2 MySQL 數(shù)據(jù)庫和后臺Linux 的連接sql 描述符m_sql,再用主要是調(diào)用API 函數(shù),先用mysql_init 初始化一個mysql_real_connect去連接服務器上的mysql,然后用 mysql_query 對數(shù)據(jù)庫進行讀寫操作,其中讀數(shù)據(jù)庫操作還要 mysql_query和 mysql_fetch_row 來讀出和存儲數(shù)據(jù)庫中的值。4.2.3 后臺 Linux 與前臺界面的 socket連接套接字有兩套, 分別為后臺作為 socket服務器端前臺作為 socket客戶端和后臺作為socket客戶端前臺作為 socket服務器端。
13、 也是調(diào)用相關(guān)的API 函數(shù)來實現(xiàn)套接字連接與通信,其中服務器端先用 socket 函數(shù)初始化一個 socket描述符 sock_fd,對 sockaddr_in結(jié)構(gòu)體的成員變量進行賦值,其中sin_family 為 AF_INET ,sin_port =為 4005,地址是本地地址,完了以后用 bzero函數(shù)將結(jié)構(gòu)體其余空間清零,然后用 bind 函數(shù)進行端口與本地地址綁定,用 listen 函數(shù)來監(jiān)聽是否用連接,用連接是用 accept函數(shù)生成一個連接socket描述符 new_fd,用 recv 函數(shù)來接受前臺傳來的數(shù)據(jù)。五、數(shù)據(jù)結(jié)構(gòu)設計5.1 邏輯結(jié)構(gòu)設計1)后臺TCP typedef
14、 struct tcp_node/存儲 TCP 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /TCP 流量大小struct tcp_node *next;/定義指針tcp_node; tcp_node *head,*tail;/TCP 循環(huán)鏈表頭尾指針typedef struct tcpsyn_node/存儲 TCPSYN 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /TCPSYN 流量大小struct tcpsyn_node *next;/定義指針 tcpsyn_node; tcpsyn_node *head,*tail;/TCPSYN 循環(huán)鏈表頭尾指針typedef str
15、uct tcpfin_node/存儲 TCPFIN 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /TCPFIN 流量大小struct tcpfin_node *next;/定義指針 tcpfin_node; tcpfin_node *head,*tail;/TCPFIN 循環(huán)鏈表頭尾指針typedef struct udp_node/存儲 UDP 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /UDP 流量大小 struct udp_node *next; /定義指針 tcpudp_node; udp_node *head,*tail;/UDP 循環(huán)鏈表頭尾指針typedef s
16、truct icmp_node/存儲 ICMP 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /ICMP 流量大小 struct icmp_node *next;/定義指針 icmp_node; icmp_node *head,*tail;/ICMP 循環(huán)鏈表頭尾指針typedef struct icmpping_node/存儲 ICMPPING 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /ICMPPING 流量大小 struct icmpping_node *next;/定義指針 icmpping_node; icmpping_node *head,*tail;/ICMPPI
17、NG 循環(huán)鏈表頭尾指針typedef struct icmp31_node/存儲 ICMP31 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /ICMP31 流量大小struct icmp31_node *next;/定義指針 icmp31_node; Icmp31_node *head,*tail;/ICMP31 循環(huán)鏈表頭尾指針typedef struct icmp33_node/存儲 ICMP33 流量的循環(huán)鏈表,結(jié)構(gòu)體初始化 int value; /ICMP33 流量大小struct icmp33_node *next;/定義指針 icmp33_node; Icmp33_node
18、 *head,*tail;/ICMP33 循環(huán)鏈表頭尾指針2)前臺實現(xiàn)登錄功能,創(chuàng)建的類函數(shù),主要完成用戶登錄及通訊。class TLoginForm : public TForm _published: 系統(tǒng)自定義的控件private: / User declarations public: / User declarations _fastcall TLoginForm(TComponent* Owner); /登錄表單的構(gòu)造函數(shù)AnsiString Judgement(AnsiString EditContent); /非法字符判斷函數(shù); AnsiString GetLLtime ; /
19、保存獲取到的系統(tǒng)時間的變量AnsiString ServiesAddress; /保存服務器地址的變量實現(xiàn)流量檢測,包括異常流量報警,正常流量曲線模型的繪制;實現(xiàn)歷史流量及異常流量的歷史數(shù)據(jù)查詢操作,對數(shù)據(jù)庫進行取操作。class TConfigurationForm : public TForm _published: /聲明系統(tǒng)的控件及方法函數(shù)private: / User declarations public: / User declarations _fastcall TConfigurationForm(TComponent* Owner);/ 配置窗口的構(gòu)造函數(shù)int _fast
20、call connect_database1(AnsiString Ip); /Socket 通訊函數(shù)AnsiString PotocolType; /記錄時間間隔值int wWidth; /坐標寬度變量int WHight; /坐標高度變量void DrawDot (int DotValue,int count); /描繪曲線函數(shù)函數(shù)int TCtime; /保存配置信息時間差int SummitMessage; void CheckHistoryDatabass(); AnsiString HistoryType; /保存配置完成標識符 /歷史流量數(shù)據(jù)庫查詢函數(shù) /所需查詢的歷史流量類型i
21、nt SumCount; /記錄從歷史流量表查詢到的記錄數(shù)int AERecordCount; int sock_fd, numbytes; /記錄從異常流量數(shù)據(jù)庫中獲取到的記錄數(shù) /通訊端口使用的全局變量char recvbuf100; /接收后臺數(shù)據(jù)char sendbuf100; /發(fā)送數(shù)據(jù)char command20; /發(fā)送關(guān)閉值; 主線程類函數(shù),用于保持接收后臺數(shù)據(jù),并且進行數(shù)據(jù)解析,曲線繪制函數(shù)的調(diào)用及異常報警線程的調(diào)用。class TCommunication : public TThread private: protected: public: ; void _fastca
22、ll Execute(void); /線程的執(zhí)行方法函數(shù)/int CommunicationSelect; _fastcall TCommunication(); /線程的構(gòu)造函數(shù)AnsiString _fastcall Connect(); /連接函數(shù)從線程類函數(shù),用于實現(xiàn)異常報警。class TWarningThread : public TThread private: protected: public: ; void _fastcall Execute(void); /報警線程的執(zhí)行方法函數(shù)_fastcall TWarningThread(); /報警線程的構(gòu)造函數(shù)/AnsiStri
23、ng TempMessage; 5.2 物理結(jié)構(gòu)設計 5.3 數(shù)據(jù)結(jié)構(gòu)與程序代碼的關(guān)系結(jié)構(gòu)代碼捕包模塊異常檢測模塊數(shù)據(jù)庫模塊前臺struct ether_headerstruct in_addrstruct arp_headerstruct ip_headerstruct udp_headerstruct tcp_headerstruct icmp_headerstruct Linklistclass TLoginForm class TConfigurationForm class TCommunication class TWarningThread 六、 數(shù)據(jù)庫設計6.1 異常信息表 a
24、_yichang(對異常時間段內(nèi)異常包的信息進行統(tǒng)計)異常的協(xié)議類型, Yevent 表示包出現(xiàn)異常的事件類型,。其中 Yprotocol 表示包出現(xiàn) Ytime 表示統(tǒng)計異常事件發(fā)生的時間, Ynumber 表示異常事件還有此類型事件的個數(shù)。表 6.2 異常信息表( a_yichang)字段含義字段名稱數(shù)據(jù)類型長度空備注ID ID Int 11 否主鍵,自增協(xié)議類型Yprotocol Varchar 10 時間類型Yevent Varchar 10 檢測時間Ytime Datatime 10 異常包個數(shù)Ynumber Int 6.2 流量表 a_liuliang(對包中的 tcp 等協(xié)議流量
25、以及tcp-syn 等事件流量進行統(tǒng)計) 。其中 Ltcp表示單位時間內(nèi)捕獲的 tcp 協(xié)議的包的數(shù)量, Ludp 表示單位時間內(nèi)捕獲的 udp 協(xié)議的包的數(shù)量, Licmp 表示單位時間內(nèi)捕獲的 icmp 協(xié)議的包的數(shù)量, Lsyn 表示單位時間內(nèi)捕獲的含有 syn 事件的包的數(shù)量, Lfin 表示單位時間內(nèi)捕獲的含有 fin 事件的包的數(shù)量,Lping 表示單位時間內(nèi)捕獲的含有 捕獲的含有主機不可達事件的包的數(shù)量,達事件的包的數(shù)量。ping 事件的包的數(shù)量, Lzhu 表示單位時間內(nèi) Lduan 表示單位時間內(nèi)捕獲的含有端口不可表 6.1 流量表( a_liuliang)字段含義字段名稱數(shù)
26、據(jù)類型長度空備注ID ID Int 11 否主鍵,自增Ltcp Int 10 Tcp 包數(shù)量Udp 包數(shù)量Ludp Int 10 Icmp 包數(shù)量Licmp Int 10 Syn 包數(shù)量Lsyn Int 10 Fin 包數(shù)量Lfin Int 10 Lping Int 10 Ping 包數(shù)量Lzhu Int 10 Icmp_3.1 包數(shù)量Lduan Int 10 Icmp_3.2 包數(shù)量Ltime Datatime 檢測時間6.3 配置信息表a_configuration (前臺給后臺配置時間窗口大小)大小。Ctime 表示前臺給后臺傳的的捕包的窗口表 6.2 配置信息表( a_configuration)字段含義字段名稱數(shù)據(jù)類型長度空備注ID ID Int 11 否主鍵,自增統(tǒng)計流量時間差Ctime Varchar 10 6.4 用戶表 表 6.4 用戶表( a_user)字段含義字段名稱數(shù)據(jù)類型長度空備注ID ID Int 11 否主鍵,自增用戶名Uus
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲企業(yè)員工培訓與派遣合同
- 車禍保險理賠與第三方賠償合同
- 兒童癲癇護理要點
- 中藥中毒護理要點解析
- 護理模擬面試要點解析與實戰(zhàn)準備
- 創(chuàng)口止血護理技術(shù)要點
- 高中生物必修二知識點總結(jié)
- 高考語文復習:文言文閱讀之斷句主觀題填涂突破
- 《溫室氣體 產(chǎn)品碳足跡量化方法與要求 玻璃纖維紗產(chǎn)品》標準文本
- 肝炎治療護理常規(guī)
- 艾里遜8000系列變速箱培訓:《動力傳遞分析》
- 商務英語寫作實踐智慧樹知到答案章節(jié)測試2023年中北大學
- 社會治安動態(tài)視頻監(jiān)控系統(tǒng)工程建設方案
- 脫硫塔玻璃鱗片膠泥襯里施工組織設計
- XB/T 505-2011汽油車排氣凈化催化劑載體
- GB/T 3672.2-2002橡膠制品的公差第2部分:幾何公差
- GB/T 27744-2021異步起動永磁同步電動機技術(shù)條件及能效分級(機座號80~355)
- GB 8076-2008混凝土外加劑
- 寶盾轉(zhuǎn)門故障代碼
- 【課件】草原上的小木屋
- 醫(yī)務人員違規(guī)行為與年度考核掛鉤制度
評論
0/150
提交評論