• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    污點(diǎn)分析技術(shù)研究綜述

    2019-10-23 12:23任玉柱張有為艾成煒
    計(jì)算機(jī)應(yīng)用 2019年8期

    任玉柱 張有為 艾成煒

    摘 要:污點(diǎn)分析技術(shù)是保護(hù)隱私數(shù)據(jù)安全和實(shí)現(xiàn)漏洞檢測(cè)的重要技術(shù)手段,也是信息安全研究的熱點(diǎn)領(lǐng)域。對(duì)近年來(lái)污點(diǎn)分析技術(shù)的研究現(xiàn)狀和發(fā)展情況進(jìn)行綜述,介紹了污點(diǎn)分析的理論基礎(chǔ)以及靜態(tài)污點(diǎn)分析和動(dòng)態(tài)污點(diǎn)分析的基本概念、關(guān)鍵技術(shù)和研究進(jìn)展,并從技術(shù)實(shí)現(xiàn)方式的角度出發(fā),闡述了基于硬件、軟件、虛擬環(huán)境和代碼等四種污點(diǎn)分析技術(shù)的實(shí)現(xiàn)方式、核心思想以及優(yōu)缺點(diǎn);然后,從污點(diǎn)數(shù)據(jù)流向的角度出發(fā),概述了污點(diǎn)分析技術(shù)在相關(guān)領(lǐng)域的兩種典型應(yīng)用,即隱私數(shù)據(jù)泄露檢測(cè)和漏洞探測(cè);最后,簡(jiǎn)要分析了污點(diǎn)分析的缺點(diǎn)和不足,并展望該技術(shù)的研究前景和發(fā)展趨勢(shì)。

    關(guān)鍵詞:信息流分析;靜態(tài)污點(diǎn)分析;動(dòng)態(tài)污點(diǎn)分析;隱私數(shù)據(jù);漏洞挖掘

    中圖分類號(hào):?TP309

    文獻(xiàn)標(biāo)志碼:A

    Survey on taint analysis technology

    REN Yuzhu1,2*, ZHANG Youwei3, AI Chengwei1,2

    1.School of Cyber Security, Information Engineering University, Zhengzhou Henan 450001, China?;

    2.State Key Laboratory of Mathematical Engineering and Advanced Computing, Zhengzhou Henan 450001, China?;

    3. Advanced Technology Research Institute of Zhengzhou Xinda, Zhengzhou Henan 450001, China

    Abstract:?Taint analysis technology is an important method to protect private data security and realize vulnerability detection, and it is also a hot area of information security research. The research status and development of taint analysis technology in recent years were summarized. The theoretical basis of taint analysis, the basic concepts, key technologies and research progress of static taint analysis and dynamic taint analysis were introduced. From the perspective of the implementation, the implementation methods, core ideas, advantages and disadvantages of four taint analysis technologies based on hardware, software, virtual environment and code were expounded; from the perspective of the flow of taint data, two typical applications in related fields, privacy data leakage detection and vulnerability detection, were outlined. Finally, the shortcomings of taint analysis were briefly analyzed, and the research prospects and development trends of the technology were predicted.

    Key words:?information flow analysis; static taint analysis; dynamic taint analysis; privacy data; vulnerability discovery

    0 引言

    隨著“互聯(lián)網(wǎng)+”概念的流行和物聯(lián)網(wǎng)技術(shù)的發(fā)展,世界已進(jìn)入以信息數(shù)據(jù)為主要經(jīng)濟(jì)發(fā)展驅(qū)動(dòng)力的全球化“3.0”時(shí)代,信息技術(shù)對(duì)人類社會(huì)的意義愈發(fā)重要,隨之而來(lái)的是人類在信息安全領(lǐng)域面臨著諸多難題。僵尸網(wǎng)絡(luò)、蠕蟲病毒、木馬病毒及分布式拒絕服務(wù)攻擊等計(jì)算機(jī)病毒和網(wǎng)絡(luò)攻擊行為屢屢發(fā)生。2017年,以智能手機(jī)為代表的手持移動(dòng)設(shè)備已經(jīng)超越計(jì)算機(jī)成為數(shù)量最多的上網(wǎng)終端,全球社交媒體和移動(dòng)端活躍用戶數(shù)量都已達(dá)到30億左右,預(yù)計(jì)到2020年全球聯(lián)網(wǎng)設(shè)備總數(shù)可能會(huì)超過500億臺(tái)[1],信息安全已經(jīng)成為熱點(diǎn)研究領(lǐng)域,特別是有關(guān)信息完整性和保密性的研究更受到越來(lái)越多的重視。完整性指信息在存儲(chǔ)、傳輸和處理過程中不被修改、破壞和丟失的特性。保密性指信息不會(huì)被泄露給非授權(quán)用戶的特性。隨著物聯(lián)網(wǎng)的發(fā)展和智能終端的普及,在社交網(wǎng)絡(luò)和移動(dòng)支付等活動(dòng)中都會(huì)涉及到大量的用戶隱私數(shù)據(jù)。作為維護(hù)數(shù)據(jù)完整性和保密性的有效手段之一,信息流分析技術(shù)得到了廣泛的運(yùn)用。

    信息流分析技術(shù)[2]的核心思想是:首先給數(shù)據(jù)添加一個(gè)標(biāo)簽,此標(biāo)簽隨數(shù)據(jù)在系統(tǒng)中傳播,并根據(jù)標(biāo)簽來(lái)獲得數(shù)據(jù)在系統(tǒng)或應(yīng)用程序中傳播的相關(guān)信息;然后制定信息流策略并建立相應(yīng)的信息流模型,通過分析數(shù)據(jù)傳播的相關(guān)信息以確定是否存在違反信息流策略的信息安全隱患,即若被分析對(duì)象的信息傳播過程符合制定的信息流策略,則認(rèn)為被分析對(duì)象是安全的,否則就是不安全的。根據(jù)信息流策略描述方法的不同,信息流模型可以分為基于格、基于安全類型、基于安全進(jìn)程代數(shù)(Security Process Algebra, SPA)和基于自動(dòng)機(jī)等四種主要形式。由于本文主要介紹污點(diǎn)分析技術(shù),所以只對(duì)主流的信息流模型進(jìn)行整理對(duì)比,如表1所示。

    本文給出了污點(diǎn)分析定義和模型,介紹了靜態(tài)污點(diǎn)分析和動(dòng)態(tài)污點(diǎn)分析的基本原理、運(yùn)用和優(yōu)缺點(diǎn);從技術(shù)實(shí)現(xiàn)方式的角度,分別闡述基于硬件、軟件、虛擬環(huán)境和代碼實(shí)現(xiàn)污點(diǎn)分析的核心原理、技術(shù)方法以及優(yōu)缺點(diǎn);從數(shù)據(jù)流向的角度,概述污點(diǎn)分析技術(shù)在隱私數(shù)據(jù)泄漏檢測(cè)和漏洞探測(cè)這兩個(gè)主要領(lǐng)域的應(yīng)用情況;分析污點(diǎn)分析技術(shù)的不足,并探討未來(lái)的發(fā)展趨勢(shì)。

    基于格的信息流模型 要求數(shù)據(jù)只能從高安全級(jí)別向低安全級(jí)別流動(dòng),保證數(shù)據(jù)安全 1.模型要求數(shù)據(jù)只能單向流動(dòng),影響了模型應(yīng)用范圍;

    2.不能對(duì)系統(tǒng)中存在的隱蔽通道進(jìn)行準(zhǔn)確描述

    基于安全類型的信息流模型 可根據(jù)需要定制安全類型和規(guī)則 1.安全類型與應(yīng)用的編程語(yǔ)言相關(guān),可移植性較差;

    2.基于安全類型的模型存在精確性差的問題

    基于SPA的信息流模型 以代數(shù)形式描述系統(tǒng)行為,能夠較好地解決系統(tǒng)概率行為引起的信息泄露和安全降密等問題 1.存在安全性驗(yàn)證困難問題;

    2.在全系統(tǒng)實(shí)現(xiàn)模型比較困難,一般只用于局部性驗(yàn)證

    基于自動(dòng)機(jī)的信息流模型 用自動(dòng)機(jī)模型來(lái)形式化描述系統(tǒng)安全狀態(tài)轉(zhuǎn)移規(guī)則,應(yīng)用廣泛,移植性好 實(shí)現(xiàn)難度隨分析對(duì)象規(guī)模增大而增大

    1 理論基礎(chǔ)

    污點(diǎn)分析技術(shù)是信息流分析技術(shù)的一種實(shí)踐方法[3],在信息泄露檢測(cè)、漏洞探測(cè)、逆向工程等方面有廣泛的應(yīng)用,并被移植到各種不同的環(huán)境和平臺(tái)當(dāng)中。污點(diǎn)分析技術(shù)將系統(tǒng)或應(yīng)用程序中的數(shù)據(jù)標(biāo)記為污點(diǎn)或非污點(diǎn),當(dāng)污點(diǎn)數(shù)據(jù)根據(jù)信息流傳播策略可影響到非污點(diǎn)數(shù)據(jù)時(shí),則將該非污點(diǎn)數(shù)據(jù)的標(biāo)記修改為污點(diǎn)。當(dāng)污點(diǎn)標(biāo)簽最終隨數(shù)據(jù)傳播到指定的存儲(chǔ)區(qū)域或者信息泄露點(diǎn)時(shí),則認(rèn)定該系統(tǒng)違反了信息流策略。

    1.1 污點(diǎn)分析模型

    污點(diǎn)分析技術(shù)模型包括污點(diǎn)源、污點(diǎn)匯聚點(diǎn)和無(wú)害化處理等部分。其中,污點(diǎn)源表示將污點(diǎn)數(shù)據(jù)引入到系統(tǒng)中;污點(diǎn)匯聚點(diǎn)表示系統(tǒng)將污點(diǎn)數(shù)據(jù)輸出到敏感數(shù)據(jù)區(qū)或者外界,造成敏感數(shù)據(jù)區(qū)被非法改寫或者隱私數(shù)據(jù)泄露;無(wú)害化處理表示通過數(shù)據(jù)加密或重新賦值等操作使數(shù)據(jù)傳播不再對(duì)系統(tǒng)的完整性和保密性產(chǎn)生危害。以下面的代碼為例說明污點(diǎn)分析的一般過程。

    程序前

    1)

    de f rectangle ():

    2)

    var1=input(‘Enter the first number:)

    3)

    var3=5

    4)

    var4=var1 * var3

    5)

    var7=int(var4)

    6)

    return var7

    7)

    de f reset ():

    8)

    var2=input(‘Enter the second number:)

    9)

    var5=var2 * 0

    10)

    return var5

    11)

    print (rectangle_area())

    12)

    print (reset_switch())

    程序后

    其中,rectangle函數(shù)表示將輸入數(shù)值乘5后返回結(jié)果,reset函數(shù)表示將輸入數(shù)值重置為0,代碼中各變量之間的關(guān)系如圖1所示。

    將代碼中第2)和第10)行的輸入標(biāo)記為污點(diǎn)源后,var1和var2均被標(biāo)記為污點(diǎn)變量。根據(jù)數(shù)據(jù)依賴關(guān)系,var4和var7也會(huì)被標(biāo)記為污點(diǎn)變量。由于污點(diǎn)數(shù)據(jù)var7位于污點(diǎn)匯聚點(diǎn),即可認(rèn)為rectangle函數(shù)違反了信息安全的完整性或保密性。

    污點(diǎn)數(shù)據(jù)主要通過數(shù)據(jù)間的依賴關(guān)系在系統(tǒng)或應(yīng)用程序中進(jìn)行傳播,這種依賴關(guān)系又分為數(shù)據(jù)依賴和控制依賴兩種。數(shù)據(jù)依賴主要包括程序中各變量間的直接賦值、數(shù)學(xué)計(jì)算等操作,如上述代碼中var1含有的污點(diǎn)信息通過算術(shù)運(yùn)算操作傳遞給var4??刂埔蕾囍饕ǔ绦蛑懈髯兞块g的條件判斷與指令跳轉(zhuǎn)等情況,即var1含有的污點(diǎn)信息通過包含var1的條件指令間接傳遞給其他變量,如下面代碼所示。

    程序前

    1)

    de f implicit_flow():

    2)

    var1=input(‘Enter your input:)

    3)

    (var2, var3, var4)=(0,0,0)

    4)

    if? (var1= =10):

    5)

    var2=1

    6)

    e lif (var1 > 10):

    7)

    var3=2

    8)

    el if (var1 < 10):

    9)

    var4=3

    10)

    return print_answer(var2, var3, var4)

    11)

    de f print_answer(var2, var3, var4):

    12)

    print (‘var2=, var2)

    13)

    print (‘var3=, var3)

    14)

    print (‘var4=, var4)

    15)

    implicit_flow()

    程序后

    將代碼中第2)行的輸入標(biāo)記為污點(diǎn)源后,var1被標(biāo)記為污點(diǎn)變量,第4)、6)、8)行是包含var1的條件分支指令。若此時(shí)的污點(diǎn)傳播策略為只要分支指令中包含污點(diǎn)數(shù)據(jù)就進(jìn)行污點(diǎn)傳播,那么var2、var3和var4均被標(biāo)記為污點(diǎn)變量,并最終傳播到第10)行的污點(diǎn)匯聚點(diǎn),會(huì)出現(xiàn)污點(diǎn)標(biāo)記數(shù)量過多的問題。但實(shí)際上,該程序根據(jù)var1數(shù)值不同,每次運(yùn)行最多只有一條分支會(huì)被污染。若僅按照數(shù)據(jù)依賴關(guān)系進(jìn)行污點(diǎn)傳播,則各分支均不會(huì)被標(biāo)記為污點(diǎn),會(huì)造成污點(diǎn)標(biāo)記數(shù)量過少。兩種情況都會(huì)導(dǎo)致污點(diǎn)分析效率和準(zhǔn)確性降低的問題。

    污點(diǎn)分析一般存在兩個(gè)問題,即過污染和欠污染。其中,過污染是指在污染分析過程中將與污點(diǎn)源沒有數(shù)據(jù)和控制依賴關(guān)系的數(shù)據(jù)變量標(biāo)記為污點(diǎn)變量,即產(chǎn)生誤報(bào);欠污染則是在污染分析過程中將與污點(diǎn)源存在數(shù)據(jù)或控制依賴關(guān)系的程序變量標(biāo)記為非污點(diǎn)變量,即產(chǎn)生漏報(bào)。對(duì)控制依賴關(guān)系的分析不足和不當(dāng)可能會(huì)造成過污染和欠污染問題。動(dòng)態(tài)污點(diǎn)分析工具Dytan[4]引入了控制流污染的概念,提升了污點(diǎn)分析的全面性。

    無(wú)害化處理是指系統(tǒng)中的某些模塊、函數(shù)或者數(shù)據(jù)處理操作,使得污點(diǎn)數(shù)據(jù)經(jīng)過處理后不再攜帶有敏感數(shù)據(jù)或者不會(huì)對(duì)系統(tǒng)造成危害。如第一段代碼中的reset函數(shù)可看作是一個(gè)無(wú)害化處理操作(任何數(shù)值與0的乘積均為0),所以var5不會(huì)被標(biāo)記為污點(diǎn)變量。

    在檢測(cè)系統(tǒng)或應(yīng)用程序是否存在隱私數(shù)據(jù)泄露時(shí),應(yīng)用程序調(diào)用了某個(gè)加密函數(shù)對(duì)隱私數(shù)據(jù)進(jìn)行加密,這樣即便此數(shù)據(jù)通過API向外發(fā)送,攻擊者也難以通過解密來(lái)獲得隱私數(shù)據(jù),則可認(rèn)為該加密函數(shù)完成了一個(gè)無(wú)害化處理操作。在探測(cè)系統(tǒng)或應(yīng)用是否存在漏洞時(shí),輸入驗(yàn)證模塊也可以被識(shí)別成無(wú)害化處理操作,比如某些Web網(wǎng)站會(huì)采用對(duì)輸入的用戶名和密碼進(jìn)行轉(zhuǎn)義以防止SQL注入,此時(shí),可以將該轉(zhuǎn)義操作認(rèn)為是一個(gè)無(wú)害化處理操作。污點(diǎn)數(shù)據(jù)經(jīng)過無(wú)害化處理后,污點(diǎn)標(biāo)記可被移除。正確地識(shí)別和利用無(wú)害化處理可以降低系統(tǒng)中污點(diǎn)標(biāo)記的數(shù)量,提高污點(diǎn)分析的效率,并避免由于污點(diǎn)擴(kuò)散導(dǎo)致的過污染問題。

    根據(jù)分析過程中是否需要運(yùn)行目標(biāo)程序,污點(diǎn)分析技術(shù)被分為靜態(tài)污點(diǎn)分析和動(dòng)態(tài)污點(diǎn)分析兩種。

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

    靜態(tài)污點(diǎn)分析主要通過詞法和語(yǔ)法分析等方法離線分析變量間數(shù)據(jù)和控制依賴關(guān)系,以檢測(cè)污點(diǎn)數(shù)據(jù)能否從污點(diǎn)源傳播到污點(diǎn)匯聚點(diǎn),在此過程中既不運(yùn)行目標(biāo)程序,也無(wú)需修改代碼。靜態(tài)污點(diǎn)分析的對(duì)象是程序代碼或中間表示(Intermediate Representation, IR)。

    在分析數(shù)據(jù)依賴關(guān)系時(shí),首先需要恢復(fù)函數(shù)調(diào)用關(guān)系圖,然后根據(jù)具體的程序特性進(jìn)行函數(shù)內(nèi)或函數(shù)間的污點(diǎn)傳播分析。常見的數(shù)據(jù)依賴關(guān)系包括賦值、函數(shù)調(diào)用和別名,其中研究難點(diǎn)在于對(duì)別名的分析,為了降低靜態(tài)污點(diǎn)分析技術(shù)的資源開銷,研究者們?cè)O(shè)計(jì)了多種方法來(lái)進(jìn)行別名分析。如Livshits等[5]采取按需的上下文敏感的別名分析方法,配合程序查詢語(yǔ)言污點(diǎn)檢查策略,來(lái)檢測(cè)Java應(yīng)用程序漏洞。ANDROMEDA[6]工具利用對(duì)象敏感別名分析方法解決分析對(duì)象的訪問路徑問題。

    在分析控制依賴關(guān)系時(shí),需要恢復(fù)控制流圖?;謴?fù)控制流圖通常采用遞歸算法:首先尋找并分析基本塊Ba,識(shí)別其后續(xù)基本塊Bb和Bc并添加到控制流圖中;然后重復(fù)對(duì)Bb和Bc進(jìn)行相同的遞歸分析,直到?jīng)]有新的后續(xù)基本塊被識(shí)別且所有基本塊均被添加到控制流圖中。恢復(fù)控制流圖的研究難點(diǎn)在于間接跳轉(zhuǎn),即當(dāng)二進(jìn)制文件將控制流傳輸?shù)接杉拇嫫骰虼鎯?chǔ)器位置中的值表示的目標(biāo)時(shí),發(fā)生間接跳轉(zhuǎn)。與直接跳轉(zhuǎn)的目標(biāo)被編碼到指令本身以正常解析不同,間接跳轉(zhuǎn)的目標(biāo)受多個(gè)因素的影響而變化。

    常用的靜態(tài)污點(diǎn)分析工具BinCAT通過抽象解釋,實(shí)現(xiàn)了控制流圖恢復(fù)和污點(diǎn)分析,并能集成到反匯編工具IDA中使用。靜態(tài)二進(jìn)制分析平臺(tái)Jakstab[7]在線性掃描和遞歸掃描的基礎(chǔ)上,借助數(shù)據(jù)流分析進(jìn)行多次迭代并恢復(fù)控制流圖,能獲得更準(zhǔn)確的結(jié)果。

    靜態(tài)污點(diǎn)分析的優(yōu)點(diǎn)是考慮了程序所有可能的執(zhí)行路徑,但由于不運(yùn)行目標(biāo)程序,無(wú)法得到程序運(yùn)行時(shí)的額外信息,所以存在分析結(jié)果不夠準(zhǔn)確的問題。由于程序源代碼和IR能夠提供清晰的污點(diǎn)傳播規(guī)則,因此在源代碼和IR的基礎(chǔ)上進(jìn)行靜態(tài)污點(diǎn)分析易于實(shí)現(xiàn)。

    1.3 動(dòng)態(tài)污點(diǎn)分析

    動(dòng)態(tài)污點(diǎn)分析是在目標(biāo)程序運(yùn)行過程中,通過實(shí)時(shí)跟蹤監(jiān)控并記錄程序變量、寄存器和內(nèi)存等的值,確定污點(diǎn)數(shù)據(jù)能否從污點(diǎn)源傳播到污點(diǎn)匯聚點(diǎn)。動(dòng)態(tài)污點(diǎn)分析能夠比較準(zhǔn)確地獲得程序執(zhí)行過程中各變量和存儲(chǔ)單元的狀態(tài),有效提高污點(diǎn)分析的精確度。

    動(dòng)態(tài)污點(diǎn)分析首先采用插樁的方法,在不破壞目標(biāo)程序原有邏輯的基礎(chǔ)上插入一些采集信息的代碼,從而獲得程序運(yùn)行的相關(guān)信息,目前常用的插樁平臺(tái)有Pin和Valgrind。接著,在原數(shù)據(jù)基礎(chǔ)上增加一個(gè)污點(diǎn)標(biāo)記來(lái)表示寄存器及內(nèi)存的污染情況,通常被稱為影子內(nèi)存。Valgrind實(shí)現(xiàn)了可保存四種污點(diǎn)信息狀態(tài)的污點(diǎn)信息存儲(chǔ)。 Zhao等則提出了一種與其類似但更全面的影子內(nèi)存框架Umbra。 然后,還要根據(jù)程序所運(yùn)行環(huán)境的指令類型和指令操作數(shù)設(shè)計(jì)相應(yīng)的污點(diǎn)傳播規(guī)則傳播污點(diǎn)標(biāo)記。最后,通過分析程序運(yùn)行相關(guān)信息獲得目標(biāo)程序的數(shù)據(jù)流和控制流信息。

    動(dòng)態(tài)污點(diǎn)分析工具TaintCheck基于插樁平臺(tái)Valgrind,由TaintSeed、TaintTracker、TaintAssert和ExploitAnalyzer等四個(gè)模塊組成。TaintCheck以二進(jìn)制文件為分析對(duì)象,借助Valgrind在程序執(zhí)行中動(dòng)態(tài)地將執(zhí)行指令翻譯成Ucode形式的中間表示,并將污點(diǎn)信息存儲(chǔ)在Taint Structure數(shù)據(jù)結(jié)構(gòu),最后通過TaintAssert檢查是否存在危險(xiǎn)數(shù)據(jù)操作。

    動(dòng)態(tài)污點(diǎn)分析的優(yōu)點(diǎn)是通過在程序中插樁以獲得程序執(zhí)行中的具體信息,分析精度高,但頻繁的插樁操作和影子內(nèi)存的設(shè)計(jì)會(huì)占用系統(tǒng)資源,污點(diǎn)分析執(zhí)行效率比靜態(tài)分析低。此外,動(dòng)態(tài)污點(diǎn)分析一般只能分析程序執(zhí)行過程中所覆蓋到的路徑,可能會(huì)產(chǎn)生漏報(bào)。

    本節(jié)介紹了污點(diǎn)分析定義與模型,并分別介紹了靜態(tài)污點(diǎn)分析和動(dòng)態(tài)污點(diǎn)分析的定義和優(yōu)缺點(diǎn)。 在實(shí)際應(yīng)用中,為了克服動(dòng)態(tài)污點(diǎn)分析與靜態(tài)污點(diǎn)分析的缺點(diǎn),也有研究者將二者相結(jié)合,其方法通常是:先執(zhí)行靜態(tài)污點(diǎn)分析獲得初步信息,提高路徑覆蓋率,節(jié)約分析時(shí)間和系統(tǒng)開銷;然后再執(zhí)行動(dòng)態(tài)污點(diǎn)分析獲得安全漏洞或者危險(xiǎn)數(shù)據(jù)操作的具體信息,提高分析的準(zhǔn)確度。除了提高路徑覆蓋率,靜態(tài)污點(diǎn)分析還可以篩選出供后續(xù)動(dòng)態(tài)污點(diǎn)分析的路徑,減小動(dòng)態(tài)污點(diǎn)分析的范圍,提高分析執(zhí)行效率。例如,用于檢測(cè)Android應(yīng)用隱私數(shù)據(jù)泄露的Appaudit[8]首先利用輕量級(jí)靜態(tài)分析技術(shù)篩選出可疑函數(shù),再通過動(dòng)態(tài)執(zhí)行技術(shù)檢測(cè)這些函數(shù)是否存在隱私數(shù)據(jù)泄露問題。黃強(qiáng)等[9]提出了一種檢測(cè)軟件脆弱性的方案,先利用靜態(tài)分析技術(shù)排除不可達(dá)執(zhí)行,搜索程序中導(dǎo)致軟件潛在脆弱性的所有路徑;然后使用污點(diǎn)檢查策略識(shí)別脆弱性類型;最后,在潛在的問題點(diǎn)插樁數(shù)據(jù)驗(yàn)證和處理函數(shù),隨程序源代碼一同編譯生成可執(zhí)行文件,增強(qiáng)程序運(yùn)行時(shí)的監(jiān)控能力。

    2 污點(diǎn)分析實(shí)現(xiàn)方式

    自污點(diǎn)分析技術(shù)被提出后,研究者們進(jìn)行了深入的研究,并實(shí)現(xiàn)了許多框架和工具。根據(jù)其實(shí)現(xiàn)方式的不同,這些工具大致可分為基于硬件、基于軟件、基于虛擬環(huán)境和基于代碼等四個(gè)層次。

    2.1 基于硬件的污點(diǎn)分析

    基于硬件的污點(diǎn)分析的核心思想是對(duì)寄存器、緩存和內(nèi)存等硬件結(jié)構(gòu)進(jìn)行重新設(shè)計(jì),增加相應(yīng)的污點(diǎn)信息標(biāo)志位以實(shí)現(xiàn)污點(diǎn)信息的存儲(chǔ)、傳播和檢測(cè)等功能。

    例如,動(dòng)態(tài)污點(diǎn)分析工具Raksha[10]在硬件方面進(jìn)行了諸多改動(dòng):

    1)將包括寄存器、緩存和主存在內(nèi)的所有存儲(chǔ)單元都做了標(biāo)記位擴(kuò)展,以實(shí)現(xiàn)污點(diǎn)的標(biāo)記,這也是所有基于硬件的污點(diǎn)分析工具的共同特點(diǎn)。

    2)將指令集架構(gòu)也進(jìn)行了擴(kuò)展,在實(shí)現(xiàn)常規(guī)功能的同時(shí)支持污點(diǎn)標(biāo)記的傳播與檢查操作,為了在硬件層面支持這一功能,Raksha還設(shè)計(jì)了兩類專用寄存器:用于維護(hù)標(biāo)記傳播策略的標(biāo)記傳播寄存器和用于策略實(shí)施與檢查的標(biāo)記檢測(cè)寄存器。

    3)為進(jìn)行異常處理,系統(tǒng)還設(shè)計(jì)了引用監(jiān)控寄存器、客戶操作寄存器和異常處理寄存器,其中,異常處理寄存器主要用于保存污點(diǎn)標(biāo)記傳播過程中所發(fā)生的各類異常信息。

    4)為解決了不同型號(hào)處理器的兼容問題,系統(tǒng)專門設(shè)計(jì)了一個(gè)協(xié)處理器進(jìn)行動(dòng)態(tài)污點(diǎn)分析,而主處理器進(jìn)行正常數(shù)據(jù)處理工作。

    基于硬件的污點(diǎn)分析可以通過定制硬件的方式降低系統(tǒng)開銷,提高污點(diǎn)分析執(zhí)行效率,但由于運(yùn)行在硬件層,不支持上層語(yǔ)義的邏輯安全策略,且需要對(duì)硬件結(jié)構(gòu)進(jìn)行重新設(shè)計(jì),移植性較差。

    2.2 基于軟件的污點(diǎn)分析

    基于軟件的污點(diǎn)分析根據(jù)分析對(duì)象的不同還可細(xì)分為基于操作系統(tǒng)和基于應(yīng)用程序的污點(diǎn)分析,其核心思想是將操作系統(tǒng)(如進(jìn)程與線程、內(nèi)存、文件等)或應(yīng)用程序(如數(shù)據(jù)庫(kù)中的文件等)中的相關(guān)資源進(jìn)行標(biāo)記,并在此基礎(chǔ)上進(jìn)行污點(diǎn)分析?;谲浖奈埸c(diǎn)分析無(wú)需改變底層硬件,主要通過修改程序代碼的方式實(shí)現(xiàn)污點(diǎn)信息的存儲(chǔ)與傳播,例如TaintEraser[11]、TaintDroid[12]等。

    Asbestos[13]系統(tǒng)實(shí)現(xiàn)了基于操作系統(tǒng)的污點(diǎn)分析,主要基于最小特權(quán)原則和能夠在系統(tǒng)進(jìn)程通信方面提供了污點(diǎn)分析工具。Asbestos系統(tǒng)的實(shí)現(xiàn)基于以下原則:

    1)最小特征原則,即向每一個(gè)用戶或進(jìn)程賦予其完成某種業(yè)務(wù)所需的最少特權(quán);

    2)強(qiáng)制訪問控制原則,即將系統(tǒng)中的信息區(qū)分密級(jí)進(jìn)行管理,以確保用戶只能訪問被明確允許訪問的信息。

    基于Asbestos系統(tǒng)的Web服務(wù)器工作流程架構(gòu)如圖2所示,這是一個(gè)實(shí)現(xiàn)多個(gè)用戶動(dòng)態(tài)登錄的網(wǎng)站,其中ok-demux模塊分析傳入的連接請(qǐng)求并將其發(fā)送到相關(guān)的工作進(jìn)程,idd模塊用于檢查用戶密碼,ok-dbproxy模塊提供數(shù)據(jù)庫(kù)接口。在網(wǎng)站運(yùn)行時(shí),系統(tǒng)給每個(gè)用戶提供專用權(quán)限,不同用戶之間通過標(biāo)簽和事件進(jìn)程進(jìn)行隔離。Asbestos系統(tǒng)通過對(duì)標(biāo)簽的動(dòng)態(tài)調(diào)整實(shí)現(xiàn)污點(diǎn)分析的功能,但未考慮對(duì)系統(tǒng)關(guān)鍵資源的控制,且對(duì)進(jìn)程間的系統(tǒng)資源共享和進(jìn)程標(biāo)記隱蔽通道等問題也沒有提出解決方案。

    基于軟件的污點(diǎn)分析支持更高層級(jí)的語(yǔ)義邏輯安全策略,但使用插樁或代碼重寫會(huì)導(dǎo)致系統(tǒng)資源的巨大開銷。

    2.3 基于虛擬環(huán)境的污點(diǎn)分析

    基于虛擬環(huán)境的污點(diǎn)分析的核心思想是在虛擬環(huán)境中增加污點(diǎn)分析模塊,使污點(diǎn)分析模塊和被分析的目標(biāo)程序運(yùn)行在不同環(huán)境中。其中,分析模塊運(yùn)行于虛擬機(jī)監(jiān)控層,目標(biāo)程序處于目標(biāo)機(jī)操作系統(tǒng)層,分析模塊不影響目標(biāo)程序的運(yùn)行,記錄的污點(diǎn)信息更準(zhǔn)確,如圖3所示。

    在基于虛擬環(huán)境執(zhí)行污點(diǎn)分析的研究方面,研究者們實(shí)現(xiàn)了很多工具。如Phosoher[14]就是基于Java虛擬機(jī)環(huán)境的污點(diǎn)分析系統(tǒng)。Argos通過x86模擬器在程序執(zhí)行過程中跟蹤網(wǎng)絡(luò)數(shù)據(jù),獲取程序運(yùn)行信息,使用位圖映射標(biāo)識(shí)內(nèi)存及寄存器污點(diǎn)狀態(tài),保存當(dāng)前環(huán)境為快照并提取特征碼,能有效檢測(cè)出針對(duì)服務(wù)器的攻擊行為。動(dòng)態(tài)分析平臺(tái)TEMU在QEMU虛擬機(jī)的基礎(chǔ)上進(jìn)行了擴(kuò)展,能夠以較細(xì)的粒度分析內(nèi)核與多進(jìn)程間的交互情況。

    基于虛擬環(huán)境的污點(diǎn)分析不需要修改程序的代碼,由于虛擬機(jī)監(jiān)控層的權(quán)限比目標(biāo)機(jī)操作系統(tǒng)層更高,因此分析模塊能夠記錄系統(tǒng)調(diào)用甚至內(nèi)核執(zhí)行的指令信息,可以發(fā)現(xiàn)系統(tǒng)底層漏洞,基于Android平臺(tái)的污點(diǎn)分析工具一般采用基于虛擬環(huán)境的方式實(shí)現(xiàn)。但基于虛擬環(huán)境的污點(diǎn)分析需要搭設(shè)應(yīng)用程序所需的工作環(huán)境,特別是在分析工控系統(tǒng)和物聯(lián)網(wǎng)設(shè)備等與硬件環(huán)境聯(lián)系緊密的固件程序時(shí),虛擬環(huán)境的搭設(shè)工作十分復(fù)雜,且僅依靠基于虛擬環(huán)境的污點(diǎn)分析并不能保證操作系統(tǒng)的安全性,不能取代基于操作系統(tǒng)的污點(diǎn)分析的功能和作用。最后,基于虛擬環(huán)境的污點(diǎn)分析一般需要虛擬機(jī)解釋執(zhí)行的過程中執(zhí)行污點(diǎn)分析,對(duì)系統(tǒng)運(yùn)行效率影響較大。

    2.4 基于代碼的污點(diǎn)分析

    基于代碼的污點(diǎn)分析根據(jù)分析對(duì)象的不同也可以被細(xì)分為對(duì)程序源碼進(jìn)行污點(diǎn)分析和對(duì)二進(jìn)制代碼進(jìn)行污點(diǎn)分析兩種?;诖a的污點(diǎn)分析工具基本都采用了程序切片技術(shù),使其對(duì)程序的理解和分析更為精確。程序切片是指能夠影響程序某行的某個(gè)變量值的部分語(yǔ)句和判定表達(dá)式的集合。自1979年被提出后,程序切片技術(shù)已經(jīng)發(fā)展出靜態(tài)切片與動(dòng)態(tài)切片、前向切片與后向切片以及一些變種技術(shù)等多種方法。Tripp等[15]實(shí)現(xiàn)了TAJ工具,通過混合切片的方式對(duì)Java Web應(yīng)用進(jìn)行污點(diǎn)分析。

    對(duì)程序源碼進(jìn)行污點(diǎn)分析是實(shí)現(xiàn)一個(gè)帶有安全標(biāo)簽的類型系統(tǒng),在編譯過程中讀取程序源碼的安全標(biāo)簽,以檢查是否存在違反信息流策略的情況。在第1章中已有所介紹,靜態(tài)污點(diǎn)分析常采用這種方式。對(duì)程序源碼進(jìn)行污點(diǎn)分析能夠在程序編譯時(shí)發(fā)現(xiàn)程序中違反信息流策略的情況,對(duì)系統(tǒng)資源的開銷較小,分析執(zhí)行效率高,缺點(diǎn)是需要獲得源代碼,在商業(yè)環(huán)境下應(yīng)用難度較高。

    對(duì)二進(jìn)制代碼進(jìn)行污點(diǎn)分析是在二進(jìn)制代碼中插入污點(diǎn)跟蹤代碼,以獲取程序執(zhí)行時(shí)的污點(diǎn)傳播情況。動(dòng)態(tài)污點(diǎn)分析常采用這種方式。對(duì)二進(jìn)制代碼進(jìn)行污點(diǎn)分析可以在指令級(jí)別進(jìn)行污點(diǎn)跟蹤檢測(cè),精確度高,但頻繁的插樁會(huì)占用系統(tǒng)資源,降低系統(tǒng)運(yùn)行效率。此外,計(jì)算機(jī)的指令類型和規(guī)模使得二進(jìn)制代碼的精確建模極為困難,且二進(jìn)制代碼缺乏高層語(yǔ)義支持,一般需要依靠插樁平臺(tái)或二進(jìn)制反匯編工具以降低工作量。

    此外,還有一些針對(duì)中間表示進(jìn)行污點(diǎn)分析的研究,如梁彬等[16]實(shí)現(xiàn)了一種針對(duì)JavaScript優(yōu)化編譯執(zhí)行模式的動(dòng)態(tài)污點(diǎn)分析方法,在中間代碼層面進(jìn)行插樁操作,能夠有效地在優(yōu)化編譯執(zhí)行模式下進(jìn)行污點(diǎn)跟蹤。

    綜合本章內(nèi)容,從實(shí)現(xiàn)基礎(chǔ)、分析對(duì)象、可移植性、系統(tǒng)效率和靜態(tài)/動(dòng)態(tài)等五個(gè)方面對(duì)四種污點(diǎn)分析實(shí)現(xiàn)方式進(jìn)行對(duì)比如表2所示。

    對(duì)工程應(yīng)用而言,研究者也會(huì)在一個(gè)工具中綜合使用兩種以上的實(shí)現(xiàn)方式,以便在不同層面進(jìn)行污點(diǎn)分析,提高污點(diǎn)分析的準(zhǔn)確性。如FlexiTaint、PIFT[17]等工具就綜合了基于硬件和基于軟件兩種污點(diǎn)分析思想,既盡可能少地改動(dòng)硬件結(jié)構(gòu),又支持更高層級(jí)的語(yǔ)義邏輯安全策略。

    3 相關(guān)應(yīng)用

    污點(diǎn)分析技術(shù)自提出后就在隱私數(shù)據(jù)泄露檢測(cè)、逆向分析、漏洞探測(cè)等方面得到廣泛應(yīng)用,本章重點(diǎn)介紹隱私數(shù)據(jù)泄露檢測(cè)和漏洞探測(cè)。

    3.1 隱私數(shù)據(jù)泄露檢測(cè)

    污點(diǎn)分析技術(shù)用于隱私數(shù)據(jù)泄露檢測(cè)的核心思想是:首先將系統(tǒng)或應(yīng)用程序中的隱私數(shù)據(jù)標(biāo)記為污點(diǎn)源,將對(duì)外輸出數(shù)據(jù)的API標(biāo)記為污點(diǎn)匯聚點(diǎn),然后在程序運(yùn)行過程中根據(jù)污點(diǎn)傳播規(guī)則跟蹤被標(biāo)記為污點(diǎn)的隱私數(shù)據(jù)的傳播路徑,當(dāng)系統(tǒng)調(diào)用API向外發(fā)送數(shù)據(jù)時(shí)檢測(cè)其中是否包含污點(diǎn)標(biāo)記,從而判定是否發(fā)生隱私數(shù)據(jù)泄露。比如污點(diǎn)分析工具AndroidLeaks[18]通過自動(dòng)化分析Android框架代碼來(lái)獲取API與權(quán)限的對(duì)應(yīng)關(guān)系并確定污點(diǎn)源列表,從而大規(guī)模檢測(cè)應(yīng)用程序中存在的隱私數(shù)據(jù)泄露行為。

    當(dāng)前,移動(dòng)設(shè)備用戶數(shù)量已經(jīng)超過了傳統(tǒng)互聯(lián)網(wǎng)用戶,其中Android平臺(tái)設(shè)備占據(jù)了主要份額,因此近年來(lái),針對(duì)Android平臺(tái)隱私數(shù)據(jù)泄露檢測(cè)技術(shù)的研究已經(jīng)成為熱點(diǎn),本文重點(diǎn)介紹污點(diǎn)分析技術(shù)在Android平臺(tái)上的應(yīng)用。Android平臺(tái)架構(gòu)分為四層,自下而上分別為L(zhǎng)inux內(nèi)核層、系統(tǒng)運(yùn)行層、應(yīng)用程序框架層和應(yīng)用程序?qū)?。由于Android平臺(tái)采用基于組件的編程模型,根據(jù)污點(diǎn)傳播涉及的范圍不同,可分為組件內(nèi)、組件間以及組件與庫(kù)函數(shù)之間三類污點(diǎn)傳播方式,如圖4所示。

    靜態(tài)污點(diǎn)分析和動(dòng)態(tài)污點(diǎn)分析對(duì)這三類傳播的處理方式也有所不同。采用靜態(tài)污點(diǎn)分析技術(shù)進(jìn)行隱私數(shù)據(jù)泄露檢測(cè)時(shí),首先需要構(gòu)建完整的分析模型,以確??梢愿采w所有的可執(zhí)行路徑。靜態(tài)分析框架Dalysis[19]和自動(dòng)化檢測(cè)工具CHEX采用增量方法構(gòu)建系統(tǒng)調(diào)用圖,對(duì)目標(biāo)App進(jìn)行全局?jǐn)?shù)據(jù)流分析。另一種常用污點(diǎn)分析工具FlowDroid[20]則針對(duì) Android系統(tǒng)的異步工作機(jī)制對(duì)分析模型進(jìn)行了大量?jī)?yōu)化。其次,靜態(tài)污點(diǎn)分析通過分析Intent參數(shù)信息來(lái)完成組件間的污點(diǎn)傳播分析。Octeau等[21]提出了一個(gè)組件間通信機(jī)制尋址方案,將組件間污點(diǎn)傳播轉(zhuǎn)化為IDE問題,再進(jìn)行求解。最后,靜態(tài)污點(diǎn)分析還需要考慮組件與庫(kù)函數(shù)之間的污點(diǎn)傳播問題,由于庫(kù)函數(shù)數(shù)量龐大且本地庫(kù)多為C/C+ +語(yǔ)言編寫,因此針對(duì)這一問題沒有統(tǒng)一的解決方案。如FlowDroid采用保守策略,即若調(diào)用庫(kù)函數(shù)的參數(shù)中含有污點(diǎn)數(shù)據(jù),則將其函數(shù)返回值標(biāo)記為污點(diǎn)。

    采用動(dòng)態(tài)污點(diǎn)分析技術(shù)進(jìn)行隱私數(shù)據(jù)泄露時(shí)最常用的工具是TaintDroid,通過分析Dalvik虛擬機(jī)DEX指令類型并根據(jù)制定的污點(diǎn)傳播規(guī)則來(lái)跟蹤組件內(nèi)的污點(diǎn)傳播情況,并且TaintDroid重新設(shè)計(jì)了用于存儲(chǔ)數(shù)據(jù)的包對(duì)象結(jié)構(gòu),使之能夠存儲(chǔ)與污點(diǎn)相關(guān)的信息,這樣污點(diǎn)信息就可以在組件間進(jìn)行傳播。最后,TaintDroid也采用了類似于保守策略的方法來(lái)處理組件與庫(kù)函數(shù)之間的污點(diǎn)傳播。與TaintDroid相似的是,劉陽(yáng)等[22]通過對(duì)框架層源碼進(jìn)行插樁實(shí)現(xiàn)添加和提取污點(diǎn)標(biāo)記,并在此基礎(chǔ)上實(shí)現(xiàn)了檢測(cè)隱私數(shù)據(jù)泄露的方法。

    表3中列舉了幾種基于Android平臺(tái)的常用污點(diǎn)分析工具的優(yōu)缺點(diǎn)及分析性能的對(duì)比分析。從表中可以看到:FlowDroid可以對(duì)組件內(nèi)和組件間的污點(diǎn)傳播進(jìn)行分析,但在組件與庫(kù)函數(shù)之間默認(rèn)采用了保守策略,因此誤報(bào)率較高;DroidMark在其基礎(chǔ)上引入了深度學(xué)習(xí)技術(shù),大幅降低了誤報(bào)率和漏報(bào)率,但實(shí)際性能與深度學(xué)習(xí)模型訓(xùn)練效果有關(guān);TaintDroid[23]只對(duì)數(shù)據(jù)流進(jìn)行污點(diǎn)分析,漏報(bào)率相對(duì)較高,但其系統(tǒng)開銷增加不大,且能實(shí)現(xiàn)多個(gè)粒度級(jí)別的污點(diǎn)分析,實(shí)用性較強(qiáng)。

    3.2 漏洞探測(cè)

    除了隱私數(shù)據(jù)泄露檢測(cè)外,污點(diǎn)分析技術(shù)還被應(yīng)用于檢測(cè)緩沖區(qū)溢出、SQL注入、XSS攻擊、格式字符串攻擊等方面。這類攻擊行為的共同特點(diǎn)是用戶的輸入利用了系統(tǒng)中的某個(gè)漏洞,可以不經(jīng)合法授權(quán)就改寫系統(tǒng)數(shù)據(jù)敏感區(qū)的值,從而達(dá)到攻擊的目的。污點(diǎn)分析技術(shù)被用于漏洞探測(cè)的核心思想是:將外部輸入數(shù)據(jù)標(biāo)記為污點(diǎn)源,將敏感數(shù)據(jù)區(qū)標(biāo)記為污點(diǎn)匯聚點(diǎn),然后在程序運(yùn)行過程中根據(jù)污點(diǎn)傳播規(guī)則跟蹤污點(diǎn)數(shù)據(jù)的傳播路徑,檢查敏感數(shù)據(jù)區(qū)是否被污點(diǎn)數(shù)據(jù)污染,從而判定系統(tǒng)或應(yīng)用程序是否存在漏洞。

    在污點(diǎn)分析提出以來(lái),該領(lǐng)域一直都是研究者們重點(diǎn)關(guān)注的對(duì)象。達(dá)小文等[24]通過分析大量緩沖區(qū)溢出實(shí)例,歸納了六種緩沖區(qū)溢出的漏洞定位模型,并結(jié)合補(bǔ)丁比對(duì)和污點(diǎn)傳播分析生成污點(diǎn)傳播路徑圖,最后將補(bǔ)丁源碼的污點(diǎn)傳播路徑圖與定位模型相匹配以精確定位漏洞所在位置;InterTracer[25]利用靜態(tài)污點(diǎn)分析方法來(lái)檢測(cè)Android應(yīng)用中的Intent注入漏洞;DexterJS[26]平臺(tái)可在字符粒度級(jí)別檢測(cè)Web應(yīng)用中基于DOM的XSS漏洞。

    本節(jié)主要從污點(diǎn)數(shù)據(jù)流向的角度介紹了污點(diǎn)分析技術(shù)在隱私數(shù)據(jù)泄露檢測(cè)和漏洞探測(cè)領(lǐng)域的應(yīng)用。除了上述兩種典型應(yīng)用,污點(diǎn)分析技術(shù)在其他領(lǐng)域也得到廣泛的應(yīng)用,例如污點(diǎn)分析工具Renove[27]能夠?qū)崿F(xiàn)病毒關(guān)鍵代碼的自動(dòng)化提取,可用于病毒的智能脫殼;Eudaemon[28]結(jié)合了動(dòng)態(tài)污點(diǎn)分析技術(shù)和蜜罐與終端入侵檢測(cè)技術(shù)檢測(cè)0day漏洞。

    4 研究趨勢(shì)

    污點(diǎn)分析技術(shù)雖然取得了豐碩的研究成果,但也有很多問題并沒有得到完全解決。一是現(xiàn)有工具僅基于某一層次進(jìn)行污點(diǎn)分析。比如基于應(yīng)用程序的污點(diǎn)分析雖然可以檢測(cè)程序運(yùn)行中存在的隱私數(shù)據(jù)泄露問題,但隱私數(shù)據(jù)在數(shù)據(jù)庫(kù)或系統(tǒng)進(jìn)程中同樣存在泄露隱患。二是動(dòng)態(tài)污點(diǎn)分析精度與效率之間的矛盾不可調(diào)和。動(dòng)態(tài)污點(diǎn)分析是在原系統(tǒng)基礎(chǔ)上擴(kuò)展了污點(diǎn)跟蹤機(jī)制,需要占用系統(tǒng)資源,導(dǎo)致系統(tǒng)效率下降,分析精度要求越高,需要獲得的污點(diǎn)分析數(shù)據(jù)就要越詳細(xì),系統(tǒng)效率下降就越嚴(yán)重。所有的動(dòng)態(tài)污點(diǎn)分析工具都需要根據(jù)應(yīng)用環(huán)境的要求在精度與效率之間進(jìn)行平衡。

    因此,污點(diǎn)分析技術(shù)未來(lái)研究的出發(fā)點(diǎn)就是如何提高污點(diǎn)分析技術(shù)的性能??偟膩?lái)說,主要包括以下兩個(gè)方面。

    4.1 優(yōu)化污點(diǎn)分析技術(shù)方法

    繼續(xù)優(yōu)化污點(diǎn)分析技術(shù)的算法,通過設(shè)計(jì)更科學(xué)的污點(diǎn)識(shí)別方法、歸納更準(zhǔn)確的污點(diǎn)傳播策略以及引入新算法等方法來(lái)提高污點(diǎn)分析技術(shù)的準(zhǔn)確性和分析效率。

    4.1.1 提高污點(diǎn)數(shù)據(jù)識(shí)別的精度

    污點(diǎn)源的識(shí)別不當(dāng)很容易造成污點(diǎn)標(biāo)簽在程序中的錯(cuò)誤擴(kuò)散,繼而影響污點(diǎn)分析技術(shù)的準(zhǔn)確性和分析效率。為了解決這一問題,有研究者引入機(jī)器學(xué)習(xí)的概念來(lái)識(shí)別污點(diǎn)源和污點(diǎn)匯聚點(diǎn),如Tripp等[29]使用Bayesian模型對(duì)污點(diǎn)源進(jìn)行分類,從中排除正常的數(shù)據(jù)發(fā)送請(qǐng)求,降低了對(duì)污點(diǎn)分析造成的影響;而DroidMark則采用了深度學(xué)習(xí)技術(shù),將對(duì)Android設(shè)備中惡意軟件的檢測(cè)精度提升至96.87%。

    4.1.2 制定更科學(xué)的污點(diǎn)傳播策略

    污點(diǎn)傳播策略的選擇與污點(diǎn)分析的精度和效率關(guān)系密切,比如有的工具(如IPSSA)在處理污點(diǎn)傳播時(shí)采用了保守策略,將所有與污染數(shù)據(jù)有關(guān)的操作均認(rèn)定為符合污染傳播規(guī)則,擴(kuò)大了污點(diǎn)屬性的標(biāo)記范圍,降低了模型的精確度;有的細(xì)粒度污點(diǎn)分析工具在執(zhí)行粗粒度分析時(shí),占用了過多的系統(tǒng)資源,導(dǎo)致分析效率不高。

    因此在工程實(shí)現(xiàn)時(shí)研究者們往往結(jié)合分析需要制定科學(xué)的污點(diǎn)傳播方法。例如在函數(shù)級(jí)污點(diǎn)的傳播過程中采用函數(shù)摘要思想,使污點(diǎn)在函數(shù)外層快速傳播,避免了函數(shù)內(nèi)部指令插樁等系統(tǒng)開銷較大的操作,既保證了分析準(zhǔn)確性又提高了系統(tǒng)效率。馬金鑫等[30]還提出了基于執(zhí)行蹤跡離線索引的方法,在污點(diǎn)分析過程中,篩選出與污點(diǎn)數(shù)據(jù)相關(guān)的操作的同時(shí)忽略與污點(diǎn)數(shù)據(jù)無(wú)關(guān)的指令,從而縮短污點(diǎn)分析時(shí)間。

    4.1.3 引入新算法提高污點(diǎn)分析性能

    一方面是將污點(diǎn)分析問題轉(zhuǎn)換為其他問題,如:靜態(tài)污點(diǎn)分析框架Parfait,在程序預(yù)處理階段將污點(diǎn)分析問題轉(zhuǎn)換為圖可達(dá)性問題,實(shí)現(xiàn)了針對(duì)C代碼的靜態(tài)污點(diǎn)分析;MalScope將污點(diǎn)分析問題轉(zhuǎn)換為加權(quán)下推自動(dòng)機(jī)的廣義下推后繼問題,利用污點(diǎn)數(shù)據(jù)在程序中的可達(dá)性,減少后續(xù)分析中需要精確執(zhí)行的路徑數(shù),可有效解決靜態(tài)污點(diǎn)分析方法在進(jìn)行路徑敏感分析時(shí)面臨的路徑爆炸問題;DROIDPF[31]應(yīng)用軟件模型檢查技術(shù)驗(yàn)證Android應(yīng)用,并采用了一種Android特有的還原技術(shù)來(lái)緩解狀態(tài)空間爆炸。另一方面是采用并行處理技術(shù)進(jìn)行污點(diǎn)分析,提高污點(diǎn)分析執(zhí)行速度,如:動(dòng)態(tài)污點(diǎn)分析框架DTAM[32]可并行執(zhí)行多個(gè)線程單元的污點(diǎn)分析,再將分析結(jié)果進(jìn)行聚合,提高了對(duì)可并行執(zhí)行的多線程程序進(jìn)行動(dòng)態(tài)污點(diǎn)分析的效率;PAGDTA[33]采用虛擬化技術(shù)將各測(cè)試用例并行執(zhí)行動(dòng)態(tài)污點(diǎn)分析,大幅度提高了路徑覆蓋率和執(zhí)行效率。

    4.2 結(jié)合其他研究方法

    為提高污點(diǎn)分析技術(shù)的精度和效率,還有研究者將不同的技術(shù)方法結(jié)合使用,以綜合各方法的優(yōu)點(diǎn),其中關(guān)于靜態(tài)污點(diǎn)分析和動(dòng)態(tài)污點(diǎn)分析結(jié)合的研究工作在第1章已經(jīng)進(jìn)行過介紹,本節(jié)主要介紹以下兩種方法。

    4.2.1 與符號(hào)執(zhí)行結(jié)合使用

    符號(hào)執(zhí)行(Symbolic Execution, SE)的核心思想是使用符號(hào)值替代具體數(shù)據(jù)作為程序輸入,并在程序執(zhí)行過程中以符號(hào)值進(jìn)行計(jì)算,用包含符號(hào)的表達(dá)式表示程序變量的值和最終的輸出結(jié)果。將污點(diǎn)分析與符號(hào)執(zhí)行結(jié)合使用的分析工具有Angr[34]和DsVD[35]等。符號(hào)執(zhí)行的精度比污點(diǎn)分析技術(shù)高,可以在程序運(yùn)行過程中精確記錄路徑上所有的約束條件,有助于提高路徑可達(dá)性判定的準(zhǔn)確性;但缺點(diǎn)是用于二進(jìn)制程序分析時(shí)識(shí)別變量較為困難,會(huì)產(chǎn)生空間爆炸問題,需要強(qiáng)大的計(jì)算能力支持。為了解決這一問題,研究者們提出了混合符號(hào)執(zhí)行技術(shù),這種技術(shù)結(jié)合了符號(hào)執(zhí)行和具體執(zhí)行,當(dāng)符號(hào)執(zhí)行無(wú)法判定或計(jì)算取值時(shí),用具體值來(lái)代替部分符號(hào)值,以使符號(hào)執(zhí)行能夠繼續(xù)進(jìn)行。

    此外,陳力波等[36]提出了基于類型的動(dòng)態(tài)污點(diǎn)分析技術(shù),其核心思想是將類型信息和符號(hào)值作為污點(diǎn)信息,在程序執(zhí)行時(shí)同時(shí)進(jìn)行動(dòng)態(tài)污點(diǎn)分析和符號(hào)執(zhí)行,程序運(yùn)行結(jié)束后獲得污點(diǎn)傳播信息和程序執(zhí)行路徑條件,最后通過求解得到輸入變量滿足的約束條件。這種技術(shù)結(jié)合了動(dòng)態(tài)污點(diǎn)分析和符號(hào)執(zhí)行的優(yōu)點(diǎn),對(duì)程序有較為全面的理解。朱正欣等[37]基于動(dòng)態(tài)插樁平臺(tái)Pin以及l(fā)ibdft提出了動(dòng)態(tài)符號(hào)化污點(diǎn)分析方法,其核心思想是將污點(diǎn)信息及污點(diǎn)檢查策略符號(hào)化,并分析污點(diǎn)數(shù)據(jù)在傳播過程中是否違反污點(diǎn)檢查策略,進(jìn)而判斷程序在動(dòng)態(tài)執(zhí)行過程中是否存在非法數(shù)據(jù)操作。還有BitBlaze[38]將動(dòng)態(tài)分析與靜態(tài)分析、混合符號(hào)執(zhí)行與具體執(zhí)行、系統(tǒng)仿真與二進(jìn)制重寫等多種分析方法相結(jié)合,對(duì)二進(jìn)制代碼進(jìn)行分析。

    4.2.2 與模糊測(cè)試結(jié)合使用

    模糊測(cè)試的核心思想是生成大量測(cè)試用例來(lái)測(cè)試程序魯棒性,以保證較高的代碼覆蓋率,但缺點(diǎn)是對(duì)程序漏洞作用機(jī)理缺乏基本的理解。為了解決這個(gè)問題,研究者們提出了定向模糊測(cè)試[39]方法,將模糊測(cè)試和污點(diǎn)分析相結(jié)合,在異常測(cè)試樣本集的基礎(chǔ)上進(jìn)行污點(diǎn)分析,深入了解漏洞作用機(jī)理,并在此基礎(chǔ)上實(shí)現(xiàn)了SmartDroid[40]、Brahmastra[41]等工具。此外,Ganesh等[42]實(shí)現(xiàn)了自動(dòng)化白盒模糊測(cè)試工具BuzzFuzz,其核心思想是使用動(dòng)態(tài)污點(diǎn)分析技術(shù)追蹤輸入數(shù)據(jù)中影響程序關(guān)鍵數(shù)據(jù)區(qū)的范圍,能夠發(fā)現(xiàn)隱藏在程序中深層錯(cuò)誤,適合復(fù)雜結(jié)構(gòu)的輸入文件測(cè)試。Wang等[43]實(shí)現(xiàn)了自動(dòng)化模糊測(cè)試系統(tǒng)TaintScope,將動(dòng)態(tài)污點(diǎn)分析和符號(hào)執(zhí)行相結(jié)合,提升了對(duì)具有校驗(yàn)機(jī)制的程序進(jìn)行模糊測(cè)試的效率。

    除了污點(diǎn)分析技術(shù)性能以外,如何擴(kuò)大污點(diǎn)分析技術(shù)的應(yīng)用范圍也是研究的熱點(diǎn)領(lǐng)域。特別是隨著近年來(lái)工控系統(tǒng)安全受到重視,污點(diǎn)分析技術(shù)也被引入工控安全的研究領(lǐng)域,例如LUCON[44]在工業(yè)物聯(lián)網(wǎng)環(huán)境下采用動(dòng)態(tài)污點(diǎn)分析,檢測(cè)是否存在信息泄露隱患。

    5 結(jié)語(yǔ)

    本文比較系統(tǒng)地介紹了污點(diǎn)分析的理論基礎(chǔ)、實(shí)現(xiàn)方法和典型應(yīng)用,并分析了其中的優(yōu)點(diǎn)和不足,但對(duì)具體的工具設(shè)計(jì)和功能實(shí)現(xiàn)并沒有作深入闡述,還需要參閱相關(guān)文獻(xiàn)以詳加了解。污點(diǎn)分析技術(shù)已經(jīng)被廣泛應(yīng)用于信息安全的各個(gè)領(lǐng)域,但其研究趨勢(shì)仍是提高分析精度和效率以及擴(kuò)大應(yīng)用領(lǐng)域兩個(gè)方面。本文對(duì)目前提高分析精度和效率的主要做法進(jìn)行了介紹,在擴(kuò)大應(yīng)用領(lǐng)域方面,還有研究者正將污點(diǎn)分析技術(shù)應(yīng)用于云計(jì)算、物聯(lián)網(wǎng)、工業(yè)控制領(lǐng)域的安全研究中,這也是污點(diǎn)分析技術(shù)研究的下一個(gè)熱點(diǎn)領(lǐng)域。

    參考文獻(xiàn)

    [1]?EVANS D. The Internet of things: how the next evolution of the Internet is changing everything [EB/OL]. [2018-12-03]. https://www.cisco.com/c/dam/en_us/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf.

    https://www.researchgate.net/publication/306122904_The_Internet_of_Things_How_the_Next_Evolution_of_the_Internet_is_Changing_Everything

    [2]?吳澤智,陳性元,楊智,等.信息流控制研究進(jìn)展[J].軟件學(xué)報(bào),2017,28(1):135-159. (WU Z Z, CHEN X Y, YANG Z, et al. Survey on information flow control[J]. Journal of Software, 2017, 28(1): 135-159.)

    [3]?王蕾,李豐,李煉,等.污點(diǎn)分析技術(shù)的原理和實(shí)踐應(yīng)用[J].軟件學(xué)報(bào),2017,28(4):860-882. (WANG L, LI F, LI L, et al. Principle and practice of taint analysis[J]. Journal of Software, 2017, 28(4): 860-882.)

    [4]?CLAUSE J, LI W, ORSO A. Dytan: a generic dynamic taint analysis framework [C]// Proceedings of the 2007 International Symposium on Software Testing and Analysis. New York: ACM, 2007:196-206.

    [5]?LIVSHITS V B, LAM M S. Finding security vulnerabilities in Java applications with static analysis [C]// Proceedings of the 14th Conference on USENIX Security Symposium. Berkeley, CA: USENIX Association, 2005, 14: 271-286.

    [6]?TRIPP O, PISTOIA M, COUSOT P, et al. ANDROMEDA: accurate and scalable security analysis of Web applications [C]// Proceedings of the 2013 International Conference on Fundamental Approaches to Software Engineering, LNCS 7793. Berlin: Springer, 2013:210-225.

    [7]?KINDER J, VEITH H. Jakstab: a static analysis platform for binaries [C]// Proceedings of the 2008 International Conference on Computer Aided Verification, LNCS 5123. Berlin: Springer, 2008: 423-427.

    [8]?XIA M, GONG L, LYU Y, et al. Effective real-time Android application auditing [C]// Proceedings of the 2015 IEEE Symposium on Security and Privacy. Washington, DC: IEEE Computer Society, 2015:899-914.

    [9]?黃強(qiáng),曾慶凱.基于信息流策略的污點(diǎn)傳播分析及動(dòng)態(tài)驗(yàn)證[J].軟件學(xué)報(bào),2011,22(9):2036-2048. (HUANG Q, ZENG Q K. Taint propagation analysis and dynamic verification with information flow policy [J]. Journal of Software, 2011, 22(9): 2036-2048.)

    [10]DALTON M, KANNAN H, KOZYRAKIS C. Raksha: a flexible information flow architecture for software security [C]// Proceedings of the 34th International Symposium on Computer Architecture. New York: ACM, 2007:482-493.

    [11]ZHU D (Y), JUNG J, SONG D, et al. TaintEraser: protecting sensitive data leaks using application-level taint tracking [J]. ACM SIDOPS Operating Systems Review, 2011, 45(1): 142-154.

    [12]?ENCK W, GILBERT P, CHUN B-G, et al. TaintDroid: an information flow tracking system for real-time privacy monitoring on smartphones [J]. Communications of the ACM, 2014, 57(3): 99-106.

    [13]?EFSTATHOPOULOS P, KROHN E, VANDEBOGART S, et al. Labels and event processes in the Asbestos operating system [J]. ACM SIGOPS Operating Systems Review, 2005, 39(5):17-30.

    [14]?BELL J, KAISER G. Phosphor: illuminating dynamic data flow in commodity JVMs [J]. ACM SIGPLAN Notices, 2014, 49(10): 83-101.

    [15]?TRIPP O, PISTOIA M, FINK S J, et al. TAJ: effective taint analysis of Web applications [J]. ACM SIGPLAN Notices, 2009, 44(6): 87-97.

    [16]?梁彬,龔偉剛,游偉,等. JavaScript優(yōu)化編譯執(zhí)行模式下的動(dòng)態(tài)污點(diǎn)分析技術(shù)[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2017(9):932-938. (LIANG B, HONG W G, YOU W, et al. DTA technique for JavaScript optimizing compilation mode [J]. Journal of Tsinghua University (Science and Technology), 2017, 57(9):932-938.)

    [17]?YOON M, SALAJEGHEH N, CHEN Y, et al. PIFT: predictive Information-flow tracking [J]. ACM SIGARCH Computer Architecture News, 2016, 44(2): 713-725.

    [18]?GIBLER C, CRUSSELL J, ERICKSON J, et al. AndroidLeaks: automatically detecting potential privacy leaks in Android applications on a large scale [C]// Proceedings of the 2012 International Conference on Trust & Trustworthy Computing, LNCS 7344. Berlin: Springer, 2012: 291-307.

    [19]?LU L, LI Z C, WU Z Y, et al. CHEX: statically vetting Android apps for component hijacking vulnerabilities [C]// Proceedings of the 2012 ACM Conference on Computer & Communications Security. New York: ACM, 2012:229-240.

    [20]?ARZT S, RASTHOFER S, FRITZ C, et al. FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps [J]. ACM SIGPLAN Notices, 2014, 49(6): 259-269.

    [21]?OCTEAU D, MCDANIEL P, JHA S, et al. Effective inter-component communication mapping in Android with Epicc: an essential step towards holistic security analysis [C]// Proceedings of the 22nd USENIX Conference on Security. Berkeley, CA: USENIX Association, 2013:543-558.

    [22]?劉陽(yáng),俞研.基于動(dòng)態(tài)污點(diǎn)分析的Android隱私泄露檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用與軟件,2017(9):142-146. (LIU Y, YU Y. Detection of Android privacy leak based on dynamic taint analysis [J]. Computer Applications and Software, 2017, 34(9): 142-146.)

    [23]?RATHI D, JINDAL R. DroidMark: a tool for android malware detection using taint analysis and Bayesian network [J]. International Journal on Recent and Innovation Trends in Computing and Communication. 2018, 6(5):71-76.

    [24]?達(dá)小文,毛俐旻,吳明杰,等.一種基于補(bǔ)丁比對(duì)和靜態(tài)污點(diǎn)分析的漏洞定位技術(shù)研究[J]. 信息網(wǎng)絡(luò)安全,2017(9):5-9. (DA X W, MAO L M, WU M J, et al. Research on a vulnerability locaction technology based on patch matching and static taint analysis [J]. Netinfo Security, 2017(9): 5-9.)

    [25]?王允超,魏強(qiáng),武澤慧.基于靜態(tài)污點(diǎn)分析的Android應(yīng)用Intent注入漏洞檢測(cè)方法[J].計(jì)算機(jī)科學(xué),2016,43(9):192-196. (WANG Y C, WEI Q, WU Z H. Approach of Android applications Intent injection vulnerability detection based on static taint analysis [J]. Computer Science, 2016, 43(9): 192-196.)

    [26]??PARAMESHWARAN I, BUDIANTO E, SHINDE S, et al. ?DexterJS: robust testing platform for DOM-based XSS vulnerabilities [C]// Proceedings of the 10th Joint Meeting on Foundations of Software Engineering. New York: ACM, 2015: 946-949.

    [27]?KANG M G, POOSANKAM P, YIN H. Renovo: a hidden code extractor for packed executables [C]// Proceedings of the 2007 ACM Workshop on Recuring Malcode. New York: ACM. 2007:46-53.

    [28]?PORTOKALIDIS G, BOS H. Eudaemon: involuntary and on-demand emulation against zero-day exploits [C]// Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems. New York: ACM, 2008:287-299.

    [29]?TRIPP O, RUBIN J. A Bayesian approach to privacy enforcement in smartphones [C]// Proceedings of the 23rd USENIX Conference on Security Symposium. Berkeley, CA: USENIX Association, 2014: 175-190.

    [30]?馬金鑫,李舟軍,張濤,等.基于執(zhí)行蹤跡離線索引的污點(diǎn)分析方法研究[J].軟件學(xué)報(bào),2017,28(9):2388-2401. (MA J X, LI Z J, ZHAO T, et al. Taint analysis method based on offline indices of instruction trace [J]. Journal of Software, 2017, 28(9): 2388-2401.)

    [31]?BAI G, YE Q, WU Y, et al. Towards model checking Android applications [J]. IEEE Transactions on Software Engineering, 2018, 44(6): 595-612.

    伦理电影免费视频| 久久久精品免费免费高清| 亚洲国产精品成人久久小说| 国产高清国产精品国产三级 | 99久久综合免费| 狂野欧美激情性xxxx在线观看| 亚洲真实伦在线观看| 汤姆久久久久久久影院中文字幕| 午夜福利网站1000一区二区三区| 中文天堂在线官网| 制服丝袜香蕉在线| 免费av不卡在线播放| 99国产精品免费福利视频| 欧美xxxx性猛交bbbb| 亚洲成人手机| av国产精品久久久久影院| 天美传媒精品一区二区| 男女国产视频网站| 日韩大片免费观看网站| 久久久久精品久久久久真实原创| 婷婷色综合大香蕉| 日本av免费视频播放| 亚洲激情五月婷婷啪啪| 亚洲欧美精品自产自拍| 亚洲经典国产精华液单| 亚洲国产精品999| 亚洲美女搞黄在线观看| 简卡轻食公司| 成人影院久久| 少妇的逼好多水| 大码成人一级视频| 一本色道久久久久久精品综合| 最近最新中文字幕免费大全7| 亚洲av成人精品一二三区| 少妇丰满av| 国产 一区精品| 精品国产三级普通话版| 日韩伦理黄色片| 国内揄拍国产精品人妻在线| 亚洲真实伦在线观看| 久久99精品国语久久久| 亚洲精品,欧美精品| 国产午夜精品久久久久久一区二区三区| 国产 一区精品| 日韩不卡一区二区三区视频在线| 菩萨蛮人人尽说江南好唐韦庄| 日韩精品有码人妻一区| 99久久中文字幕三级久久日本| 亚洲伊人久久精品综合| 色吧在线观看| 国产精品人妻久久久影院| 多毛熟女@视频| 狂野欧美激情性xxxx在线观看| 久久精品久久精品一区二区三区| 免费观看无遮挡的男女| videossex国产| 日本一二三区视频观看| 欧美精品亚洲一区二区| 国产亚洲一区二区精品| 中文字幕亚洲精品专区| 如何舔出高潮| 特大巨黑吊av在线直播| 丝瓜视频免费看黄片| 又黄又爽又刺激的免费视频.| 男人添女人高潮全过程视频| 欧美97在线视频| 午夜视频国产福利| 不卡视频在线观看欧美| 少妇高潮的动态图| av福利片在线观看| 肉色欧美久久久久久久蜜桃| 亚洲欧美一区二区三区黑人 | 老司机影院成人| 亚洲欧美清纯卡通| 日韩亚洲欧美综合| 国产中年淑女户外野战色| 麻豆乱淫一区二区| 18禁动态无遮挡网站| 新久久久久国产一级毛片| 涩涩av久久男人的天堂| 中文在线观看免费www的网站| 亚洲国产精品国产精品| 最近最新中文字幕大全电影3| 久久精品熟女亚洲av麻豆精品| 日韩一区二区视频免费看| 国产伦精品一区二区三区四那| 国产成人一区二区在线| 一个人看视频在线观看www免费| 人人妻人人爽人人添夜夜欢视频 | 啦啦啦啦在线视频资源| 99热6这里只有精品| 人妻系列 视频| 国产91av在线免费观看| 国产成人精品一,二区| 联通29元200g的流量卡| 赤兔流量卡办理| 熟女av电影| 一个人看的www免费观看视频| 色网站视频免费| 精品国产露脸久久av麻豆| 日韩欧美 国产精品| 黄片无遮挡物在线观看| 日本午夜av视频| 99久久精品热视频| 在线观看三级黄色| 精品一区在线观看国产| 卡戴珊不雅视频在线播放| 国产免费一区二区三区四区乱码| 国产免费一区二区三区四区乱码| 国产黄色视频一区二区在线观看| 国产精品伦人一区二区| 国产精品女同一区二区软件| 美女福利国产在线 | 伊人久久国产一区二区| h视频一区二区三区| 国产精品99久久久久久久久| 欧美日韩综合久久久久久| 亚洲av欧美aⅴ国产| 国产精品无大码| 精品一区二区免费观看| 久久久久视频综合| 欧美少妇被猛烈插入视频| 美女xxoo啪啪120秒动态图| 卡戴珊不雅视频在线播放| 亚洲综合精品二区| 韩国高清视频一区二区三区| 尤物成人国产欧美一区二区三区| 久久久久久久亚洲中文字幕| 另类亚洲欧美激情| 岛国毛片在线播放| 精品熟女少妇av免费看| 少妇人妻一区二区三区视频| 99久久精品热视频| 亚洲欧洲日产国产| 日日摸夜夜添夜夜爱| 久久久色成人| 色视频www国产| 亚洲av在线观看美女高潮| 国产一区有黄有色的免费视频| h视频一区二区三区| 九草在线视频观看| 亚洲av日韩在线播放| 在线观看免费日韩欧美大片 | 精品亚洲成国产av| 小蜜桃在线观看免费完整版高清| 黄色日韩在线| freevideosex欧美| 亚洲一级一片aⅴ在线观看| 男女国产视频网站| 91精品伊人久久大香线蕉| 久久久久网色| 中文字幕制服av| 少妇的逼水好多| 美女脱内裤让男人舔精品视频| 亚洲欧美精品专区久久| 一级毛片 在线播放| 综合色丁香网| 最近手机中文字幕大全| 国产亚洲一区二区精品| tube8黄色片| 日韩国内少妇激情av| 国产精品一区二区性色av| 精品人妻偷拍中文字幕| 亚洲美女视频黄频| 亚洲av电影在线观看一区二区三区| 少妇猛男粗大的猛烈进出视频| 国产片特级美女逼逼视频| 少妇熟女欧美另类| 97在线人人人人妻| 不卡视频在线观看欧美| 1000部很黄的大片| 亚洲怡红院男人天堂| 国产亚洲91精品色在线| 精品少妇久久久久久888优播| 男人和女人高潮做爰伦理| 久热久热在线精品观看| 国产精品麻豆人妻色哟哟久久| 色5月婷婷丁香| 国产有黄有色有爽视频| 日本av免费视频播放| 亚洲内射少妇av| av卡一久久| 一级黄片播放器| 国产一区有黄有色的免费视频| 女性生殖器流出的白浆| 这个男人来自地球电影免费观看 | 免费观看性生交大片5| 插阴视频在线观看视频| 亚洲精品中文字幕在线视频 | 亚洲精品成人av观看孕妇| 久久国产精品男人的天堂亚洲 | 大话2 男鬼变身卡| 99久久中文字幕三级久久日本| 色视频在线一区二区三区| 国产亚洲精品久久久com| 久久久久久久大尺度免费视频| 80岁老熟妇乱子伦牲交| 国产熟女欧美一区二区| 视频区图区小说| 国产高清国产精品国产三级 | 久久久久久久久久人人人人人人| 精品人妻偷拍中文字幕| 国产国拍精品亚洲av在线观看| 国产精品久久久久久av不卡| 啦啦啦啦在线视频资源| 欧美变态另类bdsm刘玥| 精品熟女少妇av免费看| 视频区图区小说| 在线观看国产h片| 在现免费观看毛片| 日日啪夜夜爽| 大香蕉久久网| 天天躁夜夜躁狠狠久久av| 99久久中文字幕三级久久日本| 91精品伊人久久大香线蕉| 蜜桃亚洲精品一区二区三区| 久久毛片免费看一区二区三区| 激情 狠狠 欧美| 少妇猛男粗大的猛烈进出视频| 色视频www国产| 18+在线观看网站| 男女免费视频国产| 18禁裸乳无遮挡动漫免费视频| 卡戴珊不雅视频在线播放| 欧美3d第一页| 小蜜桃在线观看免费完整版高清| 1000部很黄的大片| 五月玫瑰六月丁香| 久久午夜福利片| 18禁动态无遮挡网站| 另类亚洲欧美激情| 成人毛片60女人毛片免费| 一区二区av电影网| 久久99热这里只频精品6学生| 国产美女午夜福利| 男人添女人高潮全过程视频| 国产成人精品久久久久久| 一区二区av电影网| 久久国产亚洲av麻豆专区| 国产精品国产三级国产专区5o| 秋霞伦理黄片| 中文天堂在线官网| 亚洲国产欧美人成| 国产片特级美女逼逼视频| 新久久久久国产一级毛片| 亚洲中文av在线| 精品国产乱码久久久久久小说| 国产精品一区二区在线不卡| 最近的中文字幕免费完整| 亚洲三级黄色毛片| 你懂的网址亚洲精品在线观看| 日韩制服骚丝袜av| 18禁裸乳无遮挡免费网站照片| 丝瓜视频免费看黄片| 亚洲国产日韩一区二区| 观看av在线不卡| 人人妻人人添人人爽欧美一区卜 | 赤兔流量卡办理| 日韩欧美 国产精品| 一级a做视频免费观看| 中文乱码字字幕精品一区二区三区| av在线老鸭窝| 国产熟女欧美一区二区| 亚洲av男天堂| 我要看黄色一级片免费的| 涩涩av久久男人的天堂| av天堂中文字幕网| 最新中文字幕久久久久| 亚洲精品久久午夜乱码| 久久精品久久久久久久性| 小蜜桃在线观看免费完整版高清| 1000部很黄的大片| 大片电影免费在线观看免费| 大香蕉97超碰在线| 一个人免费看片子| 全区人妻精品视频| 久久久久精品久久久久真实原创| 91在线精品国自产拍蜜月| 天堂俺去俺来也www色官网| 久久国产精品男人的天堂亚洲 | 亚洲真实伦在线观看| 久久97久久精品| 国产精品伦人一区二区| 国产精品99久久久久久久久| 黄片wwwwww| 久久6这里有精品| 欧美成人精品欧美一级黄| 小蜜桃在线观看免费完整版高清| 麻豆成人av视频| 一个人看视频在线观看www免费| 啦啦啦啦在线视频资源| 爱豆传媒免费全集在线观看| 五月开心婷婷网| 亚洲人成网站在线观看播放| 亚洲三级黄色毛片| 看十八女毛片水多多多| 久久久久久九九精品二区国产| 精品久久国产蜜桃| 在线免费观看不下载黄p国产| 小蜜桃在线观看免费完整版高清| 久久久久久九九精品二区国产| 在线观看免费日韩欧美大片 | 一区二区三区乱码不卡18| 久久精品国产亚洲av天美| 亚洲av二区三区四区| 久久99热这里只有精品18| videossex国产| 国产久久久一区二区三区| 国产av码专区亚洲av| 亚洲国产欧美在线一区| 日本欧美国产在线视频| 人妻 亚洲 视频| 国内少妇人妻偷人精品xxx网站| 亚洲精品乱久久久久久| 亚洲四区av| 成人一区二区视频在线观看| 久久久亚洲精品成人影院| 欧美另类一区| 午夜激情福利司机影院| 少妇的逼水好多| 亚洲av国产av综合av卡| 99九九线精品视频在线观看视频| 日本黄色片子视频| 免费大片黄手机在线观看| 国产精品秋霞免费鲁丝片| 中文字幕精品免费在线观看视频 | 日韩电影二区| 久久热精品热| 在线观看国产h片| 国产无遮挡羞羞视频在线观看| 国产精品99久久久久久久久| 亚洲精品日韩av片在线观看| 久久韩国三级中文字幕| 观看免费一级毛片| 两个人的视频大全免费| 97在线视频观看| 日本黄色片子视频| 国产在线视频一区二区| 最近2019中文字幕mv第一页| 人人妻人人看人人澡| 成人黄色视频免费在线看| 少妇猛男粗大的猛烈进出视频| 最近最新中文字幕大全电影3| 永久免费av网站大全| 青春草亚洲视频在线观看| 亚洲成人一二三区av| 人人妻人人澡人人爽人人夜夜| 精品一区二区免费观看| 我要看黄色一级片免费的| 联通29元200g的流量卡| 国产亚洲5aaaaa淫片| 亚洲,一卡二卡三卡| 国产深夜福利视频在线观看| 国产高清不卡午夜福利| 亚洲国产欧美在线一区| 97精品久久久久久久久久精品| 国产毛片在线视频| av国产免费在线观看| 啦啦啦中文免费视频观看日本| 亚洲国产精品国产精品| 两个人的视频大全免费| 国产综合精华液| 久久精品国产亚洲av天美| 亚洲精品aⅴ在线观看| 中国国产av一级| 国产精品嫩草影院av在线观看| 高清毛片免费看| 亚洲成人av在线免费| 天天躁夜夜躁狠狠久久av| 最近中文字幕高清免费大全6| 涩涩av久久男人的天堂| 亚洲激情五月婷婷啪啪| 免费大片18禁| 纯流量卡能插随身wifi吗| 久久久久久久久久人人人人人人| 啦啦啦在线观看免费高清www| 国产69精品久久久久777片| 成人亚洲精品一区在线观看 | 高清不卡的av网站| 中文在线观看免费www的网站| 人妻夜夜爽99麻豆av| 免费大片18禁| 蜜桃久久精品国产亚洲av| 亚洲经典国产精华液单| 国产亚洲91精品色在线| 建设人人有责人人尽责人人享有的 | 亚洲高清免费不卡视频| 高清在线视频一区二区三区| 中文天堂在线官网| 日韩成人av中文字幕在线观看| 国产色爽女视频免费观看| 亚洲av国产av综合av卡| 久久97久久精品| 老女人水多毛片| 久久久午夜欧美精品| 最近中文字幕高清免费大全6| 免费少妇av软件| 国产精品无大码| 一区二区三区免费毛片| 免费人成在线观看视频色| 自拍偷自拍亚洲精品老妇| av国产久精品久网站免费入址| 国产色爽女视频免费观看| 91午夜精品亚洲一区二区三区| 国产高清有码在线观看视频| 久久国产精品男人的天堂亚洲 | 亚洲av成人精品一二三区| 精品久久久精品久久久| 80岁老熟妇乱子伦牲交| 黄片wwwwww| 精品一区二区三区视频在线| 人人妻人人爽人人添夜夜欢视频 | 国产精品久久久久久久电影| 亚洲精品国产色婷婷电影| 高清在线视频一区二区三区| 亚洲av中文av极速乱| 午夜福利影视在线免费观看| 国产毛片在线视频| 久久久久视频综合| 国产无遮挡羞羞视频在线观看| 国产有黄有色有爽视频| 国产视频首页在线观看| 亚洲国产精品国产精品| 这个男人来自地球电影免费观看 | 99热6这里只有精品| 国产黄片美女视频| 久久久精品94久久精品| 久久久久久久国产电影| 久久久久久九九精品二区国产| 亚洲成人手机| 免费看不卡的av| 18禁裸乳无遮挡动漫免费视频| 久久精品夜色国产| av天堂中文字幕网| 久久人人爽av亚洲精品天堂 | 亚洲熟女精品中文字幕| 18禁裸乳无遮挡免费网站照片| 欧美激情国产日韩精品一区| 国产欧美另类精品又又久久亚洲欧美| 日本黄色片子视频| 99视频精品全部免费 在线| 观看美女的网站| 国产成人午夜福利电影在线观看| 成人国产麻豆网| a 毛片基地| 亚洲久久久国产精品| 大片电影免费在线观看免费| 国产一区有黄有色的免费视频| 岛国毛片在线播放| xxx大片免费视频| 蜜桃亚洲精品一区二区三区| 寂寞人妻少妇视频99o| 欧美成人a在线观看| 在线播放无遮挡| 中文精品一卡2卡3卡4更新| 亚洲人成网站在线播| 亚洲精品乱码久久久久久按摩| 午夜福利影视在线免费观看| 99久国产av精品国产电影| 麻豆成人av视频| 久久久国产一区二区| av线在线观看网站| 亚洲精品,欧美精品| 国产成人aa在线观看| 夫妻性生交免费视频一级片| 视频中文字幕在线观看| 日韩欧美一区视频在线观看 | 久久99热这里只有精品18| 欧美成人精品欧美一级黄| 男人舔奶头视频| 男人和女人高潮做爰伦理| 一个人看的www免费观看视频| 成人漫画全彩无遮挡| 成人一区二区视频在线观看| 99久久中文字幕三级久久日本| 国产精品蜜桃在线观看| 国产精品国产三级专区第一集| 五月天丁香电影| 最近中文字幕2019免费版| 一二三四中文在线观看免费高清| 国产午夜精品一二区理论片| 菩萨蛮人人尽说江南好唐韦庄| 亚洲精品国产av蜜桃| 街头女战士在线观看网站| 最近2019中文字幕mv第一页| 寂寞人妻少妇视频99o| 毛片一级片免费看久久久久| 欧美人与善性xxx| 国产精品三级大全| 日本欧美视频一区| 久久久久久伊人网av| 午夜精品国产一区二区电影| 街头女战士在线观看网站| 熟女人妻精品中文字幕| 亚洲av日韩在线播放| 亚洲欧美清纯卡通| 久久国产精品大桥未久av | 97热精品久久久久久| 黄色一级大片看看| 国产综合精华液| 蜜桃在线观看..| 多毛熟女@视频| 日韩电影二区| 亚洲国产欧美在线一区| 高清在线视频一区二区三区| 最新中文字幕久久久久| 一级av片app| 国产 一区精品| 欧美丝袜亚洲另类| 精品人妻偷拍中文字幕| 老司机影院成人| 欧美xxⅹ黑人| 我要看黄色一级片免费的| 九九在线视频观看精品| 王馨瑶露胸无遮挡在线观看| 成人免费观看视频高清| 久久国产亚洲av麻豆专区| 岛国毛片在线播放| 91在线精品国自产拍蜜月| 国产成人一区二区在线| 成人影院久久| 国产精品国产av在线观看| 色哟哟·www| 久久精品熟女亚洲av麻豆精品| 亚洲av福利一区| 亚洲人成网站高清观看| 我的女老师完整版在线观看| 97在线人人人人妻| 色婷婷av一区二区三区视频| 久久精品国产亚洲av天美| 91aial.com中文字幕在线观看| 青春草国产在线视频| 亚洲精品久久久久久婷婷小说| 日韩一区二区三区影片| 久久精品人妻少妇| 免费黄色在线免费观看| 亚洲精品视频女| 国产中年淑女户外野战色| 2022亚洲国产成人精品| 韩国av在线不卡| 国产成人精品久久久久久| 久久久色成人| 中文天堂在线官网| 国产精品久久久久久精品电影小说 | av网站免费在线观看视频| 国产精品熟女久久久久浪| 在线天堂最新版资源| 欧美xxxx黑人xx丫x性爽| 免费av不卡在线播放| 午夜福利视频精品| 久久久久久久久久久免费av| 好男人视频免费观看在线| 老司机影院毛片| 日韩免费高清中文字幕av| 高清午夜精品一区二区三区| 国语对白做爰xxxⅹ性视频网站| 黑丝袜美女国产一区| 亚洲国产最新在线播放| 最近中文字幕2019免费版| 99久久综合免费| 国产高清不卡午夜福利| 欧美xxxx黑人xx丫x性爽| 亚洲中文av在线| 啦啦啦中文免费视频观看日本| 国产欧美亚洲国产| 啦啦啦中文免费视频观看日本| 国产在线免费精品| 天天躁日日操中文字幕| .国产精品久久| 能在线免费看毛片的网站| 成人亚洲欧美一区二区av| 美女cb高潮喷水在线观看| 免费观看av网站的网址| 2021少妇久久久久久久久久久| 欧美xxⅹ黑人| a 毛片基地| 只有这里有精品99| 免费看av在线观看网站| 黄片wwwwww| 亚洲不卡免费看| 免费不卡的大黄色大毛片视频在线观看| 在线观看一区二区三区激情| 欧美精品国产亚洲| 久久这里有精品视频免费| 舔av片在线| 日本黄色日本黄色录像| 亚洲aⅴ乱码一区二区在线播放| 高清视频免费观看一区二区| 精品午夜福利在线看| 最近最新中文字幕大全电影3| 我的女老师完整版在线观看| 如何舔出高潮| 日韩av不卡免费在线播放| 国产精品国产三级国产专区5o| av免费观看日本| 欧美极品一区二区三区四区| 久久99热这里只有精品18| 成人美女网站在线观看视频| 久久久精品94久久精品| 久久久久久久久久成人| 国产成人免费无遮挡视频| 插逼视频在线观看| 在现免费观看毛片| 亚洲精品自拍成人| 如何舔出高潮| 成人国产av品久久久| 成人18禁高潮啪啪吃奶动态图 | 亚洲成人中文字幕在线播放| 亚洲人成网站在线播| 日本vs欧美在线观看视频 | 大又大粗又爽又黄少妇毛片口| 欧美少妇被猛烈插入视频| 97超碰精品成人国产| 日本爱情动作片www.在线观看| 老司机影院毛片|