但唐仁 林中都
(1.深圳信息職業技術學院,廣東深圳 518172;2.深圳市華諭電子科技信息有限公司,廣東深圳 518172)
執法記錄儀系統廣泛應用于公檢法、城管等行業執法,是由可視化指揮調度平臺和記錄儀終端兩部分組成。其中可視化指揮調度平臺包括設備服務、WEB服務、業務服務、存儲服務、流媒體服務、Stun/Turn服務等模塊功能,通過SaaS化平臺部署,實現執法儀終端設備網聯化管理和應用。該系統能提供豐富的終端接入能力,為上游中小廠商降低其設備聯網管理的壁壘;能提供組件化功能調用,為中下游集成商輸出功能組件,增強其集成交付能力;能提供“端+網+業務+平臺”多重安全防護,確保網絡安全,其中記錄儀終端設備的安全防護就在于畫像技術的應用。
在當前的研究成果中,利用物聯網異常行為感知用于畫像技術的機器學習算法主要有[1-2]:基于數據聚類算法、基于遺傳算法、基于粒子群算法等算法,在物聯網安全防護中,異常行為的感知主要有兩種方法:(1)基于閾值的監測方法,即如果物聯網傳感數據超過設置的某個閾值,則認為事件發生;(2)基于模式的監測方法,即根據傳感數據,采用模式識別的方法,判決事件是否發生。在本執法記錄儀系統安全防護中,利用數據聚類算法中的決策樹算法感知節點異常行為,建立如圖1所示的物聯網終端設備網絡訪問行為畫像數據模型,思路如下:

圖1 物聯網終端網絡訪問行為畫像數據模型Fig.1 Data model of Internet of things terminal network access behavior
(1)節點的分裂:基于三大節點判斷,即基本屬性、網絡流量統計屬性、網絡流量異常屬性,并將大節點分成n個子節點;
(2)閾值的確定,采用ID3決策樹[3],由增熵(E)原理來決哪個做父節點,哪個節點需要分裂。對于一組數據,熵越小說明分類結果越好,熵定義如式1所示:

物聯網節點行為畫像技術主要是應用于安全防護管理,設計用戶畫像模塊,從用戶登錄的信息、連接的服務器統計、訪問本地文件系統統計、鼠標鍵盤等行為數據等維度出發,建立其用戶行為的完整輪廓。不僅僅關注用戶所產生的流量,而且從多個維度上對用戶的自然屬性、操作習慣等特征進行提取和建立指標體系,并利用語義挖掘技術提取更深層次信息,從而幫助管理者量化地認知用戶以及用戶的安全形勢。
執法記錄儀系統首先是執法儀終端多數據源采集數據,包括流量、日志在內,同時還收集用戶的自然屬性,其次將數據進行預處理,除傳統的統計性描述之外,還對非結構化數據進行語義提取,獲得向量化表示,然后綜合使用聚類、群組劃分、推薦等機器學習算法,對用戶畫像進行建模,最后基于用戶模型對數據預測,保護執法記錄儀系統安全,如圖2所示。

