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