專利名稱:在Linux系統(tǒng)中執(zhí)行操作的方法
技術(shù)領(lǐng)域:
本發(fā)明基本上涉及服務(wù)器領(lǐng)域,更具體地來說,涉及一種在Linux系統(tǒng)中執(zhí)行操作的方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,孤立節(jié)點(diǎn)計(jì)算逐步被網(wǎng)絡(luò)計(jì)算所取代。智能手機(jī)等小型計(jì)算設(shè)備逐步融入網(wǎng)絡(luò)之中,與外界發(fā)生頻繁數(shù)據(jù)交換。這為計(jì)算機(jī)病毒的傳播提供了條件。根據(jù)CERT/CC的報(bào)告,當(dāng)前針對(duì)計(jì)算機(jī)的主要攻擊方法中,木馬和病毒占據(jù)了重要席位,對(duì)計(jì)算機(jī)用戶構(gòu)成最主要的安全威脅。 Linux操作系統(tǒng)通常是作為服務(wù)器操作系統(tǒng)使用,具有應(yīng)用程序種類與變化較少的特點(diǎn)。本文為以此為前提,提出一種基于LSM(Linux Securitymodule)的可執(zhí)行程序控制方法,能有有效地監(jiān)測(cè)程序的執(zhí)行,保護(hù)操作系統(tǒng)安全。LSM是Linux內(nèi)核的一個(gè)通用訪問控制框架。它使得各種不同的安全訪問控制模型能夠以Linux可加載內(nèi)核模塊的形式實(shí)現(xiàn)。許多著名的訪問控制系統(tǒng)已經(jīng)移植到LSM下,包括P0SIX. Ie Capability、SELinux等。目前LSM已經(jīng)被正式納入Linux 2. 6系列內(nèi)核中,成為實(shí)現(xiàn)Linux內(nèi)核機(jī)制的接口標(biāo)準(zhǔn)。本方法以LSM的鉤子函數(shù)(Hook函數(shù))作為檢查點(diǎn),實(shí)施程序訪問控制。業(yè)內(nèi)知名的Sel inux功能眾多同時(shí)配置復(fù)雜,超過了大多數(shù)服務(wù)器管理員的工作能力,在普通的服務(wù)器環(huán)境中極少采用。而P0SIX. Ie Capability目前僅僅被繼承在了SUSE操作系統(tǒng)中,并沒有在整個(gè)Linux體系中采用。
發(fā)明內(nèi)容
為了克服上述缺陷,本發(fā)明提出了一種在Linux系統(tǒng)中執(zhí)行操作的方法,解決了如何在Linux系統(tǒng)中更安全地執(zhí)行操作的技術(shù)問題。本發(fā)明公開了一種在Linux系統(tǒng)中執(zhí)行操作的方法,包括步驟SI :向所述Linux系統(tǒng)發(fā)送對(duì)程序文件執(zhí)行操作的請(qǐng)求;步驟S2 :所述Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了 Linux安全模塊(LSM)的第一鉤子函數(shù),將所述程序文件的內(nèi)容與白名單中的內(nèi)容相比對(duì);以及步驟S3 :根據(jù)比對(duì)結(jié)果,判斷是否對(duì)所述程序文件執(zhí)行所述操作。優(yōu)選地,所述步驟S2包括將所述程序文件的內(nèi)容與白名單中的內(nèi)容相比對(duì)包括將所述程序文件的哈希值與白名單中的哈希值相比對(duì)。優(yōu)選地,對(duì)程序文件執(zhí)行操作包括執(zhí)行所述程序文件。優(yōu)選地,對(duì)程序文件執(zhí)行操作包括修改所述程序文件。優(yōu)選地,所述步驟S3包括如果所述白名單中存在所述程序文件的哈希值,則執(zhí)行所述程序文件。優(yōu)選地,所述步驟S3包括如果所述白名單中不存在所述程序文件的哈希值,則修改所述程序文件。
優(yōu)選地,在所述步驟SI之后和所述步驟S2之前,所述方法還包括所述Linux系統(tǒng)加載所述程序文件。優(yōu)選地,在所述步驟S3之后,所述方法還包括所述Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了Linux安全模塊(LSM)的第二鉤子函數(shù),來更新所述白名單。優(yōu)選地,所述步驟S3還包括在所述程序文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中生成標(biāo)識(shí),并且在所述步驟S3之后,所述方法還包括步驟S4 :再次向所述Linux系統(tǒng)發(fā)送執(zhí)行所述程序文件的請(qǐng)求;以及步驟S5 :如果在所述程序文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中查找到所述標(biāo)識(shí),則執(zhí)行所述程序文件。優(yōu)選地,所述方法還包括通過程序注冊(cè)與請(qǐng)求接口配置所述白名單。通過本發(fā)明所描述的在Linux系統(tǒng)中執(zhí)行操作的方法,使得系統(tǒng)運(yùn)行更加安全可 O
附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中圖I是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的總體流程圖;圖2是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的一個(gè)優(yōu)選實(shí)施例的具體流程圖;圖3是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的另一個(gè)優(yōu)選實(shí)施例的具體流程圖;圖4是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的又一個(gè)優(yōu)選實(shí)施例的具體流程圖;圖5是實(shí)現(xiàn)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的程序執(zhí)行控制框架的示意圖。
具體實(shí)施例方式下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。圖I是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的總體流程圖。在圖I中步驟SlOO 向Linux系統(tǒng)發(fā)送對(duì)程序文件執(zhí)行操作的請(qǐng)求。步驟S102 :Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了 Linux安全模塊(LSM)的第一鉤子函數(shù),將程序文件的內(nèi)容與白名單中的內(nèi)容相比對(duì)。步驟S104 :根據(jù)比對(duì)結(jié)果,判斷是否對(duì)程序文件執(zhí)行操作。其中,對(duì)程序文件執(zhí)行操作包括但不限于執(zhí)行程序文件和修改程序文件。在步驟SlOO之后,步驟S102之前,本實(shí)施例還可以包括=Linux系統(tǒng)加載該程序文件。并且在步驟S104之后,本實(shí)施例還可以包括=Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了 Linux安全模塊(LSM)的第二鉤子函數(shù),來更新白名單。優(yōu)選地,該方法還包括通過程序注冊(cè)與請(qǐng)求接口配置白名單。白名單中的程序文件為可以執(zhí)行并且需要保護(hù)的文件,因此,只有當(dāng)該白名單中存在該程序文件,該文件才是安全的,才可以執(zhí)行。而只要該白名單中存在該程序文件,該文件就是需要保護(hù)的,就不能進(jìn)行修改。通過本實(shí)施例所描述的執(zhí)行程序文件的方法,通過內(nèi)核態(tài)實(shí)現(xiàn),可以有效地監(jiān)控每一個(gè)可執(zhí)行程序;通過白名單機(jī)制,簡(jiǎn)單可靠,避免了殺毒軟件特征判斷帶來的誤判。適用于服務(wù)器環(huán)境。對(duì)程序的整體影響小,只在程序初次加載時(shí)判斷,可以避免頻繁檢測(cè)帶來的性能損耗。圖2是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的一個(gè)優(yōu)選實(shí)施例的具體流程圖。在圖2中示出了當(dāng)需要執(zhí)行程序文件時(shí)的具體流程圖。在圖2中步驟S200 向Linux系統(tǒng)發(fā)送執(zhí)行程序文件的請(qǐng)求。步驟S202 :將程序文件的哈希值與白名單中的哈希值相比對(duì)。步驟S204 :如果白名單中存在程序文件的哈希值,則執(zhí)行程序文件 換言之,本實(shí)施例通過哈希值判斷所要執(zhí)行的程序文件是否是白名單中允許執(zhí)行的程序文件,如果該程序文件的哈希值存在于白名單中,則執(zhí)行該程序文件,反之則不執(zhí)行。通過本實(shí)施例所描述的方法,通過內(nèi)核態(tài)實(shí)現(xiàn),可以有效地監(jiān)控每一個(gè)可執(zhí)行程序;通過白名單機(jī)制,簡(jiǎn)單可靠,避免了殺毒軟件特征判斷帶來的誤判。適用于服務(wù)器環(huán)境。對(duì)程序的整體影響小,只在程序初次加載時(shí)判斷,可以避免頻繁檢測(cè)帶來的性能損耗。圖3是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的另一個(gè)優(yōu)選實(shí)施例的具體流程圖。步驟S300 向Linux系統(tǒng)發(fā)送修改程序文件的請(qǐng)求。步驟S302 :將程序文件的哈希值與白名單中的哈希值相比對(duì)。步驟S304 :如果白名單中不存在程序文件的哈希值,則修改程序文件。換言之,本實(shí)施例通過哈希值判斷所要修改的程序文件是否是白名單中需要保護(hù)的程序文件,如果該程序文件的哈希值不存在于白名單中,則修改該程序文件,反之則不進(jìn)行修改。通過本實(shí)施例所描述的修改程序文件的方法,通過內(nèi)核態(tài)實(shí)現(xiàn),可以有效地監(jiān)控每一個(gè)可執(zhí)行程序;通過白名單機(jī)制,簡(jiǎn)單可靠,避免了殺毒軟件特征判斷帶來的誤判。適用于服務(wù)器環(huán)境。對(duì)程序的整體影響小,只在程序初次加載時(shí)判斷,可以避免頻繁檢測(cè)帶來的性能損耗。圖4是根據(jù)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的又一個(gè)優(yōu)選實(shí)施例的具體流程圖。在圖4中步驟S400 向Linux系統(tǒng)發(fā)送執(zhí)行程序文件的請(qǐng)求。步驟S402 :Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了 Linux安全模塊(LSM)的第一鉤子函數(shù),將程序文件的內(nèi)容與白名單中的內(nèi)容相比對(duì)。步驟S404:如果白名單中存在程序文件的哈希值,則執(zhí)行該程序文件,并且在程序文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中生成標(biāo)識(shí)。步驟S406 :再次向Linux系統(tǒng)發(fā)送執(zhí)行該程序文件的請(qǐng)求。步驟S408 :如果在程序文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中查找到該標(biāo)識(shí),則執(zhí)行該程序文件。
通過本優(yōu)選實(shí)施例,可以將通過了白名單校驗(yàn)的程序文件中生成標(biāo)識(shí),從而在下次再請(qǐng)求執(zhí)行該程序文件時(shí),就不用再次進(jìn)行白名單校驗(yàn)而直接執(zhí)行了。這樣,除了上述效果之外,本優(yōu)選實(shí)施例還能夠簡(jiǎn)化校驗(yàn)過程,節(jié)省資源。以下將通過幾個(gè)實(shí)例來描述本發(fā)明。其中,圖5是實(shí)現(xiàn)本發(fā)明的在Linux系統(tǒng)中執(zhí)行操作的方法的程序執(zhí)行控制框架的示意圖。本發(fā)明為可執(zhí)行程序建立白名單,白名單的內(nèi)容是可執(zhí)行程序文件內(nèi)容的哈希值。通過程序修改與執(zhí)行時(shí)比對(duì)白名單,達(dá)到控制系統(tǒng)內(nèi)可執(zhí)行程序的目的。同時(shí),為了避免可執(zhí)行程序控制收到篡改,提高系統(tǒng)的可用性,也對(duì)程序的修改進(jìn)行了控制。實(shí)現(xiàn)方式是在操作系統(tǒng)的內(nèi)核態(tài)注冊(cè)LSM(Linux Security module)的實(shí)現(xiàn)模塊,該模塊實(shí)現(xiàn)LSM(Linux Securitymodule)提供的與可執(zhí)行程序加載、文件修改相關(guān)的鉤子函數(shù),在內(nèi)核態(tài)程序文件的執(zhí)行與修改過程進(jìn)行控制。同時(shí),在用戶態(tài)提供了程序注冊(cè)與刪除的工具,便于管理原使用。在可執(zhí)行程序加載時(shí),讀取程序內(nèi)容進(jìn)行校驗(yàn),并與白名單進(jìn)行比對(duì),只有比對(duì)通過的程序才許可執(zhí)行。并在程序文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中予以標(biāo)記。當(dāng)程序再次執(zhí)行時(shí),檢查標(biāo)記即可。在修改文件時(shí),對(duì)文件進(jìn)行白名單比對(duì),如果文件在白名單中,說明這是 一個(gè)應(yīng)受到的保護(hù)的程序文件,拒絕修改。僅有擁有特定角色的主體可以繼續(xù)操作。操作完成后主動(dòng)更新白名單。此外,本實(shí)例還提供了程序的注冊(cè)與請(qǐng)求接口,可以靈活的配置白名單。通過本實(shí)例,通過內(nèi)核態(tài)實(shí)現(xiàn),可以有效地監(jiān)控每一個(gè)可執(zhí)行程序;通過白名單機(jī)制,簡(jiǎn)單可靠,避免了殺毒軟件特征判斷帶來的誤判。適用于服務(wù)器環(huán)境。對(duì)程序的整體影響小,只在程序初次加載時(shí)判斷,可以避免頻繁檢測(cè)帶來的性能損耗。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,包括步驟SI 向所述Linux系統(tǒng)發(fā)送對(duì)程序文件執(zhí)行操作的請(qǐng)求;步驟S2:所述Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了 Linux安全模塊(LSM)的第一鉤子函數(shù),將所述程序文件的內(nèi)容與白名單中的內(nèi)容相比對(duì);以及步驟S3 :根據(jù)比對(duì)結(jié)果,判斷是否對(duì)所述程序文件執(zhí)行所述操作。
2.根據(jù)權(quán)利要求I所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,所述步驟S2 包括將所述程序文件的內(nèi)容與白名單中的內(nèi)容相比對(duì)包括將所述程序文件的哈希值與白名單中的哈希值相比對(duì)。
3.根據(jù)權(quán)利要求2所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,對(duì)程序文件執(zhí)行操作包括執(zhí)行所述程序文件。
4.根據(jù)權(quán)利要求2所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,對(duì)程序文件執(zhí)行操作包括修改所述程序文件。
5.根據(jù)權(quán)利要求3所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,所述步驟S3 包括如果所述白名單中存在所述程序文件的哈希值,則執(zhí)行所述程序文件。
6.根據(jù)權(quán)利要求4所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,所述步驟S3 包括如果所述白名單中不存在所述程序文件的哈希值,則修改所述程序文件。
7.根據(jù)權(quán)利要求I所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,在所述步驟S I之后和所述步驟S2之前,所述方法還包括所述Linux系統(tǒng)加載所述程序文件。
8.根據(jù)權(quán)利要求7所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,在所述步驟 S3之后,所述方法還包括所述Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了 Linux安全模塊(LSM)的第二鉤子函數(shù),來更新所述白名單。
9.根據(jù)權(quán)利要求5所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,所述步驟S3 還包括在所述程序文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中生成標(biāo)識(shí),并且在所述步驟S3之后,所述方法還包括步驟S4 :再次向所述Linux系統(tǒng)發(fā)送執(zhí)行所述程序文件的請(qǐng)求;以及步驟S5 :如果在所述程序文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)中查找到所述標(biāo)識(shí),則執(zhí)行所述程序文件。
10.根據(jù)權(quán)利要求1-9中的任一項(xiàng)所述的在Linux系統(tǒng)中執(zhí)行操作的方法,其特征在于,所述方法還包括通過程序注冊(cè)與請(qǐng)求接口配置所述白名單。
全文摘要
本發(fā)明公開了一種在Linux系統(tǒng)中執(zhí)行操作的方法,包括向Linux系統(tǒng)發(fā)送對(duì)程序文件執(zhí)行操作的請(qǐng)求;Linux系統(tǒng)通過調(diào)用實(shí)現(xiàn)了Linux安全模塊(LSM)的第一鉤子函數(shù),將程序文件的內(nèi)容與白名單中的內(nèi)容相比對(duì);以及根據(jù)比對(duì)結(jié)果,判斷是否對(duì)程序文件執(zhí)行操作。通過本實(shí)施例所描述的執(zhí)行程序文件的方法,通過內(nèi)核態(tài)實(shí)現(xiàn),可以有效地監(jiān)控每一個(gè)可執(zhí)行程序;通過白名單機(jī)制,簡(jiǎn)單可靠,避免了殺毒軟件特征判斷帶來的誤判。適用于服務(wù)器環(huán)境。對(duì)程序的整體影響小,只在程序初次加載時(shí)判斷,可以避免頻繁檢測(cè)帶來的性能損耗。
文檔編號(hào)G06F21/52GK102930202SQ20121043653
公開日2013年2月13日 申請(qǐng)日期2012年11月5日 優(yōu)先權(quán)日2012年11月5日
發(fā)明者姜國(guó)梁, 付根希, 彭成, 楊浩, 苗艷超 申請(qǐng)人:曙光信息產(chǎn)業(yè)(北京)有限公司