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