亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于靜態(tài)污點(diǎn)分析的Android應(yīng)用信息泄露檢測

        2022-01-15 02:50:46李星政黃曉昆紀(jì)勝龍覃鐵偉馮丙文
        中國新技術(shù)新產(chǎn)品 2021年21期
        關(guān)鍵詞:污點(diǎn)靜態(tài)模塊

        李星政 黃曉昆 紀(jì)勝龍 覃鐵偉 馮丙文

        (1.暨南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,廣東 廣州 510635;2.工業(yè)和信息化部電子第五研究所,廣東 廣州 511370;3.奇安信科技集團(tuán)股份有限公司,北京 100044)

        0 引言

        根據(jù) Statcounte (2021)[1]研究顯示,目前安卓以72%的份額主導(dǎo)智能手機(jī)市場,遠(yuǎn)超其他移動(dòng)智能操作系統(tǒng)。這樣龐大的市場引起大量攻擊者的注意。盡管安全研究人員以及相關(guān)公司不斷地改善安卓系統(tǒng),但是軟件應(yīng)用安全仍然是一個(gè)嚴(yán)峻的問題,其中,敏感數(shù)據(jù)泄露尤為嚴(yán)重。因此,作為數(shù)據(jù)檢測主要手段之一的污點(diǎn)分析引起了極大的關(guān)注。在污點(diǎn)分析[2-3]中,研究者通過污點(diǎn)分析過程中是否需要運(yùn)行程序?qū)⑽埸c(diǎn)分析分為靜態(tài)污點(diǎn)分析和動(dòng)態(tài)污點(diǎn)分析。筆者采用靜態(tài)污點(diǎn)分析作為信息泄露的檢測方案,靜態(tài)污點(diǎn)分析指在程序不運(yùn)行的情況下,通過代碼對程序進(jìn)行分析,避免出現(xiàn)路徑覆蓋不完整的問題。同時(shí),該文提出通過構(gòu)建雙向污點(diǎn)流圖來加速信息泄露檢測方案的檢測效率。

        1 相關(guān)工作

        在安卓應(yīng)用程序上,靜態(tài)污點(diǎn)分析有多種應(yīng)用方式[4]。在早期的安卓安全研究中,Hu、Enck 等人[5]提出了幾款輕量級(jí)檢測工具,這些工具基本都是通過分析請求的權(quán)限或調(diào)用的API方法來判斷安卓應(yīng)用的安全性。這些方法僅對代碼進(jìn)行了粗略分析,盡管這些工具的檢測成本較低,但其檢測的精度也比較低,常常會(huì)出現(xiàn)誤判和少判的情況,很難達(dá)到一個(gè)較高的準(zhǔn)確率。隨著對信息泄露檢測的重視,檢測的方案也不斷進(jìn)步,Arzt S等人[6]提出1個(gè)適用于上下文、流、場和對象敏感的靜態(tài)污點(diǎn)分析工具FlowDroid,它將前向污點(diǎn)分析與后向別名分析結(jié)合起來,從而實(shí)現(xiàn)高效精確檢測,但是FlowDroid在一些大型應(yīng)用程序中的運(yùn)行成本較高。

        在近幾年的研究中,不少研究者針對安全檢測的效率和精度進(jìn)行了改進(jìn),Cai等人通過減少對當(dāng)前應(yīng)用版本與之前的版本中相同代碼的檢測來減少需要檢測的代碼數(shù)量,以達(dá)到降低成本的要求,但是在沒有舊版本記錄的情況,這種方法無法達(dá)到一個(gè)較好的效果。張婕等人[7]提出用FastDroid將污點(diǎn)分析和別名分析結(jié)合起來,從程序中抽象提取污染變量關(guān)系圖和潛在污染流,并對其進(jìn)行驗(yàn)證,從而提升檢測效率。

        2 檢測方案的設(shè)計(jì)

        為了檢測Android工業(yè)App是否存在信息泄露的問題,該文基于靜態(tài)污點(diǎn)分析技術(shù)設(shè)計(jì)了1個(gè)信息泄露檢測方案。如圖1所示,該方案主要分為3個(gè)模塊,預(yù)處理模塊、污點(diǎn)分析模塊和污點(diǎn)流驗(yàn)證模塊。其中,預(yù)處理模塊作為基礎(chǔ),為方案的后續(xù)工作提供各種信息和配置,污點(diǎn)分析模塊作為方案核心,以完成系統(tǒng)信息泄露檢測的工作,污點(diǎn)流驗(yàn)證模塊作為方案的增補(bǔ),可以提高方案的準(zhǔn)確率。該方案在預(yù)處理模塊中對待檢測的軟件應(yīng)用進(jìn)行分析,提取軟件應(yīng)用的各種信息,同時(shí)配置系統(tǒng)的靜態(tài)污點(diǎn)分析策略。在污點(diǎn)分析模塊中,根據(jù)預(yù)處理模塊采集的軟件信息并結(jié)合預(yù)設(shè)好的規(guī)則對軟件應(yīng)用進(jìn)行分析,從而構(gòu)建污點(diǎn)流圖。最后在污點(diǎn)流驗(yàn)證模塊中利用污點(diǎn)分析模塊生成的污點(diǎn)流圖提取軟件的污點(diǎn)流,在控制流圖和調(diào)用關(guān)系圖上進(jìn)一步檢查、證明污點(diǎn)流的可行性。

        圖1 檢測方案

        2.1 預(yù)處理模塊

        在預(yù)處理模塊中,系統(tǒng)會(huì)根據(jù)軟件應(yīng)用以及預(yù)設(shè)的規(guī)則收集應(yīng)用的信息以及配置系統(tǒng)的檢測規(guī)則。首先,系統(tǒng)利用反編譯工具對APK文件進(jìn)行逆向處理,反編譯出Dex文件等一系列與軟件相關(guān)的文件。其次,為了更好地對應(yīng)用進(jìn)行靜態(tài)污點(diǎn)分析和構(gòu)建污點(diǎn)流圖,系統(tǒng)會(huì)進(jìn)一步根據(jù)一定規(guī)則將Dex文件反匯編為可以被用戶更好理解的Smali代碼文件。再次,系統(tǒng)利用詞法分析算法和APK分析工具對軟件應(yīng)用進(jìn)行解析,從而構(gòu)建與軟件對應(yīng)的調(diào)用關(guān)系圖(Call graph,CG)以及組件內(nèi)的控制流圖(Control flow graph,CFG)等分析信息,這些軟件應(yīng)用信息可以為靜態(tài)污點(diǎn)分析模塊檢測軟件應(yīng)用信息泄露情況提供幫助。最后,系統(tǒng)將預(yù)先設(shè)置好的靜態(tài)污點(diǎn)分析的規(guī)則與軟件應(yīng)用的權(quán)限申請進(jìn)行匹配,根據(jù)應(yīng)用申請的權(quán)限情況對之后的信息泄露檢測的規(guī)則進(jìn)行配置,如果應(yīng)用申請的權(quán)限涉及敏感信息,系統(tǒng)便對該權(quán)限對應(yīng)的規(guī)則進(jìn)行配置,反之則不配置該權(quán)限的污點(diǎn)分析規(guī)則,例如應(yīng)用如果存在申請外部文件讀寫權(quán)限的情況,系統(tǒng)就會(huì)增加針對外部文件泄露檢測的規(guī)則,這樣避免了對應(yīng)用進(jìn)行不必要的完全檢測。如果應(yīng)用并沒有申請短信權(quán)限,但系統(tǒng)依舊對應(yīng)用進(jìn)行的短信泄露敏感信息進(jìn)行檢測,就會(huì)導(dǎo)致浪費(fèi)大量的資源。同時(shí),該配置可以達(dá)到有針對性檢測的效果,這樣可以滿足信息泄露檢測的需求,從而加快檢測速度。

        在預(yù)處理模塊中,對一個(gè)待檢測的應(yīng)用軟件進(jìn)行反編譯后會(huì)得到一些對應(yīng)的Smali文件,這些Smali文件具有良好的結(jié)構(gòu)以及可讀性,可以通過這些文件較好地對應(yīng)用軟件進(jìn)行靜態(tài)污點(diǎn)分析。同時(shí),通過對應(yīng)用軟件的靜態(tài)分析,構(gòu)建該軟件對應(yīng)的CG圖和CFG圖,這些CG圖和CFG圖在污點(diǎn)分析模塊和污點(diǎn)流驗(yàn)證模塊上可以較好地為函數(shù)內(nèi)執(zhí)行順序以及軟件調(diào)用關(guān)系等提供幫助。最后通過過濾應(yīng)用申請的權(quán)限得到有針對性的靜態(tài)污點(diǎn)分析策略,這個(gè)策略在后續(xù)的模塊中縮小了檢測的范圍,減少了不必要的工作。

        2.2 污點(diǎn)分析模塊

        2.2.1 靜態(tài)污點(diǎn)分析

        污點(diǎn)分析模塊主要根據(jù)配置的污點(diǎn)分析策略對敏感的數(shù)據(jù)進(jìn)行追蹤分析,并根據(jù)信息流傳播路徑來判斷該數(shù)據(jù)是否存在泄露的可能性。Smali代碼相較于應(yīng)用原生代碼更容易被人理解和分析,因此該文針對安卓的Smali代碼進(jìn)行分析,從而實(shí)現(xiàn)靜態(tài)污點(diǎn)分析模塊,該模塊設(shè)計(jì)的污點(diǎn)分析過程如圖2所示。

        圖2 污點(diǎn)分析

        首先,系統(tǒng)根據(jù)預(yù)處理模塊配置的策略選擇對應(yīng)的Source和Sink,并構(gòu)建靜態(tài)污點(diǎn)分析的入口點(diǎn)函數(shù)。其次,通過匹配入口點(diǎn)函數(shù)相關(guān)的Smali語句對可能涉及的污點(diǎn)數(shù)據(jù)進(jìn)行標(biāo)記。最后,結(jié)合預(yù)處理模塊的控制流圖和預(yù)設(shè)的污點(diǎn)分析規(guī)則在函數(shù)內(nèi)進(jìn)行語法分析和污點(diǎn)數(shù)據(jù)追蹤,如果發(fā)生函數(shù)間的調(diào)用情況,則根據(jù)污點(diǎn)分析規(guī)則結(jié)合調(diào)用關(guān)系圖進(jìn)入下一個(gè)函數(shù)繼續(xù)進(jìn)行污點(diǎn)分析。以外部文件泄露的Sink點(diǎn)作為入口點(diǎn)為例,系統(tǒng)先將寫入外部文件的數(shù)據(jù)作為污點(diǎn)數(shù)據(jù),之后定位該相關(guān)Smali語句,用該語句結(jié)合控制流圖向前分析。如果發(fā)現(xiàn)該污點(diǎn)數(shù)據(jù)來自函數(shù)參數(shù),則通過調(diào)用關(guān)系圖查詢調(diào)用該函數(shù)的函數(shù)。如果發(fā)現(xiàn)該污點(diǎn)數(shù)據(jù)來自函數(shù)返回,則根據(jù)調(diào)用的函數(shù)繼續(xù)向前追蹤。如果發(fā)現(xiàn)該污點(diǎn)數(shù)據(jù)來自與Source無關(guān)的新數(shù)據(jù),則結(jié)束該污點(diǎn)流。系統(tǒng)通過反復(fù)函數(shù)內(nèi)外的污點(diǎn)分析直到完成整個(gè)應(yīng)用代碼檢測或者檢測到信息泄露的存在,即Source到Sink存在一條或多條未經(jīng)過無害化處理的信息流傳播路徑,則這條信息流傳播路徑可能是造成敏感信息泄露的路徑。

        在污點(diǎn)分析模塊中,靜態(tài)污點(diǎn)分析作為模塊中的核心功能,其主要功能是通過分析軟件構(gòu)建Source到Sink的污點(diǎn)流圖,這些污點(diǎn)流圖中包括Source到Sink所有的信息流傳播路徑。這些污點(diǎn)流圖將在之后的污點(diǎn)流驗(yàn)證模塊中通過檢測這些路徑的正確性來進(jìn)一步獲取更準(zhǔn)確的污點(diǎn)流圖,從而得到軟件的檢測結(jié)果。

        2.2.2 雙向分析

        因?yàn)樵趥鹘y(tǒng)的靜態(tài)污點(diǎn)分析過程中常常會(huì)隨著分支語句的出現(xiàn)導(dǎo)致分析的數(shù)據(jù)越來越龐大,最后出現(xiàn)檢測效率降低的情況,所以為了提高污點(diǎn)分析的效率,系統(tǒng)提出了一種新的污點(diǎn)流圖構(gòu)建方法。該方法是通過Source和Sink同時(shí)雙向展開靜態(tài)污點(diǎn)分析,從而減少單向分析造成多分枝的情況,進(jìn)而實(shí)現(xiàn)減少一個(gè)需要分析的數(shù)據(jù)流傳播路徑的方法。具體來說,它首先在Source和Sink的相關(guān)Smali語句處同時(shí)展開靜態(tài)污點(diǎn)分析,之后根據(jù)系統(tǒng)預(yù)定義的污點(diǎn)傳播規(guī)則同時(shí)向后和向前遍歷相關(guān)的Smali語句,以檢測污點(diǎn)值及其別名的傳播,并在多次污點(diǎn)傳播迭代后構(gòu)造應(yīng)用的污點(diǎn)流圖。如果污點(diǎn)流圖中的Source和Sink中能夠形成一條通路,則說明該應(yīng)用存在信息泄露問題。以獲取位置的Source點(diǎn)和寫入外部文件的Sink點(diǎn)為例。首先,系統(tǒng)定位獲取位置的函數(shù)的Smali語句和寫入外部文件的Smali語句。其次,根據(jù)預(yù)設(shè)規(guī)則標(biāo)記它們涉及的數(shù)據(jù)作為污點(diǎn)數(shù)據(jù)。最后,Source點(diǎn)的污點(diǎn)數(shù)據(jù)向后分析,Sink點(diǎn)的污點(diǎn)數(shù)據(jù)向前分析,2種分析交替進(jìn)行,直到它們相遇或某個(gè)方向完成分析。該方法可以更快地檢測到軟件信息泄露的可能性,大大減少了檢測所需要的時(shí)間。

        2.3 污點(diǎn)流驗(yàn)證模塊

        系統(tǒng)中1個(gè)構(gòu)建完成的污點(diǎn)流圖必定存在1條或多條Source到Sink的數(shù)據(jù)傳播路徑,可以將這些數(shù)據(jù)傳播路徑看作未確認(rèn)的污點(diǎn)流。而在污點(diǎn)分析模塊中構(gòu)建污點(diǎn)流圖的過程中可能會(huì)因?yàn)橐恍﹫?zhí)行語句順序上的錯(cuò)誤產(chǎn)生一些錯(cuò)誤的判斷,從而導(dǎo)致發(fā)現(xiàn)的數(shù)據(jù)傳播路徑是1條虛假污點(diǎn)流,這種虛假污點(diǎn)流盡管也可以在Source和Sink中形成1條通路,但這條路徑可能在到達(dá)Sink之前就對來自Source的污點(diǎn)數(shù)據(jù)進(jìn)行數(shù)據(jù)替換或進(jìn)行數(shù)據(jù)加密等無法找回原有數(shù)據(jù)的操作,該情況并不會(huì)造成數(shù)據(jù)泄露。因此,系統(tǒng)添加1個(gè)污點(diǎn)流驗(yàn)證模塊來檢測污點(diǎn)流是否是正確的污點(diǎn)流,這個(gè)污點(diǎn)流驗(yàn)證模塊對整個(gè)系統(tǒng)檢測數(shù)據(jù)泄露的準(zhǔn)確性起到至關(guān)重要的作用,能夠大大減少系統(tǒng)對應(yīng)用誤判的情況,提高系統(tǒng)整體的準(zhǔn)確率。

        首先,在污點(diǎn)流驗(yàn)證模塊中,系統(tǒng)通過抽取污點(diǎn)流圖中Source到Sink的污點(diǎn)值流轉(zhuǎn)路徑作為待驗(yàn)證污點(diǎn)流。其次,通過結(jié)合軟件的調(diào)用關(guān)系圖以及控制流圖來檢測該污點(diǎn)流是否符合軟件的調(diào)用過程和執(zhí)行次序,如果污點(diǎn)流中的污點(diǎn)值流轉(zhuǎn)次序不符合軟件的執(zhí)行次序,則判斷該污點(diǎn)流是虛假的污點(diǎn)流。最后,系統(tǒng)將檢測為正確的污點(diǎn)流作為結(jié)果呈現(xiàn)給用戶。

        3 試驗(yàn)及分析

        為了對所提出的檢測方案進(jìn)行驗(yàn)證,該文實(shí)現(xiàn)了一個(gè)自動(dòng)化的檢測工具,同時(shí)通過該信息泄露檢測工具對大量APK進(jìn)行檢測,以驗(yàn)證其有效性。在檢測工具中,筆者對設(shè)備的敏感信息(例如位置信息、圖片、設(shè)備信息和聯(lián)系人等)是否在短信、網(wǎng)絡(luò)、藍(lán)牙、郵件以及設(shè)備存儲(chǔ)等渠道發(fā)生信息泄露情況進(jìn)行檢測。

        3.1 檢測結(jié)果

        在試驗(yàn)中,筆者通過檢測一款讀取用戶位置信息,并把位置信息存儲(chǔ)為gpx文件的應(yīng)用程序來測試該工具是否可以成功的檢測應(yīng)用的信息泄露情況。

        檢測結(jié)果見表1,該工具成功地檢測出安卓應(yīng)用中存在將位置信息泄露存儲(chǔ)到內(nèi)部文件的情況。同時(shí),從檢測結(jié)果來看,該自動(dòng)化檢測工具可以清晰地展示應(yīng)用可能造成的敏感信息泄露的信息流傳播路徑,可以較好地為之后的應(yīng)用修復(fù)提供參考,具有較好的實(shí)際應(yīng)用場景。

        表1 運(yùn)行時(shí)間測試

        3.2 運(yùn)行時(shí)間分析

        為了更好地分析該方案的運(yùn)行時(shí)間,筆者選擇了3個(gè)生活中不同大小、真實(shí)使用中的APK文件進(jìn)行檢測,同時(shí)記錄該工具檢測應(yīng)用程序所需要的運(yùn)行時(shí)間,見表2。

        表2 運(yùn)行時(shí)間測試

        從表2中可以看出,該檢測工具的運(yùn)行時(shí)間主要與APK文件的大小有關(guān),通常APK文件越大,其檢測時(shí)間越長。

        目前,市面上大多數(shù)的信息泄露檢測工具都需要人工的幫助來完成檢測,這些檢測時(shí)間周期大多為幾十分鐘到幾天不等。該文所提出的自動(dòng)化信息檢測工具從具體的執(zhí)行時(shí)間結(jié)合生活實(shí)際使用的應(yīng)用來看,應(yīng)用檢測時(shí)間小于10 min,完全可以滿足實(shí)際工作中對時(shí)間的需求。

        4 結(jié)論

        該文針對安卓應(yīng)用的敏感信息泄露情況提出了一個(gè)高效的檢測方案,與以往的檢測方案不同,該檢測方案更專注于Source到Sink的情況,減少對應(yīng)用全局的檢測,從而提高檢測效率。一系列試驗(yàn)結(jié)果表明,該方案具有更高效的檢測效率以及更高的準(zhǔn)確率。在未來工作中,將在該方案的基礎(chǔ)上提高檢測的靈活性,配置更全面的檢測面。

        猜你喜歡
        污點(diǎn)靜態(tài)模塊
        28通道收發(fā)處理模塊設(shè)計(jì)
        “選修3—3”模塊的復(fù)習(xí)備考
        基于代碼重寫的動(dòng)態(tài)污點(diǎn)分析
        靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
        使用Lightroom污點(diǎn)去除工具清理照片中的瑕疵
        選修6 第三模塊 International Relationships
        我國“污點(diǎn)證人”刑事責(zé)任豁免制度的構(gòu)建
        機(jī)床靜態(tài)及動(dòng)態(tài)分析
        具7μA靜態(tài)電流的2A、70V SEPIC/升壓型DC/DC轉(zhuǎn)換器
        50t轉(zhuǎn)爐靜態(tài)控制模型開發(fā)及生產(chǎn)實(shí)踐
        上海金屬(2013年6期)2013-12-20 07:57:59
        亚洲精品无码永久中文字幕| 亚洲中文字幕巨乳人妻| 亚洲每天色在线观看视频| 成人激情视频在线手机观看 | 日本精品国产1区2区3区| 亚洲最大一区二区在线观看| 好紧好爽免费午夜视频| 久久精品视频在线看99| 亚洲精品美女自拍偷拍| 神马不卡影院在线播放| 日本a级片免费网站观看| 久久综合国产乱子伦精品免费| 一级做a爰片久久毛片| 亚洲视频中文字幕更新| 国产激情一区二区三区在线| 成人毛片av免费| 亚洲影院天堂中文av色| 欧美日韩国产在线人成dvd| 亚洲综合在不卡在线国产另类| 日韩在线中文字幕一区二区三区| 亚洲女同av在线观看| 天堂一区二区三区在线观看视频 | 中国少妇内射xxxx狠干| 69精品免费视频| 国产亚洲欧美日韩国产片| 日韩有码中文字幕在线视频| 日本一级特黄aa大片| 国产成本人片无码免费2020| 亚洲国产精品久久久久秋霞1| 国产av在线观看91| 欧美xxxx做受欧美88| 一本色道久久88综合日韩精品| 久久aⅴ无码av免费一区| 国产91对白在线观看| 韩国黄色三级一区二区| 精品国产自在现线看久久| 韩日午夜在线资源一区二区| 国产精品一久久香蕉国产线看观看| 粗大挺进孕妇人妻在线| 国产精品国产亚洲精品看不卡| 竹菊影视欧美日韩一区二区三区四区五区 |