合工大工程項(xiàng)目實(shí)訓(xùn)報(bào)告_第1頁
合工大工程項(xiàng)目實(shí)訓(xùn)報(bào)告_第2頁
合工大工程項(xiàng)目實(shí)訓(xùn)報(bào)告_第3頁
合工大工程項(xiàng)目實(shí)訓(xùn)報(bào)告_第4頁
合工大工程項(xiàng)目實(shí)訓(xùn)報(bào)告_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

工程項(xiàng)目實(shí)訓(xùn)報(bào)告(2015屆)學(xué)院名稱計(jì)算機(jī)與信息學(xué)院專業(yè)(班級(jí))信息安全11-1姓名(學(xué)號(hào))王佳淼20112914指導(dǎo)教師實(shí)訓(xùn)地點(diǎn)起止時(shí)間程克勤2014.12-2015.1實(shí)習(xí)計(jì)劃及完成情況1、2014.12.1-2014.12.7閱讀入侵攻擊和異常檢測(cè)的相關(guān)論文10篇(完成)2、2014.12.8-2014.12.14查看NSFOCUS網(wǎng)站即NIDS網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的日志文件和抓到的異常數(shù)據(jù)包,導(dǎo)出一定量的數(shù)據(jù)包。(完成)網(wǎng)址為:81/user/requireLogin3、2014.12.15-2014.12.21選擇入侵攻擊和異常檢測(cè)的相關(guān)論文中的方法,對(duì)導(dǎo)出的數(shù)據(jù)包信息進(jìn)行整理分析。(完成)4、2014.12.22-2014.12.28整理對(duì)導(dǎo)出數(shù)據(jù)包的分析結(jié)果,在分析結(jié)果上建立圖表。完成實(shí)驗(yàn)報(bào)告的編寫。(完成)實(shí)習(xí)報(bào)告見附頁學(xué)生簽名:年月日單位指導(dǎo)教師考核意見校內(nèi)指導(dǎo)教師意見成績?cè)u(píng)定(百分制或五級(jí)制):(60分以上為考核通過)單位指導(dǎo)教師簽名:單位簽章:年月日院系意見領(lǐng)導(dǎo)簽名(單位簽章):年月日附頁:合肥工業(yè)大學(xué)計(jì)算機(jī)與信息學(xué)院課程設(shè)計(jì)報(bào)告課程:創(chuàng)新工程實(shí)訓(xùn)專業(yè)班級(jí):信息安全11-1學(xué)號(hào):20112914姓名:王佳淼2014年12月摘要信息技術(shù)的普及給生活帶來方便的同時(shí)也帶來了漏洞產(chǎn)生的可能信息安全漏洞是信息系統(tǒng)在設(shè)計(jì)實(shí)現(xiàn)配置運(yùn)行過程中有意無意產(chǎn)生的缺陷惡意主體利用這些缺陷會(huì)對(duì)信息系統(tǒng)的安全造成損害影響信息系統(tǒng)及信息的安全屬性當(dāng)前大量的網(wǎng)絡(luò)失泄密案件和信息安全問題均與漏洞的存在。計(jì)算機(jī)聯(lián)網(wǎng)技術(shù)的發(fā)展改變了以單機(jī)為主的計(jì)算模式。但是,網(wǎng)絡(luò)入侵的風(fēng)險(xiǎn)性和機(jī)會(huì)也相應(yīng)地急劇增多,設(shè)計(jì)安全措施來防范未經(jīng)授權(quán)訪問系統(tǒng)的資源和數(shù)據(jù)?是當(dāng)前網(wǎng)絡(luò)安全領(lǐng)域的一個(gè)十分重要而迫切的問題,目前,要想完全避免安全事件的發(fā)生并不太現(xiàn)實(shí)>網(wǎng)絡(luò)安全人員所能做到的只能是盡力發(fā)現(xiàn)和察覺入侵及入侵企圖,以便采取有效的措施來堵塞漏洞和修復(fù)系統(tǒng),這樣的研究稱為入侵檢測(cè)。為此目的所研制的系統(tǒng)就稱為入侵檢測(cè)系統(tǒng),本實(shí)驗(yàn)將論述網(wǎng)絡(luò)安全存在的漏洞和潛在的威脅。一個(gè)安全系統(tǒng)至少應(yīng)該滿足用戶系統(tǒng)的保密性U完整性及可用性要求。但是,隨著網(wǎng)絡(luò)連接的迅速擴(kuò)展,特別是互聯(lián)網(wǎng)大范圍的開放以及金融領(lǐng)域網(wǎng)絡(luò)的接入。越來越多的系統(tǒng)遭到入侵攻擊的威脅。這些威脅大多是通過挖掘操作系統(tǒng)和應(yīng)用服務(wù)程序的弱點(diǎn)或者缺陷來實(shí)現(xiàn)的。1988年的蠕蟲事件就是一個(gè)很好的實(shí)例。TOC\o"1-3"\h\u5294一、實(shí)驗(yàn)?zāi)康?-1-320821.引言 -1-90392.研究現(xiàn)狀 -1-657二、實(shí)驗(yàn)方法 -1-241411.方法介紹 -1-222712.方法原理 -2-8168三、實(shí)驗(yàn)結(jié)果及分析 -2-266591.結(jié)果圖表 -3-129942.結(jié)果分析 -4-11241.結(jié)果圖表 -4-267982.結(jié)果分析 -5-100291.結(jié)果圖表 -5-12262.結(jié)果分析 -5-202461.結(jié)果圖表 -5-316022.結(jié)果分析 -7-303521.結(jié)果圖表 -7-242782.結(jié)果分析 -9-190991.結(jié)果圖表 -9-177182.結(jié)果分析 -10-226771.結(jié)果圖表 -10-77022.結(jié)果分析 -11-29481四、實(shí)驗(yàn)感想 -11-21985五、附錄:java源代碼 -12-204361.從excel中導(dǎo)入 -12-255582.數(shù)據(jù)結(jié)構(gòu)模型初始化 -13-106713.余弦相似度計(jì)算 -15-317994.統(tǒng)計(jì)模塊 -16-233811.類別統(tǒng)計(jì) -16-125572.時(shí)間計(jì)算 -18-125703.ip統(tǒng)計(jì)及ip歸屬地查詢 -18-240714.危險(xiǎn)程度統(tǒng)計(jì) -23-322465.端口統(tǒng)計(jì) -24-實(shí)驗(yàn)?zāi)康囊酝ìF(xiàn)在網(wǎng)絡(luò)攻擊手段不斷變化,導(dǎo)致網(wǎng)絡(luò)入侵檢測(cè)與防御機(jī)制需不斷更新。由于正常流量與入侵流量常常容易混淆,致使入侵檢測(cè)系統(tǒng)常發(fā)出大量的虛警,因此提升網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的報(bào)警正確率是網(wǎng)絡(luò)安全管理的一個(gè)非常重要的課題。研究現(xiàn)狀漏洞分類是深入進(jìn)行漏洞分析的前提,漏洞分類的目的是構(gòu)建一種層次化的分類形式使得能充分地了解各種漏洞信息增強(qiáng)對(duì)漏洞本質(zhì)的理解更好地消除漏洞和發(fā)現(xiàn)未知漏洞。網(wǎng)絡(luò)入侵的檢測(cè)方法可以分為兩大類,即誤用檢測(cè)和異常檢測(cè)誤用檢測(cè)是在假設(shè)底層系統(tǒng)受到攻擊的情況下,在觀察網(wǎng)絡(luò)流量的基礎(chǔ)上,明確定義惡意行為的攻擊模式在異常行為檢測(cè)中,定義正常行為模式或者是邊緣行為,如果任何異常行為的出現(xiàn)在被描述的行為范圍之外,就可以認(rèn)為安全系統(tǒng)受到了攻擊這種建立入侵檢測(cè)的方法被稱為異常檢測(cè)方法。實(shí)驗(yàn)方法方法介紹本實(shí)驗(yàn)包括了一般的統(tǒng)計(jì)方法、基于余弦相似度的聚類、IP歸屬地查詢等方法來進(jìn)行漏洞分析。2.方法原理基于余弦相似度的聚類研究基于無監(jiān)督式聚類的入侵檢測(cè)算法,提出一種無監(jiān)督式方法來檢測(cè)和鑒定未知的異常行為該方法不依賴于具有標(biāo)簽的數(shù)據(jù)流這種無監(jiān)督的檢測(cè)采用的是健壯的數(shù)據(jù)聚類技術(shù),并結(jié)合了證據(jù)累積的子空間聚類和交互式聚類結(jié)果協(xié)同的方法來探測(cè)性地識(shí)別網(wǎng)絡(luò)數(shù)據(jù)流量的異常。IP地址信息查詢(WHOIS)服務(wù)的原理是,RFC812定義了一個(gè)非常簡單的Internet信息查詢協(xié)議——WHOIS協(xié)議。其基本內(nèi)容是,先向服務(wù)器的TCP端口43建立一個(gè)連接,發(fā)送查詢關(guān)鍵字并加上回車換行,然后接收服務(wù)器的查詢結(jié)果。世界上各級(jí)Internet管理機(jī)構(gòu)秉承公開、公正、共享的原則,設(shè)立了可以查知IP

