陳圣楠 范新民 許 力
1(福建師范大學網絡與數據中心 福州 350117)
2(福建師范大學計算機與網絡空間安全學院 福州 350117)
3(網絡與教育信息化福建省高校工程研究中心 福州 350117)
當前,我國網絡安全形勢依舊嚴峻,其中漏洞是重要影響因素之一.2020年,國家信息安全漏洞共享平臺共收集整理信息系統安全漏洞20 721個,其中高危漏洞7 422個,同比增長分別為28%和52.2%,如圖1所示.隨著《中華人民共和國網絡安全法》(簡稱《網絡安全法》)、《信息安全技術網絡安全等級保護要求2.0》(簡稱等保2.0)、《網絡安全漏洞管理規范》等一系列法律法規的相繼頒布,網絡安全已提升至國家戰略高度.漏洞管理是網絡安全風險的基礎.由于攻防不對稱性,攻擊方可利用漏洞的時間窗小于防御方修復漏洞的時間窗,這就要求管理者及時發現并處置漏洞.隨著業務規模的擴大,信息系統、漏洞數量不斷增多,漏洞管理也面臨巨大的挑戰.
漏洞遵循一定的生命周期規律.Arbaugh等人[1]最早提出漏洞管理生命周期的概念,并結合美國應急響應中心CERT報告,統計了3類漏洞以各種狀態的分布.張凱等人[2]對Mozilla工程中安全性漏洞的修復過程進行研究,發現這類漏洞的2次修復過程存在一定規律.劉奇旭等人[3]選取訪問路徑,利用復雜度和影響程度作為評估要素,采用層次分析法對漏洞進行風險評估.郭錫泉等人[4]利用大數據等技術加強網絡安全漏洞管理,從多維度收集漏洞情報,建立廣泛的情報網及時發現漏洞.高妮等人[5]認為依照風險等級劃分的漏洞修復先后次序過于簡單,他們利用漏洞屬性和風險等級計算威脅因子,并將漏洞按“自下而上,先局部后整體”劃分為4個等級排序,細化漏洞修復策略.章思宇等人[6]針對漏洞復測環節,設計了一個統一管理平臺,將漏洞與檢測腳本、參數關聯,以多進程的方式高頻復測漏洞狀態.劉暢[7]使用通用的開發語言和標準的服務接口集成網絡安全工具,實現漏洞管理的標準化和流程化.楊詩雨等人[8]雖然提出以工作流技術實現漏洞管理,但其提出的方案為系統建設階段,與本文所提的上線運維階段場景不同,且未考慮工作流中用戶和資源的安全性.已有的漏洞管理研究側重于情報收集和風險評估,對響應、處置缺乏持續跟蹤,而后者需要協同人、資源、工具共同完成,對流程的高效編排和安全流轉都有一定的要求.
本文從流程設計和訪問控制2方面構建多約束安全工作流模型,并將其應用于漏洞管理,主要創新點有以下2點:
1) 改進基于任務-角色的訪問控制模型,從用戶屬性、資源屬性、任務時效等多維度對權限進行靜態和動態約束,構建多約束安全工作流模型;
2) 分析漏洞管理中的參與者和影響因素,以漏洞修復為核心,將人與工具都考慮其中,基于多約束安全工作流對漏洞管理流程進行設計建模,實現半自動化的漏洞閉環管理.
一個標準的工作流是由若干個任務編排組成的,因此工作流系統中多采用基于任務和角色的訪問控制(task-role based access control,T-RBAC)模型,即在角色與權限之間添加任務作為中介,保留以指派角色的方式向用戶進行授權.然而,T-RBAC模型缺少對用戶、資源、任務和環境特性的細化,無法適應多樣性的訪問控制需求.因此,本文提出多約束安全工作流模型,如圖2所示.該模型在T-RBAC模型基礎上增加用戶屬性UATT、資源屬性RATT、環境屬性EATT和任務屬性TATT等多重屬性對用戶進行權限約束;引入時效機制并與任務屬性結合,預定義任務的有效時間,限制單任務的執行時長,使用戶僅能在任務執行時激活相應權限,以縮短整個工作流的延遲;利用權限決策點PDP對屬性規則進行計算得到授權結果.
定義1.用戶、角色、任務、操作、資源和權限.我們保留了它們在T-RBAC模型中的語義,分別表示為USERS,ROLES,TASKS,OPS,RES和PRMS.其中,權限是由資源和操作構成二元組,即?p∈PRMS,p=(op,res),op∈OPS,res∈RES.
定義2.工作流WORKFLOW.由于工作流是由一系列任務編排組成的,因此任務具有一定的時空性.
定義3.屬性ATT.屬性是參與者所具有的特性的集合,屬性是由實體(用戶、資源、環境、任務)、屬性名、屬性值域和動靜特性構成的四元組,即?att∈ATT,att=(entity,attName,attDomain,sp),可分為用戶屬性UATT、資源屬性RATT、環境屬性EATT、任務屬性TATT.其中,用戶屬性和資源屬性屬于靜態屬性,環境屬性屬于動態屬性,任務屬性屬于混合屬性.用戶屬性是對執行操作的用戶的描述,包括用戶名、用戶歸屬組織、聯系電話/郵箱等.資源屬性是對執行操作的對象的描述,包括資源名、資源類別、資源管理者等.環境屬性是對執行操作時會話狀態的描述,包括時間、位置、網絡狀態、場景(日常/緊急)等.任務屬性是對當前任務實例的描述,包括任務實例名、執行時間、執行時長、任務狀態等.屬性值域根據屬性含義分為原子值或集合值.
定義4.屬性表達式AE.一般屬性表達式是將變量attName與值value通過邏輯運算符op比較計算,表示為?ae∈AE,op∈{=,≠,<,>,≤,≥}.更復雜的表達式則需要利用非、交、并、差等算子合成一般表達式得到.
定義5.策略決策點PDP.策略規定了用戶對資源的訪問約束要求.策略決策點是通過綜合上下文中的多個實體和屬性信息,利用預置的策略集對訪問請求的合法性進行判定.
模型中的元素之間存在多種關系.實體與屬性之間為關聯關系;用戶和角色、角色和任務、任務和權限之間為指派關系.模型通過多種關系構成角色約束、任務約束和屬性約束限制用戶的最終權限.
多約束安全工作流模型在流程流轉過程中協同角色、任務和屬性進行用戶授權.其策略決策機制主要包括4個組件:策略執行點PEP,提供最終執行策略結果,決定是否訪問資源;策略決策點PDP,通過策略和角色、任務、屬性信息判斷用戶是否有無權限;策略信息點PIP,為執行決策提供決策需要的信息;策略管理點PAP,負責管理和配置策略.如圖3所示.
具體決策步驟如下:
1) 用戶從前端發起對任務的權限請求,請求被PEP攔截.PEP分析請求中的用戶、資源、任務、環境以及操作信息并進行驗證.驗證通過,則將請求轉發PDP.
2)PDP向PAP查詢權限集和策略集.權限集和策略集的基本單元分別是權限和策略.權限建立了操作與資源之間的映射關系.策略通過組合若干個規則歸結約束條件,規則由判定條件和結果組成.
3)PDP從轉發請求中獲取的信息有限,因此要向PIP請求詳細的屬性信息和角色-任務的映射關系.同時,PIP中的變化也會及時反饋到PDP中,動態參與到最終的結果判斷以實現細粒度的訪問控制.
4)PDP結合用戶當前的角色-任務信息與權限集得到用戶可用的最大目標權限集,并利用屬性信息對其進一步約束,縮減會話激活的范圍,令會話中的可用權限必須滿足相應的用戶屬性、資源屬性、環境屬性和任務屬性.
5)PDP輸出授權結果True或False,并將其返回給PEP.PEP根據結果決定是否訪問后端資源.
雖然大多數企事業單位部署了安全防護設備和軟件,但由于缺乏完善的漏洞管理流程,仍然長期受到漏洞入侵和網絡攻擊.本文基于多約束安全工作流改進傳統的漏洞管理流程,實現細粒度的訪問控制,確保流程的安全性和時效性.
前置情況分析主要是對漏洞管理流程的主客體和約束條件進行分析.主體為漏洞管理的用戶,可分為4類角色:建設人員、監管人員、運維人員和安全人員,其職責如表1所示.用戶屬性包括姓名、部門、職位、聯系方式等.客體為漏洞,漏洞屬性包括歸屬資產、類型、風險程度、修復優先級等.

