隨著大數據及云計算的快速發展,越來越多的企業將業務遷移上云,極大地提高了效率,同時對云的審計也成為新的安全需求。與之對應的則是于云平臺版本的不斷迭代,不同廠家云平臺日志格式的差異,種種因素都增加了日志審計的復雜性。現有的云審計系統多數是基于某一種云產品的標簽化日志,但實際應用中事件日志多為海量的、未標簽化的日志,因此從未標簽化的海量用戶日志中,發現和審計系統中的實際行為具有重要意義。本文將基于多云上用戶行為產生的大量事件日志,通過流程挖掘模型,設計一種基于非標簽化的云上用戶日志的審計系統,同時在審計過程中可以根據行為追溯到產生該行為的原始日志,形成一條完整的證據鏈。
1
云審計技術研究現狀及主要問題
1.1 云審計技術研究現狀
隨著云的廣泛應用,越來越多的業務遷移上云,極大地提升了效率、降低了成本。但是在使用過程中,云上的網絡安全性也不容忽視。除了有一些常用的主動措施來提高云的安全性,還需要結合被動措施來保證云的安全性,云審計是一種常用的提高網絡安全性的有效手段。云上常見的安全風險主要包括但不限于操作者身份不明確、操作過程不透明、操作內容不可知、操作行為不可控、操作事故無法定位等。除此之外,用戶的過失和惡意操作也可能會危害云上業務及數據的安全。
隨著云計算技術的高速發展,系統透明度越來越低,用戶和監管人員難以感知云上發生的違規操作,無法及時做出應對,降低了云操作系統的整體安全性。
同時,云上日志具有海量性、多樣性,日志中噪聲日志占比高,有效信息分布隨機等特點,無法直接對云上的日志進行分析。這些特點也導致普通的過濾算法無法充分過濾掉噪聲日志。云版本的不斷迭代,也是日志多樣性的原因之一,更增加了日志處理的復雜性。此外,幾款主流云產品的日志互不相同,難以用同一套日志模型從不同云中提取有效信息。
1.2 研究需求
在云日志中,包含了系統內部的安全事件、用戶訪問記錄、用戶操作行為、系統運行、系統狀態等各類信息。通過對云日志的分析處理,能夠有效地獲取云的運行狀態,跟蹤記錄用戶操作,極大地增強云的透明度和安全性。云日志的審計分析結果,能夠指導對云平臺資源的合理化配置、優化系統程序、增加防御機制、修復系統問題,提升云在運行過程中的穩定性、可靠性、安全性、合規性。
1.3 主要工作
云用戶行為審計系統通過分析云的運行日志,提取用戶操作行為信息,從而記錄用戶操作行為,了解云的運行狀態,及時發現云上發生的風險和違規操作,進而提高云的安全性。
研究設計獨特的云日志處理算法,能夠高效、準確地從海量、格式不確定的原始日志中過濾掉噪聲日志、提取有效信息,將其轉化為結構化的、可供大數據分析的用戶操作行為數據。基于操作行為數據,運用數據分析算法,可以對用戶的操作行為進行行為審計、合規性分析等;通過多維度展示行為數據,對于數據泄露這一類復雜流程進行設計分析;同時還提供了數據追溯、數據完整性校驗、審計策略、行為還原等功能。
2
云審計系統設計
2.1 云審計系統架構
云上用戶行為審計系統由云平臺采集模塊、數據分析模塊、大數據平臺模塊、門戶展示模塊構成。云審計的系統架構如圖 1 所示。

圖 1 云審計的系統架構
云平臺采集模塊通過代理或應用程序接口(Application Program Interface,API), 從 云 平臺獲取原始日志及云平臺上的租戶、用戶、資產、業務信息等元數據,將原始日志寫入大數據平臺模塊的分布式文件系統(Hadoop Distributed File System,HDFS)中,作為整個數據分析模塊的輸入。
大數據平臺模塊包括數據的存儲組件和大數 據 處 理 的 引 擎, 存 儲 組 件 為 HDFS、SQL、Hbase,主要用來存儲日志數據、日志模型、資產用戶元數據;大數據處理引擎為 Spark、SparkStreaming,主要用來批量處理大量數據。
數據分析模塊包括日志預處理、關聯分析、日志結構化幾個子模塊。日志預處理模塊調用大數據平臺的 Spark 服務,實現過濾、模型提取、流程挖掘,得到日志模型。日志結構化模塊調用 Spark Streaming 從 HDFS 中讀取原始日志,根據日志模型,提取原始日志中的有效信息,并將原始日志轉換為結構化日志信息;關聯分析模塊通過日志中提取的 ID 關聯云平臺的元數據,找到對應的用戶、資產、權限信息,并根據審計策略判斷該操作行為是否合規;同時關聯分析模塊還實現了運用圖計算技術來識別云平臺數據泄露路徑的一些模型算法。
門戶展示模塊則負責審計分析結果的多維度展示,讓用戶能夠直觀地了解當前系統用戶操作行為分類統計、合規性狀況、敏感資產等信息,并支持查閱系統記錄的用戶操作行為。同時,為了審計的整個證據鏈的完整性,也支持從行為溯源到原始日志的操作。
2.2 核心功能模塊
2.2.1 日志預處理模塊
日志預處理主要實現了日志過濾、流程挖掘、模型提取,如圖 2 所示。

