陳圣楠 范新民 許 力
1(福建師范大學(xué)網(wǎng)絡(luò)與數(shù)據(jù)中心 福州 350117)
2(福建師范大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)空間安全學(xué)院 福州 350117)
3(網(wǎng)絡(luò)與教育信息化福建省高校工程研究中心 福州 350117)
當(dāng)前,我國(guó)網(wǎng)絡(luò)安全形勢(shì)依舊嚴(yán)峻,其中漏洞是重要影響因素之一.2020年,國(guó)家信息安全漏洞共享平臺(tái)共收集整理信息系統(tǒng)安全漏洞20 721個(gè),其中高危漏洞7 422個(gè),同比增長(zhǎng)分別為28%和52.2%,如圖1所示.隨著《中華人民共和國(guó)網(wǎng)絡(luò)安全法》(簡(jiǎn)稱《網(wǎng)絡(luò)安全法》)、《信息安全技術(shù)網(wǎng)絡(luò)安全等級(jí)保護(hù)要求2.0》(簡(jiǎn)稱等保2.0)、《網(wǎng)絡(luò)安全漏洞管理規(guī)范》等一系列法律法規(guī)的相繼頒布,網(wǎng)絡(luò)安全已提升至國(guó)家戰(zhàn)略高度.漏洞管理是網(wǎng)絡(luò)安全風(fēng)險(xiǎn)的基礎(chǔ).由于攻防不對(duì)稱性,攻擊方可利用漏洞的時(shí)間窗小于防御方修復(fù)漏洞的時(shí)間窗,這就要求管理者及時(shí)發(fā)現(xiàn)并處置漏洞.隨著業(yè)務(wù)規(guī)模的擴(kuò)大,信息系統(tǒng)、漏洞數(shù)量不斷增多,漏洞管理也面臨巨大的挑戰(zhàn).
漏洞遵循一定的生命周期規(guī)律.Arbaugh等人[1]最早提出漏洞管理生命周期的概念,并結(jié)合美國(guó)應(yīng)急響應(yīng)中心CERT報(bào)告,統(tǒng)計(jì)了3類漏洞以各種狀態(tài)的分布.張凱等人[2]對(duì)Mozilla工程中安全性漏洞的修復(fù)過(guò)程進(jìn)行研究,發(fā)現(xiàn)這類漏洞的2次修復(fù)過(guò)程存在一定規(guī)律.劉奇旭等人[3]選取訪問(wèn)路徑,利用復(fù)雜度和影響程度作為評(píng)估要素,采用層次分析法對(duì)漏洞進(jìn)行風(fēng)險(xiǎn)評(píng)估.郭錫泉等人[4]利用大數(shù)據(jù)等技術(shù)加強(qiáng)網(wǎng)絡(luò)安全漏洞管理,從多維度收集漏洞情報(bào),建立廣泛的情報(bào)網(wǎng)及時(shí)發(fā)現(xiàn)漏洞.高妮等人[5]認(rèn)為依照風(fēng)險(xiǎn)等級(jí)劃分的漏洞修復(fù)先后次序過(guò)于簡(jiǎn)單,他們利用漏洞屬性和風(fēng)險(xiǎn)等級(jí)計(jì)算威脅因子,并將漏洞按“自下而上,先局部后整體”劃分為4個(gè)等級(jí)排序,細(xì)化漏洞修復(fù)策略.章思宇等人[6]針對(duì)漏洞復(fù)測(cè)環(huán)節(jié),設(shè)計(jì)了一個(gè)統(tǒng)一管理平臺(tái),將漏洞與檢測(cè)腳本、參數(shù)關(guān)聯(lián),以多進(jìn)程的方式高頻復(fù)測(cè)漏洞狀態(tài).劉暢[7]使用通用的開(kāi)發(fā)語(yǔ)言和標(biāo)準(zhǔn)的服務(wù)接口集成網(wǎng)絡(luò)安全工具,實(shí)現(xiàn)漏洞管理的標(biāo)準(zhǔn)化和流程化.楊詩(shī)雨等人[8]雖然提出以工作流技術(shù)實(shí)現(xiàn)漏洞管理,但其提出的方案為系統(tǒng)建設(shè)階段,與本文所提的上線運(yùn)維階段場(chǎng)景不同,且未考慮工作流中用戶和資源的安全性.已有的漏洞管理研究側(cè)重于情報(bào)收集和風(fēng)險(xiǎn)評(píng)估,對(duì)響應(yīng)、處置缺乏持續(xù)跟蹤,而后者需要協(xié)同人、資源、工具共同完成,對(duì)流程的高效編排和安全流轉(zhuǎn)都有一定的要求.
本文從流程設(shè)計(jì)和訪問(wèn)控制2方面構(gòu)建多約束安全工作流模型,并將其應(yīng)用于漏洞管理,主要?jiǎng)?chuàng)新點(diǎn)有以下2點(diǎn):
1) 改進(jìn)基于任務(wù)-角色的訪問(wèn)控制模型,從用戶屬性、資源屬性、任務(wù)時(shí)效等多維度對(duì)權(quán)限進(jìn)行靜態(tài)和動(dòng)態(tài)約束,構(gòu)建多約束安全工作流模型;
2) 分析漏洞管理中的參與者和影響因素,以漏洞修復(fù)為核心,將人與工具都考慮其中,基于多約束安全工作流對(duì)漏洞管理流程進(jìn)行設(shè)計(jì)建模,實(shí)現(xiàn)半自動(dòng)化的漏洞閉環(huán)管理.
一個(gè)標(biāo)準(zhǔn)的工作流是由若干個(gè)任務(wù)編排組成的,因此工作流系統(tǒng)中多采用基于任務(wù)和角色的訪問(wèn)控制(task-role based access control,T-RBAC)模型,即在角色與權(quán)限之間添加任務(wù)作為中介,保留以指派角色的方式向用戶進(jìn)行授權(quán).然而,T-RBAC模型缺少對(duì)用戶、資源、任務(wù)和環(huán)境特性的細(xì)化,無(wú)法適應(yīng)多樣性的訪問(wèn)控制需求.因此,本文提出多約束安全工作流模型,如圖2所示.該模型在T-RBAC模型基礎(chǔ)上增加用戶屬性UATT、資源屬性RATT、環(huán)境屬性EATT和任務(wù)屬性TATT等多重屬性對(duì)用戶進(jìn)行權(quán)限約束;引入時(shí)效機(jī)制并與任務(wù)屬性結(jié)合,預(yù)定義任務(wù)的有效時(shí)間,限制單任務(wù)的執(zhí)行時(shí)長(zhǎng),使用戶僅能在任務(wù)執(zhí)行時(shí)激活相應(yīng)權(quán)限,以縮短整個(gè)工作流的延遲;利用權(quán)限決策點(diǎn)PDP對(duì)屬性規(guī)則進(jìn)行計(jì)算得到授權(quán)結(jié)果.
定義1.用戶、角色、任務(wù)、操作、資源和權(quán)限.我們保留了它們?cè)赥-RBAC模型中的語(yǔ)義,分別表示為USERS,ROLES,TASKS,OPS,RES和PRMS.其中,權(quán)限是由資源和操作構(gòu)成二元組,即?p∈PRMS,p=(op,res),op∈OPS,res∈RES.
定義2.工作流WORKFLOW.由于工作流是由一系列任務(wù)編排組成的,因此任務(wù)具有一定的時(shí)空性.
定義3.屬性ATT.屬性是參與者所具有的特性的集合,屬性是由實(shí)體(用戶、資源、環(huán)境、任務(wù))、屬性名、屬性值域和動(dòng)靜特性構(gòu)成的四元組,即?att∈ATT,att=(entity,attName,attDomain,sp),可分為用戶屬性UATT、資源屬性RATT、環(huán)境屬性EATT、任務(wù)屬性TATT.其中,用戶屬性和資源屬性屬于靜態(tài)屬性,環(huán)境屬性屬于動(dòng)態(tài)屬性,任務(wù)屬性屬于混合屬性.用戶屬性是對(duì)執(zhí)行操作的用戶的描述,包括用戶名、用戶歸屬組織、聯(lián)系電話/郵箱等.資源屬性是對(duì)執(zhí)行操作的對(duì)象的描述,包括資源名、資源類別、資源管理者等.環(huán)境屬性是對(duì)執(zhí)行操作時(shí)會(huì)話狀態(tài)的描述,包括時(shí)間、位置、網(wǎng)絡(luò)狀態(tài)、場(chǎng)景(日常/緊急)等.任務(wù)屬性是對(duì)當(dāng)前任務(wù)實(shí)例的描述,包括任務(wù)實(shí)例名、執(zhí)行時(shí)間、執(zhí)行時(shí)長(zhǎng)、任務(wù)狀態(tài)等.屬性值域根據(jù)屬性含義分為原子值或集合值.
定義4.屬性表達(dá)式AE.一般屬性表達(dá)式是將變量attName與值value通過(guò)邏輯運(yùn)算符op比較計(jì)算,表示為?ae∈AE,op∈{=,≠,<,>,≤,≥}.更復(fù)雜的表達(dá)式則需要利用非、交、并、差等算子合成一般表達(dá)式得到.
定義5.策略決策點(diǎn)PDP.策略規(guī)定了用戶對(duì)資源的訪問(wèn)約束要求.策略決策點(diǎn)是通過(guò)綜合上下文中的多個(gè)實(shí)體和屬性信息,利用預(yù)置的策略集對(duì)訪問(wèn)請(qǐng)求的合法性進(jìn)行判定.
模型中的元素之間存在多種關(guān)系.實(shí)體與屬性之間為關(guān)聯(lián)關(guān)系;用戶和角色、角色和任務(wù)、任務(wù)和權(quán)限之間為指派關(guān)系.模型通過(guò)多種關(guān)系構(gòu)成角色約束、任務(wù)約束和屬性約束限制用戶的最終權(quán)限.
多約束安全工作流模型在流程流轉(zhuǎn)過(guò)程中協(xié)同角色、任務(wù)和屬性進(jìn)行用戶授權(quán).其策略決策機(jī)制主要包括4個(gè)組件:策略執(zhí)行點(diǎn)PEP,提供最終執(zhí)行策略結(jié)果,決定是否訪問(wèn)資源;策略決策點(diǎn)PDP,通過(guò)策略和角色、任務(wù)、屬性信息判斷用戶是否有無(wú)權(quán)限;策略信息點(diǎn)PIP,為執(zhí)行決策提供決策需要的信息;策略管理點(diǎn)PAP,負(fù)責(zé)管理和配置策略.如圖3所示.
具體決策步驟如下:
1) 用戶從前端發(fā)起對(duì)任務(wù)的權(quán)限請(qǐng)求,請(qǐng)求被PEP攔截.PEP分析請(qǐng)求中的用戶、資源、任務(wù)、環(huán)境以及操作信息并進(jìn)行驗(yàn)證.驗(yàn)證通過(guò),則將請(qǐng)求轉(zhuǎn)發(fā)PDP.
2)PDP向PAP查詢權(quán)限集和策略集.權(quán)限集和策略集的基本單元分別是權(quán)限和策略.權(quán)限建立了操作與資源之間的映射關(guān)系.策略通過(guò)組合若干個(gè)規(guī)則歸結(jié)約束條件,規(guī)則由判定條件和結(jié)果組成.
3)PDP從轉(zhuǎn)發(fā)請(qǐng)求中獲取的信息有限,因此要向PIP請(qǐng)求詳細(xì)的屬性信息和角色-任務(wù)的映射關(guān)系.同時(shí),PIP中的變化也會(huì)及時(shí)反饋到PDP中,動(dòng)態(tài)參與到最終的結(jié)果判斷以實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制.
4)PDP結(jié)合用戶當(dāng)前的角色-任務(wù)信息與權(quán)限集得到用戶可用的最大目標(biāo)權(quán)限集,并利用屬性信息對(duì)其進(jìn)一步約束,縮減會(huì)話激活的范圍,令會(huì)話中的可用權(quán)限必須滿足相應(yīng)的用戶屬性、資源屬性、環(huán)境屬性和任務(wù)屬性.
5)PDP輸出授權(quán)結(jié)果True或False,并將其返回給PEP.PEP根據(jù)結(jié)果決定是否訪問(wèn)后端資源.
雖然大多數(shù)企事業(yè)單位部署了安全防護(hù)設(shè)備和軟件,但由于缺乏完善的漏洞管理流程,仍然長(zhǎng)期受到漏洞入侵和網(wǎng)絡(luò)攻擊.本文基于多約束安全工作流改進(jìn)傳統(tǒng)的漏洞管理流程,實(shí)現(xiàn)細(xì)粒度的訪問(wèn)控制,確保流程的安全性和時(shí)效性.
前置情況分析主要是對(duì)漏洞管理流程的主客體和約束條件進(jìn)行分析.主體為漏洞管理的用戶,可分為4類角色:建設(shè)人員、監(jiān)管人員、運(yùn)維人員和安全人員,其職責(zé)如表1所示.用戶屬性包括姓名、部門、職位、聯(lián)系方式等.客體為漏洞,漏洞屬性包括歸屬資產(chǎn)、類型、風(fēng)險(xiǎn)程度、修復(fù)優(yōu)先級(jí)等.
表1 漏洞管理流程中的角色職責(zé)
漏洞管理流程中的模型約束以多約束安全工作流中的3類約束為主.角色約束限制了用戶執(zhí)行的任務(wù),即不同角色可執(zhí)行的任務(wù)不同.監(jiān)管人員可以隨時(shí)進(jìn)入流程,而其他角色則只能在相應(yīng)任務(wù)執(zhí)行時(shí)進(jìn)入任務(wù).任務(wù)約束對(duì)用戶執(zhí)行任務(wù)時(shí)使用的資源和操作進(jìn)行限制.例如,安全人員在復(fù)測(cè)時(shí)只能編寫復(fù)測(cè)結(jié)果,而不能修改監(jiān)管人員的審批意見(jiàn).屬性約束包含數(shù)據(jù)范圍和操作時(shí)間的限制.例如,監(jiān)管人員可以訪問(wèn)全單位的信息資產(chǎn),運(yùn)維人員僅能訪問(wèn)其運(yùn)維的信息資產(chǎn).針對(duì)上述情況,傳統(tǒng)的T-RBAC模型需要根據(jù)屬性數(shù)量定義更多的角色才能完成授權(quán).而本文基于多約束安全工作流模型,在漏洞管理流程中僅需定義4個(gè)角色,配合約束的改變即可靈活調(diào)整用戶權(quán)限.
由于漏洞所造成安全問(wèn)題具備一定的時(shí)效性,每個(gè)漏洞都具有一個(gè)類似產(chǎn)品的生命周期的概念.因此,只有對(duì)漏洞生命周期的概念進(jìn)行研究并分析其內(nèi)在的一些規(guī)律,才能真正解決漏洞的危害.
基于生命周期理論,漏洞管理流程由“發(fā)現(xiàn)—上報(bào)—響應(yīng)—處置—復(fù)測(cè)”5個(gè)任務(wù)組成.任務(wù)根據(jù)執(zhí)行者的不同(人或工具)可分為人工任務(wù)和腳本任務(wù).圖4為泳道視圖下的漏洞管理流程:
各任務(wù)的具體描述如下:
1) 發(fā)現(xiàn).安全人員利用漏洞掃描工具發(fā)現(xiàn)漏洞或從其他渠道收集漏洞情報(bào),對(duì)漏洞情報(bào)進(jìn)行驗(yàn)證并排除誤報(bào).
2) 上報(bào).安全人員對(duì)漏洞和資產(chǎn)進(jìn)行風(fēng)險(xiǎn)評(píng)估,形成報(bào)告上報(bào)監(jiān)管人員.
3) 響應(yīng).監(jiān)管人員對(duì)報(bào)告內(nèi)容進(jìn)行審核,并將報(bào)告轉(zhuǎn)發(fā)給系統(tǒng)運(yùn)維人員.
4) 處置.系統(tǒng)運(yùn)維人員接到報(bào)告,根據(jù)報(bào)告內(nèi)容可選擇自己修復(fù)漏洞,或與建設(shè)人員配合共同對(duì)漏洞進(jìn)行整改.
5) 復(fù)測(cè).漏洞處置完畢后,運(yùn)維人員可通過(guò)接口調(diào)用漏洞掃描工具或由安全人員對(duì)整改結(jié)果進(jìn)行確認(rèn),確認(rèn)后生成整改復(fù)測(cè)結(jié)果.如某漏洞無(wú)法整改,安全人員確認(rèn)后審核通過(guò),此后漏洞掃描器不再掃描已確認(rèn)誤報(bào)/無(wú)法整改的漏洞,進(jìn)行漏洞掃描器的優(yōu)化.
本文基于SpringBoot,jCasbin和Activity框架實(shí)現(xiàn)所提方案.jCasbin是一個(gè)由Java語(yǔ)言打造的輕量級(jí)開(kāi)源權(quán)限框架,支持RBAC,ABAC等多種訪問(wèn)控制策略.我們將其與工作流引擎Activity結(jié)合構(gòu)建多約束安全工作流,并將其應(yīng)用于漏洞管理流程.平臺(tái)中的其他業(yè)務(wù)操作由SpringBoot完成.
如圖5所示,系統(tǒng)分為4層.最底層為數(shù)據(jù)層,完成系統(tǒng)中數(shù)據(jù)采集與預(yù)處理.第2層為功能層,通過(guò)定義角色和任務(wù)配置流程權(quán)限,使數(shù)據(jù)操作更加安全.資產(chǎn)管理盤點(diǎn)信息系統(tǒng)以及與之相關(guān)的重要資產(chǎn)數(shù)據(jù).漏洞管理是系統(tǒng)的核心,系統(tǒng)將漏洞與重要資產(chǎn)、信息系統(tǒng)關(guān)聯(lián),使脆弱點(diǎn)定位更加準(zhǔn)確.不同角色通過(guò)跟蹤、處理、分析漏洞,形成完整的漏洞整改報(bào)告.第3層是表現(xiàn)層,通過(guò)Web進(jìn)行展示數(shù)據(jù),方便用戶掌握全局.最上層為用戶接入層,向不同用戶提供差異化的數(shù)據(jù)視角.
圖6為系統(tǒng)的權(quán)限配置界面,我們?cè)谧髠?cè)創(chuàng)建角色,并將角色關(guān)聯(lián)到右側(cè)的任務(wù)和功能.這樣當(dāng)用戶擁有的角色與任務(wù)執(zhí)行角色匹配時(shí),用戶獲得相應(yīng)權(quán)限,當(dāng)用戶完成任務(wù)時(shí)其權(quán)限被回收.同時(shí),我們還通過(guò)勾選方式限定用戶操作的數(shù)據(jù)域.基于多約束工作流的訪問(wèn)控制模型使權(quán)限的分配和回收可隨任務(wù)執(zhí)行動(dòng)態(tài)進(jìn)行,令系統(tǒng)讀寫數(shù)據(jù)更加安全,管理角色、任務(wù)更加簡(jiǎn)單.
我們?cè)谀掣咝?shí)地部署了漏洞管理系統(tǒng),并對(duì)校內(nèi)36個(gè)信息系統(tǒng)進(jìn)行了監(jiān)管.如圖7所示,漏洞管理系統(tǒng)可對(duì)資源漏洞信息進(jìn)行統(tǒng)一關(guān)聯(lián)、展現(xiàn)和告警,清晰反映漏洞處置進(jìn)度、執(zhí)行人員和耗時(shí)情況,使執(zhí)行人員和管理人員及時(shí)跟蹤資源漏洞生命周期,清楚地掌握全網(wǎng)的安全健康狀況,實(shí)現(xiàn)漏洞全生命周期的可視、可控和可管.系統(tǒng)上線后,平均漏洞響應(yīng)和處置時(shí)長(zhǎng)相較之前縮短了1~2天,月辦結(jié)數(shù)量增加到10~15個(gè),漏洞管理效率有了明顯提升.
針對(duì)當(dāng)前漏洞管理不規(guī)范、安全性差等問(wèn)題,本文提出基于多約束安全工作流的漏洞管理系統(tǒng).多約束安全工作流模型通過(guò)在T-RBAC策略上添加多重屬性實(shí)現(xiàn)工作流場(chǎng)景下靈活的授權(quán).同時(shí),本文分析了漏洞管理流程中的角色、任務(wù)以及屬性等因素,結(jié)合多約束安全工作流實(shí)現(xiàn)漏洞管理流程,以工單方式指派任務(wù)給相應(yīng)角色,并從多屬性限制用戶訪問(wèn)的數(shù)據(jù)域和操作時(shí)限,保障了流程的高效性和安全性,真正落實(shí)了信息系統(tǒng)定期評(píng)估和漏洞跟蹤工作.