一種檢測(cè)權(quán)限漏洞的方法及裝置的制造方法
【專利摘要】本申請(qǐng)公開了一種檢測(cè)權(quán)限漏洞的方法及裝置。其中,所述方法可以包括:從待檢測(cè)軟件的源代碼中,獲取待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合;解析出待檢測(cè)軟件對(duì)資源訪問路徑設(shè)置的權(quán)限配置;利用權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問資源訪問路徑進(jìn)行訪問授權(quán)判決;根據(jù)訪問授權(quán)判決的結(jié)果,確定資源訪問路徑是否存在漏洞。由于本申請(qǐng)結(jié)合權(quán)限配置對(duì)待測(cè)權(quán)限值進(jìn)行訪問授權(quán)判決,根據(jù)訪問授權(quán)判決的結(jié)果,確定資源訪問路徑是否存在針對(duì)待測(cè)權(quán)限值的漏洞,而資源訪問路徑、權(quán)限配置可以自動(dòng)從待檢測(cè)軟件的源代碼中獲取,因此,在檢測(cè)漏洞過程中,全程無需人工參與,不會(huì)出現(xiàn)人為疏忽造成的漏洞遺留,可以提高漏洞檢出率。
【專利說明】
一種檢測(cè)權(quán)限漏洞的方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,尤其涉及一種檢測(cè)權(quán)限漏洞的方法及裝置。
【背景技術(shù)】
[0002]在計(jì)算機(jī)應(yīng)用領(lǐng)域中,權(quán)限,指對(duì)資源的訪問能力。例如,在一個(gè)應(yīng)用軟件中,可以基于不同角色設(shè)置相應(yīng)的權(quán)限控制機(jī)制,一種角色的用戶可以訪問而且只能訪問該角色被授權(quán)的資源。例如,網(wǎng)站論壇可以包括匿名用戶、普通用戶、管理員三種角色。不同角色對(duì)應(yīng)不同的權(quán)限等級(jí)。例如,匿名用戶對(duì)應(yīng)的權(quán)限等級(jí)不能查看貼子內(nèi)容,普通用戶對(duì)應(yīng)的權(quán)限等級(jí)可以看到貼子內(nèi)容,管理員用戶對(duì)應(yīng)的權(quán)限等級(jí)可以刪除貼子,等等。
[0003]由于計(jì)算機(jī)軟件在設(shè)計(jì)過程中可能會(huì)無意留下不當(dāng)權(quán)限的資源訪問入口,或者,未為適當(dāng)權(quán)限留下資源訪問入口,因此,需要對(duì)權(quán)限漏洞進(jìn)行檢測(cè)。目前,對(duì)權(quán)限漏洞檢測(cè),主要有兩種方式:一種是代碼白盒審計(jì),需要安全審計(jì)人員人工通讀待檢測(cè)軟件的源代碼,人工分析其中可能存在的權(quán)限漏洞;另一種是建立在黑盒層面的Fuzzing(模糊)測(cè)試,需要先由安全審計(jì)人員通過通讀源代碼來了解代碼邏輯以及業(yè)務(wù)邏輯,再通過提供符合代碼邏輯以及業(yè)務(wù)邏輯的輸入、并觀察待檢測(cè)軟件針對(duì)該輸入的響應(yīng)來發(fā)現(xiàn)權(quán)限漏洞。
[0004]但是,由于代碼白盒審計(jì)以及Fuzzing測(cè)試均需要審計(jì)人員付出較高的精力分析代碼邏輯以及業(yè)務(wù)邏輯,因此,容易由于人為疏忽造成漏洞遺留。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本申請(qǐng)的目的在于提供一種檢測(cè)權(quán)限漏洞的方法及裝置,以實(shí)現(xiàn)減少人工投入,提高漏洞檢出率的目的。
[0006]在本申請(qǐng)實(shí)施例的第一個(gè)方面,提供了一種檢測(cè)權(quán)限漏洞的方法。例如,該方法可以包括:從待檢測(cè)軟件的源代碼中,獲取所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合;解析出所述待檢測(cè)軟件對(duì)所述資源訪問路徑設(shè)置的權(quán)限配置;利用所述權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問所述資源訪問路徑進(jìn)行訪問授權(quán)判決;根據(jù)所述訪問授權(quán)判決的結(jié)果,確定所述資源訪問路徑是否存在漏洞。
[0007]在本申請(qǐng)實(shí)施例的第二個(gè)方面,提供了一種檢測(cè)權(quán)限漏洞的裝置。例如,該裝置可以包括:路徑獲取單元,可以用于從待檢測(cè)軟件的源代碼中,獲取所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合。解析配置單元,可以用于解析出所述待檢測(cè)軟件對(duì)所述資源訪問路徑設(shè)置的權(quán)限配置。授權(quán)判決單元,可以用于利用所述權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問所述資源訪問路徑進(jìn)行訪問授權(quán)判決。漏洞確定單元,可以用于根據(jù)所述訪問授權(quán)判決的結(jié)果,確定所述資源訪問路徑是否存在漏洞。
[0008]可見,本申請(qǐng)具有如下有益效果:
[0009]由于本申請(qǐng)結(jié)合權(quán)限配置對(duì)待檢測(cè)軟件中以待測(cè)權(quán)限值訪問資源訪問路徑進(jìn)行了訪問授權(quán)判決,從而可以根據(jù)訪問授權(quán)判決的結(jié)果,自動(dòng)確定資源訪問路徑是否存在針對(duì)待測(cè)權(quán)限值的漏洞,而且所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑、待檢測(cè)軟件對(duì)所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置均可以自動(dòng)獲取,因此,在檢測(cè)漏洞過程中,全程無需人工參與,不會(huì)出現(xiàn)人為疏忽造成的漏洞遺留,可以提高漏洞檢出率。
【附圖說明】
[0010]為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0011]圖1為本申請(qǐng)一實(shí)施例提供的檢測(cè)權(quán)限漏洞的方法流程示意圖;
[0012]圖2為本申請(qǐng)另一實(shí)施例提供的檢測(cè)權(quán)限漏洞的方法流程示意圖;
[0013]圖3為本申請(qǐng)實(shí)施例提供的檢測(cè)權(quán)限漏洞的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0014]為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0015]例如,參見圖1,為本申請(qǐng)一實(shí)施例提供的檢測(cè)權(quán)限漏洞的方法流程示意圖。如圖1所示,該方法可以包括:
[0016]S110、從待檢測(cè)軟件的源代碼中,獲取所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合。
[0017]應(yīng)用本申請(qǐng)實(shí)施例提供的方法的審計(jì)軟件可以接收對(duì)所述待檢測(cè)軟件的源代碼的存儲(chǔ)地址的指定,從所述存儲(chǔ)地址讀取出所述待檢測(cè)軟件的源代碼,或者,接收對(duì)所述待檢測(cè)軟件的源代碼的上傳,得到所述待檢測(cè)軟件的源代碼。
[0018]例如,一些可能的實(shí)施方式中,本申請(qǐng)實(shí)施例提供的方法可以應(yīng)用于網(wǎng)絡(luò)側(cè),所述待檢測(cè)軟件可以為網(wǎng)絡(luò)側(cè)應(yīng)用,所述資源訪問路徑可以為網(wǎng)絡(luò)資源地址Url ο所述接收對(duì)待檢測(cè)軟件的源代碼的存儲(chǔ)地址的指定,或者,所述接收對(duì)待檢測(cè)軟件的源代碼的上傳,具體可以從用戶側(cè)接收。例如,本申請(qǐng)實(shí)施例提供的方法可以應(yīng)用于安全審計(jì)軟件“secscan”。待檢測(cè)軟件可以為運(yùn)行于網(wǎng)絡(luò)側(cè)的“支付寶”軟件。應(yīng)用本申請(qǐng)實(shí)施例提供的方法的安全審計(jì)軟件“secscan”可以接收用戶側(cè)輸入的“支付寶”軟件源代碼的存放路徑,從該存放路徑中獲取“支付寶”軟件的源代碼,并從中提取出對(duì)外提供的資源訪問路徑的集合。
[0019]再例如,另一些可能的實(shí)施方式中,本申請(qǐng)實(shí)施例提供的方法可以應(yīng)用于終端側(cè)。所述待檢測(cè)軟件可以為終端應(yīng)用,所述資源訪問路徑可以為本地存儲(chǔ)地址或基于安卓系統(tǒng)的activity (應(yīng)用程序組件,提供一個(gè)屏幕,用戶可以用來交互為了完成某項(xiàng)任務(wù))的桌面資源的訪問路徑。
[0020]可以理解的是,在一個(gè)軟件中,資源訪問路徑可以通過多種方式自動(dòng)提取,本申請(qǐng)對(duì)此并不進(jìn)行限制。例如,所述資源訪問路徑,可以通過對(duì)待檢測(cè)軟件的源代碼進(jìn)行資源訪問路徑的關(guān)鍵詞字符特征的查詢來自動(dòng)提取、可以通過解析待檢測(cè)軟件的AST樹(Abstract Syntax Tree,抽象語法樹)來自動(dòng)提取,等等。
[0021]S120、解析出所述待檢測(cè)軟件對(duì)所述資源訪問路徑設(shè)置的權(quán)限配置。
[0022]例如,軟件對(duì)外提供的各種資源訪問路徑對(duì)應(yīng)的權(quán)限配置可以以key-value的形式保存在指定格式的權(quán)限配置文件中。其中,key可以是目標(biāo)資源的資源訪問路徑,value可以是允許訪問該目標(biāo)資源的權(quán)限值。所述指定格式的權(quán)限配置文件可以為xml格式。因此,通過對(duì)例如xml格式的權(quán)限配置文件進(jìn)行解析,可以從中解析出所述資源訪問路徑對(duì)應(yīng)的允許訪問該資源訪問路徑下資源的所有權(quán)限值的集合。
[0023]S130、利用所述權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問所述資源訪問路徑進(jìn)行訪問授權(quán)判決。
[0024]其中,所述待測(cè)權(quán)限值可以根據(jù)實(shí)際應(yīng)用場(chǎng)景的漏洞檢測(cè)的需要進(jìn)行任意設(shè)置,本申請(qǐng)對(duì)此并不進(jìn)行限制。例如,可以選擇最具有不安全因素的待測(cè)權(quán)限值,例如,最低級(jí)權(quán)限,作為待測(cè)權(quán)限值,從而可以檢出待檢測(cè)軟件的安全漏洞。再例如,可以選擇某指定角色所具有的權(quán)限作為待測(cè)權(quán)限值,從而可以檢出待檢測(cè)軟件是否為該指定角色開放了適當(dāng)權(quán)限,從而檢出待檢測(cè)軟件中該指定角色的權(quán)限漏洞。
[0025]—些可能的實(shí)施方式中,可以利用待檢測(cè)軟件的授權(quán)判決機(jī)制來進(jìn)行訪問授權(quán)判決。例如,在該實(shí)施方式中,可以創(chuàng)建出對(duì)所述待檢測(cè)軟件所提供的所述資源訪問路徑的虛擬訪問,通過待檢測(cè)軟件授權(quán)判決機(jī)制的運(yùn)行產(chǎn)生訪問授權(quán)判決的結(jié)果,應(yīng)用本申請(qǐng)實(shí)施例方法的審計(jì)軟件可以截獲所述訪問授權(quán)判決的結(jié)果。
[0026]另一些可能的實(shí)施方式中,可以在應(yīng)用本申請(qǐng)實(shí)施例方法的審計(jì)軟件中內(nèi)置授權(quán)判決機(jī)制。虛擬出用戶以待測(cè)權(quán)限值訪問所述資源訪問路徑的權(quán)限上下文,利用所述權(quán)限上下文以及所述權(quán)限配置,通過內(nèi)置的授權(quán)判決機(jī)制對(duì)所述資源訪問路徑逐一進(jìn)行訪問授權(quán)判決。例如,對(duì)于基于不同角色的垂直權(quán)限控制機(jī)制的待檢測(cè)軟件來說,該虛擬出的權(quán)限上下文中可以包括用戶名、角色、該角色所擁有的權(quán)限、等等。其中,該角色所擁有的權(quán)限為待測(cè)權(quán)限值。在該實(shí)施方式中,無需搭建針對(duì)所述待檢測(cè)軟件的運(yùn)行環(huán)境,只需要待檢測(cè)軟件的源代碼即可自動(dòng)對(duì)最低級(jí)權(quán)限進(jìn)行訪問授權(quán)判決,檢測(cè)效率較高。
[0027]例如,一些可能的實(shí)施方式中,所述權(quán)限配置中可以包含允許訪問權(quán)限集合。在該實(shí)施方式中,所述內(nèi)置的授權(quán)判決機(jī)制的具體實(shí)現(xiàn)可以為:判斷所述最低級(jí)權(quán)限是否為所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中允許訪問權(quán)限集合的子集,如果是,則所述訪問授權(quán)判決的結(jié)果為允許訪問,如果否,則所述訪問授權(quán)判決的結(jié)果為不允許訪問。如果所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中未設(shè)置允許訪問權(quán)限集合,則所述訪問授權(quán)判決的結(jié)果為允許訪問。
[0028]S140、根據(jù)所述訪問授權(quán)判決的結(jié)果,確定所述資源訪問路徑是否存在漏洞。
[0029]例如,在選擇最具有不安全因素的權(quán)限值作為待測(cè)權(quán)限值的實(shí)施方式中,如果訪問授權(quán)判決的結(jié)果是所述資源訪問路徑允許被待測(cè)權(quán)限值訪問,則可以確定所述資源訪問路徑存在漏洞,如果訪問授權(quán)判決的結(jié)果是所述資源訪問路徑不允許被待測(cè)權(quán)限值訪問,則可以確定所述資源訪問路徑不存在漏洞。
[0030]可見,應(yīng)用本申請(qǐng)上述實(shí)施例提供的方法,可以根據(jù)實(shí)際應(yīng)用場(chǎng)景中對(duì)資源可能帶來不安全影響的待測(cè)權(quán)限值,結(jié)合權(quán)限配置對(duì)待檢測(cè)軟件中以待測(cè)權(quán)限值訪問資源訪問路徑進(jìn)行訪問授權(quán)判決,從而可以根據(jù)訪問授權(quán)判決的結(jié)果,自動(dòng)確定資源訪問路徑是否存在針對(duì)待測(cè)權(quán)限值的漏洞,而且所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑、待檢測(cè)軟件對(duì)所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置均可以自動(dòng)獲取、以待測(cè)權(quán)限值訪問所述資源訪問路徑的訪問也可以自動(dòng)模擬,因此,在檢測(cè)漏洞過程中,全程無需人工參與,不會(huì)出現(xiàn)人為疏忽造成的漏洞,可以提高漏洞檢出率。另外,應(yīng)用本申請(qǐng)實(shí)施例提供的方法的審計(jì)軟件可以內(nèi)置有訪問授權(quán)判決機(jī)制,無需針對(duì)待檢測(cè)軟件搭建運(yùn)行環(huán)境,只需要待檢測(cè)軟件的源代碼即可自動(dòng)對(duì)待測(cè)權(quán)限值進(jìn)行訪問授權(quán)判決,檢測(cè)效率較高。
[0031]下面,結(jié)合圖2,對(duì)所述待測(cè)權(quán)限值為最低級(jí)權(quán)限的實(shí)施方式進(jìn)行介紹。例如,參見圖2,為本申請(qǐng)另一實(shí)施例提供的檢測(cè)權(quán)限漏洞的方法流程示意圖。如圖2所示,該方法可以包括:
[0032]S210、從待檢測(cè)軟件的源代碼中,獲取所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合。
[0033]S220、解析出所述待檢測(cè)軟件對(duì)所述資源訪問路徑設(shè)置的權(quán)限配置。
[0034]S230、利用所述權(quán)限配置,對(duì)以最低級(jí)權(quán)限訪問所述資源訪問路徑進(jìn)行訪問授權(quán)判決。
[0035]需要說明的是,即使是在同一軟件中,不同資源訪問路徑對(duì)應(yīng)的權(quán)限等級(jí)的劃分形式可以不同。例如,一些資源訪問路徑對(duì)應(yīng)的權(quán)限等級(jí)可以被劃分為高級(jí)與低級(jí)兩種權(quán)限等級(jí)、或者,從高到低的一級(jí)、二級(jí)、三級(jí)等若干等級(jí)。因此,本申請(qǐng)實(shí)施例所述待測(cè)權(quán)限值可以為根據(jù)資源訪問路徑對(duì)應(yīng)的權(quán)限等級(jí)劃分方式所對(duì)應(yīng)的最低等級(jí)權(quán)限。例如,當(dāng)資源訪問路徑對(duì)應(yīng)的權(quán)限等級(jí)包括高級(jí)與低級(jí)兩種權(quán)限等級(jí)時(shí),待測(cè)權(quán)限值可以為低級(jí),當(dāng)資源訪問路徑對(duì)應(yīng)的權(quán)限等級(jí)從高到低包括一級(jí)、二級(jí)、三級(jí)時(shí),待測(cè)權(quán)限值可以為三級(jí)。
[0036]S240、如果所述訪問授權(quán)判決的結(jié)果為允許訪問,則確定所述資源訪問路徑存在安全漏洞。
[0037]S241、如果所述訪問授權(quán)判決的結(jié)果為不允許訪問,則確定所述資源訪問路徑不存在安全漏洞。
[0038]可以理解的是,本申請(qǐng)實(shí)施例對(duì)于高權(quán)限要求的交易類產(chǎn)品或管理員類產(chǎn)品漏洞檢出率較高。而在某些應(yīng)用場(chǎng)景中,如果某些資源允許最低級(jí)權(quán)限的訪問,例如,公告頁面資源,上述實(shí)施方式可能會(huì)產(chǎn)生針對(duì)該類資源的安全漏洞誤報(bào)。為了避免針對(duì)該類資源的安全漏洞誤報(bào),本申請(qǐng)實(shí)施例還可以針對(duì)該類資源設(shè)置一定的漏洞篩除規(guī)則,篩除針對(duì)該類資源所檢出的安全漏洞。
[0039]可見,應(yīng)用本申請(qǐng)上述實(shí)施例提供的方法,可以結(jié)合資源訪問路徑的權(quán)限配置,對(duì)以最低級(jí)權(quán)限訪問資源訪問路徑進(jìn)行訪問授權(quán)判決,從而可以根據(jù)訪問授權(quán)判決的結(jié)果,在某資源訪問路徑下的資源允許最低級(jí)權(quán)限訪問時(shí),確定該資源存在針對(duì)最低級(jí)權(quán)限的安全漏洞,在某資源訪問路徑下的資源不允許最低級(jí)權(quán)限訪問時(shí),確定該資源不存在針對(duì)最低級(jí)權(quán)限的安全漏洞,在檢測(cè)安全漏洞過程中,全程無需人工參與,不會(huì)出現(xiàn)人為疏忽造成的漏洞,可以提高漏洞檢出率。
[0040]與上述檢測(cè)權(quán)限漏洞的方法相應(yīng)地,本申請(qǐng)實(shí)施例還提供了一種檢測(cè)權(quán)限漏洞的裝置。例如,參見圖3,為本申請(qǐng)實(shí)施例提供的一種檢測(cè)權(quán)限漏洞的裝置結(jié)構(gòu)示意圖。如圖3所示,該裝置可以包括:
[0041]路徑獲取單元310,可以用于從待檢測(cè)軟件的源代碼中,獲取所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合。解析配置單元320,可以用于解析出所述待檢測(cè)軟件對(duì)所述資源訪問路徑設(shè)置的權(quán)限配置。授權(quán)判決單元330,可以用于利用所述權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問所述資源訪問路徑進(jìn)行訪問授權(quán)判決。漏洞確定單元340,可以用于根據(jù)所述訪問授權(quán)判決的結(jié)果,確定所述資源訪問路徑是否存在漏洞。
[0042]由于本申請(qǐng)實(shí)施例提供的裝置的授權(quán)判決單元330利用解析配置單元320所解析出的權(quán)限配置對(duì)待檢測(cè)軟件中以待測(cè)權(quán)限值訪問資源訪問路徑進(jìn)行訪問授權(quán)判決,從而漏洞確定單元340可以根據(jù)訪問授權(quán)判決的結(jié)果,自動(dòng)確定資源訪問路徑是否存在針對(duì)待測(cè)權(quán)限值的漏洞,而且所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑、待檢測(cè)軟件對(duì)所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置均可以由路徑獲取單元310、解析配置單元320自動(dòng)獲取、授權(quán)判決單元330以待測(cè)權(quán)限值訪問所述資源訪問路徑的訪問也可以自動(dòng)模擬,因此,在檢測(cè)漏洞過程中,全程無需人工參與,不會(huì)出現(xiàn)人為疏忽造成的漏洞,可以提高漏洞檢出率。
[0043]—些可能的實(shí)施方式中,所述裝置還可以包括:路徑接收單元300,可以用于接收對(duì)所述待檢測(cè)軟件的源代碼的存儲(chǔ)地址的指定,從所述存儲(chǔ)地址讀取出所述待檢測(cè)軟件的源代碼。或者,代碼接收單元301,可以用于接收對(duì)所述待檢測(cè)軟件的源代碼的上傳,得到所述待檢測(cè)軟件的源代碼。例如,所述裝置可以配置于網(wǎng)絡(luò)側(cè),所述待檢測(cè)軟件可以為網(wǎng)絡(luò)側(cè)應(yīng)用,所述資源訪問路徑可以為網(wǎng)絡(luò)資源地址。其中,所述路徑接收單元300,可以用于從用戶側(cè)接收對(duì)所述待檢測(cè)軟件的源代碼的存儲(chǔ)地址的指定,從所述存儲(chǔ)地址讀取出所述待檢測(cè)軟件的源代碼。所述代碼接收單元301,可以用于從用戶側(cè)接收對(duì)所述待檢測(cè)軟件的源代碼的上傳,得到所述待檢測(cè)軟件的源代碼。
[0044]一些可能的實(shí)施方式中,所述授權(quán)判決單元330可以包括:虛擬子單元331,可以用于虛擬出用戶以待測(cè)權(quán)限值訪問所述資源訪問路徑的權(quán)限上下文。判決子單元332,可以用于利用所述權(quán)限上下文以及所述權(quán)限配置,通過內(nèi)置的授權(quán)判決機(jī)制對(duì)所述資源訪問路徑逐一進(jìn)行訪問授權(quán)判決。
[0045]結(jié)合上述實(shí)施方式,所述權(quán)限配置中可以包含允許訪問權(quán)限集合。相應(yīng)地,所述內(nèi)置的授權(quán)判決機(jī)制的具體實(shí)現(xiàn)可以為:判斷所述最低級(jí)權(quán)限是否為所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中允許訪問權(quán)限集合的子集,如果是,則所述訪問授權(quán)判決的結(jié)果為允許訪問,如果否,則所述訪問授權(quán)判決的結(jié)果為不允許訪問;如果所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中未設(shè)置允許訪問權(quán)限集合,則所述訪問授權(quán)判決的結(jié)果為允許訪問。
[0046]—些可能的實(shí)施方式中,所述待測(cè)權(quán)限值可以為最低級(jí)權(quán)限。相應(yīng)地,所述漏洞確定單元340可以包括:漏洞檢出子單元341,可以用于如果所述訪問授權(quán)判決的結(jié)果為允許訪問,則確定所述資源訪問路徑存在安全漏洞。漏洞排除子單元342,可以用于如果所述訪問授權(quán)判決的結(jié)果為不允許訪問,則確定所述資源訪問路徑不存在安全漏洞。
[0047]由于在上述實(shí)施方式中,授權(quán)判決單元330結(jié)合資源訪問路徑的權(quán)限配置,對(duì)以最低級(jí)權(quán)限訪問資源訪問路徑進(jìn)行訪問授權(quán)判決,從而漏洞確定單元340可以根據(jù)訪問授權(quán)判決的結(jié)果,在某資源訪問路徑下的資源允許最低級(jí)權(quán)限訪問時(shí),確定該資源存在針對(duì)最低級(jí)權(quán)限的漏洞,在某資源訪問路徑下的資源不允許最低級(jí)權(quán)限訪問時(shí),確定該資源不存在針對(duì)最低級(jí)權(quán)限的漏洞。在檢測(cè)漏洞過程中,全程無需人工參與,不會(huì)出現(xiàn)人為疏忽造成的漏洞,可以提高漏洞檢出率。
[0048]需要注意的是,在本申請(qǐng)實(shí)施例中,所述虛擬子單元331、所述判決子單元332、所述路徑接收單元300、代碼接收單元301、漏洞檢出子單元341、漏洞排除子單元342在圖3中以虛線繪制,以表示這些單元不是本申請(qǐng)實(shí)施例提供的檢測(cè)權(quán)限漏洞的裝置的必要單
J L ο
[0049]為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本發(fā)明時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
[0050]通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0051 ] 本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
[0052]本發(fā)明可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
[0053]本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
[0054]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0055]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種檢測(cè)權(quán)限漏洞的方法,其特征在于,包括: 從待檢測(cè)軟件的源代碼中,獲取所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合; 解析出所述待檢測(cè)軟件對(duì)所述資源訪問路徑設(shè)置的權(quán)限配置; 利用所述權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問所述資源訪問路徑進(jìn)行訪問授權(quán)判決; 根據(jù)所述訪問授權(quán)判決的結(jié)果,確定所述資源訪問路徑是否存在漏洞。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用所述權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問所述資源訪問路徑進(jìn)行訪問授權(quán)判決包括: 虛擬出用戶以待測(cè)權(quán)限值訪問所述資源訪問路徑的權(quán)限上下文; 利用所述權(quán)限上下文以及所述權(quán)限配置,通過內(nèi)置的授權(quán)判決機(jī)制對(duì)所述資源訪問路徑逐一進(jìn)行訪問授權(quán)判決。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述內(nèi)置的授權(quán)判決機(jī)制的具體實(shí)現(xiàn)為; 判斷所述最低級(jí)權(quán)限是否為所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中允許訪問權(quán)限集合的子集,如果是,則所述訪問授權(quán)判決的結(jié)果為允許訪問,如果否,則所述訪問授權(quán)判決的結(jié)果為不允許訪問; 如果所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中未設(shè)置允許訪問權(quán)限集合,則所述訪問授權(quán)判決的結(jié)果為允許訪問。4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的方法,其特征在于,所述待測(cè)權(quán)限值為最低級(jí)權(quán)限; 其中,所述根據(jù)訪問授權(quán)判決的結(jié)果,確定所述資源訪問路徑是否存在漏洞包括: 如果所述訪問授權(quán)判決的結(jié)果為允許訪問,則確定所述資源訪問路徑存在安全漏洞; 如果所述訪問授權(quán)判決的結(jié)果為不允許訪問,則確定所述資源訪問路徑不存在安全漏洞。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: 接收對(duì)所述待檢測(cè)軟件的源代碼的存儲(chǔ)地址的指定,從所述存儲(chǔ)地址讀取出所述待檢測(cè)軟件的源代碼; 或者, 接收對(duì)所述待檢測(cè)軟件的源代碼的上傳,得到所述待檢測(cè)軟件的源代碼。6.一種檢測(cè)權(quán)限漏洞的裝置,其特征在于,包括: 路徑獲取單元,用于從待檢測(cè)軟件的源代碼中,獲取所述待檢測(cè)軟件對(duì)外提供的資源訪問路徑的集合; 解析配置單元,用于解析出所述待檢測(cè)軟件對(duì)所述資源訪問路徑設(shè)置的權(quán)限配置;授權(quán)判決單元,用于利用所述權(quán)限配置,對(duì)以待測(cè)權(quán)限值訪問所述資源訪問路徑進(jìn)行訪冋授權(quán)判決; 漏洞確定單元,用于根據(jù)所述訪問授權(quán)判決的結(jié)果,確定所述資源訪問路徑是否存在漏洞。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述授權(quán)判決單元包括: 虛擬子單元,用于虛擬出用戶以待測(cè)權(quán)限值訪問所述資源訪問路徑的權(quán)限上下文;判決子單元,用于利用所述權(quán)限上下文以及所述權(quán)限配置,通過內(nèi)置的授權(quán)判決機(jī)制對(duì)所述資源訪問路徑逐一進(jìn)行訪問授權(quán)判決。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述判決子單元內(nèi)置的授權(quán)判決機(jī)制的具體實(shí)現(xiàn)為: 判斷所述最低級(jí)權(quán)限是否為所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中允許訪問權(quán)限集合的子集,如果是,則所述訪問授權(quán)判決的結(jié)果為允許訪問,如果否,則所述訪問授權(quán)判決的結(jié)果為不允許訪問; 如果所述資源訪問路徑對(duì)應(yīng)的權(quán)限配置中未設(shè)置允許訪問權(quán)限集合,則所述訪問授權(quán)判決的結(jié)果為允許訪問。9.根據(jù)權(quán)利要求6-8任一項(xiàng)所述的裝置,其特征在于,所述待測(cè)權(quán)限值為最低級(jí)權(quán)限; 其中,所述漏洞確定單元包括: 漏洞檢出子單元,用于如果所述訪問授權(quán)判決的結(jié)果為允許訪問,則確定所述資源訪問路徑存在安全漏洞; 漏洞排除子單元,用于如果所述訪問授權(quán)判決的結(jié)果為不允許訪問,則確定所述資源訪問路徑不存在安全漏洞。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 路徑接收單元,用于接收對(duì)所述待檢測(cè)軟件的源代碼的存儲(chǔ)地址的指定,從所述存儲(chǔ)地址讀取出所述待檢測(cè)軟件的源代碼; 或者, 代碼接收單元,用于接收對(duì)所述待檢測(cè)軟件的源代碼的上傳,得到所述待檢測(cè)軟件的源代碼。
【文檔編號(hào)】G06F21/57GK105868636SQ201510028034
【公開日】2016年8月17日
【申請(qǐng)日】2015年1月20日
【發(fā)明人】吳坤
【申請(qǐng)人】阿里巴巴集團(tuán)控股有限公司