圖 2 預處理流程
日志過濾 主要運用聚類算法從大量無用的云日志中過濾掉噪聲日志,保留有效日志,從而提高流程挖掘的準確性和高效性。
流程挖掘 主要實現了從過濾后的有效原始日志中提取出屬于同一個“事件”的操作日志 ,將其放入某個事件對應的日志集合。
模型提取主要實現了從原始日志中挖掘出某個操作對應的日志模型,日志模型包括:操作所觸發的日志集合,集合中每條日志的正則表達式,集合中每條日志的關鍵參數及其含義。
如圖 3 所示,“事件”是指用戶的一個操作行為,例如創建虛擬機、遷移虛擬機等操作都是一個事件,執行一個“事件”會觸發多條日志,從采集到的日志中挖掘出事件的日志序列,獲取其正則表達式,提取出描述“事件”的時間、觸發者、操作對象等關鍵信息的參數,生成一個“事件”對應的日志模型。

圖 3 日志模型
通過三步處理,最終能夠提取出某個操作“事件”所對應的日志模型,此時再由人工標注程序提取出事件所對應的具體操作是什么、提取的參數分別是什么含義,從而得到完整的日志模型。
2.2.2 日志結構化模塊
日志結構化模塊利用日志預處理模塊中得到的日志模型,從原始日志中提取出用戶操作行為和關鍵參數,并將其轉化為結構化的數據,以便于后續的關聯分析、審計等。結構化模塊的流程如圖 4 所示。

