董偉
(忻州師范學院計算機系,忻州 034000)
信息技術的快速發展和應用,促進了當今信息時代的發展,社會信息化進程不斷加快,各行業都開始利用信息技術促進作用。作為信息傳輸的重要載體,互聯網的作用不容忽視,同時互聯網也是信息時代發展的基礎[1]。基于互聯網的信息傳輸,不受時間、地點等因素的限制,將整個世界歸為一個沒有界限的空間。2018年底我國網民數量突破8.29億,互聯網普及率高達59.6%,超出全球平均水平的2.6%。網民數量的不斷增加,說明我國互聯網發展迅猛,應用廣泛。互聯網的出現和應用,對人們工作和生活帶來了較大影響,同時也對社會經濟發展、人類文明進步帶來了深遠影響。目前互聯網給人類社會帶來的促進作用有目共睹,且這一影響還將繼續深入和加深。在看到互聯網帶來的積極影響的同時,互聯網中存在問題也應正視。互聯網具有較強的開放性,這是互聯網的一大優勢,同時也是其問題存在的根源,特別是安全問題,更是互聯網所有問題中的重中之重,而安全問題主要是由于互聯網開放性導致的。Internet是世界上應用范圍最大的信息網絡,Internet的應用實現了計算機的連接,信息共享也變成現實,真正將世界變成了“地球村”。但Internet早期協議在設計時并沒有重視安全問題,隨著其應用的日益廣泛性,嚴峻的安全問題開始凸顯出來,國際安全、經濟安全、網絡安全、個人隱私安全等,都成為互聯網安全中的重要安全問題[2-4]。如國外Facebook數據泄密,導致五千萬用戶數據被濫用、WannaCrypt病毒在全球范圍內爆發,有10萬家以上的組織機構被攻陷、印度麥當勞200多萬用戶數據被泄露、美國“棱鏡門”事件等,這些都是世界范圍內影響較大的互聯網安全事件。在我國,互聯網安全問題同樣顯著,如個人信息泄露嚴重、多所高校遭受Wannacry勒索病毒、雅虎信息泄露影響幾千萬我國網民、來勢洶洶的挖礦木馬等,都是耳熟能詳的安全問題。互聯網安全問題,不是一個公司、一個國家所面臨的,而是全球范圍內各國應正視的問題。需要各國加強合作,通過深入研究找尋出有效的解決互聯網安全問題的舉措[5-8]。
面對嚴峻的互聯網安全問題,需要采取措施進行應對,提高互聯網的安全性。其中計算機安全審核是一項提高互聯網安全的重要舉措。計算機安全審核即是對網絡中的設備、系統進行集中審核,及時發現其中存在的安全隱患,并采取措施進行應對,以此消除潛在的安全問題。大數據是近幾年來新發展的技術,主要優勢是提高了數據處理的準確率和效率。互聯網中各類信息呈現出海量的特點,海量的大數據面前安全隱患更多,稍不注意便有可能出現安全問題。故在大數據時代下,應將大數據技術應用到計算機安全審核中,通過準確、高效的數據處理提高計算機安全審核準確率和效率,找尋出安全隱患,從而保證互聯網的安全性。故文章就大數據技術在計算機安全審核中的應用進行了簡單分析。
計算機安全審核管理分為主機網絡安全審核、集中式安全審核系統和分布式安全審核系統、基于智能代理技術的分布式安全審核系統,見圖1為計算機安全審核管理體系結構。

圖1 計算機安全審核管理體系結構
由圖1可知主機網絡安全審核包括基于主機的安全審核、基于網絡的安全審核,審核內容分別為:主機安全審核用于監督系統、事件,根據操作系統記錄日志進行入侵檢測并進行系統漏洞修復;基于網絡安全審計主要是對網絡傳輸數據包進行分析確保網絡數據安全。集中式安全審核系統和分布式安全審核系統包括集中安全審核和分布式安全審核,集中式安全審核系統將各個設備數據采集到一起進行數據分析,該方式實現容易但是存在網絡傳輸容量、計算能力有限情況;分布式安全審核系統包括主機監視和中心計算機量大模塊,如圖2為分布式安全審核系統結構圖。