表1 漏洞管理流程中的角色職責
漏洞管理流程中的模型約束以多約束安全工作流中的3類約束為主.角色約束限制了用戶執行的任務,即不同角色可執行的任務不同.監管人員可以隨時進入流程,而其他角色則只能在相應任務執行時進入任務.任務約束對用戶執行任務時使用的資源和操作進行限制.例如,安全人員在復測時只能編寫復測結果,而不能修改監管人員的審批意見.屬性約束包含數據范圍和操作時間的限制.例如,監管人員可以訪問全單位的信息資產,運維人員僅能訪問其運維的信息資產.針對上述情況,傳統的T-RBAC模型需要根據屬性數量定義更多的角色才能完成授權.而本文基于多約束安全工作流模型,在漏洞管理流程中僅需定義4個角色,配合約束的改變即可靈活調整用戶權限.
由于漏洞所造成安全問題具備一定的時效性,每個漏洞都具有一個類似產品的生命周期的概念.因此,只有對漏洞生命周期的概念進行研究并分析其內在的一些規律,才能真正解決漏洞的危害.
基于生命周期理論,漏洞管理流程由“發現—上報—響應—處置—復測”5個任務組成.任務根據執行者的不同(人或工具)可分為人工任務和腳本任務.圖4為泳道視圖下的漏洞管理流程:
各任務的具體描述如下:
1) 發現.安全人員利用漏洞掃描工具發現漏洞或從其他渠道收集漏洞情報,對漏洞情報進行驗證并排除誤報.
2) 上報.安全人員對漏洞和資產進行風險評估,形成報告上報監管人員.
3) 響應.監管人員對報告內容進行審核,并將報告轉發給系統運維人員.
4) 處置.系統運維人員接到報告,根據報告內容可選擇自己修復漏洞,或與建設人員配合共同對漏洞進行整改.
5) 復測.漏洞處置完畢后,運維人員可通過接口調用漏洞掃描工具或由安全人員對整改結果進行確認,確認后生成整改復測結果.如某漏洞無法整改,安全人員確認后審核通過,此后漏洞掃描器不再掃描已確認誤報/無法整改的漏洞,進行漏洞掃描器的優化.
本文基于SpringBoot,jCasbin和Activity框架實現所提方案.jCasbin是一個由Java語言打造的輕量級開源權限框架,支持RBAC,ABAC等多種訪問控制策略.我們將其與工作流引擎Activity結合構建多約束安全工作流,并將其應用于漏洞管理流程.平臺中的其他業務操作由SpringBoot完成.
如圖5所示,系統分為4層.最底層為數據層,完成系統中數據采集與預處理.第2層為功能層,通過定義角色和任務配置流程權限,使數據操作更加安全.資產管理盤點信息系統以及與之相關的重要資產數據.漏洞管理是系統的核心,系統將漏洞與重要資產、信息系統關聯,使脆弱點定位更加準確.不同角色通過跟蹤、處理、分析漏洞,形成完整的漏洞整改報告.第3層是表現層,通過Web進行展示數據,方便用戶掌握全局.最上層為用戶接入層,向不同用戶提供差異化的數據視角.
圖6為系統的權限配置界面,我們在左側創建角色,并將角色關聯到右側的任務和功能.這樣當用戶擁有的角色與任務執行角色匹配時,用戶獲得相應權限,當用戶完成任務時其權限被回收.同時,我們還通過勾選方式限定用戶操作的數據域.基于多約束工作流的訪問控制模型使權限的分配和回收可隨任務執行動態進行,令系統讀寫數據更加安全,管理角色、任務更加簡單.
我們在某高校實地部署了漏洞管理系統,并對校內36個信息系統進行了監管.如圖7所示,漏洞管理系統可對資源漏洞信息進行統一關聯、展現和告警,清晰反映漏洞處置進度、執行人員和耗時情況,使執行人員和管理人員及時跟蹤資源漏洞生命周期,清楚地掌握全網的安全健康狀況,實現漏洞全生命周期的可視、可控和可管.系統上線后,平均漏洞響應和處置時長相較之前縮短了1~2天,月辦結數量增加到10~15個,漏洞管理效率有了明顯提升.
針對當前漏洞管理不規范、安全性差等問題,本文提出基于多約束安全工作流的漏洞管理系統.多約束安全工作流模型通過在T-RBAC策略上添加多重屬性實現工作流場景下靈活的授權.同時,本文分析了漏洞管理流程中的角色、任務以及屬性等因素,結合多約束安全工作流實現漏洞管理流程,以工單方式指派任務給相應角色,并從多屬性限制用戶訪問的數據域和操作時限,保障了流程的高效性和安全性,真正落實了信息系統定期評估和漏洞跟蹤工作.