Android應(yīng)用漏洞檢測(cè)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種Android應(yīng)用漏洞檢測(cè)方法,包括:步驟一、通過(guò)分析待檢測(cè)Android應(yīng)用的Content?Provider接口特征,判斷其是否可能存在隱私泄露漏洞;步驟二、如果可能存在,針對(duì)可能存在隱私泄露漏洞的待檢測(cè)Android應(yīng)用,通過(guò)對(duì)Android系統(tǒng)中相關(guān)API函數(shù)的監(jiān)控,對(duì)待檢測(cè)Android應(yīng)用的公開(kāi)可訪問(wèn)URI進(jìn)行SQL注入漏洞測(cè)試和路徑遍歷漏洞測(cè)試,檢測(cè)被動(dòng)數(shù)據(jù)泄露安全風(fēng)險(xiǎn)。本發(fā)明還提供一種Android應(yīng)用漏洞檢測(cè)系統(tǒng)。上述方法和系統(tǒng)能夠基于動(dòng)態(tài)測(cè)試執(zhí)行效果來(lái)快速發(fā)現(xiàn)Android應(yīng)用中確定存在的隱私泄露和數(shù)據(jù)污染漏洞,并且避免誤報(bào),為大規(guī)模發(fā)現(xiàn)Android應(yīng)用中隱私泄露與數(shù)據(jù)污染類安全漏洞提供了有力支持。
【專利說(shuō)明】 Android應(yīng)用漏洞檢測(cè)方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)程序的漏洞檢測(cè)技術(shù),尤其涉及一種Android(安卓操作系統(tǒng))上的應(yīng)用漏洞檢測(cè)方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前,隨著互聯(lián)網(wǎng)和智能手機(jī)在人類社會(huì)的日益普及,移動(dòng)安全問(wèn)題和安全隱患也隨之愈發(fā)嚴(yán)重。針對(duì)智能手機(jī)的病毒、木馬等惡意程序發(fā)展迅速,在移動(dòng)終端上植入惡意代碼進(jìn)行網(wǎng)絡(luò)犯罪的事件呈增長(zhǎng)趨勢(shì),移動(dòng)終端的用戶正在面臨前所未有的安全風(fēng)險(xiǎn)。Android平臺(tái)是目前最流行的智能移動(dòng)終端平臺(tái),其中存在的安全風(fēng)險(xiǎn)最為引人關(guān)注。
[0003]Content Provider是在Android操作系統(tǒng)中封裝的一套結(jié)構(gòu)化本地?cái)?shù)據(jù)組件(通常是以SQLite數(shù)據(jù)庫(kù)的形式),然后提供必要的封裝機(jī)制來(lái)訪問(wèn)和控制數(shù)據(jù)。默認(rèn)情況下,Content Provider接口是開(kāi)放的,Android應(yīng)用可以通過(guò)這個(gè)組件互相溝通。與ContentProvider相關(guān)的安全隱患包括隱私泄露漏洞和數(shù)據(jù)污染漏洞。
[0004]已有一些靜態(tài)分析的方法來(lái)檢測(cè)Android應(yīng)用程序的隱私泄露和數(shù)據(jù)污染漏洞。這些方法主要對(duì)Android應(yīng)用程序反編譯后的Dalvik (Google公司設(shè)計(jì)用于Android平臺(tái)的Java虛擬機(jī))字節(jié)碼或Java源代碼進(jìn)行靜態(tài)分析,在靜態(tài)代碼中查找可能導(dǎo)致相關(guān)類型漏洞的特征。
[0005]靜態(tài)分析主要采用構(gòu)造控制流圖(以下簡(jiǎn)稱CFG)技術(shù),另外結(jié)合一些靜態(tài)污點(diǎn)分析或數(shù)據(jù)流分析的技術(shù)以提高檢測(cè)的準(zhǔn)確率。例如:(I)Woodpecker首先通過(guò)對(duì)Android應(yīng)用程序反編譯后的Dalvik字節(jié)碼建立控制流圖來(lái)確定可能的執(zhí)行路徑,然后采用數(shù)據(jù)流分析技術(shù)對(duì)以上結(jié)果作進(jìn)一步精簡(jiǎn)得到可能觸發(fā)權(quán)限泄露的路徑集。(2)DiOidChecker對(duì)Android應(yīng)用程序反編譯后的Java源代碼靜態(tài)分析,首先從Manifest文件中提取疑似權(quán)限泄露的Android組件列表,然后從每個(gè)組件對(duì)應(yīng)的Java程序入口開(kāi)始構(gòu)造CFG,同時(shí)結(jié)合靜態(tài)污點(diǎn)分析技術(shù),定位導(dǎo)致權(quán)限泄露的系統(tǒng)調(diào)用點(diǎn)。(3) ContentScope針對(duì)Android應(yīng)用中的隱私泄露與數(shù)據(jù)污染漏洞,對(duì)反編譯后的Java源代碼進(jìn)行靜態(tài)分析,生成函數(shù)調(diào)用圖和程序控制流圖,從而識(shí)別出從Content Provider接口至SQLite數(shù)據(jù)庫(kù)操作API函數(shù)的程序執(zhí)行流,確定出存在漏洞的應(yīng)用。
[0006]但是,對(duì)Java源代碼的靜態(tài)分析在很大程度上依賴于Java反編譯工具的準(zhǔn)確性和完整性,目前的技術(shù)無(wú)法保證無(wú)損地將Android應(yīng)用程序包反編譯到Java源代碼級(jí),這在一定程度上影響權(quán)限泄露靜態(tài)分析技術(shù)的準(zhǔn)確性。其次,眾所周知,Java是一種支持繼承和多態(tài)的高級(jí)語(yǔ)言?,F(xiàn)有的靜態(tài)分析方法采用的靜態(tài)污點(diǎn)分析和數(shù)據(jù)流分析技術(shù)無(wú)法考慮Java的多態(tài)這一動(dòng)態(tài)特征,也會(huì)在一定程度上增加漏洞檢測(cè)的誤報(bào)率。除此之外,現(xiàn)有的靜態(tài)分析技術(shù)檢測(cè)出的疑似漏洞并不能可以真正實(shí)現(xiàn)有效的攻擊,有待手工方法做進(jìn)一步驗(yàn)證,面對(duì)大量的Android應(yīng)用程序,手工驗(yàn)證耗時(shí)耗力。
[0007]面對(duì)當(dāng)前大量的Android應(yīng)用,從保護(hù)用戶隱私和手機(jī)系統(tǒng)安全性的角度,都非常有必要設(shè)計(jì)出一種更加有效和自動(dòng)化的Android應(yīng)用隱私泄露與數(shù)據(jù)污染漏洞檢測(cè)方 法,來(lái)解決Android應(yīng)用安全測(cè)試的難題。
【發(fā)明內(nèi)容】
[0008]本發(fā)明要解決的技術(shù)問(wèn)題是提出一種Android應(yīng)用漏洞檢測(cè)方法及系統(tǒng),快速檢測(cè)出Android應(yīng)用中存在的隱私泄露或數(shù)據(jù)污染安全漏洞。
[0009]根據(jù)本發(fā)明一個(gè)方面,提供一種Android應(yīng)用漏洞檢測(cè)方法,包括:步驟一、通過(guò)分析待檢測(cè)Android應(yīng)用的Content Provider接口特征,判斷其是否可能存在隱私泄露漏洞;步驟二、如果可能存在,針對(duì)可能存在隱私泄露漏洞的待檢測(cè)Android應(yīng)用,通過(guò)對(duì)Android系統(tǒng)中相關(guān)API函數(shù)的監(jiān)控,對(duì)待檢測(cè)Android應(yīng)用的公開(kāi)可訪問(wèn)URI進(jìn)行SQL注入漏洞測(cè)試和路徑遍歷漏洞測(cè)試,檢測(cè)被動(dòng)數(shù)據(jù)泄露安全風(fēng)險(xiǎn)。
[0010]可選的,在步驟一之前還包括:從Android應(yīng)用商店或官方網(wǎng)站下載待檢測(cè)Android應(yīng)用;在檢測(cè)環(huán)境中批量安裝待檢測(cè)Android應(yīng)用。
[0011]可選的,步驟一進(jìn)一步包括:解析AndroidManifest.xml文件,查找是否存在Content Provider標(biāo)簽;如果存在,解析Content Provider標(biāo)簽的屬性信息;檢測(cè)exported屬性,是否設(shè)置為暴露;如果exported設(shè)置為暴露,檢測(cè)Content Provider聲明的權(quán)限信息,當(dāng)聲明的權(quán)限信息中設(shè)置了 permission,那么沒(méi)有授權(quán)就不可訪問(wèn),不存在隱私泄露問(wèn)題,也不存在數(shù)據(jù)污染問(wèn)題;當(dāng)設(shè)置了 readPermission,就只能在有權(quán)限時(shí)可讀,不存在隱私泄露問(wèn)題,但可能存在數(shù)據(jù)污染;當(dāng)設(shè)置了 writePermission,就只能在有權(quán)限時(shí)可寫(xiě),不存在數(shù)據(jù)污染問(wèn)題,但可能存在隱私泄露。
[0012]可選的,步驟二進(jìn)一步包括:對(duì)運(yùn)行待檢測(cè)應(yīng)用的Android系統(tǒng)框架進(jìn)行監(jiān)控代碼的插樁,監(jiān)控Content Provider與SQLite數(shù)據(jù)庫(kù)操作的數(shù)據(jù)查詢API函數(shù);生成SQL注入測(cè)試用例,調(diào)用待檢測(cè)應(yīng)用的Content Provider接口執(zhí)行測(cè)試用例,檢測(cè)是否存在SQL注入漏洞;如果存在,通過(guò)執(zhí)行測(cè)試用例,獲取URI的數(shù)據(jù)查詢游標(biāo)(Cursors),通過(guò)游標(biāo)遍歷出數(shù)據(jù)表的列名和內(nèi)容;獲取存在SQL注入漏洞的結(jié)果集。
[0013]可選的,步驟二進(jìn)一步包括:檢測(cè)是否可以通過(guò)URI的基本路徑往上層層遍歷到Android的各項(xiàng)目錄下,抓取含有用戶隱私的危險(xiǎn)數(shù)據(jù)文件;如果存在,獲取存在基本路徑遍歷漏洞的結(jié)果集。
[0014]根據(jù)本發(fā)明另一個(gè)方面,提供一種Android應(yīng)用漏洞檢測(cè)方法,包括:步驟一、通過(guò)分析待檢測(cè)Android應(yīng)用的Content Provider接口特征,判斷其是否可能存在數(shù)據(jù)污染漏洞;步驟二、通過(guò)對(duì)運(yùn)行待檢測(cè)應(yīng)用SQLite數(shù)據(jù)表結(jié)構(gòu)獲取,構(gòu)造數(shù)據(jù)修改SQL注入語(yǔ)句,檢測(cè)主動(dòng)數(shù)據(jù)污染安全風(fēng)險(xiǎn)。
[0015]可選的,步驟二進(jìn)一步包括:對(duì)運(yùn)行待檢測(cè)應(yīng)用的Android系統(tǒng)進(jìn)行監(jiān)控代碼插樁,監(jiān)控Content Provider與SQLite數(shù)據(jù)庫(kù)操作的數(shù)據(jù)修改API函數(shù);對(duì)可以進(jìn)行訪問(wèn)的URI地址進(jìn)行Query語(yǔ)句的遍歷,以確認(rèn)表字段信息和表內(nèi)容;根據(jù)表字段信息,并判斷出表字段的數(shù)據(jù)類型,準(zhǔn)備假數(shù)據(jù),構(gòu)建符合表字段類型的Insert語(yǔ)句,完成插入數(shù)據(jù)的工作;判斷數(shù)據(jù)是否插入成功主要采取兩種方法:其一是對(duì)比前后遍歷URI數(shù)據(jù)的變化,其二是通過(guò)監(jiān)控手工更改系統(tǒng)Log語(yǔ)句的打印,來(lái)驗(yàn)證SQLite內(nèi)部是否真正執(zhí)行該條SQL語(yǔ)句;如果插入成功,將前面插入的數(shù)據(jù)進(jìn)行刪除操作;將最后的結(jié)果記錄Log日志中,基于Log日志中是否存有成功進(jìn)行插入、刪除操作的記錄,來(lái)確定是否存在數(shù)據(jù)污染漏洞。[0016]根據(jù)本發(fā)明又一個(gè)方面,提供一種Android應(yīng)用漏洞檢測(cè)系統(tǒng),包括:候選應(yīng)用判斷單元,適于通過(guò)分析待檢測(cè)Android應(yīng)用的Content Provider接口特征,判斷該候選Android應(yīng)用/待測(cè)試Android應(yīng)用是否可能存在數(shù)據(jù)污染漏洞和/或隱私泄露漏洞;漏洞檢測(cè)控制器,與候選應(yīng)用判斷單元連接,適于根據(jù)安全漏洞檢測(cè)策略,為可能存在數(shù)據(jù)污染漏洞和/或隱私泄露漏洞的待測(cè)試應(yīng)用生成動(dòng)態(tài)測(cè)試用例;動(dòng)態(tài)測(cè)試代理程序,與漏洞檢測(cè)控制器連接,適于調(diào)用待檢測(cè)應(yīng)用的Content Provider接口執(zhí)行測(cè)試用例,并反饋執(zhí)行結(jié)果給漏洞檢測(cè)控制器;其中,執(zhí)行結(jié)果包括應(yīng)用在執(zhí)行測(cè)試用例時(shí)對(duì)系統(tǒng)數(shù)據(jù)查詢和數(shù)據(jù)修改API函數(shù)的調(diào)用情況與返回結(jié)果等;和插樁行為監(jiān)控器,與漏洞檢測(cè)控制器連接,位于運(yùn)行待檢測(cè)應(yīng)用的Android系統(tǒng)框架層中,適于通過(guò)代碼插樁技術(shù),監(jiān)控ContentProvider與SQLite數(shù)據(jù)庫(kù)操作的數(shù)據(jù)修改和/或數(shù)據(jù)查詢API函數(shù),并反饋監(jiān)控結(jié)果給漏洞檢測(cè)控制器。
[0017]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0018](I)現(xiàn)有靜態(tài)分析技術(shù)只能檢測(cè)出可疑漏洞,存在一定的誤報(bào)率,需要人工進(jìn)行進(jìn)一步的驗(yàn)證和篩選,且不一定能成功觸發(fā)漏洞危害效果。本發(fā)明至少一個(gè)實(shí)施例中提供的方法和系統(tǒng)能夠基于動(dòng)態(tài)測(cè)試執(zhí)行效果來(lái)發(fā)現(xiàn)Android應(yīng)用中確定存在的隱私泄露和數(shù)據(jù)污染漏洞,避免誤報(bào)。
[0019](2)本發(fā)明至少一個(gè)實(shí)施例中提供的方法和系統(tǒng)充分利用了 Android系統(tǒng)框架開(kāi)源的特性,通過(guò)在框架層與Content Provider與SQLite數(shù)據(jù)庫(kù)操作相關(guān)的API函數(shù)中插樁監(jiān)控代碼,結(jié)合動(dòng)態(tài)測(cè)試數(shù)據(jù)的生成,提出了一種基于動(dòng)態(tài)注入測(cè)試的漏洞檢測(cè)方法,從而快速有效地發(fā)現(xiàn)Android應(yīng)用中確定存在的安全漏洞。
[0020](3)本發(fā)明至少一個(gè)實(shí)施例中提供的方法和系統(tǒng)為大規(guī)模發(fā)現(xiàn)Android應(yīng)用中隱私泄露與數(shù)據(jù)污染類安全漏洞提供了有力支持。
【專利附圖】
【附圖說(shuō)明】
[0021]圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例提供的Android應(yīng)用漏洞檢測(cè)方法的方法流程圖;
[0022]圖2是根據(jù)本發(fā)明另一個(gè)實(shí)施例提供的Android應(yīng)用漏洞檢測(cè)方法的步驟SlO的流程圖;
[0023]圖3是根據(jù)本發(fā)明另一個(gè)實(shí)施例提供的Android應(yīng)用漏洞檢測(cè)方法的步驟S20的流程圖;
[0024]圖4是根據(jù)本發(fā)明另一個(gè)實(shí)施例提供的Android應(yīng)用漏洞檢測(cè)方法的步驟S40的流程圖;
[0025]圖5是根據(jù)本發(fā)明另一個(gè)實(shí)施例提供的Android應(yīng)用漏洞檢測(cè)系統(tǒng)的系統(tǒng)結(jié)構(gòu)示意圖;
[0026]圖6是根據(jù)本發(fā)明另一個(gè)實(shí)施例提供的Android應(yīng)用漏洞檢測(cè)系統(tǒng)的工作過(guò)程流程圖。
【具體實(shí)施方式】
[0027]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0028]術(shù)語(yǔ)定義:
[0029]
【權(quán)利要求】
1.一種Android應(yīng)用漏洞檢測(cè)方法,包括: 步驟一、通過(guò)分析待檢測(cè)Android應(yīng)用的Content Provider接口特征,判斷其是否可能存在隱私泄露漏洞; 步驟二、如果可能存在,針對(duì)可能存在隱私泄露漏洞的待檢測(cè)Android應(yīng)用,通過(guò)對(duì)Android系統(tǒng)中相關(guān)API函數(shù)的監(jiān)控,對(duì)待檢測(cè)Android應(yīng)用的公開(kāi)可訪問(wèn)URI進(jìn)行SQL注入漏洞測(cè)試和路徑遍歷漏洞測(cè)試,檢測(cè)被動(dòng)數(shù)據(jù)泄露安全風(fēng)險(xiǎn)。
2.根據(jù)權(quán)利要求1所述的Android應(yīng)用漏洞檢測(cè)方法,其中,在步驟一之前還包括: 從Android應(yīng)用商店或官方網(wǎng)站下載待檢測(cè)Android應(yīng)用; 在檢測(cè)環(huán)境中批量安裝待檢測(cè)Android應(yīng)用。
3.根據(jù)權(quán)利要求1所述的Android應(yīng)用漏洞檢測(cè)方法,其中,步驟一進(jìn)一步包括: 解析AndroidManifest.xml文件,查找是否存在Content Provider標(biāo)簽; 如果存在,解析Content Provider標(biāo)簽的屬性信息; 檢測(cè)exported屬性 ,是否設(shè)置為暴露; 如果exported設(shè)置為暴露,檢測(cè)Content Provider聲明的權(quán)限信息,當(dāng)聲明的權(quán)限信息中設(shè)置了 permission,那么沒(méi)有授權(quán)就不可訪問(wèn),不存在隱私泄露問(wèn)題,也不存在數(shù)據(jù)污染問(wèn)題;當(dāng)設(shè)置了 readPermission,就只能在有權(quán)限時(shí)可讀,不存在隱私泄露問(wèn)題,但可能存在數(shù)據(jù)污染;當(dāng)設(shè)置了 writePermission,就只能在有權(quán)限時(shí)可寫(xiě),不存在數(shù)據(jù)污染問(wèn)題,但可能存在隱私泄露。
4.根據(jù)權(quán)利要求1所述的Android應(yīng)用漏洞檢測(cè)方法,其中,步驟二進(jìn)一步包括: 對(duì)運(yùn)行待檢測(cè)應(yīng)用的Android系統(tǒng)框架進(jìn)行監(jiān)控代碼的插樁,監(jiān)控Content Provider與SQLite數(shù)據(jù)庫(kù)操作的數(shù)據(jù)查詢API函數(shù); 生成SQL注入測(cè)試用例,調(diào)用待檢測(cè)應(yīng)用的Content Provider接口執(zhí)行測(cè)試用例,檢測(cè)是否存在SQL注入漏洞; 如果存在,通過(guò)執(zhí)行測(cè)試用例,獲取URI的數(shù)據(jù)查詢游標(biāo)(Cursors),通過(guò)游標(biāo)遍歷出數(shù)據(jù)表的列名和內(nèi)容; 獲取存在SQL注入漏洞的結(jié)果集。
5.根據(jù)權(quán)利要求4所述的Android應(yīng)用漏洞檢測(cè)方法,其中,步驟二進(jìn)一步包括: 檢測(cè)是否可以通過(guò)URI的基本路徑往上層層遍歷到Android的各項(xiàng)目錄下,抓取含有用戶隱私的危險(xiǎn)數(shù)據(jù)文件; 如果存在,獲取存在基本路徑遍歷漏洞的結(jié)果集。
6.根據(jù)權(quán)利要求1所述的Android應(yīng)用漏洞檢測(cè)方法,其中,在步驟二之后還包括: 通過(guò)評(píng)估分析,確認(rèn)被動(dòng)數(shù)據(jù)泄露安全風(fēng)險(xiǎn)是否涉及用戶隱私泄露。
7.—種Android應(yīng)用漏洞檢測(cè)方法,包括: 步驟一、通過(guò)分析待檢測(cè)Android應(yīng)用的Content Provider接口特征,判斷其是否可能存在數(shù)據(jù)污染漏洞; 步驟二、通過(guò)對(duì)運(yùn)行待檢測(cè)應(yīng)用SQLite數(shù)據(jù)表結(jié)構(gòu)獲取,構(gòu)造數(shù)據(jù)修改SQL注入語(yǔ)句,檢測(cè)主動(dòng)數(shù)據(jù)污染安全風(fēng)險(xiǎn)。
8.根據(jù)權(quán)利要求7所述的Android應(yīng)用漏洞檢測(cè)方法,其中,步驟二進(jìn)一步包括: 對(duì)運(yùn)行待檢測(cè)應(yīng)用的Android系統(tǒng)進(jìn)行監(jiān)控代碼插樁,監(jiān)控Content Provider與SQLite數(shù)據(jù)庫(kù)操作的數(shù)據(jù)修改API函數(shù); 對(duì)可以進(jìn)行訪問(wèn)的URI地址進(jìn)行Query語(yǔ)句的遍歷,以確認(rèn)表字段信息和表內(nèi)容;根據(jù)表字段信息,并判斷出表字段的數(shù)據(jù)類型,準(zhǔn)備假數(shù)據(jù),構(gòu)建符合表字段類型的Insert語(yǔ)句,完成插入數(shù)據(jù)的工作; 判斷數(shù)據(jù)是否插入成功主要采取兩種方法:其一是對(duì)比前后遍歷URI數(shù)據(jù)的變化,其二是通過(guò)監(jiān)控手工更改系統(tǒng)Log語(yǔ)句的打印,來(lái)驗(yàn)證SQLite內(nèi)部是否真正執(zhí)行該條SQL語(yǔ)句; 如果插入成功,將前面插入的數(shù)據(jù)進(jìn)行刪除操作; 將最后的結(jié)果記錄Log日志中,基于Log日志中是否存有成功進(jìn)行插入、刪除操作的記錄,來(lái)確定是否存在數(shù)據(jù)污染漏洞。
9.根據(jù)權(quán)利要求7所述的Android應(yīng)用漏洞檢測(cè)方法,其中,在步驟一之前還包括: 從Android應(yīng)用商店或官方網(wǎng)站下載待檢測(cè)Android應(yīng)用; 在檢測(cè)環(huán)境中批量安裝待檢測(cè)Android應(yīng)用。
10.根據(jù)權(quán)利要求7所述的Android應(yīng)用漏洞檢測(cè)方法,其中,在步驟二之后,還包括: 通過(guò)評(píng)估分析,確認(rèn)主動(dòng)數(shù)據(jù)污染安全風(fēng)險(xiǎn)是否涉及敏感數(shù)據(jù)污染。
11.一種Android應(yīng)用漏洞檢測(cè)系統(tǒng),包括: 候選應(yīng)用判斷單元,適于通過(guò)分析待檢測(cè)Android應(yīng)用的Content Provider接口特征,判斷該候選Android應(yīng)用/待測(cè)試Android應(yīng)用是否可能存在數(shù)據(jù)污染漏洞和/或隱私泄露漏洞; 漏洞檢測(cè)控制器,與候選應(yīng)用判斷單元連接,適于根據(jù)安全漏洞檢測(cè)策略,為可能存在數(shù)據(jù)污染漏洞和/或隱私泄露漏洞的待測(cè)試應(yīng)用生成動(dòng)態(tài)測(cè)試用例; 動(dòng)態(tài)測(cè)試代理程序,與漏洞檢測(cè)控制器連接,適于調(diào)用待檢測(cè)應(yīng)用的ContentProvider接口執(zhí)行測(cè)試用例,并反饋執(zhí)行結(jié)果給漏洞檢測(cè)控制器;其中,執(zhí)行結(jié)果包括應(yīng)用在執(zhí)行測(cè)試用例時(shí)對(duì)系統(tǒng)數(shù)據(jù)查詢和數(shù)據(jù)修改API函數(shù)的調(diào)用情況與返回結(jié)果等; 插樁行為監(jiān)控器,與漏洞檢測(cè)控制器連接,位于運(yùn)行待檢測(cè)應(yīng)用的Android系統(tǒng)框架層中,適于通過(guò)代碼插樁技術(shù),監(jiān)控Content Provider與SQLite數(shù)據(jù)庫(kù)操作的數(shù)據(jù)修改和/或數(shù)據(jù)查詢API函數(shù),并反饋監(jiān)控結(jié)果給漏洞檢測(cè)控制器。
【文檔編號(hào)】G06F21/57GK103984900SQ201410210154
【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2014年5月19日 優(yōu)先權(quán)日:2014年5月19日
【發(fā)明者】李康, 諸葛建偉, 魏克, 楊坤, 段海新 申請(qǐng)人:南京賽寧信息技術(shù)有限公司, 清華大學(xué)