圖2 分布式審核系統結構圖
由圖2可知分布式審核系統結構中,網絡檢測器分布式各個地方,將采集數據傳輸到主機,解決了集中運算、傳輸能力問題,從而實現了系統運行效率。但是缺點是容易造成中心計算機單點失效以及系統擴展方面存在缺陷。
當前計算機安全分析多采用安全日志和流量數據進行安全審核。根據計算機安全審核指標有漏洞、系統配置、訪問日志、用戶行為、應用程序安全、業務指南、外部情報等。訪問日志包括主機入侵檢測、安全分析、審核管理。流量管理包含代碼檢測、木馬檢測、蠕蟲檢測、流量異常檢測、網絡入侵檢測。網絡審核中會存儲大量信息,將大數據技術應用到計算機安全審核中可實現安全信息關聯、提高響應效率[9,10]。本文就大數據及時在計算機安全審核中應用進行研究。
大數據平臺由采集層、存儲層、數據挖掘層、數據展示層構成。所設計的大數據計算機安全審核平臺網絡架構如圖3所示。

圖3 大數據計算機安全審核平臺網絡架構圖
由圖3可知大數據計算安全審核平臺中數據采集層包括鏡像流量、DNS流量、日志、用戶行為、檢測信息、結構化數據、非結構化數據、半結構化數據等,這些數據可從網絡設備中獲取。數據采集完成需要將數據存儲到分布式系統中,存儲數據使用框架有HDFS、Hadoop、MYSQL數據庫存儲[11]。數據挖掘層中采用MapReduce、Mahout等計算方法進行數據異常分析,本文提出一種基于遺傳算法的關聯規則算法進行病毒數據挖掘。數據展示層中向用戶展示信息查詢、檢索等。
現有計算機安全審核系統實現信息化管理,積累數據量比較大,目前對數據管理方式仍采用傳統平均值、方差分析等方法進行安全信息分析。隨著數據挖掘技術不斷發展,沉睡的數據中隱含大量信息,目前數據發掘算法有Apriori算法、決策樹算法、K-means算法等,眾多算法中Apriori算法由于編寫難度低、非常適合非數據類型的數據挖掘中,考慮到安全信息管理系統中存儲大非數據類型數據,因此本文選擇在現有Apriori算法基礎上進行算法改進并應用到安全信息挖掘中。
(1)Apriori算法思想
Apriori算法是常見的數據挖掘算法,該算法思想是假設數據庫中有n項數據集用符號S={s1,s,2...,sn}表示。有關聯的數據T是數據庫事務的總體數據集,那么有數據庫中每個事務F都是數據集S的子集即有T?S關系。用符號X?Y表示關聯規則,其中X、Y都屬于數據集同時滿足X?I,Y?Y,X?Y=?。為量化X、Y全集占總事務的比重可用支持度符號D表示,使用符號support(X?Y)=P(X?Y),為量化X、Y數據集中X占的比值用置信度表示,計算方法為confidence(X?Y)=P(X|Y)。進行集合處理中可能存在多個數據集將這些數據集集成在一起便是項集。如果數據集個數為m個稱為m項集。假設在數據集中有一項的支持度高于設置的最小支持度閾值min,將該數據集稱為頻繁項集,將所有的頻繁項集合組合在一起形成新的頻繁項集合用符號Lm表示[12]。
Apriori算法在進行數據挖掘時需要經過兩個步驟:第一步采用迭代方法查詢數據庫中的頻繁數據集,該過程主要計算支持度不低于用戶設置的閾值;第二步根據用戶提供的最小置信度的決策進行挖掘。
(2)Apriori算法步驟
通過以上分析可知Apriori算法核心思想采用每層搜索加上迭代的方法進行頻繁數據集獲取,同時對頻繁數據集按照挖掘技術方法找到各個數據集之間的關聯。如圖4為Aproori算法流程圖。

圖4 Apriori算法流程圖
如下為Apriori算法步驟:
步驟一:初始化從數據庫中遍歷所有數據找出第一階段頻繁項集合S1;
步驟二:將Sn-2(n≥2)按照自身連接生成n階候選項目集合Cn;
步驟三:從候選頻繁項目中任意選擇子集進行剪枝。如果在n階候選項目中存在Cn-1∈Cn,同時有Cn-1?Sn-1,表明該選項中不存在頻繁數,直接可刪除。
步驟四:按照步驟二、三執行直到項目中未見高階頻繁項目集合。最終得到挖掘結果。
下面進行Apriori算法實例分析。假設在數據庫中存儲數據集如表1所示。