地址和域名所有者登記資料的WHOIS服務(wù)器,以便所有Internet的使用者排除故障、打擊網(wǎng)上非法活動(dòng)。全世界國際區(qū)域性的IP

地址管理機(jī)構(gòu)有四個(gè):ARIN、RIPE、APNIC、LACNIC,他們負(fù)責(zé)的IP

地址的地理區(qū)域如下圖所示。四個(gè)國際區(qū)域性IP

地址管理機(jī)構(gòu)所負(fù)責(zé)的區(qū)域(此圖摘自《RIPE2002年度報(bào)告》)重要的Internet管理機(jī)構(gòu)和常用的WHOIS服務(wù)器機(jī)構(gòu)縮寫WHOIS服務(wù)器地址機(jī)構(gòu)全名及

地點(diǎn)提供查詢內(nèi)容CERNIC中國教育與科研計(jì)算機(jī)網(wǎng)網(wǎng)絡(luò)信息中心(清華大學(xué)·中國北京)中國教育網(wǎng)內(nèi)的IP

地址和.域名信息CNNIC中國互聯(lián)網(wǎng)絡(luò)信息中心(中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心·中國北京).cn域名(除.)信息INTERNIC互聯(lián)網(wǎng)絡(luò)信息中心(美國洛杉磯市MarinadelRey鎮(zhèn)).com,.net,.org,.biz,.info,.name域名的注冊(cè)信息(只給出注冊(cè)代理公司)ARIN美國Internet號(hào)碼注冊(cè)中心(美國弗吉尼亞州Chantilly市)全世界早期網(wǎng)絡(luò)及現(xiàn)在的美國、加拿大、撒哈拉沙漠以南非洲的IP地址信息APNIC亞洲與太平洋地區(qū)網(wǎng)絡(luò)信息中心(澳大利亞昆士蘭州密爾頓鎮(zhèn))東亞(包括中國大陸和臺(tái)灣)、南亞、大洋洲IP地址注信息RIPE歐州IP