圖 4 結構化模塊流程
SparkStreaming 讀取 HDFS 中的原始日志,經過日志過濾模塊,然后對于每行有效日志根據事件的日志模型庫去匹配其正則表達式,如果匹配成功,則可以知道當前有效日志屬于哪一個事件,待某事件的日志模型對應的日志都收集齊了,則從收集到的日志中提取出對應的有效信息,生成一條新的結構化的數據,并寫入數據庫中。結構化后的數據都包含操作者、操作內容、對象目標、時間、結果、失敗原因、原始日志等要素。
日志結構化輸出的數據庫表中的每一行表示了一個單獨的“事件”,每一列表示了這個“事件”的要素。實際的事件日志只能包含有限的信息,因此提取出來的日志要素往往比需要的要素少,某個“事件”結構化后的數據記錄的要素的飽滿程度,是和該事件觸發的日志中包含的信息量相關的。
2.2.3 關聯分析模塊
關聯分析模塊首先根據日志結構化模塊結果庫中的 ID 信息,關聯云數據庫中的元數據,例如通過用戶 ID 關聯用戶的名稱、所屬租戶等,后續用于門戶展示模塊。同時根據關聯后的信息,生成審計策略,依據審計策略觸發告警。
(1)告警分析。告警分析是根據審計策略檢測出存在風險的行為的方法,存在風險的行為可以是某個獨立的操作,也可以是某一系列操作行為的組合。
審計系統主要是根據審計策略對結構化的數據所呈現的用戶行為進行分析判斷,從而確定用戶的行為是否存在風險、是否已經導致問題或者可能造成危害。
審計策略的生成方式主要有如下幾種:
①根據安全規范和需求,通過對“事件”的關鍵要素如操作內容、操作頻率、操作對象、訪問的黑白名單、訪問權限、操作時間、操作地點、操作 IP、操作是否成功等進行硬性的規定來生成策略,例如:禁止特定時間段內的某些敏感操作,直接禁止某些敏感操作,或者禁止某些特定的用戶執行這些敏感操作。
②根據用戶的行為習慣,取其以往的統計平均值,自動學習生成相應的策略,包括用戶經常訪問的對象、發起訪問的地點、訪問頻率、經常訪問的事件、訪問持續時間、訪問過程中的網絡流量等維度。一旦某次操作或者歷史經驗值不符合或者方差大于閾值,就可以判定為異常行為。
③通過挖掘分析曾經安全問題發生前后的歷史行為數據,采集問題發生前后哪些行為的統計值發生了異常變化,可以獲得此類問題發生前后云上用戶的操作頻率、操作行為組合、操作發生時間、主要操作等方面的征兆信息,從而生成新的審計策略,達到同類問題發生時提前告警的目的。
④系統支持復雜流程審計算法,能夠從一系列連續的操作事件中,提取出用戶的操作流程,并對其進行合規性審計,確保用戶操作符合規定流程。例如在遷移虛擬機之前必須進行備份操作,如果沒有備份,則視為違規。
通過這些審計策略,能夠有效地識別用戶的違規和風險操作,生成告警,極大地提高云系統的安全性。告警信息中包含了審計策略的描述和觸發本次告警的操作行為信息,以及分析所依賴的原始日志,能夠從告警的行為追溯到關聯的原始日志。
(2)數據泄露檢測。運用圖計算技術識別云平臺數據泄露的相關路徑,還原云平臺上因操作行為導致的數據泄露場景。先設置一個可能觸發泄露的行為集合,再基于關系度構建子圖的方法,篩選出資源和最遠行為,獲取影響路徑元素集合,最終采用起點、必經點、終點的方式找出數據泄露的行為路徑。該方法能夠發現隱藏在正常行為序列中的數據泄露行為序列,最大限度地還原數據泄露場景的行為。
2.2.4 門戶展示模塊
門戶展示模塊主要展示審計系統分析出的用戶操作行為數據和生成的告警數據,并進行多維度的展示。從多種維度直觀地展示系統的整體狀態和風險情況。
除了對某個租戶或者云系統范圍內的一段時間內的操作行為頻率、違規情況等進行展示,還可以對某個特定的虛擬資源進行全生命周期審計,進而進行多維度的展示。此外,還可以對某個獨立的用戶全生命周期過程中的所有行為進行多維度的分析展示。
2.2.5 數據采集模塊
數據采集模塊主要分為 API 采集和文本日志采集兩種。其中,API 采集主要是通過對接云平臺的元數據服務來獲得相關數據,文本日志則是通過與云平臺的日志服務器對接或者通過在云平臺內部部署日志采集代理的方式實現。將采集到的數據寫入 HDFS 或者消息中間件中,由數據分析模塊中的日志預處理模塊進行標準化處理。
3
云審計系統實現
3.1 系統拓撲結構
系統拓撲結構如圖 5 所示。用戶需要通過堡壘機登錄到前置機,然后在前置機上登錄云審計系統,或者查看數據庫。

圖 5 云審計系統拓撲結構
3.2 系統部署
系統部署方式十分靈活,如圖 6 所示,網絡中的各種運行設備只需簡單配置,將日志發送到數據層所在主機上(可通過日志接收代理轉發日志數據),其余設備網絡可通即可,對網絡的適應性極強,既能夠支持集中式的部署方式,也支持跨區域、分級分層、物理 / 邏輯隔離的大規模網絡的部署方式,是可水平擴展的海量事件采集、存儲、分析平臺。

圖 6 云審計系統的可擴展性部署
4
結 語
本文主要從基于云上日志來審計云上用戶行為的需求出發,描述了基于 Spark 大數據平臺的信息提取方法,包括:日志過濾,過濾掉無用日志,存入 HDFS 中;利用流程挖掘,從一系列交織在一起的行為日志中分離出多個行為流程的日志集合,再結合日志結構化模塊將常規變量替換為通配符,同時對日志條目進行規整處理,將處理后的結果存入 HDFS 中;最終實現將非格式化的日志轉變成格式化的行為數據,然后基于這些數據進行審計分析。如果是標準的日志,可以利用其補充完善現有的審計數據分析模塊中的算法,使其可以服務于其他云系統的審計。因此,本文提出的審計系統和方法對于利用海量的未標簽化的行為日志來審計用戶的行為具有重要的參考意義。
安全圈
關鍵基礎設施安全應急響應中心
中國信息安全
D1Net
聚銘網絡
安全牛
安全牛
關鍵基礎設施安全應急響應中心
D1Net
公安部網安局
信息安全與通信保密雜志社
一顆小胡椒