表1 數據庫數據集
第一步對數據集進行遍歷,最終得到1階頻繁項目數據集為S1={1=3,2=5,3=3,4=2,5=2,6=4,7=3,9=1},將S1自身相連得到2階選項集合S2={12,13,14,15,16,17,19,23,24,25,26,27,29,34,35,36,37,39,45,46,47,49,56,57,59,67,69,79},再對S2進行自身連接形成數據集C3。
(3)遺傳算法
遺傳算法是由基因、染色體、種群、適應度、選擇、交叉及變異共同組成。如下為各個指標詳細分析。
1)基因。在遺傳學中它是DNA分析片段,基因上包含了大量的遺傳信息。基因是進行遺傳的最小單元。在遺傳算法中基因可用二進制、整數進行表達。
2)染色體。染色體中是有多個基因組成,是信息承載的物質。目前染色體編碼主要有浮點數編碼和二進制編碼。
浮點編碼是指假設存在種群數量為m,用符號xti表示第t代中i個個體,每個基因的長度為n,那么有個體xti∈Rn,可用xti表示 n維行向量,用符號xti={xti1,xti2,...,xtij}表示。那么在t代后有種群xti表示為n×m的矩陣。在種群中有矩陣X0={x01,x02,...,x0n}未見相同的兩行,這種種群稱為個體互異。
二進制編碼中假設種群的數量為m,用符號xti表示第t代中第i個個體,每個個體中的位數用l表示。每個基因的數目計算方法為:L=ml。個體xti可用ml維度的行向量表示,那么有xti={xti1,xti2,...,xtij}。最終得到二進制編碼轉化實數的計算方法為:

3)種群。進化論中種群是指由多個物種構成的群體。將這一概念引入到遺傳算法中,可知遺傳算法的種群是指某一代的所有染色體的總和。本文所設計的遺傳算法基于二進制串組成,種群初始數目設置在100以上。
4)適應度。為評價個體是否優秀,提出采用適應度方法進行個體好壞評價。遺傳算法中第一步是進行編碼,接著根據染色體編碼按照設置適應度方法進行適應度數值計算。適應度函數計算方法主要有如下幾種:
①需要求解目標函數可采用目標函數最大值計算方法為:Fit(f(x))=f(x),目標函數最小值計算方法為:Fit(f(x))=-f(x)。
②目標函數最優問題求解變種計算方法:當需要計算最小值時有:

式中cmax表示函數最大估計值。
當目標函數為最大值時有:

式中cmin表示函數的最小估計值。
③目標函數分式計算算法:當需要計算最小問題時有:

當目標函數計算最大問題時有:

適應度函數變化主要有線性變化、冪函數變化以及指數變化。如下為詳細分析。
①線性變化方法為:假設原有的適應度函數為f(x),變化后的適應度函數為f'(x),按照線性變化從而得到如下關系:

變化系數計算方法應遵循如下計算:已有的適應度函數平均值與轉化后的適應度平均值相等,如下為計算方法:

變化系數計算方法如下:

式中k表示倍數,一般設置在1-2之間。
②冪函數變化方法為:f'(x)=fk(x),其中k表示最優問題求解,根據實際情況進行求解。
③指數變化法為:f'(x)=e-af(x)。
5)選擇。選擇原理來自進化論,該過程是遺傳算法關鍵環節,選擇第一步是進行適應度計算。目前遺傳算法中選擇的算法主要有:基于偏差、基于方差、基于期望、基于概率。本文選擇基于概率的方法,按照如下進行概率計算:

6)交叉。交叉是基因重組重要環節。由于本文采用二進制交叉,而二進制交叉中包含交叉方法有單點交叉、多點交叉、均值交叉。如下為交叉詳細分析。
①單點交叉是指在編碼長度為m交叉點位于[1,m-1],當選擇好交叉點位置時只需將兩個父個體m點處進行交叉互換。
②多點交叉是指在編碼長度為m中交叉點的個數為k,按照單點交叉思路完成多點交叉。
③均勻交叉。單點交叉和多點交叉很容易造成編碼分成多個片段,為解決編碼分離狀況提出了均勻交叉。均勻交叉與多點交叉性質相似。
7)變異。基因經過多輪交叉后會出現局部最優問題,為解決這一問題提出在編碼中增加變異放置算法過早收斂。在變異過程中如果變異率過高超過0.5則遺傳算法轉變為搜素算法失去了算法本質。本文使用變異算法為單點算法。
(4)Apriori算法改進
遺傳算法在進行全局并行搜索時算法性能好,被廣發應用到多個行業中。Apriori算法優點是算法容易實現,缺點是處理大量數據時效率較低,為解決這一問題,文章提出將遺傳算法與Apriori算法結合形成基于遺傳算法的Apriori算法。
本文所設計的算法思想是將數據庫中數據劃分為有限數據集用符號D={d1,d2,...,dn}表示,這些數據集能夠在運行的系統中存儲并運行,按照Apriori算法思想進行強項集合計算。接著進行強項集合求解,該過程中使用遺傳算法從而解決了算法對數據庫的讀取問題,實現了算法性能提升。如圖5為基于遺傳算法的Apriori算法流程圖。