地址注冊(cè)中心(荷蘭阿姆斯特丹)歐洲、北非、西亞地區(qū)的IP

地址信息TWNIC臺(tái)灣互聯(lián)網(wǎng)絡(luò)信息中心(中國臺(tái)灣臺(tái)北).tw域名和部分臺(tái)灣島內(nèi)IP

地址信息JPNICwhois.nic.ad.jp日本互聯(lián)網(wǎng)絡(luò)信息中心(日本東京).jp域名和日本境內(nèi)的IP

地址信息KRNIC韓國互聯(lián)網(wǎng)絡(luò)信息中心(韓國漢城).kr域名和韓國境內(nèi)的IP

地址信息LACNIC拉丁美洲及加勒比互聯(lián)網(wǎng)絡(luò)信息中心(巴西圣保羅)拉丁美洲及加勒比海諸島IP

地址信息本機(jī)上的自動(dòng)WHOIS服務(wù),是按照下圖所示的流程,依次查詢?nèi)舾蓚€(gè)WHOIS服務(wù)器之后,得到某個(gè)IP

地址的WHOIS信息。實(shí)驗(yàn)結(jié)果及分析聚類的結(jié)果結(jié)果圖表HTTP攻擊20869http協(xié)議cookie字段超長緩沖區(qū)溢出攻擊20833http協(xié)議認(rèn)證字段超長溢出攻擊40813http協(xié)議put命令上傳操作40432http服務(wù)基本登錄認(rèn)證20381http服務(wù)暴力猜測(cè)口令攻擊web攻擊29001web服務(wù)遠(yuǎn)程sql注入攻擊可疑行為40402web服務(wù)訪問etc/passwd文件29002web服務(wù)遠(yuǎn)程跨站腳本執(zhí)行攻擊30364web服務(wù)htaccess文件訪問10056syn-flood半開tcp連接淹沒拒絕服務(wù)攻擊30061dns服務(wù)服務(wù)器版版本號(hào)請(qǐng)求操作30061dns服務(wù)獲取服務(wù)器版版本號(hào)請(qǐng)求操作ftp攻擊40044ftp服務(wù)anonymous匿名用戶認(rèn)證50031ftp服務(wù)普通用戶認(rèn)證成功50045ftp服務(wù)用戶弱口令認(rèn)證數(shù)據(jù)庫攻擊21369mysql用戶驗(yàn)證暴力猜測(cè)50447mysql可疑數(shù)據(jù)庫文件下載遠(yuǎn)程操控50083windows系統(tǒng)遠(yuǎn)程管理管理工具終端服務(wù)用戶登錄20800microsoftwindows動(dòng)畫光標(biāo)畸形ani頭結(jié)構(gòu)遠(yuǎn)程棧溢出攻擊20132microsoftiis4.0/5.0unicode解碼漏洞攻擊50458遠(yuǎn)程控制工具vnc軟件連接服務(wù)漏洞攻擊30041sunrpc服務(wù)信息dump查詢40301snmp服務(wù)試圖使用默認(rèn)public口令訪問22796apachestruts遠(yuǎn)程代碼執(zhí)行漏洞cve-2013-225140123smtp服務(wù)郵件轉(zhuǎn)發(fā)失敗其他40826安全工具360系列軟件更新50152socks代理訪問操作41017routeradvertisement檢測(cè)20867novellmessengerserver2.0accept-languageoverflow結(jié)果分析聚類結(jié)果將全部29種攻擊包分成了HTTP攻擊、web攻擊、ftp攻擊、數(shù)據(jù)庫攻擊、遠(yuǎn)程操控、服務(wù)漏洞攻擊、其他7種類型的攻擊。聚類結(jié)果是基于余弦相似度的,可以看到,擁有相同的分詞多時(shí)就會(huì)被分到同一類。類別攻擊統(tǒng)計(jì)1.結(jié)果圖表2.結(jié)果分析由圖表可以得出遠(yuǎn)程操控類的攻擊較多,其次是基于某些服務(wù)漏洞的攻擊。值得注意的是,屬于這兩種類型的攻擊并不多,遠(yuǎn)程操控類的攻擊只有四種,而屬于web攻擊的攻擊有7種,但其總的攻擊次數(shù)并不多。數(shù)據(jù)庫攻擊最少,但屬于數(shù)據(jù)庫攻擊類型的攻擊都是對(duì)MySQL數(shù)據(jù)庫進(jìn)行的攻擊,我們可以猜測(cè)被攻擊的目標(biāo)機(jī)是使用的MySQL數(shù)據(jù)庫或者是裝有此數(shù)據(jù)庫。按照小時(shí)統(tǒng)計(jì)攻擊次數(shù)1.結(jié)果圖表2.結(jié)果分析由圖表可以得出,出去服務(wù)漏洞攻擊外,其余6中類型的攻擊攻擊次數(shù)比較平均。服務(wù)漏洞攻擊分為[40301]SNMP服務(wù)試圖使用默認(rèn)public口令訪問、[40301]SNMP服務(wù)試圖使用默認(rèn)public口令訪問、[22796]ApacheStruts遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2013-2251)、[30041]SunRPC服務(wù)信息DUMP查詢這四種攻擊。且其攻擊基本集中在中午12點(diǎn)至下午4點(diǎn)左右。在這個(gè)時(shí)間段,應(yīng)該加強(qiáng)對(duì)這四種攻擊的防范。IP統(tǒng)計(jì)1.結(jié)果圖表目的IP被攻擊次數(shù)210.45.241.*3217ff02::113942.62.48.*116101.4.60.*70106.10.136.*66210.45.242.*25202.123.107.*1060.28.215.*8123.58.180.*7121.251.19.*684.246.112.*4211.151.213.*3222.195.10.*3121.194.0.*2168.63.218.*2218.60.98.*2223.202.68.*2119.75.219.*1206.190.36.*1210.45.240.*1222.23.55.*169.192.2.*1fe80::a86b:f8d0:e713:b0571源IP攻擊次數(shù)184.105.139.*336124.232.142.*333210.45.241.*297fe80::4255:39ff:fe05:39c1140124.228.83.*8258.221.47.*73134.147.203.*595.196.208.*5293.180.5.*5291.207.5.*4910.16.31.*45122.55.83.*43172.16.27.*40199.203.165.*3610.188.1.*35114.113.55.*35185.41.154.*33117.21.176.*3166.249.65.*30222.195.10.*28218.63.105.*26218.64.118.*26222.88.153.*2544.144.15.*22218.197.119.*21攻擊匹配次數(shù)184.105.139.*攻擊210.45.241.*336124.232.142.*攻擊210.45.241.*333fe80::4255:39ff:fe05:39c1攻擊ff02::1139210.45.241.*攻擊42.62.48.*116124.228.83.*攻擊210.45.241.*8258.221.47.*攻擊210.45.241.*73210.45.241.*攻擊101.4.60.*70210.45.241.*攻擊106.10.136.*66134.147.203.*攻擊210.45.241.*595.196.208.*攻擊210.45.241.*522.結(jié)果分析根據(jù)表格數(shù)據(jù)可以得出184.105.139.*、124.232.142.*、210.45.241.*這三個(gè)IP段經(jīng)常對(duì)本網(wǎng)絡(luò)發(fā)起攻擊。而本網(wǎng)段210.45.241.*IP段被攻擊次數(shù)最多。另外根據(jù)IP攻擊的匹配情況可以知道,某些IP,例如184.105.139.*,IP段184.105.139.*只攻擊210.45.241.*。所以在210.45.241.*IP段可以重點(diǎn)對(duì)184.105.139.*IP段進(jìn)行防范。IP區(qū)域統(tǒng)計(jì)1.結(jié)果圖表國內(nèi)與海外次數(shù)中國296美國53臺(tái)灣臺(tái)灣省33未分配或者內(nèi)網(wǎng)IP26法國13烏克蘭6印度尼西亞6德國6荷蘭5韓國5俄羅斯4土耳其4加拿大3越南3南非2印度2希臘2摩爾多瓦2羅馬尼亞2英國2香港香港特別行政區(qū)1以色列1伊朗1冰島1哥倫比亞1地區(qū)1墨西哥1委內(nèi)瑞拉1孟加拉國1巴西1斯洛伐克1新加坡1泰國1瑞典1立陶宛1菲律賓1馬來西亞12.結(jié)果分析由表格和圓餅圖可以得出不同IP段屬于的區(qū)域,在根據(jù)國內(nèi)、海外、港臺(tái)這樣劃分得到圓餅圖。發(fā)現(xiàn)海外的IP地址占了三分之一的比重,所以假冒IP地址的可能性很大。攻擊等級(jí)統(tǒng)計(jì)1.結(jié)果圖表高危編號(hào)高危類型次數(shù)[20132]MicrosoftIIS4.0/5.0Unicode解碼漏洞攻擊7[20833]HTTP協(xié)議認(rèn)證字段超長溢出攻擊75[20867]NovellMessengerServer2.0Accept-LanguageOverflow1[20869]HTTP協(xié)議Cookie字段超長緩沖區(qū)溢出攻擊37[22796]ApacheStruts遠(yuǎn)程代碼執(zhí)行漏洞(CVE-2013-2251)1[29001]Web服務(wù)遠(yuǎn)程SQL注入攻擊可疑行為2112.結(jié)果分析在各種高危、中危、低危三種級(jí)別的攻擊中,低危的攻擊最多。雖然低危攻擊的數(shù)目多,但是我們對(duì)高危攻擊進(jìn)行分析,原因在于高危攻擊的數(shù)目雖然較低危攻擊數(shù)目少,但其危險(xiǎn)性較高,對(duì)網(wǎng)絡(luò)安全危害較大。高危攻擊中,Web服務(wù)遠(yuǎn)程SQL注入攻擊可疑行為攻擊占了較大比重。我覺得原因在于,SQL注入是一種較其他方式而言更加簡單初級(jí)的攻擊方式。SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請(qǐng)求的查詢字符串。所以只要網(wǎng)頁含有表單,就可以被SQL注入攻擊。端口情況統(tǒng)計(jì)1.結(jié)果圖表目的端口被攻擊次數(shù)338996216157380564533692134731283378080206014044377590152330636999913108892500702688121111144125159021590315944512.結(jié)果分析由表格和圖片可以得出,3389端口被攻擊次數(shù)最多。3389端口是Windows2000(2003)Server遠(yuǎn)程桌面的服務(wù)端口,可以通過這個(gè)端口,用"遠(yuǎn)程桌面"等連接工具來連接到遠(yuǎn)程的服務(wù)器。在數(shù)據(jù)包中,進(jìn)行遠(yuǎn)程控制攻擊的數(shù)目較多,所以3389端口被攻擊次數(shù)多是可以理解的。由于連接上了,輸入系統(tǒng)管理員的用戶名和密碼后,將變得可以像操作本機(jī)一樣操作遠(yuǎn)程的電腦,因此遠(yuǎn)程服務(wù)器一般都將這個(gè)端口修改數(shù)值或者關(guān)閉。這樣就可以提高系統(tǒng)的安全性能。實(shí)驗(yàn)感想經(jīng)過本次實(shí)驗(yàn),對(duì)長達(dá)4天,一共3000多個(gè)數(shù)據(jù)包進(jìn)行分析。利用基于余弦相似度的聚類方法,將攻擊分為7種類型的攻擊。再統(tǒng)計(jì)每天0-24的攻擊情況,可以得到很多有用的信息。完全無監(jiān)督式異常檢測(cè)算法擁有很多的優(yōu)點(diǎn),它使用專門的無標(biāo)簽的數(shù)據(jù)來檢測(cè)和刻畫網(wǎng)絡(luò)異常行為,而并不需要任何種類的特征特殊模式的假定或者數(shù)據(jù)的正態(tài)分布這些可以允許檢測(cè)先前沒有見過的異常行為,即使是不使用統(tǒng)計(jì)學(xué)習(xí)或者人工分析決策的制定,也可以做到。例如類型5,遠(yuǎn)程操控類型的攻擊就是通過聚類而來,正是因?yàn)橛羞@個(gè)聚類結(jié)果,我們才發(fā)現(xiàn)遠(yuǎn)程操控類型的攻擊的發(fā)生時(shí)間是有規(guī)律性的,這樣可以幫助我們進(jìn)行這類攻擊的防范。另外對(duì)其余數(shù)據(jù)信息的統(tǒng)計(jì),也能獲取到本機(jī)漏洞所在,例如在對(duì)端口號(hào)進(jìn)行統(tǒng)計(jì)時(shí),發(fā)現(xiàn)3389號(hào)端口被攻擊次數(shù)最多。若被攻擊主機(jī)不是服務(wù)器,可以考慮關(guān)閉3389號(hào)端口,及關(guān)閉遠(yuǎn)程控制的服務(wù),以提高系統(tǒng)安全性。若被攻擊主機(jī)是服務(wù)器,則可以考慮修改端口數(shù)值,以避開攻擊。在高危級(jí)別的攻擊中,SQL注入攻擊的數(shù)目較多,而且,從獲取的數(shù)據(jù)包可以得到使用的數(shù)據(jù)庫應(yīng)該是MySQL數(shù)據(jù)庫。所以應(yīng)該加強(qiáng)這方面的防范。想要獲得最好的安全狀態(tài),目前最好的解決辦法就是對(duì)用戶提交或者可能改變的數(shù)據(jù)進(jìn)行簡單分類,分別應(yīng)用正則表達(dá)式來對(duì)用戶提供的輸入數(shù)據(jù)進(jìn)行嚴(yán)格的檢測(cè)和驗(yàn)證。在對(duì)IP區(qū)域進(jìn)行檢測(cè)時(shí)候,發(fā)現(xiàn)海外地址較多。IP信息的查詢是通過淘寶API接口進(jìn)行的,阿里巴巴出口通的IP并沒有相應(yīng)監(jiān)管機(jī)構(gòu)核實(shí),所以很有可能是假冒的IP地址,即設(shè)置了代理服務(wù)器。附錄:java源代碼從excel中導(dǎo)入packageother;importjava.io.File;importjxl.Cell;importjxl.Sheet;importjxl.Workbook;publicclassExcelOperating{ publicstaticString[]readexcel(Stringfname){ Stringstring[]=newString[3688]; try{Workbookbook=Workbook.getWorkbook(newFile(fname));Sheetsheet=book.getSheet(0);for(inti=0;i<sheet.getRows();i++){ string[i]="";for(intj=0;j<sheet.getColumns();j++){Cellcell=sheet.getCell(j,i+1);if(j==0)string[i]=cell.getContents()+"";elsestring[i]+=cell.getContents()+"";}//System.out.println();}book.close();}catch(Exceptione){System.out.println(e);} System.out.println(string.length); System.out.println(fname+"readcompelete"); returnstring; }}數(shù)據(jù)結(jié)構(gòu)模型初始化packagemodel;importjava.io.BufferedReader;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.HashMap;importjava.util.Map;importcalculate.CategoryStatictics;importcalculate.IPcalculate;importcalculate.LevelCalculate;importcalculate.PortCalculate;importother.ExcelOperating;publicclassADmodel{ publicStringlevel; publicStringtime; publicStringcontent; publicStringsIP; publicStringdIP; publicStringsport; publicStringdport; publicStringcontinuoustimes; publicStringcategory; publicstaticvoidmain(Stringarg[])throwsIOException{ ArrayList<ADmodel>models=init("dataset.xls","category.txt"); PortCalculate.ComS(models); /* FileWriterfileWriter=newFileWriter("dataset.txt"); for(ADmodelaDmodel:models){ fileWriter.write(aDmodel.content); fileWriter.write("\r\n"); } fileWriter.close();*/ } publicstaticArrayList<ADmodel>init(Stringfname,Stringcafile){ String[]aStrings=ExcelOperating.readexcel(fname); ArrayList<ADmodel>models=newArrayList<ADmodel>(); //SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH"); Map<String,String>map=newHashMap<String,String>(); try{ FileReaderfileReader=newFileReader(cafile); BufferedReaderbufferedReader=newBufferedReader(fileReader); StringtempString; while((tempString=bufferedReader.readLine())!=null){ StringaString[]=tempString.split(""); map.put(aString[0],aString[1]); } for(inti=0;i<aStrings.length;i++){ ADmodelad=newADmodel(); String[]b=aStrings[i].split(""); ad.level=b[0]; ad.time=b[1].substring(0,13); ad.content=b[2]; ad.sIP=b[3]; ad.sport=b[4]; ad.dIP=b[6]; ad.dport=b[7]; ad.continuoustimes=b[11]; ad.category=map.get(b[2].substring(1,6)); models.add(ad); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } System.err.println("initcomplete"); returnmodels; }}余弦相似度計(jì)算packageother;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;publicclassSimi{ //余弦值計(jì)算未添加權(quán)重 publicstaticdoublegetSimilarDegree(Stringstr1,Stringstr2){ //創(chuàng)建向量空間模型,使用map實(shí)現(xiàn),主鍵為詞項(xiàng),值為長度為2的數(shù)組,存放著對(duì)應(yīng)詞項(xiàng)在字符串中的出現(xiàn)次數(shù) Map<String,int[]>vectorSpace=newHashMap<String,int[]>(); int[]itemCountArray=null;//為了避免頻繁產(chǎn)生局部變量,所以將itemCountArray聲明在此 //以空格為分隔符,分解字符串 StringstrArray[]=str1.split(""); for(inti=0;i<strArray.length;++i){ if(vectorSpace.containsKey(strArray[i])) ++(vectorSpace.get(strArray[i])[0]); else{ itemCountArray=newint[2]; itemCountArray[0]=1; itemCountArray[1]=0; vectorSpace.put(strArray[i],itemCountArray); } } strArray=str2.split(""); for(inti=0;i<strArray.length;++i){ if(vectorSpace.containsKey(strArray[i])) ++(vectorSpace.get(strArray[i])[1]); else{ itemCountArray=newint[2]; itemCountArray[0]=0; itemCountArray[1]=1; vectorSpace.put(strArray[i],itemCountArray); } } //計(jì)算相似度 doublevector1Modulo=0.00;//向量1的模 doublevector2Modulo=0.00;//向量2的模 doublevectorProduct=0.00;//向量積 Iteratoriter=vectorSpace.entrySet().iterator(); while(iter.hasNext()){ Map.Entryentry=(Map.Entry)iter.next(); itemCountArray=(int[])entry.getValue(); vector1Modulo+=itemCountArray[0]*itemCountArray[0]; vector2Modulo+=itemCountArray[1]*itemCountArray[1]; vectorProduct+=itemCountArray[0]*itemCountArray[1]; } vector1Modulo=Math.sqrt(vector1Modulo); vector2Modulo=Math.sqrt(vector2Modulo); //返回相似度 return(vectorProduct/(vector1Modulo*vector2Modulo)); }}4.統(tǒng)計(jì)模塊1.類別統(tǒng)計(jì)packagecalculate;importjava.util.ArrayList;importjava.util.Date;importjava.util.Map;importjava.util.TreeMap;importjava.util.Map.Entry;importmodel.ADmodel;importmodel.InitTimeMap;publicclassCategoryStatictics{ publicstaticvoidComS(ArrayList<ADmodel>models){ Map<String,Integer>map=newTreeMap<String,Integer>(); map=InitTimeMap.init(map); for(ADmodelaDmodel:models){ if(!map.containsKey(aDmodel.time))map.put(aDmodel.time,1); elsemap.put(aDmodel.time,map.get(aDmodel.time)+1); } for(Entry<String,Integer>entry:map.entrySet()){ //System.out.println(entry.getKey()); System.out.println(entry.getValue()); } } publicstaticvoidCategoryS(ArrayList<ADmodel>models,Stringcategory){ Map<String,Integer>map=newTreeMap<String,Integer>(); map=InitTimeMap.init(map); for(ADmodelaDmodel:models){ if(aDmodel.category.equals(category)){ if(!map.containsKey(aDmodel.time))map.put(aDmodel.time,1); elsemap.put(aDmodel.time,map.get(aDmodel.time)+1); } } for(Entry<String,Integer>entry:map.entrySet()){ //System.out.println(entry.getKey()); System.out.println(entry.getValue()); } } publicstaticvoidCategoryShours(ArrayList<ADmodel>models,Stringcategory){ Map<String,Integer>map=newTreeMap<String,Integer>(); map=InitTimeMap.inithours(map); for(ADmodelaDmodel:models){ if(aDmodel.category.equals(category)){ StringtimeString=aDmodel.time.substring(11,13); if(!map.containsKey(timeString))map.put(timeString,1); elsemap.put(timeString,map.get(timeString)+1); } } for(Entry<String,Integer>entry:map.entrySet()){ //System.out.println(entry.getKey()); System.out.println(entry.getValue()); } }}時(shí)間計(jì)算packageother;importjava.util.Calendar;importjava.util.Date;publicclassDateOperate{ publicstaticDatetimeplus(Datea){ Calendarcalendar=Calendar.getInstance(); calendar.setTime(a); //calendar.add(Calendar.HOUR,1);//對(duì)小時(shí)數(shù)進(jìn)行+1操作 calendar.add(Calendar.HOUR_OF_DAY,1); a=calendar.getTime(); returna; }}ip統(tǒng)計(jì)及ip歸屬地查詢packagecalculate;importjava.io.BufferedReader;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.io.InputStreamReader;import.URL;import.URLConnection;importjava.util.ArrayList;importjava.util.Map;importjava.util.TreeMap;importjava.util.Map.Entry;importjavax.xml.transform.Templates;importmodel.ADmodel;importmodel.InitTimeMap;publicclassIPcalculate{ publicstaticvoidcalculate(ArrayList<ADmodel>models){ Map<String,Integer>map=newTreeMap<String,Integer>(); String[]aStrings=null; StringsipString=null; for(ADmodelaDmodel:models){ if(!aDmodel.sIP.subSequence(0,1).equals("f")){ aStrings=aDmodel.sIP.split("\\."); sipString=aStrings[0]+"."+aStrings[1]+"."+aStrings[2] +".*"+"攻擊"; }else{ sipString=aDmodel.sIP+"攻擊"; } if(!aDmodel.dIP.subSequence(0,1).equals("f")){ aStrings=aDmodel.dIP.split("\\."); sipString+=aStrings[0]+"."+aStrings[1]+"." +aStrings[2]+".*"; }else{ sipString+=aDmodel.dIP; } if(!map.containsKey(sipString)) map.put(sipString,1); else map.put(sipString,map.get(sipString)+1); } for(Entry<String,Integer>entry:map.entrySet()){ //System.out.println(entry.getKey()); //System.out.println(entry.getValue()); } } publicstaticStringipbelong(ArrayList<ADmodel>models){ Stringstring=""; Map<String,String>map=newTreeMap<String,String>(); Stringtemp=""; try{ FileReaderfileReader=newFileReader("ip.txt"); BufferedReaderbufferedReader=newBufferedReader(fileReader); while((temp=bufferedReader.readLine())!=null){ StringaString=temp; temp=temp.substring(0,temp.length()-1)+"1"; if(!map.containsKey(temp)){ System.out.println(aString); Stringipc=ip(temp); map.put(temp,ipc); System.out.println(ipc); }else{ continue; } } for(Entry<String,String>entry:map.entrySet()){ System.out.println(entry.getKey()); System.out.println(entry.getValue()); } }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnstring; } publicstaticStringip(Strings){ //查詢IP的接口:88/?app=ip.get&ip=40&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json Stringip=s; Stringstr_url=":88/?app=ip.get&ip=" +ip +"&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json"; str_url="/service/getIpInfo.php?ip="+ip; Stringstring=""; try{ URLurl=newURL(str_url); URLConnectionconn; conn=url.openConnection(); BufferedReaderretun=newBufferedReader(newInputStreamReader( conn.getInputStream())); retun=newBufferedReader(newInputStreamReader(url.openStream())); //這里返回的是一個(gè)JSON的格式,自己解析吧。 //System.out.println(retun.readLine()); string=retun.readLine(); String[]aString=string.split("\\\""); inti=0; string=""; string+=aString[7]+aString[23]+aString[31]; retun.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returndecodeUnicode(string); } publicstaticStringdecodeUnicode(StringtheString){ charaChar; intlen=theString.length(); StringBufferoutBuffer=newStringBuffer(len); for(intx=0;x<len;){ aChar=theString.charAt(x++); if(aChar=='\\'){ aChar=theString.charAt(x++); if(aChar=='u'){ //Readthexxxx intvalue=0; for(inti=0;i<4;i++){ aChar=theString.charAt(x++); switch(aChar){ case'0': case'1': case'2': case'3': case'4': case'5': case'6': case'7': case'8': case'9': value=(value<<4)+aChar-'0';

溫馨提示

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

評(píng)論

0/150

提交評(píng)論