圖2 畫像技術的實施過程Fig.2 Implementation process of portrait Technology
從數據來源上看,執法記錄儀系統數據主要有IP資產畫像(IP地址、域名反查、歸屬運營商、關聯威脅情報、攻擊行為、資產類型等)、域名畫像(域名信息、關聯IP、關聯子域名、Whois信息、ICP備信息、關聯威脅情報等)、失陷主機數據、區域安全報告、黑客組織及活動威脅情報。
從數據結構上看,在本系統中可分為三大類,即結構化的數據、半結構化數據和非結構化數據,其中結構化的數據包括:工作特征(如工作時長、工作量、加班時長,工作時間段等)等;半結構化數據包括:系統操作(如權限合規性、常用功能、操作頻率、操作時間段、有效操作數等),敏感操作(如越權操作、非本人操作、數據泄露等)、IP信譽、域名測繪數據等以及第三方標準接口獲取的數據;非結構化數據主要是流量的具體內容,格式上有文字、圖片、音頻、視頻等。
主要對結構化和半結構化的數據進行處理。處理的主要方向有兩個:統計性描述和向量化描述[4]。在機器學習之中,非數字的數據,在不轉化的前提下,只能進行onehot嵌入,沒有太大的實際意義。而基于關鍵字的提取,提取出的關鍵字需要再進行一次歸類以減少類別數,這種方式顯得很累贅,并且沒有直接地對數據進行數學上的表示。為了解決這個問題,對于文本型的非結構化數據,使用doc2vec來提取文檔地向量化表示。Doc2vec與word2vec稍有不同,在推測下一個單詞時,doc vector會與word vector連在一起,共同進行推測。在訓練完成之后,每個word都會被映射到一個獨特的vector上,并且每篇doc也會被映射到一個獨特的vector上。此時,這個doc vector就可以用于后繼的機器學習任務中,并且類似于word vector,doc vector也具有一定程度上衡量兩份不同文本之間相似度的能力。
3.3.1 用戶的應用行為模型
根據行為進行群體劃分,同一群體中所有用戶發生的行為當作群體中每一位成員的行為基線,訓練步驟如下:
(1)使用HTTP協議數據,拆分IP和URL,找出用戶、應用、動作。(2)添加外部條件,如時間劃分,來定義應用行為。(3)計算用戶行為矩陣(UV矩陣)。(4)根據UV矩陣使用聚類方法(Kmeans、高斯聚類、密度聚類),找出行為相似的用戶群。(5)批操作(3次),當該群組某個用戶在滿足上述條件下,進行了審批操作100次,那么將報出異常。
3.3.2 用戶的數據行為模型
以用戶為對象,計算出每個用戶對于每種應用的數據行為基線。訓練步驟如下:
(1)分別采集某個用戶使用的每種應用涉及的文件。(2)針對特定用戶-特定應用涉及的文件,進行內容性信息提取。(3)對內容性信息進行分詞,并且通過doc2vec提取出doc vector。(4)使用內置關鍵詞庫的LDA主題模型,進行內容分類(topic)和敏感詞提取(關鍵詞),得到兩種結果:“用戶-應用-敏感詞(次權限)-標簽(首權限)”、“標簽(首權限)-敏感詞(次權限)”。(5)根據doc vector,使用聚類方法[5](Kmeans、高斯聚類、密度聚類),劃分出相似的數據群組。根據用戶對不同數據群組的使用情況(次數、頻率、時間段等),對用戶使用數據的行為構造基線。
3.4.1 預測用戶的行為
(1)抽取描述該行為的特征[6-7]:獲取訪問的host返回的response正文內容,進行分詞,使用LDA主題模型,提取關鍵詞或主題,以此作為該行為的特征。(2)學習用戶的偏好特征,推薦其喜好的行為(HOST):分類器方式:通過獲取的用戶喜好的HOST(有訪問過的)和不喜好的HOST(沒訪問過的)特征數據,構建分類器。當出現新的一批HOST,通過分類器可以識別用戶是否對該HOST感興趣。(3)最近鄰相似性方式:對于一批新的待檢測行為(HOST),利用用戶過去訪問過的HOST,提取出特征向量,使用歐式距離或cosine距離,計算用戶歷史訪問過地所有行為中,與該批行為最相似的K個行為,然后找出距離最小或最相似的行為,作為推薦結果。
3.4.2 預測用戶使用數據的行為
(1)抽取歷史行為特征:將用戶歷史使用的數據,提取doc vector,進行聚類后,得到經常使用的數據的所屬分類,次數,頻率,時間段等信息。(2)使用聚類(Kmeans、高斯聚類、密度聚類等)方法,尋找與該用戶的數據行為相近的用戶。(3)從這群相似的用戶中,找出該用戶沒有使用過,但在用戶群組中很有可能使用的數據類別,并認為該用戶有一定可能使用該類別的數據,從而在這類情況不報告為異常。
3.4.3 檢測用戶異常使用數據行為
(1)獲取用戶在該應用性操作的文件。(2)進行內容性信息提取。(3)對內容性信息分詞。(4)分詞結果與“標簽(首權限)-敏感詞(次權限)”表進行匹配,找出文件屬于每一類標簽的概率。(5)根據文件的類標簽列表,與該用戶的標簽列表進行匹配,確定與該有用戶的標簽列表重合程度,如果重合程度低,則告警。
對執法記錄儀系統的攻擊主要來自記錄儀終端設備的入侵,通過利用決策樹算法感知節點異常行為,建立物聯網終端設備網絡訪問行為畫像數據模型。在具體實施過程中,先多數據源采集數據,再經過數據預處理、建立用戶模型,最后基于用戶模型進行數據預測,判斷出記錄儀終端設備的入侵攻擊數據,從而保護了執法記錄儀系統的安全。