陳琳
(福建信息職業(yè)技術(shù)學(xué)院物聯(lián)網(wǎng)與人工智能學(xué)院,福建福州 350001)
隨著信息化技術(shù)的發(fā)展,計(jì)算機(jī)和網(wǎng)絡(luò)在社會(huì)生產(chǎn)、生活中的重要性越來(lái)越凸顯。為了保障組織機(jī)構(gòu)工作的安全與效率,政府和企業(yè)大多建設(shè)了自己的內(nèi)網(wǎng)。內(nèi)網(wǎng)作為網(wǎng)絡(luò)應(yīng)用的重要組成部分,其安全性對(duì)信息的保密具有重要意義。內(nèi)網(wǎng)信息安全問(wèn)題根據(jù)威脅的類型可分為:外部的黑客入侵,即黑客盜取內(nèi)網(wǎng)的機(jī)密信息;外部的襲擊行為,主要是內(nèi)網(wǎng)用戶以不同的方式將主機(jī)連到外網(wǎng),從而破壞了內(nèi)網(wǎng)的封閉性。5G技術(shù)為內(nèi)網(wǎng)的信息化改進(jìn)提供了更加靈活的接入方式,但也增加了安全威脅。為此,科研人員設(shè)計(jì)了許多非法訪問(wèn)信息的挖掘方法加以應(yīng)對(duì)。其中,毛伊敏等人[1]運(yùn)用信息熵和遺傳算法設(shè)計(jì)了挖掘算法,基于對(duì)數(shù)據(jù)相似項(xiàng)目的構(gòu)建,通過(guò)支持度閾值進(jìn)行挖掘,具有較好的挖掘效果。薛歡慶等人[2]提出了基于關(guān)系代數(shù)的挖掘算法,通過(guò)隸屬度函數(shù)對(duì)數(shù)據(jù)類型進(jìn)行設(shè)定,在支持向量機(jī)的基礎(chǔ)上設(shè)定關(guān)聯(lián)規(guī)則,同樣具有較強(qiáng)的挖掘效果。
上述挖掘方法主要用在網(wǎng)絡(luò)通信數(shù)據(jù)庫(kù)中,由于缺乏連續(xù)性的數(shù)據(jù)挖掘規(guī)則,忽視非連續(xù)性數(shù)據(jù)的動(dòng)態(tài)特征及數(shù)據(jù)中存在的時(shí)間關(guān)聯(lián)性,導(dǎo)致數(shù)據(jù)挖掘的最終結(jié)果存在偏差,無(wú)法有效區(qū)分非法訪問(wèn)信息與安全信息。本文通過(guò)時(shí)空序列相似性設(shè)計(jì)了一種新的挖掘方法,將數(shù)據(jù)挖掘作為一個(gè)連續(xù)的過(guò)程,將訪問(wèn)數(shù)據(jù)看作一個(gè)時(shí)空序列,對(duì)數(shù)據(jù)的時(shí)空屬性進(jìn)行定義,并將其運(yùn)用于內(nèi)網(wǎng)數(shù)據(jù)庫(kù)的挖掘過(guò)程,為保證內(nèi)網(wǎng)的信息安全提供技術(shù)支持。
為實(shí)現(xiàn)對(duì)內(nèi)網(wǎng)數(shù)據(jù)庫(kù)非法訪問(wèn)信息的大規(guī)模挖掘,需要預(yù)先設(shè)定挖掘規(guī)則。通過(guò)對(duì)數(shù)據(jù)類型的劃分,判斷其是否為異常行為或攻擊行為[3]。由于數(shù)據(jù)挖掘是一個(gè)連續(xù)性的過(guò)程,因此應(yīng)建立動(dòng)態(tài)循環(huán)的挖掘流程,在數(shù)據(jù)發(fā)出訪問(wèn)時(shí)進(jìn)行對(duì)比,并根據(jù)訪問(wèn)特征建立數(shù)據(jù)審計(jì)結(jié)構(gòu),見(jiàn)圖1。
圖1 數(shù)據(jù)審計(jì)結(jié)構(gòu)
圖1中,n 表示數(shù)據(jù)列總數(shù)。對(duì)數(shù)據(jù)結(jié)構(gòu)的劃分主要依賴數(shù)據(jù)列,包括其訪問(wèn)時(shí)間及用戶的ID信息等。在采集到訪問(wèn)信息后,將其與具體的特征描述進(jìn)行對(duì)照,完成對(duì)數(shù)據(jù)的先驗(yàn)審計(jì)[4]。然后,從語(yǔ)句分析和關(guān)聯(lián)分析兩方面判斷該訪問(wèn)數(shù)據(jù)是否為非法訪問(wèn)。具體處理流程如下:
(1)語(yǔ)句分析,主要是對(duì)語(yǔ)句的表達(dá)形式進(jìn)行檢測(cè),驗(yàn)證其是否存在攻擊和非法訪問(wèn)的特征。因此,需要對(duì)語(yǔ)句的類型和操作表進(jìn)行設(shè)定,實(shí)時(shí)跟蹤其變化情況。
(2)關(guān)聯(lián)分析,是指對(duì)數(shù)據(jù)庫(kù)鏈路中的數(shù)據(jù)進(jìn)行關(guān)聯(lián),根據(jù)主外鍵關(guān)系對(duì)訪問(wèn)信息進(jìn)行擴(kuò)展,驗(yàn)證是否存在相似的歷史數(shù)據(jù)。若具有相似性數(shù)據(jù)記錄,可初步判斷為安全數(shù)據(jù);反之,判斷為非法訪問(wèn)數(shù)據(jù)。
運(yùn)行上述分析程序時(shí),常規(guī)化的檢測(cè)用時(shí)較少,但如果發(fā)生非法訪問(wèn)行為,內(nèi)網(wǎng)數(shù)據(jù)庫(kù)被攻擊的概率很高[5]。為此,需要建立以服務(wù)數(shù)據(jù)審計(jì)為目標(biāo)的挖掘規(guī)則知識(shí)庫(kù),如圖2所示。圖中,m 表示數(shù)據(jù)量[6]。由于非法訪問(wèn)通常為群體行為,若從單個(gè)操作來(lái)判斷可能為正常的語(yǔ)義,因此需要采用動(dòng)態(tài)的知識(shí)庫(kù)進(jìn)行規(guī)則設(shè)定;分別對(duì)訪問(wèn)信息的產(chǎn)生時(shí)間、路徑以及流通至數(shù)據(jù)庫(kù)的節(jié)點(diǎn)進(jìn)行檢驗(yàn),判斷其是否為數(shù)據(jù)庫(kù)中的非法權(quán)限用戶。通過(guò)上述規(guī)則,在時(shí)間序列中判斷非法訪問(wèn)信息的相對(duì)位置,并對(duì)其位置關(guān)系進(jìn)行標(biāo)識(shí)。
圖2 挖掘規(guī)則知識(shí)庫(kù)
序列長(zhǎng)度能夠記錄不同數(shù)據(jù)產(chǎn)生的位置信息。為實(shí)現(xiàn)對(duì)大規(guī)模內(nèi)網(wǎng)數(shù)據(jù)庫(kù)中非法訪問(wèn)信息的快速挖掘,可利用上文設(shè)計(jì)的規(guī)則知識(shí)庫(kù)獲取信息的相對(duì)序列,并對(duì)其位置的連接關(guān)系進(jìn)行標(biāo)識(shí)。將每一個(gè)數(shù)據(jù)的序列記為單一項(xiàng)集,記作:
式中,b為數(shù)據(jù)序列串[7],v為數(shù)據(jù)序列長(zhǎng)度[8]。數(shù)據(jù)序列長(zhǎng)度與事件訪問(wèn)時(shí)間有關(guān);當(dāng)為非法訪問(wèn)數(shù)據(jù)時(shí),其數(shù)據(jù)序列長(zhǎng)度必大于給定的序列長(zhǎng)度。據(jù)此,可建立序列的位置表征關(guān)系,見(jiàn)表1[9]。
表1 數(shù)據(jù)序列位置表征
根據(jù)表中內(nèi)容,此次將序列劃分為4 個(gè)類型,分別按照向前和向后兩個(gè)方向?qū)ζ溥M(jìn)行位置信息判斷,每種序列類型分別對(duì)應(yīng)一種位置。以序列定義來(lái)看,當(dāng)數(shù)據(jù)的序列長(zhǎng)度能夠繼續(xù)擴(kuò)展時(shí),則其中至少含有一個(gè)可變位置方向。根據(jù)擴(kuò)展情況定義新序列,并給予新的支持系數(shù),具體為:
其中:v″為數(shù)據(jù)序列長(zhǎng)度的變化結(jié)構(gòu)[10];→為變換過(guò)程;f為位置變換表征矩陣;h為支持系數(shù);b″為新序列串?;诖耍瑢?duì)數(shù)據(jù)序列的擴(kuò)展位置定義如下:
數(shù)據(jù)序列在傳輸過(guò)程中的具體位置可以用位置方向來(lái)表示,表達(dá)式見(jiàn)公式(5)。例如:當(dāng)數(shù)據(jù)的序列長(zhǎng)度v=1 時(shí),其出現(xiàn)在方向z中的位置為z=2,則位置信息表示為(1 ,2 )。
基于設(shè)定的時(shí)間序列的位置關(guān)系,以時(shí)間順序?qū)?shù)據(jù)序列進(jìn)行排序,根據(jù)時(shí)空序列相似性對(duì)非法訪問(wèn)數(shù)據(jù)信息進(jìn)行挖掘。以常規(guī)化的數(shù)據(jù)請(qǐng)求為例,在形式上將數(shù)據(jù)看作是一個(gè)時(shí)空序列,并對(duì)其時(shí)空屬性進(jìn)行定義,則有:
其中:d為數(shù)據(jù)屬性集合;a為屬性個(gè)數(shù);p為數(shù)據(jù)的屬性域[11];i為時(shí)空域;o為數(shù)據(jù)的表現(xiàn)形式,且oa∈p(da)[12]。測(cè)量數(shù)據(jù)序列之間的相似性,要求序列長(zhǎng)度相同,且每個(gè)序列的屬性一致,計(jì)算公式如下:
式中:pv1和pv2表示屬性域?yàn)閜的數(shù)據(jù)序列[13];ya、ua表示數(shù)據(jù)序列屬性,且ya∈da、ua∈da;t(pv1,pv2)表示序列之間的距離函數(shù)[14]。
由于數(shù)據(jù)在傳輸過(guò)程中為波動(dòng)狀態(tài),直接對(duì)相鄰數(shù)據(jù)進(jìn)行長(zhǎng)度計(jì)算容易產(chǎn)生誤差,因此需要設(shè)定一個(gè)平衡函數(shù)進(jìn)行檢驗(yàn),該函數(shù)表達(dá)如下:
式中:e和w為數(shù)據(jù)在時(shí)空序列下的變動(dòng)字符;r(e,w) 為平衡函數(shù);r1、r2、r3為平衡得分[15];[matches] 為匹配狀態(tài);[dismatches] 為不匹配狀態(tài);[alighs] 為具有較小差異。在基于連續(xù)傳輸數(shù)據(jù)對(duì)比的挖掘中,只有[matches] 表示訪問(wèn)數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)相類似,其余均為非法訪問(wèn)狀態(tài)。至此,本文通過(guò)時(shí)空序列的相似性,完成非法訪問(wèn)數(shù)據(jù)挖掘算法的設(shè)計(jì)。
運(yùn)用MATLAB_7.0 測(cè)試平臺(tái)模擬一個(gè)內(nèi)網(wǎng)環(huán)境[16],以一個(gè)擁有邊界防火墻,并與外界隔絕的單位內(nèi)網(wǎng)作為模擬對(duì)象;通過(guò)ETHERNET10M/1000M交換機(jī)組成局域網(wǎng),該交換機(jī)不會(huì)與互聯(lián)網(wǎng)連接,因此可以實(shí)現(xiàn)局域網(wǎng)與外網(wǎng)的隔絕。在此基礎(chǔ)上,通過(guò)該局域網(wǎng)連接7 組計(jì)算機(jī)(其中包括兩組筆記本電腦),組成一個(gè)內(nèi)網(wǎng)環(huán)境;具體配置見(jiàn)表2。
表2 測(cè)試環(huán)境配置情況
如表2 所示:編號(hào)Q1 的主機(jī)為整個(gè)測(cè)試的服務(wù)器,是該內(nèi)網(wǎng)的控制臺(tái);其余6臺(tái)主機(jī)為客戶端,均安裝監(jiān)控代理裝置。利用MATLAB_7.0 測(cè)試平臺(tái)與MySQL 數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行交互,在搭建的內(nèi)網(wǎng)數(shù)據(jù)庫(kù)中隨機(jī)選擇4 150 組用戶訪問(wèn)數(shù)據(jù)作為后期的測(cè)試對(duì)象,運(yùn)用SNIFFER 軟件對(duì)客戶端用戶的非法訪問(wèn)行為進(jìn)行監(jiān)控。完成測(cè)試環(huán)境的配置后,再對(duì)非法訪問(wèn)信息的挖掘測(cè)試條件進(jìn)行設(shè)定:在控制主機(jī)中編寫安全策略,并根據(jù)設(shè)備信息表中的ID 進(jìn)行定義,編輯數(shù)據(jù)庫(kù)中所有信息的來(lái)源IP地址(見(jiàn)表3)。
MySQL 數(shù)據(jù)庫(kù)中有140 個(gè)數(shù)據(jù)集,選擇其中20個(gè)。統(tǒng)計(jì)所選數(shù)據(jù)集在內(nèi)網(wǎng)中的數(shù)據(jù)量和安全等級(jí),將5 級(jí)以下的設(shè)定為安全數(shù)據(jù)。在MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)中創(chuàng)建一個(gè)名為“Iris”的表格,插入相應(yīng)的實(shí)驗(yàn)數(shù)據(jù);則現(xiàn)階段數(shù)據(jù)庫(kù)中的數(shù)據(jù)均具有安全性,不會(huì)與后期的非法訪問(wèn)產(chǎn)生沖突。除控制主機(jī)外,其余的主機(jī)均可模擬非法訪問(wèn)行為。為保證測(cè)試的統(tǒng)一性,對(duì)其余主機(jī)的訪問(wèn)IP進(jìn)行包裝,使其盡可能地與安全信息的來(lái)源IP相似,也可以作為非法訪問(wèn)信息的來(lái)源IP。具體情況如下:
(1)Q2主機(jī):非法IP地址為132.07.2526.18,歸類為E2、Q2、R2;
(2)Q3主機(jī):非法IP地址為125.07.2502.65,歸類為E3、Q3、R3;
(3)Q4主機(jī):非法IP地址為128.07.3204.33,歸類為E4、Q4、R4;
(4)Q5主機(jī):非法IP地址為125.08.2402.33,歸類為E5、Q5、R5;
(5)Q6主機(jī):非法IP地址為125.07.2501.64,歸類為E6、Q6、R6;
(6)Q7 主機(jī):其他非法IP 地址,歸類為E7、Q7、R7。
表3 來(lái)源IP地址
通過(guò)對(duì)4 組主機(jī)中產(chǎn)生的非法訪問(wèn)信息的分析,發(fā)現(xiàn)其對(duì)應(yīng)的IP 地址與表2 中安全數(shù)據(jù)的IP 地址較為相似,因此,能夠模擬非法數(shù)據(jù)的訪問(wèn),符合測(cè)試要求。其挖掘算法的Python 偽代碼如下:
1.//導(dǎo)入Iris庫(kù)和訪問(wèn)IP包裝模塊
2.import pandas as pd
3.from sklearn.preprocessing import StandardScaler
4.from sklearn.cluster spatiotemporal variation attribute
5.//讀取Iris數(shù)據(jù)并進(jìn)行預(yù)處理
6.iris_data = pd.read_csv('iris.csv')//假設(shè)數(shù)據(jù)集保存在'iris.csv'文件中
7.features = iris_data.drop('class',axis=1)//去除目標(biāo)變量列
8.scaler=StandardScaler()
9.features_scaled = scaler.fit_transform(features)//特征標(biāo)準(zhǔn)化
10.//使用基本聚類算法
11.kmeans=KMeans(n_clusters=3,random_state=42)
12.kmeans.fit(features_scaled)
13.clusters=kmeans.predict(features_scaled)
14.//檢測(cè)非法訪問(wèn)信息
15.illegal_access=[平衡函數(shù)]
16.for i in range(len(clusters)):
17.if clusters[i]!=iris_data['class'][i]://將實(shí)際類別與訪問(wèn)數(shù)據(jù)得分進(jìn)行比較
18.illegal_access.append(i)//如果不匹配,則認(rèn)為是非法訪問(wèn)信息
19.//輸出非法訪問(wèn)信息的樣本索引
20.print("Illegal access samples:",illegal_access)
21.```
運(yùn)用上述偽代碼對(duì)非法訪問(wèn)數(shù)據(jù)進(jìn)行挖掘,主要是基于對(duì)訪問(wèn)數(shù)據(jù)IP 來(lái)源的確定,即只有標(biāo)定出其具體的來(lái)源,才能完成攔截或是阻斷。因而,對(duì)本次選擇的安全I(xiàn)P 地址和非法IP 地址進(jìn)行特征編碼,以二分法進(jìn)行歸類處理,見(jiàn)圖3。圖中,橫縱坐標(biāo)分別表示特征編碼,安全數(shù)據(jù)全部歸類在特征“1”中,非法訪問(wèn)數(shù)據(jù)歸類在特征“2”中。挖掘測(cè)試中,設(shè)定非法訪問(wèn)數(shù)據(jù)為同時(shí)段發(fā)布狀態(tài),則4 組主機(jī)會(huì)同時(shí)段對(duì)內(nèi)網(wǎng)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。為了明確本文方法的挖掘效果,特選擇基于關(guān)系代數(shù)的挖掘算法和基于信息熵的挖掘算法進(jìn)行對(duì)比,見(jiàn)圖4。
圖3 數(shù)據(jù)特征編碼示意
圖4 不同算法的挖掘測(cè)試
由圖4可見(jiàn),3種算法對(duì)非法訪問(wèn)信息的挖掘結(jié)果各不相同。其中,基于關(guān)系代數(shù)的挖掘算法將W8、W13、W19 誤判為非法網(wǎng)絡(luò)數(shù)據(jù),而將R2、E3、E6歸類到安全數(shù)據(jù)中。這是因?yàn)樵撍惴ò◤?fù)雜的數(shù)據(jù)關(guān)聯(lián)和模式挖掘,在處理大規(guī)模、非關(guān)系型的數(shù)據(jù)集時(shí)效率較低,會(huì)產(chǎn)生信息損失和偏差,因此挖掘效果受限。基于信息熵的挖掘算法將W16、W17、W18、W20 誤判為非法網(wǎng)絡(luò)數(shù)據(jù),而將R2、R4、E3、Q3、R6歸類到安全數(shù)據(jù)中。這是因?yàn)樵撍惴ǖ挠?jì)算過(guò)程涉及多個(gè)關(guān)系操作及其執(zhí)行順序與優(yōu)化,而信息熵計(jì)算又是個(gè)復(fù)雜的問(wèn)題,用于處理大規(guī)模數(shù)據(jù)集時(shí)難以保證執(zhí)行效率,必然導(dǎo)致挖掘的準(zhǔn)確性和可信度下降。本文算法僅將W6 誤判為非法網(wǎng)絡(luò)數(shù)據(jù),將R6 歸類到安全數(shù)據(jù)中,表現(xiàn)出較為理想的挖掘效果。這是由于本文算法利用時(shí)空序列相似性,將數(shù)據(jù)挖掘作為一個(gè)連續(xù)性的過(guò)程,降低了挖掘的誤差。
本文通過(guò)時(shí)空序列相似性方式設(shè)計(jì)了新的數(shù)據(jù)挖掘算法,主要針對(duì)內(nèi)網(wǎng)數(shù)據(jù)庫(kù)中存在的非法訪問(wèn)信息進(jìn)行挖掘。新算法在用戶同時(shí)發(fā)出訪問(wèn)行為時(shí),能高效、準(zhǔn)確地劃分安全數(shù)據(jù)與非法訪問(wèn)數(shù)據(jù),挖掘效果理想,具有較好的應(yīng)用價(jià)值。但因在非法訪問(wèn)信息的設(shè)定方面沒(méi)有做專門的統(tǒng)計(jì),所以研究還存在一定的不足,計(jì)劃在后續(xù)研究中加以完善。