圖5 基于遺傳算法的Apriori算法流程圖
根據改進算法思想進行算法設計。首先進行遺傳算法編碼實現,本算法采用二進制編碼方式,將安全關聯的信息轉化為二進制并連接在一起,一個染色體代表安全的信息并包含關聯規則。根據計算機安全審核績關聯分析定義染色體排序情況,可用二進制編碼000100011…11網絡流量、。
按照上述操作完成編碼后進行適應度函數設置。遺傳算法需要解決問題時Apriori算法讀取數據庫效率問題。為此本文構建的適應度函數包括置信度和支持度兩個變量。如下為適應度函數計算方法:

式中:a,b 為常數;
S(x)表示支持度;
B(x)表示置信度;
接下來進行遺傳算法選擇操作。前面已分析,本文選擇概率計算方法進行選擇。
最終得到如圖6所示遺傳算法流程圖。

圖6 遺傳算法流程圖
(5)Apriori算法性能分析
本次試驗系統配置環境為操作系統Windows7 64位專業版;內存 16GB(16GB×1)DDR4 2666MHz;硬盤為SSD 128G;CPU主頻2.2GHz,六核心/十二線程,仿真平臺為Python 3.7。數據來源:本次試驗數據來源于近三年安全管理系統中存儲數據庫(管理系統數據庫為開源MySQL數據庫)。目前管理系統中存儲數據量達到500Mb,第一步是對數據庫進行劃分本算法劃分為20個數據集,將數據分別讀入內存,按照Apriori算法計算強項集,并將強項集合并在一起。根據前面分析安全關聯信息因素得到關聯表。接著進行參數設置,所使用適應度函數方法為f(x)=S(x)+B(x),最小支持度為0.2,最小置信度為0.84,設置種群初始個數為150,變異率為0.13,交叉概率為0.9。
下面進行改進算法與Apriori算法性能分析。
(1)劃分次數對挖掘效率影響。內存為512Mb、數據集為2500條,采用Python編程進行算法實現。結果如圖7所示。

圖7 劃分次數對挖掘效率影響
由圖7可知改進算法與經典Apriori算法隨著劃分次數增加挖掘時間隨著增加成類似于指數增長關系。改進算法挖掘時間比經典Apriori算法挖掘時間少,說明改進挖掘算法受劃分次數影響低于經典Apri?ori算法。
(2)挖掘數量對挖掘效率影響。內存為512Mb,劃分層次數量為6個,采用Python編程進行算法實現。結果如圖8所示。
由圖8可知改進算法與經典Apriori算法隨著挖掘數量增加挖掘時間隨著增加。改進算法挖掘時間比經典Apriori算法挖掘時間少,說明改進挖掘算法受挖掘數量影響低于經典Apriori算法。
(3)內存空間對挖掘效率影響。挖掘數量2500條,劃分層次數量為6個,采用Python編程進行算法實現。結果如圖9所示。

圖8 數據量對挖掘效率影響

圖9 內存空間對挖掘效率影響
由圖9可知改進算法與經典Apriori算法隨著內存空間增加挖掘時間隨著降低。改進算法挖掘時間比經典Apriori算法挖掘時間少,說明改進挖掘算法受內存空間影響低于經典Apriori算法。
從以上仿真數據可知將遺傳算法引入到Apriori算法中內存空間會得到降低,挖掘分類得到提升。在相同數量下改進算法能夠在較短時間內完成挖掘,說明改進算法從空間、時間都得到提升。
隨著物聯網到來計算機安全技術越來越顯重要,本文針對傳統計算機安全審核技術存在問題進行大數據安全管理研究,構建了基于大數據安全管理應用平臺,從數據采集層、存儲層、數據挖掘層、數據展示層進行大數據平臺設計。針對當前大數據平臺中Apriori運行占用內存高、運行效率慢問題構建了基于遺傳算法的Apriori算法,對算法進行時間、空間效率分析結果表明所設計算法提高了算法時間、空間效率具有廣闊應用前景。