一種進程上下文強制訪問控制方法
2023-07-19 00:06:56
一種進程上下文強制訪問控制方法
【專利摘要】本發明提供一種進程上下文強制訪問控制方法,在進程上下文中,所有的信息保存在進程管理結構中,進程管理結構是進程上下文的基礎,進程管理結構的數據結構是預留的空間,將該進程的策略掛載到該進程空間中,進程直接訪問策略,不再需要遍歷,這樣就不再有性能的影響,在linux中,將該進程強制訪問策略掛載到該進程的文件描述上無需更改內核,每個進程都有N多個文件描述符,而文件描述符上保存的是指針,將該進程強制訪問策略掛載到該進程的文件描述述符上,當系統切換到該進程中運行時,已經處於該進程的上下文,直接訪問策略描述符就能找到策略,不再需要遍歷整個全局鍊表,性能不再有影響。
【專利說明】一種進程上下文強制訪問控制方法
【技術領域】
[0001]本發明涉及一種計算機應用,具體地說是一種進程上下文強制訪問控制方法。
【背景技術】
[0002]隨著Linux的蓬勃發展和普及,深入開發內核技術人員越來越多,使Linux內核技術發展很快,升級很快,Linux內核版本很多,在伺服器市場上Linux佔據著很大的份兒,很多企業都在用Iinux伺服器,而且Iinux伺服器上跑著很多重要的業務,網站是業務的主要,面對現有的安全隱患,我們需要安裝強制訪問控制來保護網站的安全性。但是安裝強制訪問控制後會發現系統性能的下降,面對於高負載的伺服器,用戶不希望看到因為安裝軟體導致性能損壞,這是成本的增加。
【發明內容】
[0003]本發明的目的是提供一種進程上下文強制訪問控制方法。
[0004]本發明的目的是按以下方式實現的,採用不用更改現有內核,通過文件描述符將強制訪問規則綁定到進程中,來達到高速強制訪問控制的目的,在進程上下文中,所有的信息保存在進程管理結構中,進程管理結構是進程上下文的基礎,進程管理結構的數據結構是預留的空間,將該進程的策略掛載到該進程空間中,進程直接訪問策略,不再需要遍歷,這樣就不再有性能的影響,具體步驟如下:
O編寫內核模塊,hook系統調用;
2)將已經有的強制訪問控制規則添加到內核中;
3)通過execve監控所有啟動的進程,並查找全局鍊表,是否有相關進程的策略,如果有則在內核中打開一個指定的文件描述符fd,將規則掛載到這個文件描述符fd上;
4)當進程再次運行時,通過系統調用進入內核,在監控的系統調用內核,通過fd文件描述符將策略和權限進行比較,如果允許則繼續,否則就拒絕。
[0005]在Iinux中,將該進程強制訪問策略掛載到該進程的文件描述上無需更改內核,每個進程都有N多個文件描述符,而文件描述符上保存的是指針,將該進程強制訪問策略掛載到該進程的文件描述述符上,當系統切換到該進程中運行時,已經處於該進程的上下文,直接訪問策略描述符就能找到策略,不再需要遍歷整個全局鍊表,性能不再有影響。
[0006]本發明的目的有益效果是:每個進程都有自己的文件描述符表fd,通過將該進程相關的策略掛載到一個描述符fd上來綁定該進程的相關策略和該進程,不再需要查找全局策略表,只需要查找與該進程相關策略表。策略局部化,提高性能。
【專利附圖】
【附圖說明】
[0007]圖1是進程策略存儲圖;
圖2是進程策略綁定圖;
圖3是進程強制訪問控制圖。
【具體實施方式】
[0008]參照說明書附圖對本發明的方法作以下詳細地說明。
[0009]在進程上下文中,所有的信息保存在進程管理結構中,進程管理結構是進程上下文的基礎,進程管理結構的數據結構是經過精心設計的,預留的空間,每一塊區域都是有用的,也不會因為某個進程特殊,而多分配一塊區域,這就是內核開發的現狀,面對現有狀況。我們一般開發的強制訪問控制都是通過在內核中加入全局鍊表,將其規則放入全局鍊表中,用戶每次系統調用的訪問,訪問全局鍊表,規則越長鍊表就越長,如果規則上萬條,每一次的系統調用的訪問,都要訪問上萬條的策略,這會導致系統性能的極大下降。成為強制訪問控制的系統的瓶頸,面對這個性能問題,伺服器是無法接受的。在沒有更改現有的系統上,如果能將該進程的策略掛載到該進程空間中,進程訪問就會直接訪問策略,不再需要遍歷,這樣就不再有性能的影響。在Iinux中,我們可以將該進程強制訪問策略掛載到該進程的文件描述上。
[0010]無需更改內核,每個進程都有N多個文件描述符,而文件描述符上保存的是指針,將該進程強制訪問策略掛載到該進程的文件描述上。
[0011]沒有性能消耗,將強制訪問控制策略掛載到文件描述符上,當系統切換到該進程中運行時,已經處於該進程的上下文,我們直接訪問策略描述符就可以找到策略,不再需要遍歷整個全局鍊表,性能不再有影響。
實施例
[0012]具體訪問控制步驟如下:
1)編寫內核模塊,hook系統調用;
2)將已經有的強制訪問控制規則添加到內核中;
3)通過execve監控所有啟動的進程,並查找全局鍊表,是否有相關進程的策略,如果有則在內核中打開一個指定的文件描述符fd,將規則掛載到這個文件描述符fd上;
4)當進程再次運行時,通過系統調用進入內核,在監控的系統調用內,通過fd文件描述符將策略和權限進行比較,如果允許則繼續,否則就拒絕。
[0013]除說明書所述的技術特徵外,均為本專業技術人員的已知技術。
【權利要求】
1.一種進程上下文強制訪問控制方法,其特徵在於採用不用更改現有內核,通過文件描述符將強制訪問規則綁定到進程中,來達到高速強制訪問控制的目的,在進程上下文中,所有的信息保存在進程管理結構中,進程管理結構是進程上下文的基礎,進程管理結構的數據結構是預留的空間,將該進程的策略掛載到該進程空間中,進程直接訪問策略,不再需要遍歷,這樣就不再有性能的影響,具體步驟如下: 1)編寫內核模塊,hook系統調用; 2)將已經有的強制訪問控制規則添加到內核中; 3)通過execve監控所有啟動的進程,並查找全局鍊表,是否有相關進程的策略,如果有則在內核中打開一個指定的文件描述符fd,將規則掛載到這個文件描述符fd上; 4)當進程再次運行時,通過系統調用進入內核,在監控的系統調用內核,通過fd文件描述符將策略和權限進行比較,如果允許則繼續,否則就拒絕。
2.根據權利要求1所述的進程上下文強制訪問控制方法,其特徵在於在Iinux中,將該進程強制訪問策略掛載到該進程的文件描述上無需更改內核,每個進程都有N多個文件描述符,而文件描述符上保存的是指針,將該進程強制訪問策略掛載到該進程的文件描述述符上,當系統切換到該進程中運行時,已經處於該進程的上下文,直接訪問策略描述符就能找到策略,不再需要遍歷整個全局鍊表,性能不再有影響。
【文檔編號】G06F9/48GK104133726SQ201410395884
【公開日】2014年11月5日 申請日期:2014年8月13日 優先權日:2014年8月13日
【發明者】黃玉龍 申請人:浪潮電子信息產業股份有限公司