本發(fā)明涉及信息安全,具體涉及基于ebpf的容器運(yùn)行時(shí)輕量級(jí)訪問(wèn)控制方法。
背景技術(shù):
1、redhat?在《2022?年?kubernetes?安全報(bào)告》中指出:對(duì)?300?多名?devops、工程和安全專業(yè)人士進(jìn)行了調(diào)查,發(fā)現(xiàn)93%的受訪者在過(guò)去12個(gè)月里在kubernetes和容器環(huán)境中經(jīng)歷過(guò)安全事件。這背后可能有多種因素,包括缺乏關(guān)于容器和kubernetes的安全知識(shí),安全工具不足或不合適。容器不像虛擬機(jī)那樣安全隔離。默認(rèn)情況下,它們公開(kāi)了大量關(guān)于主機(jī)操作系統(tǒng)的信息,這些信息是敏感,提供了從容器中“逃逸”的可能。例如/sys下的內(nèi)核文件系統(tǒng)、/proc/sys下有許多sysctls。對(duì)于非特權(quán)容器,這些文件的內(nèi)容是只讀的;對(duì)于特權(quán)容器可以對(duì)它們進(jìn)行寫(xiě)操作。因此,需要設(shè)計(jì)一種容器運(yùn)行時(shí)主機(jī)透?jìng)鹘o容器可訪問(wèn)文件的保護(hù)機(jī)制,阻止容器中的敏感文件被篡改,即使是特權(quán)容器也無(wú)法修改被保護(hù)的文件。
2、現(xiàn)有技術(shù)中,selinux可以強(qiáng)化容器隔離,確保容器只能訪問(wèn)其允許的資源,允許管理員定義非常詳細(xì)的訪問(wèn)控制規(guī)則,以確保容器只能執(zhí)行其允許的操作,從而減少容器的攻擊面。但elinux開(kāi)啟后會(huì)對(duì)系統(tǒng)性能帶來(lái)20%左右的性能折損;針對(duì)業(yè)務(wù)進(jìn)行策略配置時(shí),通常需要專業(yè)的研發(fā)工程師。
技術(shù)實(shí)現(xiàn)思路
1、為解決已有技術(shù)存在的不足,本發(fā)明提供了一種基于ebpf的容器運(yùn)行時(shí)輕量級(jí)訪問(wèn)控制方法,包括如下步驟:
2、步驟s1:監(jiān)控組件注冊(cè)ebpf接口,監(jiān)控容器內(nèi)運(yùn)行的進(jìn)程,檢測(cè)容器內(nèi)是否有新進(jìn)程在運(yùn)行;
3、步驟s2:fileaccess注冊(cè)ebpf接口,監(jiān)控系統(tǒng)調(diào)用,根據(jù)策略決定容器內(nèi)進(jìn)程是否有權(quán)限訪問(wèn)文件。
4、其中,所述步驟s2中,fileaccess通過(guò)如下步驟據(jù)策略決定容器內(nèi)進(jìn)程是否有權(quán)限訪問(wèn)文件:
5、步驟s21:容器內(nèi)產(chǎn)生一個(gè)新的進(jìn)程,獲取到該進(jìn)程信息;
6、步驟s22:更新容器進(jìn)程信息到bpf?map中;
7、步驟s23:進(jìn)程訪問(wèn)一個(gè)文件;
8、步驟s24:fileaccess查看bpf?map以確定該進(jìn)程的類型,如果是主機(jī)進(jìn)程則直接放行,如果是主機(jī)進(jìn)程則執(zhí)行步驟s25;
9、步驟s25:查詢策略表,根據(jù)策略表結(jié)果決定該容器進(jìn)程是否有權(quán)限訪問(wèn)文件。
10、其中,所述步驟s25中,通過(guò)如下原則決定該容器進(jìn)程是否有權(quán)限訪問(wèn)文件:
11、步驟s251:依次檢查該文件是否在針對(duì)容器策略表的拒絕列表、針對(duì)鏡像的策略表的拒絕列表或針對(duì)默認(rèn)策略表的拒絕列表中,如果是,則拒絕該容器進(jìn)程訪問(wèn);
12、步驟s252:依次檢查該文件是否在針對(duì)容器策略表的允許列表、針對(duì)鏡像的策略表的允許列表或針對(duì)默認(rèn)策略表的允許列表中,如果是,則允許該容器進(jìn)程訪問(wèn);
13、步驟s253:如果該文件不存在于步驟s251及步驟s252所羅列的任一策略表的任一列表張,則拒絕該容器進(jìn)程訪問(wèn)。
14、本發(fā)明提供了一種基于ebpf的容器運(yùn)行時(shí)主機(jī)透?jìng)鹘o容器可訪問(wèn)文件的保護(hù)機(jī)制,對(duì)管控機(jī)制、策略管理機(jī)制進(jìn)行了詳細(xì)的設(shè)計(jì)梳理,通過(guò)設(shè)置策略,準(zhǔn)確的對(duì)容器內(nèi)訪問(wèn)主機(jī)資源進(jìn)行保護(hù),阻止容器中的敏感文件被篡改后影響物理機(jī)的安全。該方案具有可重用性,支持linux平臺(tái)下的二次開(kāi)發(fā)和優(yōu)化。
1.基于ebpf的容器運(yùn)行時(shí)輕量級(jí)訪問(wèn)控制方法,其特征在于,包括如下步驟:
2.如權(quán)利要求1所述的基于ebpf的容器運(yùn)行時(shí)輕量級(jí)訪問(wèn)控制方法,其特征在于,所述步驟s2中,fileaccess通過(guò)如下步驟據(jù)策略決定容器內(nèi)進(jìn)程是否有權(quán)限訪問(wèn)文件:
3.如權(quán)利要求2所述的基于ebpf的容器運(yùn)行時(shí)輕量級(jí)訪問(wèn)控制方法,其特征在于,所述步驟s25中,通過(guò)如下原則決定該容器進(jìn)程是否有權(quán)限訪問(wèn)文件: