面向數(shù)據(jù)安全的層次訪問(wèn)控制方案探索
隨著《中華人民共和國(guó)網(wǎng)絡(luò)安全法》的正式實(shí)施,我國(guó)網(wǎng)絡(luò)安全等級(jí)保護(hù)制度正式進(jìn)入“2.0”時(shí)代。依據(jù)《信息安全技術(shù) 網(wǎng)絡(luò)安全等級(jí)保護(hù)基本要求》(GB/T 22239—2019),第三級(jí)以上的等級(jí)保護(hù)對(duì)象應(yīng)實(shí)現(xiàn)基于安全標(biāo)記的訪問(wèn)控制機(jī)制(LBAC),本文基于數(shù)據(jù)分類分級(jí)探索了一種在業(yè)務(wù)應(yīng)用系統(tǒng)中實(shí)現(xiàn)LBAC機(jī)制的技術(shù)思路,供大家參考。
1. 基本概念
基于安全標(biāo)記的訪問(wèn)控制機(jī)制具有以下特性:
(1)以安全標(biāo)記為基礎(chǔ),訪問(wèn)許可是根據(jù)訪問(wèn)主體和被訪問(wèn)數(shù)據(jù)資源的安全標(biāo)記進(jìn)行判定;
(2)強(qiáng)制性,訪問(wèn)控制策略(含安全標(biāo)記)應(yīng)由授權(quán)主體配置,且第四級(jí)明確提出了強(qiáng)制訪問(wèn)控制規(guī)則的要求,明顯區(qū)別于自主訪問(wèn)控制機(jī)制(DAC);
(3)細(xì)粒度,訪問(wèn)控制策略對(duì)主體和客體的粒度有明確的要求。
2. 總體思路
本文采取基于角色的訪問(wèn)控制機(jī)制(RBAC)和LBAC機(jī)制訪問(wèn)相結(jié)合的方法,來(lái)實(shí)現(xiàn)一種面向數(shù)據(jù)資源的業(yè)務(wù)應(yīng)用系統(tǒng)合規(guī)方案。其中,RBAC機(jī)制負(fù)責(zé)控制功能層面的權(quán)限,LBAC機(jī)制負(fù)責(zé)控制數(shù)據(jù)層面的安全,兩者相結(jié)合來(lái)保障業(yè)務(wù)數(shù)據(jù)安全。
為方便描述,將業(yè)務(wù)應(yīng)用系統(tǒng)簡(jiǎn)化為RBAC權(quán)限認(rèn)證模塊、LBAC控制模塊、業(yè)務(wù)功能模塊和數(shù)據(jù)存儲(chǔ)模塊4個(gè)部分(如圖1所示),具體流程如下:
1)用戶通過(guò)客戶端訪問(wèn)業(yè)務(wù)系統(tǒng),通過(guò)RBAC模塊進(jìn)行功能層面認(rèn)證、授權(quán)。
2)業(yè)務(wù)功能模塊接收到用戶請(qǐng)求后調(diào)用強(qiáng)制訪問(wèn)控制模塊進(jìn)行數(shù)據(jù)權(quán)限校驗(yàn)。
3)RBAC控制模塊對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析獲取主體用戶信息及所請(qǐng)求的業(yè)務(wù)數(shù)據(jù)信息,并通過(guò)強(qiáng)制訪問(wèn)控制策略判定用戶請(qǐng)求是否合法。如果不合法直接返回權(quán)限校驗(yàn)不通過(guò)的信息。
4)RBAC控制模塊判定數(shù)據(jù)權(quán)限通過(guò)后,業(yè)務(wù)功能模塊調(diào)用數(shù)據(jù)存儲(chǔ)模塊接口獲取數(shù)據(jù),邏輯運(yùn)算后返回業(yè)務(wù)結(jié)果。
3. LBAC模塊構(gòu)建
3.1 構(gòu)建數(shù)據(jù)安全標(biāo)記
在構(gòu)建安全標(biāo)記時(shí),可以依據(jù)等級(jí)保護(hù)對(duì)象的定級(jí)結(jié)果對(duì)業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)資源進(jìn)行梳理(如下表所示),并將數(shù)據(jù)資源的分類(業(yè)務(wù)范圍)、分級(jí)(業(yè)務(wù)信息安全保護(hù)等級(jí))結(jié)果作為數(shù)據(jù)安全標(biāo)記。
3.2 構(gòu)建用戶安全標(biāo)記
梳理業(yè)務(wù)應(yīng)用系統(tǒng)的用戶職責(zé)及工作流,按照日常業(yè)務(wù)所需為用戶打上安全標(biāo)記(如下表所示),并將用戶標(biāo)識(shí)與對(duì)應(yīng)的用戶安全標(biāo)記數(shù)據(jù)存儲(chǔ)在用戶標(biāo)簽表中。其中,用戶安全標(biāo)記也包含業(yè)務(wù)范圍和業(yè)務(wù)信息安全保護(hù)等級(jí)兩個(gè)要素,其含義與數(shù)據(jù)安全標(biāo)記保持一致。
數(shù)據(jù)資源梳理完成后,將安全標(biāo)記數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中的數(shù)據(jù)標(biāo)簽表中,該表用于存儲(chǔ)數(shù)據(jù)資源的基本信息以及對(duì)應(yīng)的數(shù)據(jù)安全標(biāo)記。
3.3 構(gòu)建訪問(wèn)策略
依據(jù)用戶及數(shù)據(jù)資源的安全標(biāo)記梳理結(jié)果初步構(gòu)建用戶安全標(biāo)記與數(shù)據(jù)安全標(biāo)記的映射關(guān)系,并將策略結(jié)果存儲(chǔ)到數(shù)據(jù)庫(kù)中訪問(wèn)控制策略表。以表2為例,業(yè)務(wù)員張三具有業(yè)務(wù)范圍A的業(yè)務(wù)信息安全保護(hù)等級(jí)1~3級(jí)的數(shù)據(jù)訪問(wèn)權(quán)限,具有業(yè)務(wù)范圍B的業(yè)務(wù)信息安全保護(hù)等級(jí)1~4級(jí)的數(shù)據(jù)訪問(wèn)權(quán)限。
3.4 實(shí)現(xiàn)訪問(wèn)控制機(jī)制
以J2EE框架的應(yīng)用為例,為了最小化的對(duì)業(yè)務(wù)邏輯的侵占,可以利用java注解和AOP的方式實(shí)現(xiàn)強(qiáng)制訪問(wèn)控制。首先,Controller層打上業(yè)務(wù)數(shù)據(jù)的注解,注解記錄需要用到的數(shù)據(jù)庫(kù)表名。其次,實(shí)現(xiàn)框架的AOP切面接口對(duì)Controller層的調(diào)用進(jìn)行攔截,解析請(qǐng)求獲取用戶角色信息,同時(shí)利用反射機(jī)制獲取表名信息。最后,通過(guò)關(guān)聯(lián)查詢數(shù)據(jù)庫(kù)中的強(qiáng)制訪問(wèn)控制策略表,數(shù)據(jù)標(biāo)簽表和用戶標(biāo)簽表來(lái)判斷用戶是否具備訪問(wèn)對(duì)應(yīng)數(shù)據(jù)表的權(quán)限。
4. 結(jié)束語(yǔ)
在前面描述的實(shí)現(xiàn)方案基礎(chǔ)上,可以進(jìn)一步優(yōu)化實(shí)現(xiàn)動(dòng)態(tài)強(qiáng)制訪問(wèn)控制。如,利用用戶和實(shí)體行為分析系統(tǒng)(UEBA)對(duì)業(yè)務(wù)用戶行為進(jìn)行風(fēng)險(xiǎn)評(píng)估,依據(jù)評(píng)估結(jié)果及時(shí)動(dòng)態(tài)調(diào)整主體用戶的安全標(biāo)記和訪問(wèn)控制策略;或接入數(shù)據(jù)防泄漏系統(tǒng)(DLP),參照DLP分析結(jié)果對(duì)數(shù)據(jù)安全標(biāo)記動(dòng)態(tài)調(diào)整以符合組織實(shí)際數(shù)據(jù)安全訴求;或接入環(huán)境感知系統(tǒng),對(duì)業(yè)務(wù)用戶使用的客戶端環(huán)境進(jìn)行全面檢測(cè)評(píng)估,參照評(píng)估結(jié)果動(dòng)態(tài)調(diào)整用戶的訪問(wèn)控制策略。
1. 基本概念
基于安全標(biāo)記的訪問(wèn)控制機(jī)制具有以下特性:
(1)以安全標(biāo)記為基礎(chǔ),訪問(wèn)許可是根據(jù)訪問(wèn)主體和被訪問(wèn)數(shù)據(jù)資源的安全標(biāo)記進(jìn)行判定;
(2)強(qiáng)制性,訪問(wèn)控制策略(含安全標(biāo)記)應(yīng)由授權(quán)主體配置,且第四級(jí)明確提出了強(qiáng)制訪問(wèn)控制規(guī)則的要求,明顯區(qū)別于自主訪問(wèn)控制機(jī)制(DAC);
(3)細(xì)粒度,訪問(wèn)控制策略對(duì)主體和客體的粒度有明確的要求。
2. 總體思路
本文采取基于角色的訪問(wèn)控制機(jī)制(RBAC)和LBAC機(jī)制訪問(wèn)相結(jié)合的方法,來(lái)實(shí)現(xiàn)一種面向數(shù)據(jù)資源的業(yè)務(wù)應(yīng)用系統(tǒng)合規(guī)方案。其中,RBAC機(jī)制負(fù)責(zé)控制功能層面的權(quán)限,LBAC機(jī)制負(fù)責(zé)控制數(shù)據(jù)層面的安全,兩者相結(jié)合來(lái)保障業(yè)務(wù)數(shù)據(jù)安全。
為方便描述,將業(yè)務(wù)應(yīng)用系統(tǒng)簡(jiǎn)化為RBAC權(quán)限認(rèn)證模塊、LBAC控制模塊、業(yè)務(wù)功能模塊和數(shù)據(jù)存儲(chǔ)模塊4個(gè)部分(如圖1所示),具體流程如下:
1)用戶通過(guò)客戶端訪問(wèn)業(yè)務(wù)系統(tǒng),通過(guò)RBAC模塊進(jìn)行功能層面認(rèn)證、授權(quán)。
2)業(yè)務(wù)功能模塊接收到用戶請(qǐng)求后調(diào)用強(qiáng)制訪問(wèn)控制模塊進(jìn)行數(shù)據(jù)權(quán)限校驗(yàn)。
3)RBAC控制模塊對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行解析獲取主體用戶信息及所請(qǐng)求的業(yè)務(wù)數(shù)據(jù)信息,并通過(guò)強(qiáng)制訪問(wèn)控制策略判定用戶請(qǐng)求是否合法。如果不合法直接返回權(quán)限校驗(yàn)不通過(guò)的信息。
4)RBAC控制模塊判定數(shù)據(jù)權(quán)限通過(guò)后,業(yè)務(wù)功能模塊調(diào)用數(shù)據(jù)存儲(chǔ)模塊接口獲取數(shù)據(jù),邏輯運(yùn)算后返回業(yè)務(wù)結(jié)果。
3. LBAC模塊構(gòu)建
3.1 構(gòu)建數(shù)據(jù)安全標(biāo)記
在構(gòu)建安全標(biāo)記時(shí),可以依據(jù)等級(jí)保護(hù)對(duì)象的定級(jí)結(jié)果對(duì)業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)資源進(jìn)行梳理(如下表所示),并將數(shù)據(jù)資源的分類(業(yè)務(wù)范圍)、分級(jí)(業(yè)務(wù)信息安全保護(hù)等級(jí))結(jié)果作為數(shù)據(jù)安全標(biāo)記。
3.2 構(gòu)建用戶安全標(biāo)記
梳理業(yè)務(wù)應(yīng)用系統(tǒng)的用戶職責(zé)及工作流,按照日常業(yè)務(wù)所需為用戶打上安全標(biāo)記(如下表所示),并將用戶標(biāo)識(shí)與對(duì)應(yīng)的用戶安全標(biāo)記數(shù)據(jù)存儲(chǔ)在用戶標(biāo)簽表中。其中,用戶安全標(biāo)記也包含業(yè)務(wù)范圍和業(yè)務(wù)信息安全保護(hù)等級(jí)兩個(gè)要素,其含義與數(shù)據(jù)安全標(biāo)記保持一致。
數(shù)據(jù)資源梳理完成后,將安全標(biāo)記數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中的數(shù)據(jù)標(biāo)簽表中,該表用于存儲(chǔ)數(shù)據(jù)資源的基本信息以及對(duì)應(yīng)的數(shù)據(jù)安全標(biāo)記。
3.3 構(gòu)建訪問(wèn)策略
依據(jù)用戶及數(shù)據(jù)資源的安全標(biāo)記梳理結(jié)果初步構(gòu)建用戶安全標(biāo)記與數(shù)據(jù)安全標(biāo)記的映射關(guān)系,并將策略結(jié)果存儲(chǔ)到數(shù)據(jù)庫(kù)中訪問(wèn)控制策略表。以表2為例,業(yè)務(wù)員張三具有業(yè)務(wù)范圍A的業(yè)務(wù)信息安全保護(hù)等級(jí)1~3級(jí)的數(shù)據(jù)訪問(wèn)權(quán)限,具有業(yè)務(wù)范圍B的業(yè)務(wù)信息安全保護(hù)等級(jí)1~4級(jí)的數(shù)據(jù)訪問(wèn)權(quán)限。
3.4 實(shí)現(xiàn)訪問(wèn)控制機(jī)制
以J2EE框架的應(yīng)用為例,為了最小化的對(duì)業(yè)務(wù)邏輯的侵占,可以利用java注解和AOP的方式實(shí)現(xiàn)強(qiáng)制訪問(wèn)控制。首先,Controller層打上業(yè)務(wù)數(shù)據(jù)的注解,注解記錄需要用到的數(shù)據(jù)庫(kù)表名。其次,實(shí)現(xiàn)框架的AOP切面接口對(duì)Controller層的調(diào)用進(jìn)行攔截,解析請(qǐng)求獲取用戶角色信息,同時(shí)利用反射機(jī)制獲取表名信息。最后,通過(guò)關(guān)聯(lián)查詢數(shù)據(jù)庫(kù)中的強(qiáng)制訪問(wèn)控制策略表,數(shù)據(jù)標(biāo)簽表和用戶標(biāo)簽表來(lái)判斷用戶是否具備訪問(wèn)對(duì)應(yīng)數(shù)據(jù)表的權(quán)限。
4. 結(jié)束語(yǔ)
在前面描述的實(shí)現(xiàn)方案基礎(chǔ)上,可以進(jìn)一步優(yōu)化實(shí)現(xiàn)動(dòng)態(tài)強(qiáng)制訪問(wèn)控制。如,利用用戶和實(shí)體行為分析系統(tǒng)(UEBA)對(duì)業(yè)務(wù)用戶行為進(jìn)行風(fēng)險(xiǎn)評(píng)估,依據(jù)評(píng)估結(jié)果及時(shí)動(dòng)態(tài)調(diào)整主體用戶的安全標(biāo)記和訪問(wèn)控制策略;或接入數(shù)據(jù)防泄漏系統(tǒng)(DLP),參照DLP分析結(jié)果對(duì)數(shù)據(jù)安全標(biāo)記動(dòng)態(tài)調(diào)整以符合組織實(shí)際數(shù)據(jù)安全訴求;或接入環(huán)境感知系統(tǒng),對(duì)業(yè)務(wù)用戶使用的客戶端環(huán)境進(jìn)行全面檢測(cè)評(píng)估,參照評(píng)估結(jié)果動(dòng)態(tài)調(diào)整用戶的訪問(wèn)控制策略。