趙春曄+涂山山+陳昊宇+黃永峰
摘 要: 云存儲將網絡中大量不同類型的存儲設備集合起來協同工作,共同對外提供數據存儲服務。由于其特征上存在著用戶和服務商之間的信任博弈,因此構建一個健康、公平、安全的云數據服務環(huán)境,對云數據的狀態(tài)及操作過程執(zhí)行客觀、公正的安全審計尤為重要。為此,提出一種基于用戶行為日志分析的云安全審計解決方案,通過制定數據“用戶行為”描述,從功能上實現基于用戶行為的系統日志信息分析,同時改進現有關聯規(guī)則挖掘算法,提出一種針對長序列的關聯規(guī)則挖掘算法。最后通過實驗表明該方案可有效地實現云安全審計中隱私數據泄露的追蹤與取證。
關鍵詞: 云安全審計; 日志分析; 關聯規(guī)則; 追蹤與取證
中圖分類號: TN911?34; TP309.2 文獻標識碼: A 文章編號: 1004?373X(2017)02?0001?05
Abstract: Cloud Storage provides data storage service for external by combing and coordinating different types of storage devices in the network, so that they can collectively work together. However it always exists a trust game relationship between users and service providers, therefore it is important to build a healthy, fair and secure cloud data service environment for the security auditing on the state of cloud data and operation processes. A cloud security?auditing scheme based on analysis of user behavior (UB) log data from cloud servers is proposed in this paper. The system log information analysis based on UB is realized functionally by description rules of UB. And the existing association rule mining algorithm is improved simultaneously, which is proposed for dealing with the Long Sequence Frequent Pattern (LSFP) to extract UB. The experiment result indicates that the solution can implement the tracking and evidence taking of data leakage efficiently for the cloud security auditing.
Keywords: cloud security auditing; log analysis; association rule; data tracking and evidence taking
0 引 言
云計算已然成為當今最熱門的應用及研究領域,但云計算所需的對于數據和資源的共享所帶來的云數據安全問題,一直是限制云計算技術發(fā)展的重要因素[1]?;萜赵?000年提出了“可信云”的概念,并提出了云數據安全的理論模型[2]——CALC(Cloud Accountability Life Cycle)。在CALC模型中,將云數據安全的整體解決方案描述為一個環(huán)形結構,將整個數據安全過程分為:策略、追蹤、日志、存儲、報告、審計、整理7個環(huán)節(jié),每個環(huán)節(jié)都對其下的環(huán)節(jié)提供支持,而整個過程的結果也反過來支持最初的策略環(huán)節(jié),整個安全過程是遞進優(yōu)化的。
在此基礎上,Ryan等人針對日志采集[3](Logging)環(huán)節(jié),提出了Flogger[4],S2Logger[5]等一系列的解決方案。其基本思想是對整個云數據環(huán)境下主機的操作系統日志進行采集,通過分析日志,得到云環(huán)境下數據使用的具體情況。這種區(qū)別于以往對數據出、入口進行檢測的方法[6?7],可以得到在整個云環(huán)境內數據被使用的真實情況。解決了以往數據安全方案中“整個云環(huán)境安全可信”這個不可自立[7]的前提,并使“可信云”可被證實。但隨著數據規(guī)模的不斷增大,將日志分析僅僅停留在日志采集階段已經無法滿足云計算“受信”的基本要求。迫切地需要一種對日志數據進行歸納分析的方法,即在R&R(Reporting and Replaying)階段進一步對日志進行處理。
基于這種思路的數據安全方案,將在多個環(huán)節(jié)對現有方案有所改進:在“存儲”階段,因為日志分析的引入,將原本的描述系統操作行為的日志,轉化成為描述“用戶行為” [8]的信息,使得日志數據的數量大幅精簡;而在“報告”和“審計”階段,本方案提供可讀性更高、更符合實際的描述信息,使數據安全審計變得更加面向用戶,為云環(huán)境的“可信性”提供更好、更直接的證實和支持;在“整理”和“策略”階段,由于本方案提供的記錄信息更能夠準確描述現實情況,也使得“策略”的制定從原本的技術層面升級到對現實行為的約束,使責任追究變得更加簡單、準確。
為此引入一種近年來主要用于知識發(fā)現(KDD),并在數據挖掘(Data Mining)和數據分析(Data Analyze)領域取得較好成果的方式——關聯規(guī)則挖掘(Association Rule Mining)。算法本身是為了解決經典的“購物籃”問題而提出的,通過分析顧客購買商品的情況,得到不同商品之間的聯系(基于統計學的聯系,而不是邏輯上的因果聯系)。
本文對頻繁模式發(fā)現算法FP?Growth進行了研究,并針對云安全審計中數據日志分析的實際需求,提出一種實際可行的改進算法,旨在將關聯規(guī)則挖掘引入特定模式數據集的分析過程。
1 相關理論知識
1.1 關聯規(guī)則算法分析
Agrawal于1993年首次提出關聯規(guī)則算法,以解決挖掘顧客交易數據中項集的關聯性問題。其基本思路是找到數據中頻繁性滿足要求的多項集,再以此為基礎分析項之間隱含的關聯性。在此基礎上,研究人員進行了大量的研究工作,主要在算法性能和面向對象上對算法進行了改進和擴展。
在性能改進方面比較突出的有Apriori算法和FP?Growth算法[9]。Apriori算法基于一種迭代的思想,逐步產生關聯性分析所需要的多項集,以此盡可能得到包含更多項的集合,以達到良好的分析結果。而FP?Growth算法是由韓家煒在2000年提出的,針對Apriori算法需要迭代產生多項集而帶來的算法時空復雜度問題,通過引入“樹”的概念,將迭代過程改進為通過一次掃描數據集以生成“頻繁模式樹(FP?tree)”,通過這種樹形結構表示數據集的頻繁性,再通過樹的搜索算法得到頻繁多項集。因其性能較優(yōu),已成為當今主流的關聯規(guī)則挖掘算法。
而在面向對象方面,AprioriAll[10]算法在Apriori算法的基礎上,對事務集加入了時間約束,以分析短序列集合中項之間的關聯性。
AprioriAll算法,在每一次掃描數據庫時,利用上一次掃描時產生的序列生成候選序列,并在掃描的同時計算它們的支持度,滿足支持度的候選序列作為下次掃描的序列。
GSP算法[11]是AprioriAll算法的擴展算法。在GSP算法中,引入了時間約束、滑動時間窗和分類層次技術,增加了掃描的約束條件,有效地減少了需要掃描的候選序列的數量,同時還克服了基本序列模型的局限性,更切合實際,減少多余無用模式的產生。另外,GSP利用哈希樹來存儲候選序列,減少了需要掃描的序列數量,同時對數據序列的表示方法進行了轉換,這樣就可以有效地發(fā)現一個候選項是否是數據序列的子序列。
Apriori及其改進算法,在數據集較大的情況下,會產生大量的中間集(候選集),使算法的時空復雜度變大,對大數據模型的效率不能令人滿意。
FP?Growth算法通過引入圖形結構,使得其算法結構更加適應于新型的計算框架和數據庫結構。而基于FP?Growth的改進算法,將工作重心更多地投入當今流行的分布式計算[12?13]、投影數據庫[14]方向,并取得了大量的成果。但FP?Growth及其改進算法,由于算法過程依賴“樹”型結構,因此不能解決序列等包含其他約束條件數據集的挖掘。
1.2 約束規(guī)則
通過分析,對關聯規(guī)則算法的改進,其本質都是一種約束條件的引入。Apriori算法基于一種簡單的邏輯約束,即“任何一個頻繁集的子集一定是頻繁的”。而FP?Growth算法則是通過“樹”的引入,將這種約束更加顯性的表述,以提升算法效率。而AprioriAll和GSP算法,則是通過對數據集引入時間約束,有效地過濾了“無用”的多項集。
從挖掘所使用約束的類型看,可以把用于關聯規(guī)則挖掘的約束分為:
(1) 單調性約束(Monotone Constraint)。所謂一個約束是單調性的約束,是指滿足的任何項集的超集也能滿足。
(2) 反單調性約束(Anti?monotone Constraint)。約束是“反單調的”,是指對于任意給定的不滿足的項集, 不存在的超集能夠滿足。
(3) 可轉變的約束(Convertible Constraint)。可轉變的約束是指約束條件可以在項集和它的子集間傳遞。如果一個約束無法用單調或反單調形式給出,那么就給使用上帶來困難,于是可通過對數據的特殊組織等方式使問題得到轉換。
(4) 簡潔性約束(Succinct Constraint)。簡潔性約束是指對一個項目子集可以用選擇性謂詞來表示成選擇操作。很顯然,如果一個約束是簡潔的,那么就可以直接使用SQL查詢來得到滿足條件的集合。在挖掘的不同階段可以盡量嘗試簡潔性的約束,這樣可以避免不必要的測試。
按照挖掘所使用約束條件的來源,又可將約束進行如下分類:
(1) 知識類型約束。利用知識背景可以過濾無關信息。
(2) 數據約束。利用數據的某些屬性,可以隔離與當前問題無關的信息。
(3) 維、層、度約束。利用數據或數據庫的結構和規(guī)模,將數據挖掘限定在某個區(qū)間,以濾除“額外”信息。
2 長序列關聯規(guī)則算法
隨著當今網絡技術的發(fā)展,對于流數據等具有強時間約束的數據集的關聯規(guī)則挖掘方法越來越值得重視。而通過對以往研究成果的分析,發(fā)現關聯規(guī)則挖掘的對象依然停留在離散的數據上。即便如GSP算法將時間約束引入事務,其面向的數據集(事務集)依然是離散的。在針對長序列結構的數據集時,依然不能滿足功能需求。
基于對已有研究成果的分析,本方案在FP?Growth算法基礎上,引入合理的約束條件,即強時間約束。并與之匹配的引用“有向圖”這一圖形結構,以直觀的表述約束條件。通過對算法結構的改造和新模型的引入,設計一種面向長序列的關聯規(guī)則挖掘算法Long Sequence Frequent Pattern(LSFP)。
2.1 LSFP算法描述
針對數據集強時間約束的特點,傳統FP?Growth算法構造的頻繁模式樹結構,并不能有效地描述數據集的有序性,在針對序列類型的數據集時,數據本身的性質可能使得頻繁模式樹規(guī)模過大而不可用。其根本是因為樹型結構更易于表述節(jié)點之間的聯系,而數據的有序性使得節(jié)點之間的“邊”具有描述更多數據含義的能力,針對有序數據,需要一種能夠直觀表述“邊”之間關系的圖形結構。為此,本方案引入一種新的圖形結構,即有向圖。對于序列,這種結構的優(yōu)勢主要體現在兩個方面:
(1) 有向圖不同于樹型結構,有向圖中的“邊”描述了“從節(jié)點到節(jié)點”的轉移關系,這種轉移關系,可以有效地描述強時間約束的數據集中“有序性”的信息。
(2) 有向圖的結構保證在圖里沒有重復出現的節(jié)點,相比于樹形結構,有向圖為算法提供了空間復雜度上的改進。
基于這種思想,提出算法結構和流程設計。
算法分為2步:一是算法訓練階段,通過訓練集得到整個數據集的頻繁性;二是分析挖掘階段,通過之前得到的數據頻繁性,得到數據集中滿足頻繁性的“UB(短序列)”。算法相關參數定義如表1所示。
在項集中,節(jié)點包含屬性和,用以描述節(jié)點是否可作為一個UB(User Behavior)的起始節(jié)點和終止節(jié)點。
2.2 算法步驟
算法第一階段:
Step1:掃描訓練集,生成項集;
Step2:生成有向圖,并以關聯矩陣描述;
Step3:選擇恰當的閾值,對有向圖進行剪枝;
Step4:引入先驗規(guī)則,優(yōu)化關聯矩陣,得到數據完整頻繁特征;
Step5:通過有向圖搜索,得到可能的“用戶行為”短序列(即事務)格式。
算法第二階段:
Step1:根據關聯矩陣描述的數據頻繁性,將長序列拆分成若干較短序列,形成待挖掘的序列集;
Step2:在序列集中挖掘出“行為”,生成“行為集”。
3 算法實現及性能分析
3.1 實驗環(huán)境
針對算法設計思路和實際問題,本方案選擇通過采集得到的Linux操作系統日志作為算法實現的數據集,因為其具有良好的時間屬性,并具有很好的代表性。并根據算法的復雜度選擇適合的軟、硬件環(huán)境。
3.1.1 算法環(huán)境
算法環(huán)境如表2所示。
3.1.2 算法參數
算法參數對性能的影響主要包含兩個方面:訓練集規(guī)模和最小支持度。訓練集規(guī)模:算法選擇使用數據集的一部分作為獲取頻繁性的訓練集,主要是因為來源相同的數據集和訓練集擁有相似的數據頻繁特性,使得通過分析訓練集得到的頻繁性對于數據集同樣是適用的。當使用整個數據集作為訓練集的時候,數據集和訓練集必定擁有相同的頻繁性。但過大的訓練集會使算法的整體效率降低,于是選擇規(guī)模恰當的訓練集,對算法性能有巨大的影響。最小支持度:最小支持度決定了算法認為哪些操作組合可以被認為是一種“用戶行為”。當選擇較小的支持度,必然會得到更多的“操作組合”,但這些組合是否足夠頻繁使其可以被看作一種“行為”卻無法保證;當選擇較大的支持度,可以保證“操作組合”即是“用戶行為”的準確性,但必然會使算法得到的操作組合變少。
3.2 算法分析
在進行算法性能分析之前,需要對算法結果有一個直觀的認識。在此將幾個常見的用戶行為所對應的操作系統日志序列(規(guī)則)展示如下:
(1) 文件創(chuàng)建
Create,wzq,3103,2406,2406,2387,nautilus,/home/wzq/De
sktop/test/new file,/home/wzq/,193,438,30
Close,wzq,3103,2406,2406,2387,30
(2) 文件復制
Open,wzq,3354,3054,3054,2752,test,log,/home/wzq/Desk
top/test/,577,438,4
Close,wzq,3355,3354,3054,2752,3Duplicate2,wzq,3355,
3354,3054,2752,4,1Close,wzq,3355,3354,3054,2752,4
(3) 文件編輯
Move,wzq,2956,2928,2928,2856,vim,aaa.txt,aaa.txt~,
/home/wzq/Desktop/test/
Create,wzq,2956,2928,2928,2856,vim,aaa.txt,/home/wzq/
Desktop/test/,577,436,3
Write,wzq,2956,2928,2928,2856,3,0,6F6E650A0A
Read,wzq,2856,1,2424,2405,21,0,
0D1B5B3F32356C226161612E747B7422
Close,wzq,2956,2928,2928,2856,3
Chmod,wzq,2956,2928,vim,aaa.txt,33204
前文中,從理論上分析了算法性能的影響因素。這里通過實驗數據對算法性能進行直觀的反映。
3.2.1 針對訓練集的算法性能分析
數據集和訓練集大小,是指在日志采集后經過“預處理”的數據大小。因為日志采集過程中會產生大量的與數據操作無關的系統日志信息,占原始日志數據的80%。為分析訓練集規(guī)模對算法性能的影響,選擇相同的數據集和最小支持度,評價算法性能的主要指標有得到的“規(guī)則”數、得到的“行為”數、運行時間。
實驗結果分析如下:
(1) 規(guī)則數與行為數。在實驗過程中,隨著訓練集規(guī)模從1 MB逐漸增大到10 MB,通過算法訓練階段可以得到更“完整”的規(guī)則信息,針對相同的數據集,得到的行為數從400余條增長到900余條。兩者與訓練集規(guī)?;境史蔷€性對數關系。如圖1所示。
(2) 算法運行時間。訓練集規(guī)模直接相關,隨著訓練集規(guī)模增大,算法訓練階段所需時間也相應提高,兩者間的關系基本呈線性。而隨著訓練集的增大,得到的“規(guī)則數”也增大,但兩者基本保持對數關系。而“規(guī)則數”的增大,也導致了算法挖掘“行為”階段需要對比更多“規(guī)則”。在實驗過程中,隨著訓練集規(guī)模從1 MB逐漸增大到10 MB,算法運行時間從400 ms增長到900 ms。算法運行時間與訓練集規(guī)?;境示€性關系。如圖2所示。
3.2.2 針對最小支持度的算法性能分析
關聯規(guī)則算法的最小支持度可以通過多重方式獲得,這也是相關改進算法研究的一個重要方面,在這里,只分析選用不同的支持度對算法性能的影響,對于計算最小支持度的算法不做討論。為分析最小支持度對算法性能的影響,選擇相同的數據集和訓練集,評價算法性能的主要指標有:得到的“規(guī)則”數、得到的“行為”數、運行時間。實驗結果分析如下:
(1) 規(guī)則數與行為數。隨著最小支持度的減小,必將使得到的規(guī)則數變大,也導致算法挖掘階段得到更多的行為數。在實驗過程中,隨著最小支持數從20逐漸增大到100,行為數從1 200余條減小到400余條,行為數、規(guī)則數與最小支持度基本呈非線性指數關系。但最小支持度的減小,也會把原本“不頻繁”的操作組合認定為一種頻繁的規(guī)則,這使得最終得到的行為在準確性方面有所不足,如圖3所示。
(2) 算法運行時間。由于訓練集大小不變,所以算法訓練階段所需時間保持不變。但由于最小支持度變小,使得得到的規(guī)則數增大,導致算法挖掘階段的時間消耗變大。在實驗過程中,隨著最小支持度從20逐漸增大到100,運行時間從1 200 ms減小到400 ms。運行時間與最小支持度基本呈非線性指數關系,如圖4所示。
4 結 語
本文從解決云數據安全性這個實際問題出發(fā),分析了已有解決方案優(yōu)劣,并研究、分析了現今在數據挖掘領域較主流的關聯規(guī)則挖掘算法。借鑒關聯規(guī)則的思想,設計并實現了一種針對主機操作系統日志的模式挖掘算法,將描述系統操作的進程級日志數據轉化為描述用戶行為的日志,為云數據安全審計提供更合適的信息。在以后的工作中,算法依然有需要改進的方面:
最小支持度的獲得。通過實驗可知,最小支持度對算法結果和過程的效率都有直接的影響。在本文的實驗范圍內,通過人為的設定一個閾值的方式獲得最小支持度,并嘗試改變閾值,分析最小支持度對算法結果和算法效率的影響。在現今的研究中,通過數據集的特征計算最小支持度的方式越來越主流,相應的計算方法也各有優(yōu)劣。在今后的工作中,將基于系統操作日志這個特定的數據集,設計并實現適合的最小支持度計算方法,改進算法性能。
算法在不同環(huán)境下的性能分析。在本文的實驗范圍中,將實驗環(huán)境設定在單用戶主機情景下。在這種情景下,用戶對文件進行的操作比較簡單,操作過程也相對容易理解、分析。在聯機環(huán)境或服務器環(huán)境下,通過日志分析表現出的行為模式必定與本文的實驗環(huán)境不同。在今后的工作中,將在不同的環(huán)境下進行實驗,并分析不同環(huán)境下的行為模式。以期達到日志分析的最終目的:為數據安全策略的制定提供現實依據。
參考文獻
[1] TU Shanshan, HUANG Yongfeng. Towards efficient and secure access control system for mobile cloud computing [J]. China communications, 2015, 12(12): 43?52.
[2] KO R K L, JAGADPRAMANA Peter, MOWBRAY Miranda, et al. TrustCloud: A framework for accountability and trust in cloud computing [C]// Proceedings of the 2011 IEEE World Congress on Services. [S.l.]: IEEE, 2011: 584?588.
[3] KO R K L, KIRCHBERG M., LEE B S. From system?centric to data?centric logging? accountability, trust and security in cloud computing [C] // Proceedings of Defense Science Research Conference and Expo. [S.l.: s.n.], 2011: 1?4.
[4] KO R K L, JAGADPRAMANA P, LEE B S. Flogger: a file?centric logger for monitoring file access and transfers with cloud computing environments [C]// Proceedings of 3rd IEEE International Workshop on Security in e?Science and e?Research (ISSR 11). [S.l.]: IEEE, 2011: 11?16.
[5] SUEN C H, KO R K L, TAN Y S, et al. S2Logger: end?to?end data tracking mechanism for cloud data provenance [C]// Proceedings of 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications. [s.l.]: IEEE, 2013: 123?130.
[6] MUNISWAMY?REDDY K K, HOLAND D A, BRAUN U, et al. Provenance?aware storage systems [C]// Proceedings of 06 Annual Technical Conference on USENIX. [S.l.: s.n.], 2006: 6?11.
[7] MUNISWAMY?REDDY K K, BRAUN U, HOLAND D A, et al. Layering in provenance systems [C]// Proceedings of the Annual Technical Conference of USENIX. [S.l.: s.n.], 2009: 11?16.
[8] 肖傳奇,陳明志.云環(huán)境下基于IFAHP的用戶行為信任模型研究[J].信息網絡安全,2015(12):14?20.
[9] HAN J W, PEI J, YIN Y W, et al. Mining frequent patterns without candidate generation [J]. Data mining and knowledge discovery, 2004, 8(1) : 53?87.
[10] AGRAWAL R, SRIKANT R. Mining sequential patterns [C]// Proceedings of 1995 Int Conf Data Engineering (ICDE 95). Taipei, China: IEEE Computer Society, 1995: 3?14.
[11] AGRAWAL R, SRIKANT R. Mining sequential patterns: generalizations and performance improvements[C]// Proceedings of 5th Int Conf Extending Database Technology (EDBT). Avignon: Lecture Notes in Computer Science, 1996: 3?17.
[12] MOHAMMAD El?Hajj, OSMAR R, ZA Iane. Parallel leap: large?scale maximal pattern mining in a distributed environment [C]// Proceedings of the 12th International Conference on Parallel and Distributed Systems. Washington D.C, USA: IEEE, 2006: 135?142.
[13] 鄭亞軍,胡學鋼.基于PFP的關聯規(guī)則增量更新算法[J].合肥工業(yè)大學學報(自然科學版),2015(4):500?503.
[14] PEI J, HAN Jiawei, MORTAZAVI?ASL B, et al. PrefixSpan: mining sequential patterns efficiently by prefix?projected pattern growth [C]// Proceedings of 2001 Internationaol Conf on Data Engineering. Heidelberg, Germany: [s.n.], 2001: 215?224.
[15] KO R K L. Data accountability in cloud systems [J]. Security, privacy and trust in cloud systems, 2013, 35: 211?238.
現代電子技術2017年2期