[發(fā)明專利]安卓系統(tǒng)中不安全敏感輸入驗(yàn)證識別方法有效
| 申請?zhí)枺?/td> | 201811163790.X | 申請日: | 2018-10-02 |
| 公開(公告)號: | CN109299610B | 公開(公告)日: | 2021-03-30 |
| 發(fā)明(設(shè)計)人: | 楊珉;楊哲慜;張磊;何郁郁;張振宇;洪庚;張源 | 申請(專利權(quán))人: | 復(fù)旦大學(xué) |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57 |
| 代理公司: | 上海正旦專利代理有限公司 31200 | 代理人: | 陸飛;陸尤 |
| 地址: | 200433 *** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 系統(tǒng) 不安全 敏感 輸入 驗(yàn)證 識別 方法 | ||
本發(fā)明屬于程序安全分析漏洞挖掘技術(shù)領(lǐng)域,具體為一種安卓系統(tǒng)中不安全敏感輸入驗(yàn)證識別方法。本發(fā)明方法包括:輸入驗(yàn)證識別,首先提取程序代碼中的中斷分支,經(jīng)過對代碼結(jié)構(gòu)特征進(jìn)行分析,找出包含中斷指令的獨(dú)立程序分支,來判斷當(dāng)前程序執(zhí)行是否包含校驗(yàn)輸入的意圖;敏感輸入驗(yàn)證識別,采用自然語言處理對大量輸入?yún)?shù)進(jìn)行基于語義的聚類,再通過指定少量已知敏感參數(shù),采用機(jī)器學(xué)習(xí)來推測其他的未知敏感參數(shù);最后,漏洞識別,通過檢查這些包含敏感參數(shù)的輸入驗(yàn)證是否滿足安全規(guī)則來判斷其是否為不安全的輸入驗(yàn)證。通過對這類輸入驗(yàn)證進(jìn)行識別,能夠確定由其構(gòu)成的系統(tǒng)級安全漏洞,對加強(qiáng)移動系統(tǒng)安全、防范系統(tǒng)級別攻擊具有重要意義。
技術(shù)領(lǐng)域
本發(fā)明屬于程序安全分析和漏洞挖掘技術(shù)領(lǐng)域,具體涉及自然語言處理、機(jī)器學(xué)習(xí)技術(shù)和靜態(tài)信息流分析技術(shù),尤其涉及識別安卓系統(tǒng)中不安全的輸入驗(yàn)證識別方法。
背景技術(shù)
超過60%的移動設(shè)備正在使用安卓系統(tǒng),其中運(yùn)行著大量與我們?nèi)粘I钕嚓P(guān)的應(yīng)用程序。為了實(shí)現(xiàn)各種功能,應(yīng)用程序可以讀取和操作安卓系統(tǒng)資源,例如GPS設(shè)備和屏幕顯示,并執(zhí)行敏感操作,例如發(fā)送和刪除SMS消息。在安卓系統(tǒng)中,這些資源和敏感操作由100多個系統(tǒng)服務(wù)管理。顯然,這些服務(wù)中的訪問控制在整個系統(tǒng)的安全性中起著重要作用。
在本發(fā)明中,我們對系統(tǒng)服務(wù)中的一組特殊的關(guān)鍵安全校驗(yàn)進(jìn)行了實(shí)證研究,我們將其定義為敏感的輸入驗(yàn)證。與系統(tǒng)中包含的351個權(quán)限相比,安卓系統(tǒng)至少包含700多個不同的敏感輸入驗(yàn)證。它們被大量用于各種目的,例如通過限制設(shè)備名來阻止普通應(yīng)用訪問敏感的系統(tǒng)級設(shè)備。
本發(fā)明與傳統(tǒng)的輸入驗(yàn)證研究不同。傳統(tǒng)的輸入驗(yàn)證研究側(cè)重于一組狹窄且定義明確的敏感輸入,例如,可能導(dǎo)致SQL注入攻擊的Web輸入,以及傳遞給Linux內(nèi)核的可能引起內(nèi)存泄露攻擊的用戶空間指針。而安卓系統(tǒng)由其獨(dú)特性導(dǎo)致我們并不知道哪些輸入應(yīng)該被驗(yàn)證。因此,本發(fā)明更關(guān)注于在另一方面,即既不知道哪些輸入應(yīng)該被驗(yàn)證,又不知道這些輸入需要在哪里被驗(yàn)證。具體而言,這是由以下安卓特性所決定的:(1)非結(jié)構(gòu)化。與依賴于系統(tǒng)定義接口的安卓權(quán)限檢查不同,例如Context.checkCallingOrSelfPermission()和Binder.getCallingUid(),系統(tǒng)服務(wù)中的敏感輸入驗(yàn)證很難識別。實(shí)際上,一個系統(tǒng)服務(wù)中公開方法的任何輸入都有可能導(dǎo)致敏感的輸入驗(yàn)證(涉及參數(shù)檢查的一個條件語句)。(2)定義不明確。與由安卓權(quán)限模型中已被詳細(xì)文檔說明的權(quán)限認(rèn)證不同,沒有任何公開可用的來源去定義應(yīng)該如何在安卓系統(tǒng)服務(wù)中執(zhí)行敏感的輸入驗(yàn)證。因此,尚不清楚輸入是否需要經(jīng)過驗(yàn)證以及是否正確完成。(3)碎片化。敏感輸入驗(yàn)證分散在大量Java類中。例如,在安卓7.0中,我們的評估顯示它們廣泛分散在173個不同的Java類中,而安卓權(quán)限保障集中在6個類中。此外,即使在相同的服務(wù)方法中,敏感的輸入驗(yàn)證通常分散在各種執(zhí)行路徑中,從而以細(xì)粒度的方式限制系統(tǒng)操作。
因此,盡管安卓系統(tǒng)服務(wù)中敏感輸入驗(yàn)證是十分重要的,但是因它的不充分設(shè)計和實(shí)現(xiàn)導(dǎo)致安全人員忽略了它們的安全性。首先,系統(tǒng)開發(fā)者混淆了其系統(tǒng)安全模型。安卓系統(tǒng)服務(wù)會錯誤的信任來自于普通應(yīng)用的輸入,甚至有時把輸入驗(yàn)證放在了應(yīng)用程序(Android SDK)進(jìn)程中。其次,系統(tǒng)開發(fā)者在定制安卓系統(tǒng)時也會忽略輸入驗(yàn)證的問題。但是,在這些背景下,安卓系統(tǒng)中尚未有方法來自動識別敏感的輸入驗(yàn)證以及由其構(gòu)成的安全漏洞。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種全新的基于代碼層結(jié)構(gòu)及語義解析驅(qū)動的不安全敏感輸入驗(yàn)證識別方法,適用于大規(guī)模自動化地從安卓系統(tǒng)的代碼當(dāng)中識別其所包含的不安全敏感輸入驗(yàn)證。
本發(fā)明提供的不安全敏感輸入驗(yàn)證識別方法,用于識別在驗(yàn)證輸入時所依賴的不安全數(shù)據(jù)源,包括三個部分:基于代碼結(jié)構(gòu)分析的輸入驗(yàn)證識別、基于自然語言處理和機(jī)器學(xué)習(xí)的敏感輸入驗(yàn)證識別以及基于安全規(guī)則的漏洞識別。
(一)基于代碼結(jié)構(gòu)分析的輸入驗(yàn)證識別,首先提取程序代碼中的中斷分支,例如拋出異常等。經(jīng)過對代碼結(jié)構(gòu)特征進(jìn)行分析,找出包含中斷指令的獨(dú)立程序分支,來判斷當(dāng)前程序執(zhí)行是否包含校驗(yàn)輸入的意圖。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于復(fù)旦大學(xué),未經(jīng)復(fù)旦大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811163790.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程





