本發(fā)明涉及一種網(wǎng)絡(luò)安全數(shù)據(jù)集生成方法及系統(tǒng)。
背景技術(shù):
:數(shù)據(jù)集,又稱為資料集、數(shù)據(jù)集合或資料集合,是指一種由數(shù)據(jù)所組成的集合。Dataset是一個數(shù)據(jù)的集合,通常以表格形式出現(xiàn)。每一列代表一個特定變量,每一行對應(yīng)于某一成員的數(shù)據(jù)集。隨著計算機網(wǎng)絡(luò)和Internet的發(fā)展,網(wǎng)絡(luò)安全越來越受到人們的關(guān)注和重視。鑒于網(wǎng)絡(luò)安全和安全分析系統(tǒng)目前的發(fā)展趨勢和重要性,網(wǎng)絡(luò)安全相關(guān)分析檢測系統(tǒng)的性能評估研究得到了不斷發(fā)展。數(shù)據(jù)集對可能進一步產(chǎn)生更高的安全檢測算法的測試提供支撐?,F(xiàn)有的網(wǎng)絡(luò)數(shù)據(jù)集生成方法具備一定的局限性,比如:公開號為103259788A,發(fā)明名稱為針對安全協(xié)議的形式化建模及驗證方法,只是為了發(fā)現(xiàn)協(xié)議建模過程中存在的錯誤和協(xié)議本身存在的缺陷,進行修復(fù)并驗證;公開號為102693240A,發(fā)明名稱為Web服務(wù)協(xié)議語義的形式化描述方法及裝置,僅限于對Web服務(wù)協(xié)議語義的形式化描述??梢姡F(xiàn)有構(gòu)建的網(wǎng)絡(luò)數(shù)據(jù)集缺少針對網(wǎng)絡(luò)安全的構(gòu)建數(shù)據(jù)集的方法,數(shù)據(jù)集的屬性值不夠精確,僅僅針對某個特定的領(lǐng)域,且使用的范圍有限,尤其不適合于入侵檢測。技術(shù)實現(xiàn)要素:有鑒于此,有必要提供一種網(wǎng)絡(luò)安全數(shù)據(jù)集生成方法及系統(tǒng)。本發(fā)明提供一種網(wǎng)絡(luò)安全數(shù)據(jù)集生成方法,該方法包括如下步驟:a.將網(wǎng)絡(luò)上隨機抓取的PCAP格式的文件解析得到XML格式的文件;b.對上述得到的XML格式的文件的結(jié)構(gòu)進行解析;c.根據(jù)解析后的XML格式的文件,構(gòu)建得到不同的屬性數(shù)據(jù)集;d.輸出上述得到的不同的屬性數(shù)據(jù)集。其中,該方法還包括:構(gòu)建用戶UI界面的步驟。在所述步驟a中:通過調(diào)用packetdecoder程序解析出pdmlout和psmlout兩個XML格式的文件。在所述步驟c中,構(gòu)建得到protocol、duration、count、length四種不同的屬性數(shù)據(jù)集。所述步驟d具體包括:將得到的不同的屬性數(shù)據(jù)集輸出到文本文檔里。本發(fā)明還提供一種網(wǎng)絡(luò)安全數(shù)據(jù)集生成系統(tǒng),包括文件解析模塊、結(jié)構(gòu)解析模塊、構(gòu)建模塊及輸出模塊,其中:所述文件解析模塊用于將網(wǎng)絡(luò)上隨機抓取的PCAP格式的文件解析得到XML格式的文件;所述結(jié)構(gòu)解析模塊用于對上述得到的XML格式的文件的結(jié)構(gòu)進行解析;所述構(gòu)建模塊用于根據(jù)解析后的XML格式的文件,構(gòu)建得到不同的屬性數(shù)據(jù)集;所述輸出模塊用于輸出上述得到的不同的屬性數(shù)據(jù)集。其中,所述輸出模塊還用于:構(gòu)建用戶UI界面。所述文件解析模塊具體通過調(diào)用packetdecoder程序解析出pdmlout和psmlout兩個XML格式的文件。所述構(gòu)建模塊構(gòu)建得到protocol、duration、count、length四種不同的屬性數(shù)據(jù)集。所述輸出模塊具體用于將得到的不同的屬性數(shù)據(jù)集輸出到文本文檔里。本發(fā)明的有益效果包括:(1)數(shù)據(jù)集的屬性值更精確,本發(fā)明的duration屬性值能夠精確到小數(shù)點后三位;(2)本發(fā)明的數(shù)據(jù)集能夠在很多領(lǐng)域使用,也適合于研究及測試,比較適合中小型公司還有高校,公司亦可用來測試自己的產(chǎn)品和服務(wù),高??捎脕硌芯繑?shù)據(jù)集;(3)本發(fā)明成本低,效率高,數(shù)據(jù)集的構(gòu)建速度快。附圖說明圖1為本發(fā)明網(wǎng)絡(luò)安全數(shù)據(jù)集生成方法的流程圖;圖2為本發(fā)明網(wǎng)絡(luò)安全數(shù)據(jù)集生成系統(tǒng)的硬件架構(gòu)圖。具體實施方式下面結(jié)合附圖及具體實施例對本發(fā)明作進一步詳細的說明。參閱圖1所示,是本發(fā)明網(wǎng)絡(luò)安全數(shù)據(jù)集生成方法較佳實施例的作業(yè)流程圖。步驟S1,將網(wǎng)絡(luò)上隨機抓取的PCAP格式的文件解析得到XML格式的文件。具體而言:PCAP格式的文件里包含很多個數(shù)據(jù)包,所述數(shù)據(jù)包可能包含各種不同的協(xié)議,每個數(shù)據(jù)包里包含很多信息。本實施例從數(shù)據(jù)包解析出所需要的信息時,把每層數(shù)據(jù)都視為一個節(jié)點,并且將每一節(jié)點視為節(jié)點名字和節(jié)點屬性的集合,將所述節(jié)點屬性視為屬性名字和屬性值的組合。本實施例采用庫文件netbee對所述數(shù)據(jù)包進行解析,所述庫文件netbee可以直接從NetPDL的官網(wǎng)上下載,所述庫文件netbee包括很多用C++語言編寫的源程序和頭文件,所述源程序和頭文件可以直接使用,其中有一個非常重要的源程序packetdecoder.cpp,所述源程序packetdecoder.cpp顯示了數(shù)據(jù)包的解析過程,及將結(jié)果輸出到特定的文檔里。用NetPDL解析數(shù)據(jù)包時,主要是調(diào)用packetdecoder.cpp程序,通過調(diào)用packetdecoder程序解析出pdmlout和psmlout兩個XML格式的文件,psmlout文件描述了數(shù)據(jù)包的大概信息,pdmlout文件包含所述數(shù)據(jù)包的詳細信息,是對psmlout文件中數(shù)據(jù)包內(nèi)容更細化的描述。步驟S2,對上述得到的XML格式的文件的結(jié)構(gòu)進行解析。具體而言:在本實施例中,對所述XML格式的文件的結(jié)構(gòu)進行解析,實質(zhì)上是讀取上述XML格式的文件。本實施例讀取兩遍上述XML格式的文件:第一次讀文件時把需要的屬性值存放到數(shù)組里;第二次讀文件的同時實現(xiàn)本方法的功能。本實施例利用Dom4j解讀所述XML格式的文件,Dom4j是dom4j.org出品的一個開源XML解析包,Dom4j應(yīng)用于Java平臺,采用了Java集合框架并完全支持DOM(DocumentObjectModel,文檔對象模型),SAX(SimpleAPIforXML,用于處理XML事件驅(qū)動的模型)和JAXP(JavaAPIforXMLProcessing,為XML處理的JavaAPI)。Dom4j的主要接口都在org.Dom4j,見下表:Dom4j的主要接口接口的名稱接口的描述Attribute定義了XML的屬性Document定義了XML文檔Element定義XML元素使用Dom4j讀取所述XML格式的文件:(1)實例化SAX解析器的對象org.dom4j.io.SAXReader。構(gòu)造方法:publicSAXReader();讀取數(shù)據(jù):publicDocumentread(Filefile)throwsDocumentException;(2)通過Document進行讀?。喝〉酶兀簆ublicElementgetRootElement;(3)通過Element進行內(nèi)容取得:直接取得一組的子節(jié)點:publicIteratorelementIterator();取得指定元素的一組節(jié)點:publicIteratorelementIterator(Stringname);取得定義的屬性:publicStringattributeValue(Stringname)。步驟S3,根據(jù)解析后的XML格式的文件,構(gòu)建得到不同的屬性數(shù)據(jù)集。具體而言:本實施例構(gòu)建4個屬性的數(shù)據(jù)集,所述數(shù)據(jù)集基于一條完整的連接上建立。1、第一個屬性選取了protocol,描述的是協(xié)議類型,構(gòu)建這個屬性的算法比較簡單,直接從所述XML格式的文件讀取這個屬性。2、第二個屬性選擇的是duration,描述的是每一條連接的持續(xù)時間,這個屬性跟KDD99數(shù)據(jù)集的duration屬性描述的是一樣的,不同的是這個屬性比KDD99數(shù)據(jù)集的屬性值更精確,KDD99數(shù)據(jù)集的duration的屬性值只要是不足1秒的都設(shè)為0,而本設(shè)計的duration屬性的值取了小數(shù)點后三位,計算duration值包括步驟:(1)計算每個數(shù)據(jù)包的時間戳;(2)每一條連接的持續(xù)時間是從下一個數(shù)據(jù)包的時間戳減去當(dāng)前數(shù)據(jù)包的時間戳,得到的就是這條連接的持續(xù)時間。因為是基于UDP協(xié)議的連接,所以可以把這條連接持續(xù)時間可以看成這個數(shù)據(jù)包的傳送時間。計算的公式如下:tn=Tn+1-Tntn描述的是當(dāng)前連接的持續(xù)的時間,也是duration的值,Tn+1描述的當(dāng)前數(shù)據(jù)包的下一個數(shù)據(jù)包的時間戳,Tn描述的是當(dāng)前連接(數(shù)據(jù)包)的時間戳。3、第三個屬性選擇的是count屬性,描述的是過去50毫秒與當(dāng)前連接具有相同的目標(biāo)主機的連接數(shù),這個屬性也在KDD99數(shù)據(jù)集里的count屬性有點相似,不同的是在KDD99數(shù)據(jù)集里這個屬性描述的過去2秒內(nèi)與當(dāng)前連接具有相同目標(biāo)主機的連接數(shù),所以本實施例改進了KDD99的count屬性,計算count值包括步驟:(1)第i個UDP數(shù)據(jù)包(一條完整的連接)的時間戳存放到Ti里;(2)第i個UDP數(shù)據(jù)包的目標(biāo)主機的地址存放到dst[i];(3)在過去的(Tn-0.05)的時間戳到現(xiàn)在的Tn時間戳里,只要是dst[m]=dst[n](0<m<n)就統(tǒng)計這些連接的個數(shù),統(tǒng)計到的數(shù)就是當(dāng)前連接的count[n]的值。上面的i的取值范圍是0<i<=N,i取整數(shù),Ti描述的是第i條連接的時間戳,dst[i]描述的是第i條連接的目標(biāo)主機的地址,Tn描述的當(dāng)前連接的時間戳,dst[n]描述的當(dāng)前連接的目標(biāo)主機的地址,dst[m]描述的也是第m條連接的目標(biāo)主機的地址。4、第四個屬性選取了length,描述的是從源地址到目標(biāo)地址發(fā)送的數(shù)據(jù)的長度,計算這個屬性的算法比較簡單,直接從所述XML格式的文件中調(diào)用。步驟S4,構(gòu)建用戶UI界面,并輸出上述得到的不同的屬性數(shù)據(jù)集。具體而言:構(gòu)建用戶UI界面的具體步驟如下:在設(shè)計UI界面的時候要導(dǎo)入java.awt包,所述java.awt包包括AWT類,AWT是抽象窗口工具集。在設(shè)計本次界面時生成窗口用的是Frame,生成布局用的是Box。下面列出了JFrame框架窗口的使用方法和說明。JFrame框架窗口的使用設(shè)計完UI界面的框架后,用代碼即可實現(xiàn)用戶UI界面的構(gòu)建。本實施例將得到的不同的屬性數(shù)據(jù)集輸出到文本文檔里。參閱圖2所示,是本發(fā)明網(wǎng)絡(luò)安全數(shù)據(jù)集生成系統(tǒng)10的硬件架構(gòu)圖。該系統(tǒng)包括文件解析模塊101、結(jié)構(gòu)解析模塊102、構(gòu)建模塊103及輸出模塊104。所述文件解析模塊101用于將網(wǎng)絡(luò)上隨機抓取的PCAP格式的文件解析得到XML格式的文件。具體而言:PCAP格式的文件里包含很多個數(shù)據(jù)包,所述數(shù)據(jù)包可能包含各種不同的協(xié)議,每個數(shù)據(jù)包里包含很多信息。文件解析模塊101從數(shù)據(jù)包解析出所需要的信息時,把每層數(shù)據(jù)都視為一個節(jié)點,并且將每一節(jié)點視為節(jié)點名字和節(jié)點屬性的集合,將所述節(jié)點屬性視為屬性名字和屬性值的組合。本實施例中文件解析模塊101采用庫文件netbee對所述數(shù)據(jù)包進行解析,所述庫文件netbee可以直接從NetPDL的官網(wǎng)上下載,所述庫文件netbee包括很多用C++語言編寫的源程序和頭文件,所述源程序和頭文件可以直接使用,其中有一個非常重要的源程序packetdecoder.cpp,所述源程序packetdecoder.cpp顯示了數(shù)據(jù)包的解析過程,及將結(jié)果輸出到特定的文檔里。用NetPDL解析數(shù)據(jù)包時,主要是調(diào)用packetdecoder.cpp程序,通過調(diào)用packetdecoder程序解析出pdmlout和psmlout兩個XML格式的文件,psmlout文件描述了數(shù)據(jù)包的大概信息,pdmlout文件包含所述數(shù)據(jù)包的詳細信息,是對psmlout文件中數(shù)據(jù)包內(nèi)容更細化的描述。所述結(jié)構(gòu)解析模塊102用于對上述得到的XML格式的文件的結(jié)構(gòu)進行解析。具體而言:在本實施例中,所述結(jié)構(gòu)解析模塊102對所述XML格式的文件的結(jié)構(gòu)進行解析,實質(zhì)上是讀取上述XML格式的文件。本實施例讀取兩遍上述XML格式的文件:第一次讀文件時把需要的屬性值存放到數(shù)組里;第二次讀文件的同時實現(xiàn)本方法的功能。在本實施例中,所述結(jié)構(gòu)解析模塊102利用Dom4j解讀所述XML格式的文件,Dom4j是dom4j.org出品的一個開源XML解析包,Dom4j應(yīng)用于Java平臺,采用了Java集合框架并完全支持DOM(DocumentObjectModel,文檔對象模型),SAX(SimpleAPIforXML,用于處理XML事件驅(qū)動的模型)和JAXP(JavaAPIforXMLProcessing,為XML處理的JavaAPI)。Dom4j的主要接口都在org.Dom4j,見下表:Dom4j的主要接口接口的名稱接口的描述Attribute定義了XML的屬性Document定義了XML文檔Element定義XML元素所述結(jié)構(gòu)解析模塊102使用Dom4j讀取所述XML格式的文件:(1)實例化SAX解析器的對象org.dom4j.io.SAXReader。構(gòu)造方法:publicSAXReader();讀取數(shù)據(jù):publicDocumentread(Filefile)throwsDocumentException;(2)通過Document進行讀?。喝〉酶兀簆ublicElementgetRootElement;(3)通過Element進行內(nèi)容取得:直接取得一組的子節(jié)點:publicIteratorelementIterator();取得指定元素的一組節(jié)點:publicIteratorelementIterator(Stringname);取得定義的屬性:publicStringattributeValue(Stringname)。所述構(gòu)建模塊103用于根據(jù)解析后的XML格式的文件,構(gòu)建得到不同的屬性數(shù)據(jù)集。具體而言:本實施例構(gòu)建4個屬性的數(shù)據(jù)集,所述數(shù)據(jù)集基于一條完整的連接上建立。1、第一個屬性選取了protocol,描述的是協(xié)議類型,構(gòu)建這個屬性的算法比較簡單,直接從所述XML格式的文件讀取這個屬性。2、第二個屬性選擇的是duration,描述的是每一條連接的持續(xù)時間,這個屬性跟KDD99數(shù)據(jù)集的duration屬性描述的是一樣的,不同的是這個屬性比KDD99數(shù)據(jù)集的屬性值更精確,KDD99數(shù)據(jù)集的duration的屬性值只要是不足1秒的都設(shè)為0,而本設(shè)計的duration屬性的值取了小數(shù)點后三位,計算duration屬性值具體包括:(1)計算每個數(shù)據(jù)包的時間戳;(2)每一條連接的持續(xù)時間是從下一個數(shù)據(jù)包的時間戳減去當(dāng)前數(shù)據(jù)包的時間戳,得到的就是這條連接的持續(xù)時間。因為是基于UDP協(xié)議的連接,所以可以把這條連接持續(xù)時間可以看成這個數(shù)據(jù)包的傳送時間。計算的公式如下:tn=Tn+1-Tntn描述的是當(dāng)前連接的持續(xù)的時間,也是duration的值,Tn+1描述的當(dāng)前數(shù)據(jù)包的下一個數(shù)據(jù)包的時間戳,Tn描述的是當(dāng)前連接(數(shù)據(jù)包)的時間戳。3、第三個屬性選擇的是count屬性,描述的是過去50毫秒與當(dāng)前連接具有相同的目標(biāo)主機的連接數(shù),這個屬性也在KDD99數(shù)據(jù)集里的count屬性有點相似,不同的是在KDD99數(shù)據(jù)集里這個屬性描述的過去2秒內(nèi)與當(dāng)前連接具有相同目標(biāo)主機的連接數(shù),所以本實施例改進了KDD99的count屬性,計算count屬性值具體包括:(1)第i個UDP數(shù)據(jù)包(一條完整的連接)的時間戳存放到Ti里;(2)第i個UDP數(shù)據(jù)包的目標(biāo)主機的地址存放到dst[i];(3)在過去的(Tn-0.05)的時間戳到現(xiàn)在的Tn時間戳里,只要是dst[m]=dst[n](0<m<n)就統(tǒng)計這些連接的個數(shù),統(tǒng)計到的數(shù)就是當(dāng)前連接的count[n]的值。上面的i的取值范圍是0<i<=N,i取整數(shù),Ti描述的是第i條連接的時間戳,dst[i]描述的是第i條連接的目標(biāo)主機的地址,Tn描述的當(dāng)前連接的時間戳,dst[n]描述的當(dāng)前連接的目標(biāo)主機的地址,dst[m]描述的也是第m條連接的目標(biāo)主機的地址。4、第四個屬性選取了length,描述的是從源地址到目標(biāo)地址發(fā)送的數(shù)據(jù)的長度,計算這個屬性的算法比較簡單,直接從所述XML格式的文件中調(diào)用。所述輸出模塊104用于構(gòu)建用戶UI界面,并輸出上述得到的不同的屬性數(shù)據(jù)集。具體而言:構(gòu)建用戶UI界面的具體包括:在設(shè)計UI界面的時候要導(dǎo)入java.awt包,所述java.awt包包括AWT類,AWT是抽象窗口工具集。在設(shè)計本次界面時生成窗口用的是Frame,生成布局用的是Box。下面列出了JFrame框架窗口的使用方法和說明。JFrame框架窗口的使用設(shè)計完UI界面的框架后,用代碼即可實現(xiàn)用戶UI界面的構(gòu)建。所述輸出模塊104將得到的不同的屬性數(shù)據(jù)集輸出到文本文檔里。雖然本發(fā)明參照當(dāng)前的較佳實施方式進行了描述,但本領(lǐng)域的技術(shù)人員應(yīng)能理解,上述較佳實施方式僅用來說明本發(fā)明,并非用來限定本發(fā)明的保護范圍,任何在本發(fā)明的精神和原則范圍之內(nèi),所做的任何修飾、等效替換、改進等,均應(yīng)包含在本發(fā)明的權(quán)利保護范圍之內(nèi)。當(dāng)前第1頁1 2 3